@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700&display=swap";
:root{--navy:#103358;--blue:#1671c5;--blue-dark:#0d5da9;--sky:#e9f4fd;--paper:#fff;--canvas:#f4f8fb;--line:#d8e4ee;--muted:#62758a;--text:#172b3f;--danger:#b42318;--amber:#d97706;--radius:12px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:DM Sans,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #f59e0b}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);z-index:10;background:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 max(24px,50vw - 590px);display:flex;position:sticky;top:0}.brand{text-align:left;color:var(--navy);background:0 0;border:0;align-items:center;gap:11px;padding:4px;display:flex}.brand-mark{background:var(--navy);border-radius:8px;justify-content:center;align-items:flex-end;gap:3px;width:35px;height:35px;padding:8px;display:flex}.brand-mark span{background:#fff;border-radius:2px 2px 0 0;width:4px;display:block}.brand-mark span:first-child{height:9px}.brand-mark span:nth-child(2){background:#6ec5ff;height:18px}.brand-mark span:nth-child(3){height:13px}.brand strong,.brand small{display:block}.brand strong{font-family:Manrope,sans-serif;font-size:17px;line-height:1.15}.brand small{letter-spacing:.06em;color:var(--muted);margin-top:2px;font-size:10px}.topbar nav{align-self:stretch;gap:4px;display:flex}.topbar nav button{min-width:96px;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:600;display:flex}.topbar nav svg{width:18px;height:18px}.topbar nav button.active{color:var(--blue);border-bottom-color:var(--blue)}main{flex:1;width:100%}.upload-page{grid-template-columns:minmax(0,.85fr) minmax(420px,1fr);align-items:start;gap:9vw;max-width:1160px;margin:0 auto;padding:72px 24px 88px;display:grid}.intro{padding-top:36px}.kicker{letter-spacing:.16em;color:var(--blue);margin:0 0 16px;font-size:12px;font-weight:700}.intro h1,.page-title h1,.result-head h1{color:var(--navy);letter-spacing:-.045em;margin:0;font-family:Manrope,sans-serif;font-size:clamp(36px,4.2vw,58px);line-height:1.08}.intro h1 span{color:var(--blue)}.intro>p:nth-of-type(2){color:var(--muted);max-width:510px;margin:24px 0 44px;font-size:17px;line-height:1.7}.process-note{align-items:center;gap:14px;margin:18px 0;display:flex}.process-note>span{color:var(--blue);border:1px solid #a7cdec;border-radius:50%;place-items:center;width:38px;height:38px;font-family:Manrope,sans-serif;font-size:13px;display:grid}.process-note strong,.process-note small{display:block}.process-note strong{color:var(--navy);font-size:14px}.process-note small{color:var(--muted);margin-top:3px;font-size:12px}.process-note.muted{opacity:.72}.upload-form{border:1px solid var(--line);background:#fff;border-radius:16px;padding:30px;box-shadow:0 18px 45px #10335817}.form-heading{border-bottom:1px solid var(--line);align-items:center;gap:14px;margin-bottom:23px;padding-bottom:24px;display:flex}.form-icon{background:var(--sky);width:45px;height:45px;color:var(--blue);border-radius:10px;place-items:center;display:grid}.form-icon svg{width:22px;height:22px}.form-heading h2{color:var(--navy);margin:0;font-family:Manrope,sans-serif;font-size:18px}.form-heading p{color:var(--muted);margin:5px 0 0;font-size:12px}.upload-form label,.field-label{color:#30465b;margin:18px 0 8px;font-size:13px;font-weight:600;display:block}.upload-form input,.upload-form select,.result-toolbar input{width:100%;min-height:46px;color:var(--text);background:#fff;border:1px solid #b9cad9;border-radius:8px;padding:10px 13px}.upload-form input::placeholder,.result-toolbar input::placeholder{color:#7f91a4}.upload-form select{appearance:auto}.field-label span{float:right;color:var(--muted);font-size:11px}.dropzone{text-align:center;background:#fafdff;border:1.5px dashed #97b7d3;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;min-height:205px;padding:20px;transition:border-color .2s,background .2s;display:flex}.dropzone.dragging{border-color:var(--blue);background:var(--sky)}.dropzone.has-file{border-style:solid;border-color:#6aa8d9}.dropzone>input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.drop-icon{background:var(--sky);width:44px;height:44px;color:var(--blue);border-radius:50%;place-items:center;margin-bottom:10px;display:grid}.drop-icon svg{width:21px;height:21px}.dropzone strong{color:var(--navy);overflow-wrap:anywhere;max-width:100%;font-size:14px}.dropzone small{color:var(--muted);margin:4px 0 12px;font-size:12px}.choose-file{min-height:38px;color:var(--blue-dark);background:#fff;border:1px solid #94b6d2;border-radius:7px;padding:6px 16px;font-weight:600}.privacy-note{color:var(--muted);text-align:center;margin:10px 0 18px;font-size:11px}.primary,.secondary{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:10px 18px;font-weight:700;display:inline-flex}.primary{background:var(--blue);color:#fff}.primary:hover{background:var(--blue-dark)}.primary:disabled{cursor:wait;background:#8cb7d9}.upload-form>.primary{width:100%}.secondary{color:var(--navy);background:#fff;border-color:#b8cad9}.secondary:hover{background:#f1f6fa}.secondary.danger{color:var(--danger);border-color:#e5b8b4}.compact{min-height:42px;padding:8px 16px}.primary svg,.secondary svg,.back-link svg{width:17px;height:17px}.error{color:#8f1d14;background:#fff1f0;border:1px solid #f0b9b4;border-radius:8px;margin:0 0 14px;padding:11px 13px;font-size:13px}.results-page,.history-page{max-width:1240px;margin:0 auto;padding:40px 24px 80px}.back-link{color:var(--blue-dark);background:0 0;border:0;align-items:center;gap:8px;min-height:44px;padding:5px 0;font-weight:600;display:flex}.result-head,.page-title{justify-content:space-between;align-items:flex-end;gap:24px;margin:21px 0 30px;display:flex}.result-head h1,.page-title h1{font-size:clamp(30px,3.5vw,44px)}.result-head p:not(.kicker),.page-title p:not(.kicker){color:var(--muted);margin:10px 0 0}.export-actions{gap:10px;display:flex}.result-toolbar{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:14px;margin-bottom:20px;padding:15px 18px;display:flex}.result-toolbar label{white-space:nowrap;font-size:13px;font-weight:600}.result-toolbar input{max-width:300px;min-height:42px}.result-toolbar span{color:var(--muted);margin-left:auto;font-size:12px}.charts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.chart-card{border:1px solid var(--line);background:#fff;border-radius:12px;min-width:0;padding:20px}.chart-title{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.chart-title h2{color:var(--navy);margin:0;font-family:Manrope,sans-serif;font-size:17px}.chart-title p{color:var(--muted);margin:4px 0;font-size:11px}.metric{text-align:right}.metric span{color:var(--muted);font-size:10px;display:block}.metric strong{color:var(--blue);font-family:Manrope,sans-serif;font-size:21px}.chart-wrap{height:240px;margin:14px -4px 6px}.chart-empty{height:240px;color:var(--muted);text-align:center;place-items:center;font-size:13px;display:grid}.chart-stats{border-top:1px solid var(--line);color:var(--muted);gap:18px;padding-top:12px;font-size:11px;display:flex}.chart-stats strong{color:var(--text);margin-left:3px}.empty{border:1px solid var(--line);text-align:center;background:#fff;border-radius:12px;padding:70px 24px}.empty>svg{width:42px;height:42px;color:var(--blue);margin-bottom:12px}.empty h2{color:var(--navy);margin:0;font-family:Manrope,sans-serif}.empty p{color:var(--muted);margin:8px auto 20px}.history-list{flex-direction:column;gap:10px;display:flex}.history-list article{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:24px;padding:17px 20px;display:flex}.history-file{align-items:center;gap:13px;min-width:0;display:flex}.history-file>span{background:var(--sky);width:40px;height:40px;color:var(--blue);border-radius:8px;flex:none;place-items:center;display:grid}.history-file svg{width:20px;height:20px}.history-file strong,.history-file small{display:block}.history-file strong{color:var(--navy);overflow-wrap:anywhere}.history-file small{color:var(--muted);margin-top:3px;font-size:11px}.history-list dl{flex:none;gap:40px;margin:0;display:flex}.history-list dl div{min-width:85px}.history-list dt{color:var(--muted);margin-bottom:3px;font-size:10px}.history-list dd{color:#30465b;margin:0;font-size:13px;font-weight:600}.history-action{flex:none}.history-action button{min-width:138px}.history-action button svg{width:17px;height:17px}.history-action>span{max-width:138px;color:var(--muted);text-align:center;font-size:11px;line-height:1.35;display:block}.data-table-section{margin-top:44px}.table-heading{justify-content:space-between;align-items:flex-end;margin-bottom:16px;display:flex}.table-heading .kicker{margin-bottom:8px}.table-heading h2{color:var(--navy);margin:0;font-family:Manrope,sans-serif;font-size:24px}.table-heading p:not(.kicker){color:var(--muted);margin:7px 0 0;font-size:13px}.table-scroll{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;max-height:620px;overflow:auto}.table-scroll:focus-visible{outline-offset:2px;outline:3px solid #f59e0b}.table-scroll table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.table-scroll th,.table-scroll td{text-align:right;white-space:nowrap;border-bottom:1px solid #e6edf3;border-right:1px solid #e6edf3;padding:11px 13px}.table-scroll thead th{z-index:2;background:var(--navy);color:#fff;font-weight:700;position:sticky;top:0}.table-scroll th:first-child,.table-scroll td:first-child{text-align:center;position:sticky;left:0}.table-scroll thead th:first-child{z-index:3;background:var(--navy)}.table-scroll tbody th{color:var(--navy);z-index:1;background:#eef5fa;font-weight:600}.table-scroll tbody tr:nth-child(2n) td{background:#f8fbfd}.table-scroll tbody tr:hover td{background:#edf6fd}.export-actions button:disabled{opacity:.65;cursor:wait}footer{border-top:1px solid var(--line);width:calc(100% - 48px);max-width:1180px;color:var(--muted);justify-content:space-between;margin:auto auto 0;padding:22px 0;font-size:11px;display:flex}@media (max-width:900px){.upload-page{grid-template-columns:1fr;gap:42px;padding-top:40px}.intro{max-width:650px;padding-top:10px}.intro>p:nth-of-type(2){margin-bottom:28px}.charts-grid{grid-template-columns:1fr}.history-list article{flex-direction:column;align-items:flex-start}.history-list dl{justify-content:space-between;gap:16px;width:100%}.history-list dl div{min-width:0}}@media (max-width:620px){.topbar{align-items:center;height:auto;min-height:64px;padding:10px 16px}.brand small{display:none}.topbar nav{border-top:1px solid var(--line);z-index:20;height:64px;padding-bottom:env(safe-area-inset-bottom);background:#fff;justify-content:space-around;position:fixed;bottom:0;left:0;right:0}.topbar nav button{border-top:3px solid #0000;border-bottom:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:4px;font-size:10px}.topbar nav button.active{border-top-color:var(--blue);border-bottom-color:#0000}.topbar nav svg{width:20px;height:20px}.upload-page,.results-page,.history-page{padding:30px 16px 96px}.upload-page{gap:30px}.intro h1{font-size:38px}.intro>p:nth-of-type(2){margin-top:18px;font-size:15px}.process-note{display:none}.upload-form{border-radius:12px;padding:20px 16px}.form-heading{align-items:flex-start}.dropzone{min-height:190px}.result-head,.page-title{flex-direction:column;align-items:flex-start;margin-top:14px}.export-actions{width:100%}.export-actions button{flex:1}.result-toolbar{flex-direction:column;align-items:stretch;gap:7px}.result-toolbar input{max-width:none}.result-toolbar span{margin-left:0}.chart-card{padding:16px 13px}.chart-wrap{height:225px}.chart-stats{justify-content:space-between;gap:6px}.chart-stats span{flex-direction:column;display:flex}.chart-stats strong{margin:2px 0 0}.history-list dl{grid-template-columns:repeat(3,1fr);display:grid}footer{flex-direction:column;gap:5px;width:calc(100% - 32px);margin-bottom:64px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
