:root{--navy:#0b2545;--navy-2:#17325a;--blue:#1d70b8;--amber:#f5a623;--light:#f4f7fb;--text:#1a1a1a;--muted:#4b5563;--border:#dde3ea;--error:#b3261e;--good:#15803d}*,:before,:after{box-sizing:border-box}body{color:var(--text);background:var(--light);margin:0;font-family:system-ui,Arial,sans-serif;font-size:16px}h1,h2,h3{color:var(--navy);margin:0}a{color:var(--blue)}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.container{max-width:1048px;margin:0 auto;padding:16px 24px}.muted{color:var(--muted)}.small{font-size:14px}.error-text{color:var(--error);margin:6px 0 0;font-weight:600}.card{border:1px solid var(--border);background:#fff;border-radius:8px;padding:12px 14px}.button,.button-outline{font:inherit;cursor:pointer;border-radius:7px;padding:8px 18px;font-weight:800}.button{background:var(--amber);color:var(--navy);border:0}.button-outline{color:var(--navy);border:1.5px solid var(--navy);background:#fff}.button:disabled,.button-outline:disabled{opacity:.55;cursor:not-allowed}.small-button{padding:5px 12px;font-size:14px}.link-button{font:inherit;color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.skip-link{background:var(--navy);color:#fff;z-index:10;border-radius:6px;padding:10px 16px;position:absolute;top:-60px;left:16px}.skip-link:focus{top:10px}.header{background:var(--navy);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:8px 24px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand a{text-decoration:none}.brand-home{align-items:center;gap:10px;display:flex}.brand-tile{width:34px;height:34px}.brand-name{color:#fff;font-size:20px;font-weight:800}.brand-tool{color:var(--amber);border-left:1px solid #3b5277;padding-left:10px;font-size:16px;font-weight:700}.nav{align-items:center;gap:18px;font-size:15px;display:flex}.nav a,.nav-button{color:#dbe4f0;text-decoration:none}.nav a:hover,.nav-button:hover{color:#fff;text-decoration:underline}.nav-button{font:inherit;cursor:pointer;background:0 0;border:1px solid #5b7299;border-radius:6px;padding:4px 12px}@media (width<=700px){.header{padding:8px 16px}.nav{gap:14px}.back-home{display:none}.container{padding:12px 16px}}.start{text-align:center}.start h1{margin-top:10px;font-size:30px}.lead{color:var(--muted);margin:6px 0 14px;font-size:17px}.captcha{text-align:left;border-left:4px solid var(--amber);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;max-width:820px;margin:0 auto 12px;display:flex}.captcha h2{font-size:19px}.captcha p{margin:4px 0 0}.captcha-widget{min-width:300px;min-height:65px}.dropzone{background:#f8fafc;border:3px dashed #9fb1cc;border-radius:12px;flex-direction:column;align-items:center;gap:8px;max-width:820px;margin:0 auto;padding:26px 16px;display:flex}.dropzone.over{border-color:var(--amber);background:#fff8ea}.dropzone.locked{opacity:.6}.dropzone p{margin:0}.drop-icon{font-size:40px}.drop-title{color:var(--navy);font-size:19px;font-weight:800}.checks{text-align:left;max-width:820px;margin:10px auto 0}.checks ul{color:var(--good);flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;font-weight:600;list-style:none;display:flex}.privacy{margin:12px 0}.samples h2,.how h2{margin:10px 0 8px;font-size:19px}.sample-grid{text-align:left;grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.sample{font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:4px;display:flex}.sample:hover:not(:disabled){border-color:var(--navy-2);box-shadow:0 2px 8px #0b25451f}.sample:disabled{opacity:.6;cursor:not-allowed}.sample strong{color:var(--navy)}.sample-icon{font-size:24px}.how{text-align:left;max-width:820px;margin:8px auto 0}.how ol{margin:0;padding-left:22px;line-height:1.6}.footer{background:var(--navy);color:#dbe4f0;margin-top:20px;padding:18px 24px 10px}.footer h2,.footer h3{color:#fff}.footer h2{margin-bottom:8px;font-size:20px}.footer h3{margin-bottom:4px;font-size:16px}.footer p{margin:0;line-height:1.5}.footer a{color:var(--amber)}.safety{max-width:1048px;margin:0 auto}.safety-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.copyright{border-top:1px solid #2c4670;max-width:1048px;padding-top:10px;font-size:14px;margin:14px auto 0!important}@media (width<=800px){.sample-grid{grid-template-columns:1fr 1fr}.safety-grid{grid-template-columns:1fr}.start h1{font-size:25px}}.dash{flex-direction:column;gap:10px;max-width:1440px;margin:0 auto;padding:12px 20px;display:flex}.dash-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.file-info{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.file-name{word-break:break-all;font-size:20px}.sheet-pick select,.add-chart select,.chip-select{font:inherit;background:#fff;border:1px solid #b9c3cf;border-radius:6px;padding:4px 6px;font-size:15px}.dash-actions{gap:8px;display:flex}.filter-bar{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.filter-label{color:var(--navy);font-weight:700}.chip-filter{position:relative}.chip-filter summary{cursor:pointer;color:var(--navy-2);background:#e6edf6;border-radius:16px;align-items:center;gap:4px;padding:4px 12px;font-size:15px;list-style:none;display:flex}.chip-filter summary::-webkit-details-marker{display:none}.chip-filter summary:after{content:"▾";margin-left:2px}.chip-filter.active summary{color:#6b4400;background:#fff1d6}.chip-x{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0 2px}.chip-panel{z-index:20;border:1px solid var(--border);background:#fff;border-radius:8px;min-width:240px;max-width:340px;padding:10px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0b25452e}.chip-panel ul{max-height:260px;margin:6px 0 8px;padding:0;list-style:none;overflow:auto}.chip-panel li label{cursor:pointer;padding:3px 0;display:block}.chip-panel input[type=search]{width:100%;font:inherit;border:1px solid #b9c3cf;border-radius:6px;padding:5px 8px}.date-panel{flex-direction:column;gap:8px;display:flex}.date-panel label{justify-content:space-between;align-items:center;gap:8px;display:flex}.date-panel input{font:inherit}.chip-select{background:#fff;border-radius:16px}.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.kpi{flex-direction:column;min-width:0;display:flex}.kpi-label{color:var(--muted);font-size:14px}.kpi-value{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;font-size:28px;font-weight:800;overflow:hidden}.kpi-sub{color:var(--muted);font-size:13px}.dash-body{grid-template-columns:230px 1fr;align-items:start;gap:10px;display:grid}.sidebar{flex-direction:column;gap:10px;display:flex}.side-card h2{font-size:16px;display:inline}.side-card summary{cursor:pointer}.col-list{margin:8px 0 0;padding:0;font-size:15px;line-height:1.8;list-style:none}.col-list li{white-space:nowrap;gap:6px;display:flex;overflow:hidden}.col-name{text-overflow:ellipsis;overflow:hidden}.col-icon{text-align:center;width:22px;color:var(--muted);flex:none;font-size:12px;font-weight:700}.add-chart{flex-direction:column;gap:8px;display:flex}.add-chart label{color:var(--muted);flex-direction:column;gap:2px;font-size:14px;display:flex}.add-chart select{width:100%}.add-chart .button{align-self:flex-start}.dash-main{flex-direction:column;gap:10px;min-width:0;display:flex}.chart-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.chart-card{min-width:0}.chart-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.chart-head h3{font-size:16px}.drag-handle{color:#9aa6b5;cursor:grab;letter-spacing:-2px;margin-right:6px}.chart-tools{flex:none;gap:4px;display:flex}.tool{font:inherit;border:1px solid var(--border);color:var(--navy-2);cursor:pointer;background:#fff;border-radius:5px;padding:2px 8px;font-size:13px}.tool:hover:not(:disabled){border-color:var(--navy-2)}.tool:disabled{opacity:.45;cursor:default}.chart-box{width:100%;max-height:360px;overflow:auto}.chart-box svg{display:block}.pickable{cursor:pointer}.pickable:hover rect:not([fill=transparent]),.pickable:hover path,.pickable:focus-visible rect:not([fill=transparent]),.pickable:focus-visible path{opacity:.8}.pickable:focus{outline:none}.pickable:focus-visible{outline:2px solid var(--amber)}.table-scroll{overflow-x:auto}.mini-table,.data-table{border-collapse:collapse;width:100%;font-size:14px}.mini-table th,.mini-table td,.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:5px 8px}.mini-table th,.data-table th{color:var(--muted);font-weight:600}.num{text-align:right!important}.data-table th button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.data-table td{text-overflow:ellipsis;max-width:320px;overflow:hidden}.pager{justify-content:center;align-items:center;gap:12px;margin-top:8px;display:flex}@media (width<=1000px){.chart-grid{grid-template-columns:1fr}}@media (width<=760px){.dash{padding:10px 12px}.dash-body{grid-template-columns:1fr}.sidebar{order:2}.kpis{grid-template-columns:1fr 1fr}.kpi-value{font-size:24px}.dash-actions{width:100%}.dash-actions>*{flex:1}.chip-panel{max-width:none;position:fixed;inset:auto 12px 12px}}@media print{@page{margin:12mm}body{background:#fff}.header,.footer,.sidebar,.dash-actions,.chart-tools,.drag-handle,.pager,.chip-x,.filter-bar select,.filter-bar .link-button{display:none!important}.dash-body{grid-template-columns:1fr}.chart-card,.kpi{break-inside:avoid}.chart-box{max-height:none;overflow:visible}.chip-filter summary:after{content:""}}
