:root{color-scheme:dark;--bg:#07111e;--shell:#0c1726;--pane:#0d1a29;--card:#111f30;--border:#22344b;--soft:#8ea2bd;--text:#edf4ff;--blue:#1677f7;--blue2:#4ba0ff;--hover:#1c3047;--danger:#ff9b9b;font-family:"Segoe UI Variable","Aptos","Avenir Next","Segoe UI",Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:linear-gradient(135deg,#0d2139 0%,#080f19 47%,#060c15 100%);color:var(--text)}body{font-size:14px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--blue2);outline-offset:3px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}a{color:inherit;text-decoration:none}a:hover{color:var(--blue2)}.hidden{display:none!important}.mobile-only{display:none!important}
.app{min-height:100vh;max-width:1880px;margin:0 auto;padding:0 26px}.topbar{height:86px;display:flex;align-items:center;gap:26px}.logo{display:flex;align-items:center;gap:10px;font-weight:750;font-size:30px;letter-spacing:-1.5px;white-space:nowrap}.logo-symbol{display:grid;place-items:center;width:38px;height:38px;background:linear-gradient(145deg,#188bff,#1454dc);font-weight:800;color:#fff;font-size:22px;border-radius:11px;letter-spacing:-2px;box-shadow:0 5px 22px #1477ef43}.brand-blue{color:#2889ff}.header-tagline{color:#93aac7;padding-left:22px;border-left:1px solid #39516b;white-space:nowrap}.header-right{margin-left:auto;display:flex;align-items:center;gap:23px}.privacy-caption{display:flex;align-items:center;gap:10px;color:#c1d3e9}.privacy-caption svg{width:25px;height:25px;color:#8dbefb}.privacy-caption strong,.privacy-caption small{display:block}.privacy-caption strong{font-size:13px}.privacy-caption small{font-size:11px;color:var(--soft);margin-top:2px}
.shell{border:1px solid #284362;border-radius:15px;overflow:hidden;background:#091421;box-shadow:0 22px 95px #0005}.importbar{min-height:92px;display:flex;align-items:center;gap:22px;padding:16px 20px;border-bottom:1px solid var(--border);background:linear-gradient(110deg,#0d1d31,#0c1828)}.bar-title{display:flex;flex-direction:column;min-width:124px;gap:4px}.bar-label{color:#8299b8;font-weight:800;font-size:10px;letter-spacing:1.5px}.bar-title #workspaceInfo{font-weight:650;color:#d4e4f7;font-size:12px}.import-buttons{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.button{border:1px solid transparent;border-radius:9px;padding:11px 16px;background:#17283d;color:var(--text);display:inline-flex;gap:9px;align-items:center;justify-content:center;white-space:nowrap;font-weight:650;font-size:13px;min-height:42px;transition:background .15s,border-color .15s,transform .1s}.button:hover:not(:disabled){background:#263d59}.button:active:not(:disabled){transform:translateY(1px)}.button svg{height:18px;width:18px}.button.primary{background:#147afa;color:#fff;box-shadow:0 5px 17px #0659df32}.button.primary:hover:not(:disabled){background:#328eff}.button.outline{background:#122235;border-color:#304863}.button.soft-danger{background:#182638;border-color:#2e4155;color:#e3afaf}.button.ghost{background:transparent;border-color:#33475e}.button.small-btn{padding:8px 13px;min-height:34px}.bar-secure{font-size:10px;font-weight:800;letter-spacing:1px;white-space:nowrap;margin-left:auto;color:#88c8b5;display:flex;align-items:center;gap:7px}.secure-dot{width:7px;height:7px;border-radius:50%;background:#3ddba4;box-shadow:0 0 12px #3ddba477}.muted{color:#657c98}
.workspace{display:grid;grid-template-columns:minmax(206px,245px) minmax(190px,224px) minmax(430px,1fr);height:calc(100vh - 205px);min-height:610px;max-height:960px}.pane{min-height:0;background:#0a1725;border-right:1px solid var(--border);display:flex;flex-direction:column}.series-pane{background:#0b1928}.pane-header{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;flex-shrink:0}.panel-title{font-size:15px;font-weight:750;letter-spacing:-.2px}.count{font-size:11px;background:#223652;border-radius:7px;padding:4px 7px;margin-left:4px;color:#d4e5fb}.searchbox{display:flex;align-items:center;gap:8px;border:1px solid #294058;background:#111f30;margin:0 14px 12px;border-radius:9px;height:39px;padding:0 11px;color:#8da4bf;flex-shrink:0}.searchbox svg{width:16px;height:16px}.searchbox input{border:0;background:transparent;color:#e7f2ff;outline:none;min-width:0;width:100%;font-size:12px}.searchbox input::placeholder{color:#7890aa}.scroll-list{min-height:0;overflow:auto;padding:0 10px 12px;scrollbar-color:#39506d transparent;scrollbar-width:thin}.list-empty{border:1px dashed #273b53;border-radius:10px;color:#8099b6;text-align:center;padding:25px 12px;line-height:1.65;font-size:12px;margin:5px}.study-card{display:flex;align-items:center;gap:10px;padding:11px 10px;margin:4px 0 9px;border:1px solid #1d324a;border-radius:10px;text-align:left;color:var(--text);background:#122136;width:100%;position:relative;min-height:85px}.study-card:hover,.series-card:hover{background:#1a2e44}.study-card.active,.series-card.active{background:linear-gradient(130deg,#123967,#10243a);border-color:#147afa;box-shadow:inset 0 0 0 1px #147afa44}.study-icon{width:47px;height:51px;display:grid;place-items:center;flex-shrink:0;background:#07131f;border:1px solid #3a5572;border-radius:7px;color:#82adf0}.study-icon svg{width:26px;height:26px}.study-text,.series-text{min-width:0;flex:1}.study-text strong,.series-text strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;font-weight:720}.study-text small,.series-text small{display:block;color:#96abc4;font-size:10.7px;margin-top:5px;line-height:1.1}.card-delete{background:#25394c;border:0;color:#bdcadc;border-radius:6px;display:grid;place-items:center;width:25px;height:25px;flex-shrink:0}.card-delete:hover{color:#fff;background:#95434b}.card-delete svg{width:15px;height:15px}.sidebar-note{margin-top:auto;padding:17px 14px;border-top:1px solid var(--border);display:flex;gap:9px;color:#91b0c9;font-size:11px;line-height:1.55}.sidebar-note svg{color:#6ac9a9;flex-shrink:0}.pane-description{color:#748eab;padding:0 17px;margin:-3px 0 15px;font-size:11px;min-height:14px}.series-card{width:100%;display:flex;align-items:center;gap:9px;text-align:left;background:#132239;border:1px solid #1d344d;border-radius:9px;margin:0 0 8px;padding:9px 8px;min-height:73px;color:var(--text)}.series-marker{height:42px;width:42px;display:grid;place-items:center;background:#071725;border:1px solid #2b455d;border-radius:7px;color:#76aafa;flex-shrink:0}.series-marker svg{width:23px;height:23px}.icon-button{min-width:33px;width:33px;height:33px;border-radius:8px;background:#19283b;color:#bed2e7;display:grid;place-items:center;border:1px solid #2b4056;font-size:23px;line-height:1}.icon-button:hover:not(:disabled){background:#294561}.icon-button svg{height:17px;width:17px}.series-text strong{font-size:12px}
.viewer-pane{position:relative;min-width:0;display:flex;flex-direction:column;min-height:0;background:#070f18}.view-head{height:63px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px;background:#0b1522;border-bottom:1px solid #1e3043}.view-head h1{font-size:15px;margin:0 0 4px;letter-spacing:-.2px}.view-head #viewSubtitle{font-size:11px;color:#8ba2bc}.view-head-actions{display:flex;gap:8px}.image-stage{flex:1;min-height:170px;background:radial-gradient(circle at 50% 42%,#0a1620 0%,#02070c 65%);position:relative;overflow:hidden}.empty{height:100%;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:25px 25px 40px;text-align:center}.scan-art{position:relative;width:165px;height:165px;display:grid;place-items:center;margin-bottom:14px}.scan-circle{position:absolute;inset:4px;border:1px solid #1c628b;border-radius:50%;box-shadow:0 0 55px #0b6baa1c}.scan-art svg{width:122px;height:122px;fill:none;stroke:#315f76;stroke-width:2}.scan-art svg path:nth-child(2){fill:#1d3d50;stroke:#4a8599}.scan-art svg path:nth-child(3){fill:#38667d;stroke:#669cae}.crosshairs:before,.crosshairs:after{content:"";position:absolute;background:#155e95}.crosshairs:before{width:1px;height:168px;top:0;left:50%;opacity:.35}.crosshairs:after{height:1px;width:168px;left:0;top:50%;opacity:.35}.eyebrow{font-size:10px;color:#70b7f6;letter-spacing:2px;font-weight:800}.empty h2{font-size:24px;line-height:1.25;letter-spacing:-.65px;margin:13px 0 10px;font-weight:750}.empty p{font-size:13px;color:#91a9be;line-height:1.7;max-width:380px;margin:0 auto 24px}.empty-buttons{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.demo-link{background:transparent;border:0;color:#69b1ff;font-size:12px;margin-top:18px;font-weight:650;padding:9px}.demo-link:hover{color:#d5eaff}.canvas-wrap{position:absolute;inset:0;touch-action:none;overflow:hidden;cursor:crosshair}.canvas-wrap canvas{position:absolute;inset:0;height:100%;width:100%}#measureCanvas{pointer-events:none}.overlay{position:absolute;z-index:2;color:#bcd2eb;font-size:11px;line-height:1.65;white-space:pre-line;letter-spacing:.05px;pointer-events:none;text-shadow:0 1px 3px #000,0 1px 5px #000}.top-left{top:14px;left:16px}.top-right{top:14px;right:15px;text-align:right}.bottom-left{bottom:14px;left:16px}.bottom-right{bottom:14px;right:15px;text-align:right}.stage-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);color:#7f91a4;font-size:10px;pointer-events:none}.drag-shade,.loading{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;background:#061326ea;color:#cfe5ff;font-weight:750;font-size:18px;pointer-events:none}.drag-shade{outline:2px dashed #1885f5;outline-offset:-22px}.loading{pointer-events:auto;font-size:13px}.loading-spinner{width:28px;height:28px;border:3px solid #33526d;border-top-color:#2289ff;border-radius:50%;animation:rotate .8s linear infinite}@keyframes rotate{to{transform:rotate(360deg)}}.toast{position:absolute;z-index:11;bottom:22px;left:50%;transform:translateX(-50%);min-width:240px;max-width:calc(100% - 40px);border-radius:9px;padding:12px 17px;color:#d7edff;background:#17304a;box-shadow:0 5px 28px #0008;border:1px solid #36678c;text-align:center;font-size:12px}.toast.error{color:#ffe2e2;background:#47242c;border-color:#c45d65}.slice-footer{flex-shrink:0;height:70px;padding:10px 15px;border-top:1px solid #203047;background:#0c1725}.slice-line{height:100%;display:flex;align-items:center;gap:13px}.slice-label{width:150px;min-width:90px;overflow:hidden}.slice-label strong,.slice-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slice-label strong{font-size:12px}.slice-label small{font-size:10px;color:#87a0ba;margin-top:5px}.slice-line input[type=range]{flex:1;min-width:30px;accent-color:#2186ff;cursor:pointer}.slice-numbers{color:#bfd1e5;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.tool-footer{min-height:74px;display:flex;align-items:center;gap:10px;padding:10px 15px;background:#101c2b;border-top:1px solid #263a52;flex-wrap:wrap}.tool-selection,.tool-actions{display:flex;align-items:center;gap:7px}.tool{width:69px;height:55px;display:flex;align-items:center;justify-content:center;gap:3px;flex-direction:column;border:1px solid transparent;border-radius:8px;color:#acc1d9;background:transparent;font-size:11px}.tool svg{height:19px;width:19px}.tool:hover{background:#263b54}.tool.selected{color:#68b0ff;border-color:#287bde;background:#102f53}.tool-divider{height:31px;width:1px;background:#324158}.tool-actions{margin-left:auto}.button.tiny{font-size:11px;min-height:33px;padding:8px 10px;background:#1a2b3e;border-color:#30435a}.button.tiny.active{border-color:#1684f6;color:#93c6ff}.app-bottom{padding:9px 15px;color:#6b7f96;background:#0c1725;border-top:1px solid #22344b;font-size:10px;display:flex;justify-content:space-between;gap:12px}.app-bottom a{color:#91aeca}.dialog{width:min(95vw,490px);background:#101e2e;color:#d8e8fa;border-radius:13px;border:1px solid #39516a;padding:20px;box-shadow:0 18px 75px #000a;line-height:1.65}.dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}.dialog-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.dialog h2{font-size:19px;margin:0}.dialog h3{font-size:13px;color:#95c3f5;margin:16px 0 3px}.dialog p{font-size:12px;color:#a9c0d7;margin:0 0 8px}.dialog-note{border-top:1px solid #263c55;padding-top:10px}.info-rows{display:grid;gap:4px}.info-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #27394c;padding:9px 0;font-size:12px}.info-row dt{color:#7d96b3}.info-row dd{margin:0;color:#d9eaff;max-width:62%;text-align:right;overflow-wrap:anywhere}
@media(max-width:1330px){.app{padding:0 14px}.workspace{grid-template-columns:205px 193px minmax(350px,1fr)}.importbar{gap:12px}.bar-secure{display:none}.tool{width:60px}.tool-footer{padding:8px}.button{padding:10px 12px}}
@media(max-width:1010px){.workspace{grid-template-columns:185px 178px minmax(320px,1fr)}.header-tagline{display:none}.privacy-caption small{display:none}.importbar{flex-wrap:wrap}.bar-title{flex-direction:row;gap:10px;align-items:center;width:100%}.bar-label{font-size:10px}.workspace{height:calc(100vh - 245px)}.tool-footer{gap:2px}.tool-selection{gap:1px}.tool{width:55px;font-size:10px}.button.tiny{padding:7px}.tool-actions{gap:3px}}
@media(max-width:760px){.app{padding:0}.topbar{height:62px;padding:0 13px}.logo{font-size:24px}.logo-symbol{width:32px;height:32px;font-size:19px}.privacy-caption{display:none}.shell{border-radius:0;border-left:0;border-right:0}.importbar{padding:11px 12px;gap:8px;min-height:100px}.import-buttons{gap:6px;width:100%}.import-buttons .button{flex:1 1 auto;font-size:11px;padding:9px 7px;min-height:36px}.import-buttons .button svg{display:none}.bar-title{justify-content:space-between}.workspace{grid-template-columns:1fr;height:calc(100dvh - 163px);min-height:570px}.study-pane{position:fixed;top:0;bottom:0;left:0;width:min(82vw,320px);z-index:20;transform:translateX(-102%);transition:transform .18s;box-shadow:0 0 0 999px transparent}.study-pane.open{transform:translateX(0);box-shadow:0 0 0 999px #0009}.series-pane{position:fixed;top:0;bottom:0;left:0;width:min(82vw,320px);z-index:21;transform:translateX(-102%);transition:transform .18s;display:flex;box-shadow:0 0 0 999px transparent}.series-pane.open{transform:translateX(0);box-shadow:0 0 0 999px #0009}.mobile-only{display:grid!important}.viewer-pane{height:100%}.view-head{height:60px}.empty h2{font-size:21px}.scan-art{width:125px;height:125px;margin-bottom:5px}.scan-art svg{width:100px;height:100px}.scan-circle{inset:0}.crosshairs:before{height:125px}.crosshairs:after{width:125px}.empty p{font-size:12px}.slice-footer{height:64px}.slice-label{width:80px;min-width:60px}.slice-line{gap:7px}.tool-footer{min-height:68px;padding:5px 9px}.tool{width:55px;height:53px}.tool-actions{width:auto}.tool-actions .button{font-size:10px}.tool-divider{display:none}.app-bottom{font-size:9px}.stage-hint{display:none}}
@media(max-width:450px){.import-buttons .button{font-size:10px}.tool-selection{width:100%;justify-content:space-around}.tool-footer{justify-content:center;min-height:106px}.tool-actions{margin:0;width:100%;justify-content:space-evenly}.tool{height:44px}.tool svg{height:16px;width:16px}.slice-footer{height:61px}.app-bottom span:first-child{display:none}.view-head #viewSubtitle{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay{font-size:9px}.slice-line .icon-button{width:28px;min-width:28px}.empty{padding:10px 15px}}

@media(max-width:450px){.view-head-actions{gap:3px}.view-head-actions .button{font-size:10px;min-height:32px;padding:7px 8px}.view-head-actions .icon-button{width:29px;min-width:29px}.view-head h1{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
