:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:#162335;background:#fff;font-synthesis:none;text-rendering:optimizeLegibility;--navy: #12334a;--teal: #008e91;--teal-dark: #006f73;--teal-soft: #e8f6f5;--line: #dbe3e8;--muted: #647486;--surface: #f7f9fa;--danger: #c7372f;--danger-soft: #fff0ed;--warning: #b76304;--warning-soft: #fff7e9;--low: #2373b9}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#fff}button,input{font:inherit}button{color:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.status-rail{position:sticky;top:0;height:100vh;padding:34px 28px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:#fff}.brand-lockup{display:flex;align-items:center;gap:12px;color:var(--navy)}.brand-mark{display:grid;place-items:center;width:38px;height:42px;color:var(--teal)}.brand-lockup div{display:flex;align-items:baseline;gap:6px}.brand-lockup strong{font-size:20px;letter-spacing:-.02em}.brand-lockup span:last-child{color:var(--teal);font-weight:700}.status-steps{list-style:none;margin:56px 0 0;padding:0}.status-steps li{position:relative;min-height:94px;display:grid;grid-template-columns:42px 1fr;gap:14px;color:#81909d}.status-steps li:not(:last-child):after{content:"";position:absolute;left:20px;top:42px;bottom:5px;width:1px;background:#d6dee3}.status-steps li.done:not(:last-child):after{background:var(--teal)}.step-icon{width:42px;height:42px;border:1px solid #c9d3da;border-radius:50%;display:grid;place-items:center;background:#fff}.status-steps li.active,.status-steps li.done{color:var(--navy)}.status-steps li.active .step-icon{color:#fff;background:var(--teal);border-color:var(--teal);box-shadow:0 0 0 5px var(--teal-soft)}.status-steps li.done .step-icon{color:var(--teal);border-color:var(--teal)}.status-steps li strong,.status-steps li span{display:block}.status-steps li strong{margin-top:2px;font-size:15px}.status-steps li div span{margin-top:5px;font-size:12px;color:#82909d}.rail-security-note{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:4px}.rail-security-note strong{color:var(--teal-dark);font-size:13px}.rail-security-note span{color:var(--muted);font-size:12px}.main-workspace{width:100%;max-width:1220px;padding:36px 48px 26px;margin:0 auto}.workspace-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.workspace-topline h1{margin:0;color:var(--navy);font-size:28px;line-height:1.15;letter-spacing:-.025em}.workspace-topline p{margin:6px 0 0;color:var(--muted);font-size:13px}.privacy-note{display:flex;align-items:center;gap:8px;color:var(--teal-dark);font-size:13px;font-weight:650}.topline-actions{display:flex;align-items:center;gap:14px}.mobile-header{display:none}.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#f5fbfb,#fff 55%,#f7f9fa)}.login-card{width:min(100%,440px);padding:34px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 22px 60px #12334a1f}.login-brand{display:flex;align-items:center;gap:10px;color:var(--teal-dark);font-weight:800}.login-card h1{margin:22px 0 8px;color:var(--navy);font-size:25px;letter-spacing:-.025em}.login-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.75}.login-form{margin-top:24px;display:grid;gap:14px}.login-form label{display:grid;gap:7px;color:var(--navy);font-size:13px;font-weight:800}.login-form input{width:100%;min-height:42px;padding:0 12px;border:1px solid #bdc9d2;border-radius:6px;color:#152536;background:#fff}.login-form input:focus{outline:2px solid rgba(0,142,145,.22);border-color:var(--teal)}.login-error{margin-top:0}.login-button{width:100%;margin-top:4px}.login-disclaimer{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:5px;color:var(--muted);font-size:11px;line-height:1.6}.login-disclaimer strong{color:var(--navy);font-size:12px}.upload-section{padding-bottom:30px;border-bottom:1px solid var(--line)}.upload-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:14px}.upload-heading h2{margin:0;font-size:17px;color:var(--navy)}.upload-heading p{margin:6px 0 0;color:var(--muted);font-size:13px}.task-state{min-width:72px;padding:6px 10px;text-align:center;border:1px solid #d5dde2;border-radius:4px;color:var(--muted);font-size:12px;font-weight:700}.state-completed{color:#137a50;border-color:#a7d7c1;background:#f0faf5}.state-analyzing,.state-uploading,.state-preprocessing{color:var(--teal-dark);border-color:#9ed3d2;background:var(--teal-soft)}.state-failed{color:var(--danger);border-color:#efb5af;background:var(--danger-soft)}.upload-dropzone{min-height:112px;border:1px dashed #b8c6cf;border-radius:8px;display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:28px;padding:22px 24px;transition:border-color .16s ease,background .16s ease}.upload-dropzone.dragging{border-color:var(--teal);background:#f5fbfb}.upload-file-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:18px}.file-slot{min-height:92px;padding:14px;border:1px solid #e1e8ec;border-radius:7px;background:#fff}.file-slot-label{margin-bottom:10px;color:var(--navy);font-size:13px;font-weight:800}.choose-file{appearance:none;border:0;background:transparent;padding:0;display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;color:var(--teal-dark)}.choose-file span,.choose-file strong,.choose-file small{display:block}.choose-file strong{color:var(--navy);font-size:15px}.choose-file small{margin-top:4px;color:var(--muted);font-size:12px}.selected-file{display:flex;align-items:center;gap:13px}.file-icon{width:44px;height:44px;display:grid;place-items:center;color:var(--teal-dark);background:var(--teal-soft);border-radius:6px}.selected-file strong,.selected-file span{display:block}.selected-file strong{font-size:14px;color:var(--navy)}.selected-file span{margin-top:4px;color:var(--muted);font-size:12px}.upload-actions{display:flex;align-items:center;gap:10px}.primary-button,.secondary-button,.icon-button{min-height:40px;border-radius:5px;font-size:13px;font-weight:700;cursor:pointer}.primary-button{min-width:140px;padding:0 18px;border:1px solid var(--navy);background:var(--navy);color:#fff;display:inline-flex;justify-content:center;align-items:center;gap:8px}.primary-button:hover:not(:disabled){background:#0b283b}.primary-button:disabled{opacity:.46;cursor:not-allowed}.secondary-button{padding:0 14px;background:#fff;border:1px solid #aebbc5}.icon-button{width:40px;border:1px solid #aebbc5;background:#fff;display:grid;place-items:center}.spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-message{margin-top:20px;padding:13px 15px;border-left:3px solid var(--danger);background:var(--danger-soft);color:#8e2b25;font-size:13px}.empty-state{min-height:360px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted)}.empty-state div{width:58px;height:58px;display:grid;place-items:center;border-radius:50%;background:var(--teal-soft);color:var(--teal-dark)}.empty-state h2{margin:16px 0 6px;color:var(--navy);font-size:18px}.empty-state p{max-width:520px;margin:0;font-size:13px;line-height:1.8}.result-view{padding-top:28px}.risk-summary{display:grid;grid-template-columns:50px 1fr;gap:18px;padding:24px 26px;border-left:4px solid;background:var(--surface)}.risk-summary.risk-high{border-color:var(--danger);background:var(--danger-soft)}.risk-summary.risk-medium{border-color:#da7a10;background:var(--warning-soft)}.risk-summary.risk-low{border-color:var(--low);background:#eef6fd}.risk-summary.risk-no_obvious_issue{border-color:#168357;background:#effaf5}.risk-icon{width:44px;height:44px;display:grid;place-items:center;color:var(--warning)}.risk-summary>div:last-child>span{color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.04em}.risk-summary h2{margin:5px 0 7px;font-size:21px;color:var(--navy)}.risk-summary p{margin:0;font-size:14px;line-height:1.65}.risk-summary small{display:block;margin-top:8px;color:var(--muted);font-size:12px}.manual-coding-section,.findings-section{margin-top:34px}.section-heading{display:flex;align-items:end;justify-content:space-between;padding-bottom:13px;border-bottom:1px solid var(--line)}.section-heading h2{margin:0;color:var(--navy);font-size:18px}.section-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.section-heading>span{color:var(--muted);font-size:12px}.finding-row{border-bottom:1px solid var(--line)}.finding-trigger{width:100%;min-height:72px;padding:14px 8px;border:0;background:#fff;display:grid;grid-template-columns:42px minmax(0,1fr) auto 22px;align-items:center;gap:14px;text-align:left;cursor:pointer}.finding-trigger:hover{background:#fafcfc}.finding-number{color:#9aa7b1;font-size:12px;font-variant-numeric:tabular-nums}.finding-title strong,.finding-title span{display:block}.finding-title strong{color:var(--navy);font-size:14px}.finding-title span{margin-top:5px;color:var(--muted);font-size:12px}.human-review{padding:5px 8px;color:#9e2e27;background:var(--danger-soft);border-radius:3px;font-size:11px;font-weight:700}.finding-trigger svg{color:#7b8995;transition:transform .16s ease}.finding-trigger svg.rotated{transform:rotate(180deg)}.finding-detail{padding:0 8px 24px 64px}.finding-detail dl{margin:0;border-top:1px solid #edf1f3}.finding-detail dl>div{display:grid;grid-template-columns:124px 1fr;gap:20px;padding:14px 0;border-bottom:1px solid #edf1f3}.finding-detail dt{color:#526273;font-size:12px;font-weight:700}.finding-detail dd{margin:0;color:#263747;font-size:13px;line-height:1.7}.finding-detail .evidence dd{padding-left:13px;border-left:2px solid #9ec9ca;color:#3f5363}.empty-findings{padding:40px 0;display:flex;justify-content:center;align-items:center;gap:12px;color:#187452}.manual-coding-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.manual-coding-grid>div{padding:14px;background:var(--surface);border:1px solid #e4eaee;border-radius:6px}.manual-coding-grid strong,.manual-coding-grid span,.manual-coding-grid small{display:block}.manual-coding-grid strong{color:var(--muted);font-size:11px}.manual-coding-grid span{margin-top:6px;color:var(--navy);font-size:13px;font-weight:700}.manual-coding-grid small{margin-top:3px;color:var(--muted);font-size:11px}.uncertainty-section{margin-top:32px;padding:20px 22px;background:#faf8f2;border-left:3px solid #bf8527}.uncertainty-title{display:flex;align-items:center;gap:9px;color:#8b5c11}.uncertainty-title h2{margin:0;font-size:15px}.uncertainty-section ul{margin:13px 0 0 25px;padding:0;color:#514b40;font-size:13px;line-height:1.8}.uncertainty-section p{margin:12px 0 0;font-size:13px}.disclaimer{margin-top:32px;padding:16px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:22px auto 1fr;align-items:center;gap:8px;color:var(--muted);font-size:11px}.disclaimer svg{color:var(--teal-dark)}.disclaimer strong{color:var(--navy);font-size:12px}@media(max-width:900px){.app-shell{display:block}.status-rail{display:none}.main-workspace{padding:22px 20px 24px}.workspace-topline{display:none}.mobile-header{display:flex;align-items:center;gap:9px;margin-bottom:24px;color:var(--teal-dark)}.mobile-header strong{color:var(--navy);font-size:20px}.upload-dropzone{grid-template-columns:1fr;gap:18px}.upload-file-grid{grid-template-columns:1fr}.upload-actions{justify-content:flex-end}.manual-coding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finding-trigger{grid-template-columns:32px minmax(0,1fr) 20px}.human-review{grid-column:2;justify-self:start}.finding-detail{padding-left:40px}.disclaimer{grid-template-columns:22px 1fr}.disclaimer span{grid-column:1 / -1;line-height:1.6}}@media(max-width:560px){.main-workspace{padding:18px 16px 22px}.upload-heading{display:block}.task-state{display:inline-block;margin-top:12px}.upload-dropzone{padding:18px}.upload-actions{flex-wrap:wrap;justify-content:stretch}.primary-button{flex:1}.risk-summary{grid-template-columns:1fr;padding:20px}.finding-trigger{padding-block:15px}.finding-detail{padding-left:8px}.finding-detail dl>div{grid-template-columns:1fr;gap:7px}.manual-coding-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
