:root{--ink:#202333;--muted:#697185;--line:#e4e7ef;--paper:#f4f6fa;--white:#fff;--accent:#6552be;--accent2:#8473d1;--soft:#eeeafa;--ok:#18745c;--ok-bg:#e7f5ef;--bad:#b63c46;--bad-bg:#fff0f1;--warn:#946420;--warn-bg:#fff5de;--radius:18px;--shadow:0 5px 24px #24284406;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);font-size:14px;line-height:1.5;background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:var(--accent);text-decoration:none}a:hover{color:#443486}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #b4a8ed;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:28px;letter-spacing:-.7px;line-height:1.25;font-weight:700}h2{font-size:19px;letter-spacing:-.25px}h3{font-size:16px}p.subtle,.subtle{color:var(--muted)}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}.hidden,[hidden]{display:none!important}.initial-loader{display:grid;place-items:center;height:80vh;color:var(--muted)}
.app-nav{position:fixed;inset:0 auto 0 0;width:238px;background:#242338;color:#dddcec;display:flex;flex-direction:column;padding:29px 18px 18px;z-index:30}.brand{display:flex;gap:12px;align-items:center;padding:0 14px;color:white;margin-bottom:38px}.brand:hover{color:white}.brand-symbol{height:40px;width:40px;border:1px solid #79718f;border-radius:12px;display:grid;place-items:center;background:#343149}.brand-symbol .icon{width:24px;height:24px}.brand strong{font-size:18px;letter-spacing:.2px}.brand small{display:block;color:#aaa6bf;font-size:11px;letter-spacing:.5px}.nav-label{color:#9792ac;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin:0 16px 10px}.nav-menu{display:grid;gap:6px}.nav-menu a{display:flex;align-items:center;gap:12px;color:#c7c5d8;padding:13px 14px;border-radius:11px;font-weight:500}.nav-menu a:hover{background:#302e46;color:white}.nav-menu a.active{background:#6552be;color:white;box-shadow:0 6px 20px #0002}.nav-menu a .icon{width:18px;height:18px}.nav-divider{height:1px;background:#ffffff12;margin:25px 12px}.nav-bottom{margin-top:auto}.nav-note{font-size:11px;color:#9e99b4;padding:20px 14px;line-height:1.6}.user-chip{border-top:1px solid #ffffff14;padding:18px 8px 3px;display:flex;gap:10px;align-items:center}.avatar{width:34px;height:34px;border-radius:10px;background:#eae5fa;color:var(--accent);display:grid;place-items:center;font-weight:700;flex:none}.user-details{min-width:0;flex:1;color:#eeedf5}.user-details strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-details small{color:#a6a1bd;font-size:11px}.icon-button{border:0;background:transparent;color:inherit;display:inline-flex;align-items:center;justify-content:center;padding:7px;border-radius:8px}.icon-button:hover{background:#85809722}.page-frame{margin-left:238px;min-height:100vh}.topbar{height:77px;border-bottom:1px solid var(--line);background:#ffffffd9;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:16px}.breadcrumb{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:10px}.breadcrumb b{color:var(--ink);font-weight:500}.top-actions{display:flex;gap:15px;align-items:center}.status-pill{display:inline-flex;align-items:center;gap:7px;font-size:11px;border:1px solid var(--line);border-radius:30px;padding:6px 10px;color:var(--muted);background:var(--white)}.status-pill.good{color:var(--ok);background:var(--ok-bg);border-color:#d0e9dd}.status-pill.bad{color:var(--bad);background:var(--bad-bg)}.dot{height:6px;width:6px;border-radius:50%;background:currentColor}.web-tag{color:#8790a0;font-size:10px;letter-spacing:1px}.menu-toggle{display:none}.workspace{max-width:1420px;margin:0 auto;padding:34px 38px 50px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:26px}.page-heading p{margin-top:8px;max-width:770px;color:var(--muted);font-size:13px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:19px}.panel-title p{margin-top:5px;font-size:12px;color:var(--muted)}.stack{display:grid;gap:22px}.columns{display:grid;grid-template-columns:1.7fr 1fr;gap:22px}.btn,.button{border:1px solid var(--line);border-radius:10px;padding:10px 15px;min-height:41px;font-weight:600;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:white;color:var(--ink);white-space:nowrap;transition:background .15s,box-shadow .15s}.btn:hover,.button:hover{background:#f4f3f9}.btn.primary,.button-primary{background:var(--accent);color:white;border-color:var(--accent)}.btn.primary:hover,.button-primary:hover{background:#53429f}.btn.small{padding:6px 11px;min-height:31px;font-size:11px}.btn.danger{color:var(--bad);background:#fff}.btn.ghost{background:transparent}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field{display:grid;gap:7px;margin-bottom:17px;font-size:12px;font-weight:500}.field input,.field select,.field textarea,input.input{background:white;border:1px solid #d9deea;border-radius:10px;width:100%;padding:11px 13px;min-height:43px;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent2);box-shadow:0 0 0 3px #6552be15}.field small{font-size:11px;font-weight:400;color:var(--muted)}.notice{padding:12px 15px;border-radius:10px;border:1px solid var(--line);font-size:12px;line-height:1.6}.notice.error{background:var(--bad-bg);border-color:#f1cbd0;color:var(--bad)}.notice.info{background:#f1eefb;color:#5a4d87;border-color:#e4def7}.notice.good{background:var(--ok-bg);color:var(--ok);border-color:#d0e9dd}.notice.warn{background:var(--warn-bg);color:var(--warn);border-color:#f0deb7}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.empty .icon{width:36px;height:36px;color:#a79ccf;margin-bottom:12px}.empty strong{display:block;color:var(--ink);font-weight:600;font-size:14px}.empty p{font-size:12px;margin-top:6px}.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.metric-card{background:white;border:1px solid var(--line);border-radius:15px;padding:19px 22px}.metric-card span{font-size:11px;color:var(--muted)}.metric-card strong{display:block;font-size:28px;font-weight:650;line-height:1.3;margin-top:8px;letter-spacing:-.8px}.metric-card small{font-size:10px;color:#9199a8}.metric-card .success{color:var(--ok)}.metric-card .warning{color:var(--warn)}.hero{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:26px;padding:32px;background:linear-gradient(125deg,#eeebfb,#f9f8ff);border:1px solid #dfd9f5;border-radius:20px;margin-bottom:24px}.hero h1{max-width:560px;font-size:31px;line-height:1.25}.hero p{margin:13px 0 22px;color:#68657e;max-width:580px;font-size:13px}.scan-symbol{height:130px;width:130px;display:grid;place-items:center;border:1px solid #d2c9ef;border-radius:28px;background:#ffffff77;box-shadow:0 12px 32px #6552be12}.scan-symbol .icon{width:62px;height:62px;color:var(--accent);stroke-width:1.05}.mode-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:26px}.mode-card{padding:23px;display:flex;flex-direction:column;min-height:206px;color:var(--ink);border:1px solid var(--line);border-radius:16px;background:white;transition:transform .15s,border-color .15s}.mode-card:hover{transform:translateY(-3px);border-color:#c4b8e9;color:var(--ink)}.mode-icon{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--accent);margin-bottom:17px}.mode-card h3{font-size:15px}.mode-card p{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.65}.mode-card small{font-size:11px;font-weight:600;color:var(--accent);margin-top:auto;padding-top:15px}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px}.data-table{border-collapse:collapse;width:100%;font-size:12px;min-width:680px}.data-table th{padding:12px 16px;text-align:left;background:#f8f9fc;color:#748095;font-size:10px;letter-spacing:.3px;font-weight:600;border-bottom:1px solid var(--line)}.data-table td{padding:14px 16px;border-bottom:1px solid #eff1f6;vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#fbfaff}.file-name{max-width:320px;overflow-wrap:anywhere;font-size:11px;line-height:1.5}.code-text{font-family:"SFMono-Regular",Consolas,monospace;font-size:11px;word-break:break-all}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:6px;font-size:10px;white-space:nowrap;color:var(--muted);background:#eef1f6}.badge.ok{color:var(--ok);background:var(--ok-bg)}.badge.bad{color:var(--bad);background:var(--bad-bg)}.badge.warn{color:var(--warn);background:var(--warn-bg)}.badge.work{color:var(--accent);background:var(--soft)}.dropzone{border:1.5px dashed #c8c0df;border-radius:15px;background:#fcfbff;padding:27px 20px;text-align:center;cursor:pointer;transition:background .15s,border-color .15s;outline:none}.dropzone:hover,.dropzone.drag{background:var(--soft);border-color:var(--accent)}.dropzone>.icon{color:var(--accent);width:30px;height:30px;margin-bottom:8px}.dropzone strong{display:block;font-size:14px}.dropzone p{font-size:12px;color:var(--muted);margin-top:6px}.dropzone small{display:block;font-size:10px;color:#8a829d;margin-top:13px}.upload-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:18px}.progress-area{margin-top:22px}.progress-caption{display:flex;justify-content:space-between;font-size:11px;margin-bottom:8px;color:var(--muted)}.progress-track{height:6px;border-radius:10px;background:#edeaf6;overflow:hidden}.progress-bar{height:100%;width:0;background:var(--accent);transition:width .2s}.thumb{width:43px;height:43px;object-fit:cover;border-radius:8px;flex:none}.file-cell{display:flex;align-items:center;gap:11px}.step{display:flex;gap:12px;margin-top:18px}.step-num{height:27px;width:27px;display:grid;place-items:center;background:var(--soft);color:var(--accent);border-radius:8px;font-size:11px;font-weight:700;flex:none}.step strong{font-size:12px;display:block}.step p{font-size:11px;color:var(--muted);margin-top:3px}.page-foot{font-size:10px;color:#8991a3;margin-top:22px;display:flex;justify-content:space-between;gap:12px}.split-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-code{background:#f5f5fa;border-radius:10px;padding:15px;font-family:Consolas,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all}.kv{display:grid;grid-template-columns:150px 1fr;gap:10px;font-size:12px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.screen-reader{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.filter-row{display:flex;gap:6px;flex-wrap:wrap}.filter-row button{border:1px solid var(--line);background:white;color:var(--muted);font-size:11px;border-radius:8px;padding:6px 10px}.filter-row button.active{color:var(--accent);background:var(--soft);border-color:#d6ceee}.spinner{width:12px;height:12px;border:2px solid #ffffff44;border-top-color:currentColor;border-radius:50%;display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:white}.login-intro{background:linear-gradient(150deg,#29263f,#443866);color:#f5f3ff;padding:55px max(40px,10%);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-intro .brand{margin:0;padding:0}.login-intro .intro-copy{max-width:430px;margin:60px 0}.login-intro h1{font-size:43px;line-height:1.2;letter-spacing:-1.2px}.login-intro p{color:#c7c0d9;font-size:14px;line-height:1.8;margin-top:21px}.intro-points{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.intro-points span{font-size:11px;border:1px solid #ffffff22;padding:8px 12px;border-radius:8px;color:#ddd6ee}.intro-footer{font-size:11px;color:#aaa0bf}.login-form-side{display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:370px}.login-card h2{font-size:26px;letter-spacing:-.5px}.login-card>p{color:var(--muted);font-size:13px;margin:10px 0 30px}.login-card .btn{width:100%;margin-top:7px}.login-help{border-top:1px solid var(--line);padding-top:20px;margin-top:25px;font-size:11px;color:#9196a3;line-height:1.7}.password-shell{position:relative}.password-shell input{padding-right:43px}.password-shell button{position:absolute;right:5px;top:5px;height:34px;width:34px;border:0;background:transparent;color:var(--muted)}.error-text{color:var(--bad);font-size:12px;margin:12px 0;min-height:18px}.modal-backdrop{position:fixed;inset:0;background:#14122280;z-index:100;display:grid;place-items:center;padding:22px;backdrop-filter:blur(3px)}.modal{background:white;border-radius:20px;padding:26px;width:min(650px,100%);max-height:90vh;overflow:auto;box-shadow:0 25px 100px #0003}.modal h2{font-size:20px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.modal .actions{justify-content:flex-end;margin-top:23px}.admin-toolbar{display:flex;gap:12px;align-items:center}.audit-list{font-size:11px}.audit-event{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.audit-event time{color:var(--muted);min-width:145px}.audit-event span{overflow-wrap:anywhere}.toast{position:fixed;bottom:25px;right:25px;background:#242338;color:white;padding:13px 19px;border-radius:12px;font-size:12px;z-index:150;box-shadow:0 8px 28px #0002}
/* Original comparison logic retained; common layout and navigation supplied by CHZ Web. */
#root .recognition-launch,#root .app-header,#root>footer,.author-mark{display:none!important}#root .shell{width:100%;max-width:none;margin:0}#root .main-grid{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:20px;padding:0}#root .content-column{min-width:0;display:grid;gap:20px;align-content:start}#root .sidebar{display:grid;gap:20px;align-content:start}#root .card{background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}#root .card-header{padding:20px 22px 0;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}#root .card-header h2{font-size:16px}#root .card-header p{font-size:11px;color:var(--muted);margin-top:5px}#root .card-body{padding:20px 22px}#root .compact{font-size:12px}#root .segmented,#root .tabs{display:flex;gap:5px;margin-bottom:17px;flex-wrap:wrap}#root .segmented button,#root .tab{background:#f6f5fa;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:11px;color:var(--muted)}#root .segmented .active,#root .tab.active{background:var(--soft);color:var(--accent);border-color:#cdc2e8}#root .upload-block{border:1px dashed #c7bedf;border-radius:12px;background:#fbfaff;padding:19px;display:flex;flex-wrap:wrap;gap:14px}#root .upload-copy{display:grid;gap:4px;flex:1;min-width:160px}#root .upload-copy strong{font-size:12px}#root .upload-copy span{font-size:11px;color:var(--muted)}#root .upload-actions{display:flex;gap:6px;align-items:center}#root .hidden-input{display:none}#root .file-summary{width:100%;border-top:1px solid var(--line);padding-top:12px}#root .file-summary-line{display:flex;justify-content:space-between;font-size:11px}#root .file-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}#root .file-chip{padding:4px 8px;border-radius:6px;background:white;border:1px solid var(--line);font-size:10px;max-width:100%;overflow-wrap:anywhere}#root .link-button,#root .file-remove{background:none;border:none;color:var(--accent);font-size:11px}#root .selected-file-row{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:11px}#root .selected-file-info{min-width:0}#root .selected-file-info strong{display:block;overflow-wrap:anywhere}#root .selected-file-info span{color:var(--muted);font-size:10px}#root .action-panel{display:flex;gap:20px;align-items:center;justify-content:space-between}#root .progress-block{flex:1}#root .progress-labels{display:flex;justify-content:space-between;font-size:11px;margin-bottom:8px}#root .progress-detail{font-size:10px;color:var(--muted);margin-top:8px}#root .card-hint{padding:0 22px 16px;color:var(--muted);font-size:11px}#root .formula{display:flex;gap:4px;flex-wrap:wrap}#root .formula span{font-family:Consolas,monospace;font-size:11px;background:var(--soft);border-radius:5px;padding:5px}#root .facts{display:grid;gap:12px}#root .facts div{display:flex;justify-content:space-between;gap:10px}#root .facts dt{color:var(--muted)}#root .facts dd{margin:0;text-align:right}#root .bullet-list{padding-left:18px;color:var(--muted);font-size:11px;line-height:1.8}#root .table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}#root table{border-collapse:collapse;font-size:11px;width:100%;min-width:560px}#root th{background:#f7f8fc;color:var(--muted);font-size:10px;text-align:left;padding:11px}#root td{padding:11px;border-top:1px solid var(--line);overflow-wrap:anywhere;max-width:350px}#root .metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px}#root .metric{padding:12px;border:1px solid var(--line);border-radius:10px}#root .metric span{font-size:10px;color:var(--muted);display:block}#root .metric strong{font-size:21px}#root .empty-state{padding:25px;text-align:center;color:var(--muted);font-size:12px}#root .notice-error{background:var(--bad-bg);color:var(--bad)}#root .notice-warning{background:var(--warn-bg);color:var(--warn)}#root .notice-success{background:var(--ok-bg);color:var(--ok)}#root .drag-active{border-color:var(--accent);background:var(--soft)}
@media(min-width:1500px){.workspace{padding-top:42px}.mode-card{min-height:217px}}
@media(max-width:1150px){.app-nav{width:213px;padding-left:12px;padding-right:12px}.page-frame{margin-left:213px}.workspace{padding:27px 25px}.topbar{padding:0 25px}.columns{grid-template-columns:1fr}.mode-cards{gap:12px}.mode-card{padding:20px}#root .main-grid{grid-template-columns:1fr}#root .sidebar{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr 120px}.scan-symbol{width:115px;height:115px}}
@media(max-width:800px){.app-nav{transform:translateX(-100%);transition:transform .2s;width:238px}.app-nav.open{transform:translateX(0);box-shadow:0 0 0 100vmax #17152c66}.page-frame{margin-left:0}.menu-toggle{display:inline-flex}.topbar{height:64px;padding:0 18px}.breadcrumb{display:none}.top-actions{gap:8px}.web-tag{display:none}.workspace{padding:25px 18px}.hero{padding:24px;grid-template-columns:1fr}.hero h1{font-size:27px}.scan-symbol{display:none}.metrics-row{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:15px}.metric-card strong{font-size:25px}.mode-cards{grid-template-columns:1fr}.mode-card{min-height:auto}.mode-icon{margin-bottom:12px}.page-heading{gap:14px;flex-direction:column}h1{font-size:24px}.panel{padding:19px}.panel-title{flex-wrap:wrap}.upload-footer{align-items:flex-start;flex-direction:column}.login-page{grid-template-columns:1fr}.login-intro{padding:24px;min-height:auto}.login-intro .intro-copy{margin:30px 0 12px}.login-intro h1{font-size:29px}.login-intro p,.intro-points,.intro-footer{display:none}.login-form-side{padding:30px 24px}.login-card{max-width:450px}.kv{grid-template-columns:110px 1fr}#root .sidebar{grid-template-columns:1fr}#root .metrics{grid-template-columns:1fr 1fr}#root .action-panel{align-items:stretch;flex-direction:column}.page-foot{flex-direction:column}.data-table td{padding:12px}.audit-event{flex-direction:column;gap:3px}}
/* KPI navigation: native links over the entire card, including empty states. */
.metric-card.metric-link{display:flex;flex-direction:column;position:relative;min-width:0;color:var(--ink);text-decoration:none;cursor:pointer;touch-action:manipulation;transition:border-color .15s,box-shadow .15s,background .15s}
.metric-link .metric-title{display:block;min-height:2.9em}
.metric-link small{display:block;overflow-wrap:anywhere}
.metric-card.metric-link .metric-go{display:block;margin-top:auto;padding-top:12px;font-size:11px;font-weight:600;color:var(--accent)}
.metric-card.metric-link:hover{border-color:var(--accent);box-shadow:0 4px 18px #6552be19;background:#fdfcff}
.metric-card.metric-link:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-color:var(--accent)}
.metric-card.metric-link:active{background:var(--soft)}
.dashboard-actions,.dashboard-filters{margin:0 0 18px}
.dashboard-actions:last-child{margin:18px 0 0}
.dashboard-count{margin-bottom:15px;font-size:12px}
.dashboard-filters a{min-height:44px;white-space:normal;text-align:center}
#dashboard-results{min-width:0;max-width:100%}
#dashboard-results .table-scroll{max-width:100%}
@media(prefers-reduced-motion:reduce){.metric-card.metric-link{transition:none}}
