:root{--ink:#102a3b;--muted:#607483;--line:#dce5ea;--paper:#fff;--bg:#f3f7f9;--navy:#12344d;--teal:#087f6b;--green:#117a52;--red:#c5333d;--red-bg:#fff1f2;--amber:#a26008;--amber-bg:#fff7e7;--blue:#24648b;--shadow:0 12px 35px rgba(18,52,77,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:16px;line-height:1.55}.topbar{height:68px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1280px)/2));box-shadow:0 3px 12px rgba(0,0,0,.14)}.brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font-weight:800;font-size:1.15rem}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#55d6a6;color:#12344d}.topbar nav{display:flex;align-items:center;gap:20px}.topbar nav a,.link-button{color:#e8f1f5;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}.topbar nav form{margin:0}.page-shell{max-width:1280px;margin:0 auto;padding:30px 20px 70px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading.compact{margin-bottom:18px}.page-heading h1,.results-head h2{margin:0;font-size:clamp(1.65rem,4vw,2.35rem);line-height:1.2}.eyebrow{margin:0 0 3px;color:var(--teal);font-weight:800;font-size:.8rem;letter-spacing:.04em}.button{border:0;border-radius:11px;padding:11px 18px;font:inherit;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.button.primary{background:var(--teal);color:#fff}.button.secondary{background:#e5eef2;color:var(--navy)}.button.scan{background:var(--red);color:#fff;padding:13px 24px;box-shadow:0 8px 24px rgba(197,51,61,.22)}.button.wide{width:100%}.panel,.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.narrow,.auth-card{max-width:520px;margin:50px auto}.auth-card h1,.panel h1{margin-top:0}.stack-form p{display:flex;flex-direction:column;gap:6px}.stack-form input{width:100%;border:1px solid #bdccd5;border-radius:10px;padding:11px;font:inherit}.helptext{font-size:.82rem;color:var(--muted)}.errorlist{color:var(--red)}.notice{padding:12px 16px;border-radius:11px;margin-bottom:16px;background:#eaf2f7}.notice-success{background:#e6f7f0;color:#0b6547}.notice-error{background:var(--red-bg);color:#9e2630}.session-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:16px}.session-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;color:inherit;text-decoration:none;box-shadow:var(--shadow);transition:.18s}.session-card:hover{transform:translateY(-2px);border-color:#8cb4c9}.session-date{font-size:1.45rem;font-weight:850}.session-meta{display:flex;gap:14px;color:var(--muted);margin:12px 0}.session-state{font-size:.88rem;color:var(--blue)}.summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}.summary-card{position:relative;min-height:115px;background:#fff;border:1px solid var(--line);border-top:4px solid #8298a5;border-radius:14px;padding:15px;color:inherit;text-decoration:none;display:flex;flex-direction:column;box-shadow:0 8px 24px rgba(18,52,77,.05)}.summary-card span{font-size:.9rem;color:var(--muted)}.summary-card strong{font-size:2rem;line-height:1.15;margin-top:8px}.summary-card small{color:var(--red);font-weight:800}.summary-card.success{border-top-color:var(--green)}.summary-card.danger{border:2px solid var(--red);border-top-width:6px;background:var(--red-bg)}.summary-card.duplicate{border-top-color:#9b2633}.summary-card.warning{border-top-color:#e19b29}.summary-card.neutral{border-top-color:var(--blue)}.workflow-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:36px}.panel-title{display:flex;gap:12px;align-items:flex-start}.panel-title h2{margin:0}.panel-title p{margin:2px 0 14px;color:var(--muted)}.step{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;flex:none}textarea{width:100%;min-height:300px;border:1px solid #bdccd5;border-radius:12px;padding:14px;font:15px/1.65 Consolas,"Segoe UI",sans-serif;resize:vertical;margin-bottom:12px}.upload-box{border:2px dashed #afc3ce;border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px;background:#f8fbfc}.upload-box input{font:inherit}.file-list{margin-top:14px}.file-list>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:9px 0}.file-list small{color:var(--muted)}.results-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:14px}.results-head h2{font-size:1.75rem}.export-menu{display:flex;gap:8px;flex-wrap:wrap}.export-menu a{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 11px;text-decoration:none;color:var(--navy);font-size:.88rem}.filter-bar{display:grid;grid-template-columns:1fr 190px auto;gap:10px;background:#e6eef2;padding:12px;border-radius:13px;margin-bottom:15px}.filter-bar input,.filter-bar select{border:1px solid #b7c9d2;border-radius:9px;padding:10px;font:inherit;background:#fff}.result-list{display:flex;flex-direction:column;gap:12px}.result-card{background:#fff;border:1px solid var(--line);border-right:5px solid #8196a3;border-radius:14px;padding:17px 18px;box-shadow:0 6px 18px rgba(18,52,77,.045)}.result-card.is-missing{border-right-color:var(--red);background:linear-gradient(90deg,#fff 0,#fff 88%,#fff3f4 100%)}.result-card.is-matched{border-right-color:var(--green)}.result-card.is-review{border-right-color:#e19b29}.result-top{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.result-top>div{display:flex;gap:7px;flex-wrap:wrap}.result-top code{font-size:1.02rem;font-weight:800;word-break:break-all}.status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.8rem;font-weight:800}.status.missing{background:#ffe0e3;color:#a61f2a}.status.matched{background:#ddf4e9;color:#0c6847}.status.review{background:var(--amber-bg);color:var(--amber)}.status.duplicate{background:#f6dce0;color:#85212d}.status.previous{background:#e8e1fa;color:#58349b}.status.excel{background:#e6eff6;color:#285d7e}.status.pending{background:#edf1f3;color:#526670}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 18px;margin:16px 0 0}.detail-grid>div{min-width:0}.detail-grid .wide{grid-column:1/-1}.detail-grid dt{font-size:.78rem;color:var(--muted);font-weight:750}.detail-grid dd{margin:1px 0;word-break:break-word}.original{background:#f5f8fa;border-radius:9px;padding:10px;font-family:Consolas,"Segoe UI",sans-serif}.classify{display:flex;gap:7px;align-items:center;margin-top:13px;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap}.classify button{border:1px solid #a8c0cc;background:#edf5f7;color:var(--navy);padding:6px 10px;border-radius:8px;cursor:pointer}.classify button.quiet{background:#fff}.excel-only p{margin:10px 0 0;color:var(--muted)}.empty-state{grid-column:1/-1;text-align:center;padding:50px;background:#fff;border:1px dashed #b9c9d1;border-radius:16px;color:var(--muted)}.audit-panel{margin-top:25px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.audit-panel summary{cursor:pointer;font-weight:800}.audit-list>div{display:grid;grid-template-columns:170px 180px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.86rem}.audit-list code{white-space:pre-wrap}.audit-list time{direction:ltr;text-align:right}.session-grid+.empty-state{margin-top:20px}
/* Keep the real file input visible: iOS opens the Files picker most reliably this way. */
.file-label{font-weight:800;color:var(--navy)}.file-input{display:block;width:100%;min-height:52px;padding:8px;border:1px solid #9db6c3;border-radius:11px;background:#fff;color:var(--ink)}.file-input::file-selector-button,.file-input::-webkit-file-upload-button{min-height:38px;margin-inline-end:10px;border:0;border-radius:9px;padding:8px 14px;background:var(--teal);color:#fff;font:inherit;font-weight:800}.selected-files,.upload-help{margin:0}.selected-files{color:var(--blue);font-weight:750;overflow-wrap:anywhere}.upload-help{padding:10px 12px;border-radius:10px;background:#eef6fa;color:#39596d;font-size:.9rem}.upload-submit{width:100%;min-height:48px}
@media(max-width:1000px){.summary-grid{grid-template-columns:repeat(3,1fr)}.workflow-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.topbar{height:auto;padding:12px 16px;align-items:flex-start}.topbar nav{gap:10px;font-size:.82rem;flex-wrap:wrap;justify-content:flex-end}.brand span:last-child{display:none}.page-shell{padding:20px 12px 55px}.page-heading,.results-head{align-items:flex-start;flex-direction:column}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-card{min-height:102px}.workflow-grid{gap:12px}.panel{padding:16px}.filter-bar{grid-template-columns:1fr}.result-top{flex-direction:column}.detail-grid{grid-template-columns:1fr 1fr}.detail-grid .wide{grid-column:1/-1}.audit-list>div{grid-template-columns:1fr}.export-menu{width:100%}.export-menu a{flex:1;text-align:center}.file-list>div{flex-direction:column}.auth-card{margin:15px auto}}
