:root{--bg:#aba0a8;--bg-deep:#aeb8be;--ink:#17171b;--muted:#6b6d76;--line:rgba(35,31,38,0.16);--surface:rgba(249,247,249,0.58);--surface-strong:rgba(255,255,255,0.82);--accent:#ff7663;--accent-soft:#ffb072;--aqua:#8edbd4;--aqua-strong:#56c9c6;--green:var(--accent);--green-soft:var(--aqua);--cyan:var(--aqua-strong);--amber:var(--accent-soft);--danger:#d45664;--shadow:0 24px 80px rgba(49,43,55,0.15);--mono:"JetBrains Mono","IBM Plex Mono","SFMono-Regular",Consolas,monospace;--sans:Inter,Geist,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:linear-gradient(145deg,rgba(255,128,96,.16) 0,transparent 28%),linear-gradient(225deg,rgba(116,219,212,.12) 0,transparent 38%),linear-gradient(180deg,#f4f2f5 0,var(--bg) 45%,var(--bg-deep) 100%);color:var(--ink);font-family:var(--sans);letter-spacing:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}.visually-hidden{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.mono{font-family:var(--mono)}.app-frame{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.side-nav{border-right:1px solid var(--line);background:rgba(226,222,228,.62);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);padding:22px 14px}.brand-mark{align-items:center;display:flex;font-weight:760;gap:10px;min-height:38px}.brand-dot{background:radial-gradient(circle at 50% 48%,rgba(229,242,242,.95) 0 28%,rgba(142,219,212,.9) 42%,rgba(255,176,114,.84) 58%,rgba(255,118,99,.72) 72%,rgba(160,148,158,.58) 100%);border:1px solid rgba(255,255,255,.64);border-radius:50%;box-shadow:inset 0 1px 10px rgba(255,255,255,.88),0 0 22px rgba(255,118,99,.34),0 10px 24px rgba(49,43,55,.12);display:block;height:24px;width:24px}.nav-stack{display:grid;grid-gap:6px;gap:6px;margin-top:34px}.nav-item{align-items:center;border:1px solid transparent;border-radius:8px;color:#46434c;display:flex;gap:10px;min-height:40px;padding:0 10px}.nav-item:hover{background:rgba(255,255,255,.36);border-color:var(--line)}.main-frame{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;padding:18px}.top-bar{align-items:center;display:flex;justify-content:space-between;min-height:68px}.eyebrow{color:var(--accent);font-family:var(--mono);font-size:12px;margin:0 0 6px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{color:#303137;font-size:28px;line-height:1.08;margin-bottom:0}h2{font-size:18px}h3{font-size:13px}.top-actions{align-items:center;display:flex;gap:8px}.language-switcher{position:relative}.account-button,.credit-pill,.icon-link,.language-pill{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;gap:7px;min-height:38px;padding:0 11px}.language-pill{cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.language-pill::-webkit-details-marker{display:none}.language-pill:hover,.language-switcher[open] .language-pill{border-color:rgba(255,112,91,.72)}.language-menu{background:rgba(248,247,249,.92);border:1px solid rgba(255,255,255,.7);border-radius:8px;box-shadow:0 18px 45px rgba(20,22,30,.18);display:grid;grid-gap:2px;gap:2px;min-width:90px;padding:6px;position:absolute;right:0;top:calc(100% + 8px);z-index:40}.language-menu a{border-radius:6px;color:var(--muted);padding:8px 10px;text-align:center}.language-menu a.is-active,.language-menu a:hover{background:rgba(255,112,91,.14);color:var(--ink)}.account-button{color:var(--ink);cursor:pointer;font:inherit;max-width:210px}.account-button:hover{border-color:rgba(255,112,91,.72)}.account-avatar{align-items:center;background:rgba(119,229,225,.2);border:1px solid rgba(255,112,91,.35);border-radius:999px;display:inline-flex;height:24px;justify-content:center;width:24px}.account-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-link{justify-content:center;width:54px}.studio-shell{display:grid;grid-gap:12px;gap:12px;min-width:0}.studio-toolbar{align-items:center;display:flex;gap:8px}.analysis-kind-switch{background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:10px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(2,minmax(150px,1fr));margin-left:4px;padding:4px}.analysis-kind-switch button{background:transparent;border:0;border-radius:7px;color:var(--muted);font-size:12px;font-weight:760;min-height:34px;padding:0 12px}.analysis-kind-switch button.is-active{background:linear-gradient(135deg,rgba(255,138,104,.2),rgba(23,198,188,.16));box-shadow:inset 0 0 0 1px rgba(255,118,99,.42);color:var(--ink)}.project-name-strip{align-items:flex-end;display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(220px,420px) minmax(260px,1fr)}.project-name-strip label{display:grid;grid-gap:4px;gap:4px}.project-name-strip label span{color:var(--muted);font-size:11px}.project-name-strip input{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:36px;min-width:0;padding:0 10px}.credit-note{background:rgba(255,255,255,.38);color:var(--muted);display:flex;font-size:12px;min-height:36px;padding:8px 10px}.credit-note,.icon-button,.primary-action,.secondary-action{align-items:center;border:1px solid var(--line);border-radius:8px}.icon-button,.primary-action,.secondary-action{display:inline-flex;gap:8px;min-height:38px}.primary-action{background:linear-gradient(135deg,#ff8a68 0,var(--accent) 58%,#d95d65 100%);border-color:rgba(255,118,99,.36);box-shadow:0 12px 28px rgba(255,118,99,.22);color:white;padding:0 15px}.secondary-action{padding:0 15px}.icon-button,.secondary-action{background:var(--surface-strong);color:var(--ink)}.icon-button{justify-content:center;width:40px}.studio-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:clamp(260px,20vw,320px) minmax(380px,1fr) clamp(280px,22vw,332px);min-height:0}.canvas-panel,.inspector-panel,.results-panel,.series-panel,.simple-page{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px)}.inspector-panel,.series-panel{min-width:0;overflow:hidden;padding:14px}.panel-title{align-items:center;display:flex;gap:8px;min-height:32px}.panel-title h2{font-size:14px;margin:0}.panel-title .icon-button{margin-left:auto}.series-bulk-actions{display:flex;gap:6px;margin-top:8px}.series-bulk-actions button{align-items:center;background:rgba(255,255,255,.52);border:1px solid var(--line);border-radius:7px;color:var(--muted);display:inline-flex;flex:1 1;font-size:11px;gap:5px;justify-content:center;line-height:1.2;min-height:34px;padding:5px 7px}.series-select-all.is-active{background:rgba(23,198,188,.13);border-color:rgba(23,154,147,.38);color:#287068}.series-delete-selected:not(:disabled){background:rgba(212,86,100,.1);border-color:rgba(212,86,100,.24);color:var(--danger)}.panel-error{background:rgba(212,86,100,.1);border:1px solid rgba(212,86,100,.22);border-radius:8px;color:var(--danger)}.panel-error,.panel-success{font-size:12px;margin-top:8px;min-height:34px;padding:9px 10px}.panel-success{background:rgba(87,156,144,.12);border:1px solid rgba(87,156,144,.28);border-radius:8px;color:#315f58;width:100%}.file-list{display:grid;grid-gap:7px;gap:7px;margin-top:10px;max-height:clamp(330px,calc(100vh - 270px),620px);overflow:auto;padding-right:4px}.file-row{background:rgba(250,248,251,.54);border:1px solid var(--line);border-radius:8px;color:var(--ink);grid-gap:5px;gap:5px;padding:8px}.file-row,.file-select{display:grid;text-align:left;width:100%}.file-select{align-items:center;background:transparent;border:0;color:inherit;grid-gap:8px;gap:8px;grid-template-columns:96px minmax(0,1fr);min-height:24px;padding:0}.file-thumb{aspect-ratio:1;background:rgba(142,219,212,.16);border:1px solid rgba(255,255,255,.78);border-radius:8px;box-shadow:inset 0 1px 10px rgba(255,255,255,.82);display:grid;height:96px;object-fit:cover;overflow:hidden;place-items:center;width:96px}.file-thumb-empty{color:var(--muted)}.file-row.is-selected{border-color:rgba(255,118,99,.52);box-shadow:inset 3px 0 0 var(--accent)}.file-row.is-selected-for-actions{background:rgba(23,198,188,.07);border-color:rgba(23,154,147,.34)}.file-name,.file-name-block{min-width:0}.file-name{font-family:var(--mono);font-size:11px;overflow-wrap:anywhere}.file-name-block{display:grid;grid-gap:4px;gap:4px}.file-preview-error{color:var(--danger);font-size:11px}.file-row-meta{align-items:center;display:flex;gap:6px;justify-content:space-between}.status-dot{align-self:start;border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:11px;justify-self:start;min-height:20px;padding:2px 7px}.status-processing{color:var(--amber)}.status-completed{color:var(--cyan)}.status-failed{color:var(--danger)}.calibration-strip label,.file-row label,.top-up-panel label{display:grid;grid-gap:2px;gap:2px}.calibration-strip label span,.file-row label span,.top-up-panel label span{color:var(--muted);font-size:11px}.calibration-strip input,.file-row input,.top-up-panel input,.top-up-panel select{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:26px;min-width:0;padding:0 8px}.file-selection-toggle{align-items:center;display:flex!important;justify-content:center;min-height:30px}.file-selection-toggle input{accent-color:var(--accent);height:16px;min-height:0;padding:0;width:16px}.file-delete-one{align-items:center;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--muted);display:flex;height:30px;justify-content:center;padding:0;width:30px}.file-delete-one:not(:disabled):hover{background:rgba(212,86,100,.1);border-color:rgba(212,86,100,.2);color:var(--danger)}.empty-state,.stage-placeholder{align-items:center;color:var(--muted);display:grid;grid-gap:6px;gap:6px;justify-items:center;min-height:180px;text-align:center}.empty-state strong,.stage-placeholder strong{color:var(--ink)}.canvas-panel{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;overflow:hidden;padding:12px}.view-switcher{background:rgba(255,255,255,.42);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px;padding:4px}.view-switcher button{background:transparent;border:0;border-radius:6px;color:var(--muted);min-height:32px}.view-switcher button.is-active{background:rgba(255,255,255,.76);box-shadow:inset 0 0 0 1px rgba(255,255,255,.54);color:var(--ink)}.image-stage{align-items:center;background:linear-gradient(90deg,rgba(75,103,108,.1) 1px,transparent 0),linear-gradient(0deg,rgba(75,103,108,.1) 1px,transparent 0),#e2e9ea;background-size:42px 42px;border:1px solid var(--line);border-radius:8px;display:flex;height:clamp(300px,calc(100vh - 318px),640px);justify-content:center;min-height:0;overflow:hidden;position:relative}.image-stage.is-ruler-active{cursor:crosshair}.image-stage.is-manual-active{cursor:crosshair;touch-action:none}.image-stage.is-eyedropper-active{cursor:crosshair}.image-viewport{display:grid;height:100%;place-items:center;position:relative}.image-viewport,.stage-image{max-height:100%;max-width:100%;width:100%}.stage-image{border-radius:6px;grid-area:1/1;height:100%;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.mode-mask .stage-image{filter:grayscale(1) contrast(1.55)}.mode-overlay .stage-image{filter:saturate(.82) contrast(1.08)}.analysis-trypan_blue.mode-overlay .stage-image{filter:none}.ruler-overlay{grid-area:1/1;height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.ruler-line-live{stroke:var(--accent-soft);stroke-linecap:round;stroke-width:3}.ruler-line-live,.ruler-point{vector-effect:non-scaling-stroke}.ruler-point{fill:var(--accent-soft);stroke:#101415;stroke-width:2}.manual-lasso-overlay{grid-area:1/1;height:100%;inset:0;pointer-events:none;position:absolute;width:100%}.manual-lasso-line{fill:none;stroke:var(--accent);stroke-dasharray:5 4;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25;vector-effect:non-scaling-stroke}.manual-lasso-line.mode-subtract{stroke:#38d7e5}.manual-lasso-fill{fill:rgba(255,118,99,.12);stroke:none}.manual-lasso-fill.mode-subtract{fill:rgba(56,215,229,.12)}.calibration-strip{align-items:flex-end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(180px,1fr) 96px 96px 40px;margin-top:10px}.scale-state{align-items:center;background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:8px;display:flex;gap:8px;justify-content:flex-start;min-height:42px;padding:0 10px;text-align:left;width:100%}.scale-state.is-ruler-active{border-color:rgba(255,176,114,.72);box-shadow:inset 3px 0 0 var(--accent-soft)}.inspector-panel{max-height:clamp(420px,calc(100vh - 178px),760px);overflow:auto}.target-summary{background:rgba(255,255,255,.48);border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:12px;margin-top:8px;min-height:34px;padding:9px 10px}.scratch-live-overlay{filter:saturate(.82) contrast(1.08);grid-area:1/1;height:100%;pointer-events:none;width:100%}.admin-entry{color:var(--ink);font-size:13px;font-weight:650;padding:9px 12px;border:1px solid var(--line);border-radius:8px}.admin-page{display:grid;grid-gap:22px;gap:22px;padding:28px}.admin-heading,.admin-pagination,.admin-section-heading,.admin-toolbar{display:flex;gap:14px;align-items:center;justify-content:space-between}.admin-heading h2{font-size:30px;margin:10px 0 6px;letter-spacing:-.9px}.admin-heading p,.admin-note,.admin-section-heading>span{color:var(--muted);font-size:13px;line-height:1.6}.admin-kicker{display:flex;gap:7px;align-items:center;font-size:12px;font-weight:650;color:#527a77}.admin-panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0}.admin-panel h3{margin:0 0 16px;font-size:16px}.admin-metrics{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.admin-metric{display:grid;grid-gap:10px;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);padding:20px}.admin-metric>small,.admin-metric>span{color:var(--muted);font-size:12px}.admin-metric>strong{font-size:29px;letter-spacing:-1px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.admin-legend{display:flex;gap:22px;font-size:12px;margin-bottom:14px}.admin-legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}.bar-users,.legend-users:before{background:#568d88}.bar-images,.legend-images:before{background:#dc8b65}.bar-errors,.legend-errors:before{background:#b04f64}.admin-chart{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));grid-gap:5px;gap:5px;border-bottom:1px solid var(--line);padding-bottom:8px}.admin-chart-day{min-width:0;text-align:center}.admin-bars{display:flex;height:115px;align-items:flex-end;gap:2px}.admin-bars i{width:33%;border-radius:2px 2px 0 0}.admin-chart-day>small{font-size:9px;color:var(--muted)}.admin-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:18px}.admin-tabs>button{border:0;background:transparent;padding:10px 14px;color:var(--muted);border-bottom:2px solid transparent}.admin-tabs>button.is-active{border-color:#568d88;color:var(--ink);font-weight:650}.admin-toolbar input,.admin-toolbar select{padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.7);min-width:240px}.admin-toolbar>button{margin-left:auto}.admin-table-scroll{overflow-x:auto}.admin-table-scroll td,.admin-table-scroll th{white-space:nowrap}.admin-table-scroll td>small{display:block;color:var(--muted);margin-top:4px}.admin-access-editor{background:linear-gradient(135deg,rgba(86,141,136,.12),rgba(255,255,255,.6));border:1px solid rgba(86,141,136,.34);border-radius:10px;display:grid;grid-gap:14px;gap:14px;margin:18px 0;padding:16px}.admin-access-heading{align-items:start;display:flex;gap:14px;justify-content:space-between}.admin-access-heading small,.admin-access-heading span{color:var(--muted);font-size:12px}.admin-access-heading h3{margin:3px 0 5px;overflow-wrap:anywhere}.admin-access-fields{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(150px,.4fr) minmax(220px,1fr)}.admin-access-fields label{color:var(--muted);display:grid;font-size:12px;grid-gap:5px;gap:5px}.admin-access-fields input{background:rgba(255,255,255,.74);border:1px solid var(--line);border-radius:7px;color:var(--ink);font:inherit;min-height:39px;min-width:0;padding:0 10px}.admin-access-fields input:focus{border-color:rgba(86,141,136,.8);box-shadow:0 0 0 3px rgba(86,141,136,.14);outline:0}.admin-access-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-access-actions .primary-action,.admin-access-actions .secondary-action{display:inline-flex}.admin-unlimited-active{border-color:rgba(176,79,100,.56);color:#8f4054}.admin-pagination{justify-content:flex-end;margin-top:18px;font-size:12px}.admin-pagination>span{margin-right:auto;color:var(--muted)}.admin-empty{text-align:center;padding:25px;color:var(--muted)}.admin-health{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px 25px;gap:16px 25px}.admin-health>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13px}.state-ok{color:#45756f}.state-warning{color:#a45b46}.admin-access{margin:28px;text-align:center}.admin-access .primary-action,.admin-access .secondary-action{display:inline-flex}@media (max-width:800px){.admin-page{padding:16px;gap:16px}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-health{grid-template-columns:1fr}.admin-panel{padding:16px}.admin-toolbar{flex-wrap:wrap}.admin-access-fields{grid-template-columns:1fr}.admin-chart{gap:2px}}.trypan-color-picker{display:grid;grid-gap:8px;gap:8px}.control-group-description{color:var(--muted);font-size:12px;line-height:1.45;margin:0}.control-toggle{display:flex;align-items:center;gap:9px;min-height:34px;color:var(--muted);font-size:13px;cursor:pointer}.control-toggle input{width:16px;height:16px;accent-color:var(--accent)}.stain-target-card,.stain-target-list{display:grid;grid-gap:10px;gap:10px}.stain-target-card{background:rgba(255,255,255,.34);border:1px solid var(--line);border-radius:10px;padding:10px}.stain-target-heading{align-items:center;display:flex;font-size:12px;justify-content:space-between}.stain-color-field-wide,.stain-color-fields label,.stain-text-field{color:var(--muted);display:grid;font-size:11px;grid-gap:5px;gap:5px}.stain-text-field input{background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:7px;color:var(--ink);min-height:34px;padding:0 9px;width:100%}.stain-color-fields{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.stain-color-field-wide input[type=color],.stain-color-fields input[type=color]{background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:7px;cursor:pointer;height:34px;padding:3px;width:100%}.eyedropper-button,.stain-add-class{justify-content:center;width:100%}.eyedropper-button{align-items:center;background:rgba(255,255,255,.56);border:1px solid var(--line);border-radius:8px;color:var(--ink);display:flex;gap:7px;min-height:36px;padding:0 10px}.file-row-main{align-items:start;display:grid;grid-gap:6px;gap:6px;grid-template-columns:18px minmax(0,1fr) 30px}.eyedropper-button.is-active{background:rgba(23,198,188,.16);border-color:rgba(23,154,147,.55);box-shadow:inset 0 0 0 1px rgba(23,198,188,.16)}.picked-color-row{align-items:center;background:rgba(255,255,255,.34);border:1px solid var(--line);border-radius:8px;color:var(--muted);display:grid;font-family:var(--mono);font-size:11px;grid-gap:8px;gap:8px;grid-template-columns:22px minmax(0,1fr) 28px;min-height:36px;padding:5px 6px 5px 7px}.picked-color-swatch{background:linear-gradient(45deg,#d6dfe0 25%,transparent 0),linear-gradient(-45deg,#d6dfe0 25%,transparent 0),linear-gradient(45deg,transparent 75%,#d6dfe0 0),linear-gradient(-45deg,transparent 75%,#d6dfe0 0),#f5f8f8;background-position:0 0,0 5px,5px -5px,-5px 0;background-size:10px 10px;border:1px solid rgba(17,46,50,.2);border-radius:50%;height:22px;width:22px}.picked-color-swatch.has-color{box-shadow:inset 0 0 0 2px rgba(255,255,255,.68)}.picked-color-reset{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--muted);display:flex;height:28px;justify-content:center;padding:0;width:28px}.picked-color-reset:hover{background:rgba(255,118,99,.14);color:var(--accent)}.control-group{border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;margin-top:12px;padding-top:12px}.control-group h3{color:var(--accent);font-family:var(--mono);margin:0}.mode-switch{background:rgba(255,255,255,.34);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.mode-switch button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--muted);display:flex;justify-content:center;min-height:34px;padding:0 10px;text-align:center}.mode-switch button.is-active{background:rgba(255,255,255,.74);box-shadow:inset 0 0 0 1px rgba(255,118,99,.5);color:var(--ink)}.mode-switch span{color:inherit;font-size:13px;font-weight:740}.manual-edit-controls{display:grid;grid-gap:8px;gap:8px}.manual-mode-switch button,.manual-tool-button{align-items:center;border-radius:8px;display:flex;gap:6px;justify-content:center;min-height:34px}.manual-tool-button{background:rgba(255,255,255,.5);border:1px solid var(--line);color:var(--ink);width:100%}.manual-tool-button.is-active{background:rgba(255,118,99,.18);border-color:rgba(255,118,99,.55);box-shadow:inset 0 0 0 1px rgba(255,118,99,.2)}.manual-mode-switch{background:rgba(255,255,255,.34);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.manual-mode-switch button{background:transparent;border:0;color:var(--muted);padding:0 8px}.manual-mode-switch button.is-active{background:rgba(255,255,255,.74);box-shadow:inset 0 0 0 1px rgba(255,118,99,.5);color:var(--ink)}.manual-action-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,40px));justify-content:end}.control-slider{align-items:center;display:grid;grid-gap:7px;gap:7px;grid-template-columns:116px minmax(0,1fr) 44px;min-height:30px}.control-slider-label{align-items:center;color:var(--muted);display:inline-flex;font-size:12px;gap:6px;min-width:0}.control-slider-label>span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.info-button{align-items:center;background:rgba(255,255,255,.68);border:1px solid rgba(255,118,99,.28);border-radius:50%;color:var(--accent);display:inline-flex;flex:0 0 auto;font-family:var(--mono);font-size:10px;height:17px;justify-content:center;line-height:1;padding:0;position:relative;width:17px}.info-button:focus-visible{outline:2px solid rgba(86,201,198,.55);outline-offset:2px}.info-tooltip{background:rgba(16,20,21,.96);border:1px solid rgba(255,255,255,.14);border-radius:6px;box-shadow:0 14px 34px rgba(16,20,21,.18);color:#f7faf9!important;font-family:var(--sans);font-size:11px!important;font-weight:520;left:0;line-height:1.35;max-width:min(260px,68vw);opacity:0;padding:8px 10px;pointer-events:none;position:absolute;text-align:left;top:calc(100% + 8px);transition:opacity .14s ease,transform .14s ease,visibility .14s ease;transform:translateY(-2px);visibility:hidden;width:max-content;z-index:30}.info-tooltip:before{border-bottom:6px solid rgba(16,20,21,.96);border-left:6px solid transparent;border-right:6px solid transparent;content:"";left:8px;position:absolute;top:-6px}.info-button:focus-visible .info-tooltip,.info-button:hover .info-tooltip{opacity:1;transform:translateY(0);visibility:visible}.control-slider input{accent-color:var(--accent);min-width:0}.control-slider output{font-size:12px;text-align:right}.results-panel{overflow-x:auto;padding:14px}.results-table-tabs{background:rgba(255,255,255,.42);border:1px solid var(--line);border-radius:8px;display:inline-grid;gap:4px;grid-template-columns:repeat(2,minmax(120px,1fr));margin-top:10px;padding:4px}.results-table-tabs button{background:transparent;border:0;border-radius:6px;color:var(--muted);min-height:30px;padding:0 12px}.results-table-tabs button.is-active{background:rgba(255,255,255,.76);color:var(--ink)}.data-table{border-collapse:collapse;margin-top:10px;width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--line);font-size:13px;padding:10px 8px;text-align:left}.data-table th{color:var(--muted);font-family:var(--mono);font-weight:500}.simple-page{max-width:920px;padding:28px}.simple-page h2{font-size:26px}.simple-page p{color:var(--muted);max-width:640px}.projects-page{display:grid;grid-gap:12px;gap:12px}.analysis-choice-page{align-content:center;display:grid;grid-gap:24px;gap:24px;min-height:calc(100vh - 110px);padding:clamp(20px,5vw,64px)}.analysis-choice-heading{display:grid;grid-gap:8px;gap:8px;justify-items:center;text-align:center}.analysis-choice-heading>span{color:var(--accent);font-family:var(--mono);font-size:12px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.analysis-choice-heading h2{font-size:clamp(26px,4vw,42px);margin:0}.analysis-choice-heading p{color:var(--muted);margin:0;max-width:620px}.analysis-choice-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(2,minmax(240px,380px));justify-content:center}.analysis-choice-card{align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);color:var(--ink);display:grid;grid-gap:12px;gap:12px;min-height:220px;padding:26px;text-align:left;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.analysis-choice-card:hover{border-color:rgba(255,118,99,.55);box-shadow:0 20px 50px rgba(20,44,48,.14);transform:translateY(-2px)}.analysis-choice-card strong{font-size:20px}.analysis-choice-card>span:last-child{color:var(--muted);line-height:1.55}.analysis-choice-icon{align-items:center;background:linear-gradient(135deg,rgba(255,138,104,.2),rgba(23,198,188,.18));border-radius:12px;color:var(--accent);display:flex;height:52px;justify-content:center;width:52px}.projects-header{align-items:flex-end;display:flex;gap:16px;justify-content:space-between}.projects-header h2{font-size:26px;margin-bottom:6px}.projects-header p{color:var(--muted);margin-bottom:0}.project-actions{align-items:center;display:flex;gap:12px}.project-count{color:var(--muted);white-space:nowrap}.project-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.empty-projects,.project-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px)}.project-card{display:grid;grid-gap:16px;gap:16px;min-height:188px;padding:16px}.project-card-main{align-items:flex-start;display:grid;grid-gap:10px;gap:10px;grid-template-columns:24px minmax(0,1fr)}.project-card-main h3{font-size:16px;margin-bottom:5px;overflow-wrap:anywhere}.project-card-main span,.project-metrics{color:var(--muted);font-size:12px}.project-metrics{display:grid;grid-gap:6px;gap:6px}.project-card-actions{align-items:center;display:flex;gap:8px;margin-top:auto}.project-card-actions .secondary-action{flex:1 1;justify-content:center}.empty-projects{align-items:center;color:var(--muted);display:grid;grid-gap:8px;gap:8px;justify-items:center;min-height:260px;padding:28px;text-align:center}.empty-projects strong{color:var(--ink)}.pricing-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px}.pricing-grid article,.top-up-panel{background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:8px;padding:16px}.pricing-grid span{color:var(--accent)}.about-page{display:grid;grid-gap:18px;gap:18px}.about-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.about-panel,.about-steps{background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:8px;padding:16px}.about-panel-wide{grid-column:1/-1}.about-panel h3,.about-steps h3{color:#303137;font-size:16px;margin-bottom:8px}.about-panel ul,.about-steps ol{color:var(--muted);margin:0;padding-left:20px}.about-panel li,.about-steps li{margin:8px 0}.about-steps ol{display:grid;grid-gap:10px;gap:10px;list-style-position:inside;padding-left:0}.about-steps li{background:rgba(255,255,255,.34);border:1px solid rgba(35,31,38,.1);border-radius:8px;display:grid;grid-gap:4px;gap:4px;padding:12px}.about-steps strong{color:var(--ink)}.about-steps span{color:var(--muted)}.keyword-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.keyword-row span{background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:999px;color:#303137;font-family:var(--mono);font-size:11px;padding:6px 9px}.legal-page{display:grid;grid-gap:16px;gap:16px}.legal-notice{background:rgba(255,255,255,.62);border:1px solid rgba(255,111,91,.34);border-radius:8px;color:#303137;padding:12px 14px}.legal-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.legal-document{display:grid;grid-gap:10px;gap:10px}.legal-contacts p,.legal-document p,.legal-service p{color:var(--muted)}.legal-contacts dl{display:grid;grid-gap:10px;gap:10px;margin:0}.legal-contacts dl div{align-items:start;border-top:1px solid rgba(35,31,38,.1);display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(140px,.25fr) 1fr;padding-top:10px}.legal-contacts dt{color:#303137;font-weight:700}.legal-contacts dd{color:var(--muted);margin:0}.top-up-panel{align-items:flex-end;display:flex;gap:12px;margin-top:22px}.legal-payment-note{color:var(--muted);font-size:13px;margin-top:12px}.legal-payment-note a{color:var(--accent);font-weight:700;text-decoration:none}.credit-packages{display:grid;flex:1 1;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.credit-package{align-items:center;background:rgba(255,255,255,.42);border:1px solid var(--line);border-radius:8px;color:var(--muted);display:flex;gap:6px;justify-content:center;min-height:44px}.credit-package.is-active{background:rgba(255,255,255,.78);border-color:rgba(255,118,99,.72);color:var(--ink)}.payment-amount-field{width:150px}.credit-estimate{align-self:stretch;background:rgba(255,255,255,.38);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:2px;gap:2px;min-width:220px;padding:8px 12px}.credit-estimate span{color:var(--ink);font-weight:680}.credit-estimate small{color:var(--muted);font-size:11px}.top-up-error{margin-top:10px}.payment-history{background:rgba(255,255,255,.42);border:1px solid var(--line);border-radius:8px;margin-top:12px;overflow:hidden}.payment-history summary{align-items:center;color:var(--ink);cursor:pointer;display:flex;font-weight:680;justify-content:space-between;min-height:44px;padding:0 14px}.payment-history summary:after{color:var(--muted);content:"v";font-family:var(--mono);font-size:14px;transition:transform .16s ease}.payment-history[open] summary{border-bottom:1px solid var(--line)}.payment-history[open] summary:after{transform:rotate(180deg)}.payment-history .data-table{margin:0}.payment-history .data-table td,.payment-history .data-table th{padding-left:14px;padding-right:14px}.login-panel{align-items:center;align-self:center;background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.56),0 28px 82px rgba(48,42,54,.22);display:flex;flex-direction:column;justify-self:center;min-height:150px;padding:34px;width:min(440px,100%);-webkit-backdrop-filter:blur(36px) saturate(135%);backdrop-filter:blur(36px) saturate(135%)}.login-panel h2{color:#303137;max-width:300px;text-align:center}.email-auth-form{display:grid;grid-gap:10px;gap:10px;width:100%}.auth-mode-switch{background:rgba(255,255,255,.36);border:1px solid rgba(255,255,255,.5);border-radius:8px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;width:100%}.auth-mode-switch button{background:transparent;border:0;border-radius:6px;color:var(--muted);font:inherit;min-height:34px;padding:0 10px}.auth-mode-switch button.is-active{background:rgba(255,255,255,.72);color:var(--ink);font-weight:700}.email-auth-form label{color:var(--muted);display:grid;font-size:12px;grid-gap:5px;gap:5px}.email-auth-form input{background:rgba(255,255,255,.54);border:1px solid rgba(255,255,255,.62);border-radius:8px;color:var(--ink);font:inherit;min-height:40px;min-width:0;padding:0 12px;width:100%}.email-auth-form input:focus{border-color:rgba(255,118,99,.72);box-shadow:0 0 0 3px rgba(255,118,99,.16);outline:0}.auth-mode-switch button:disabled,.email-auth-form input:disabled{cursor:wait;opacity:.72}.auth-hint{margin:-2px 0 0}.auth-divider,.auth-hint{color:var(--muted);font-size:12px}.auth-divider{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr auto 1fr;margin:4px 0;width:100%}.auth-divider:after,.auth-divider:before{background:rgba(255,255,255,.48);content:"";display:block;height:1px}.login-panel .primary-action{justify-content:center;min-width:220px}@media (max-width:1180px){.app-frame{grid-template-columns:76px minmax(0,1fr)}.brand-mark span:not(.brand-dot),.nav-item span{display:none}.nav-item{justify-content:center}.studio-grid{align-items:stretch;grid-template-areas:"series series" "canvas inspector";grid-template-columns:minmax(0,1fr) minmax(260px,300px);min-height:0}.series-panel{grid-area:series;padding:12px;width:100%}.canvas-panel{grid-area:canvas}.inspector-panel{grid-area:inspector;grid-column:auto;max-height:clamp(390px,calc(100vh - 340px),612px);padding:12px}.file-list{display:flex;gap:8px;max-height:none;max-width:100%;width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 6px;scroll-snap-type:x proximity}.file-row{flex:1 0 clamp(220px,24vw,300px);gap:6px;max-width:360px;min-height:0;padding:8px;scroll-snap-align:start}.file-select{gap:8px;grid-template-columns:78px minmax(0,1fr)}.file-thumb{height:78px;width:78px}.file-name{font-size:10px;line-height:1.35}.file-row-meta{align-items:flex-start}.file-row label{gap:1px}.file-row label span,.status-dot{font-size:10px!important}.file-row input{font-size:13px;min-height:26px}.image-stage{height:clamp(280px,calc(100vh - 388px),520px);min-height:0}.calibration-strip{gap:8px;grid-template-columns:minmax(150px,1fr) 88px 88px 38px}.scale-state{min-height:38px}.control-slider{gap:6px;grid-template-columns:88px minmax(0,1fr) 34px}.control-slider-label,.control-slider-label>span{font-size:11px}.mode-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-switch button{min-height:32px;padding:0 8px}.mode-switch span{font-size:11px}}@media (max-width:820px){.app-frame{grid-template-columns:64px minmax(0,1fr)}.side-nav{align-self:start;min-height:100vh;padding:14px 8px;position:-webkit-sticky;position:sticky;top:0}.brand-mark,.nav-item{justify-content:center}.main-frame{padding:12px}.project-name-strip,.studio-toolbar,.top-actions,.top-bar,.top-up-panel{align-items:stretch;flex-direction:column}.analysis-kind-switch{margin-left:0}.about-grid,.analysis-choice-grid,.analysis-kind-switch,.legal-contacts dl div,.legal-grid,.pricing-grid,.project-grid,.studio-grid{grid-template-columns:1fr}.studio-grid{grid-template-areas:"series" "canvas" "inspector"}.inspector-panel{max-height:none}.file-list{display:grid;max-height:500px;overflow:auto;padding-right:4px}.file-row{flex:initial}.project-name-strip{grid-template-columns:1fr}.payment-amount-field{width:auto}.project-card-actions,.projects-header{align-items:stretch;flex-direction:column}.calibration-strip{grid-template-columns:1fr}.image-stage{height:clamp(260px,48vh,420px);min-height:0}}