@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.ttf) format("truetype");font-weight:100 900;font-display:swap}@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk-Variable.ttf) format("truetype");font-weight:300 700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Variable.ttf) format("truetype");font-weight:100 800;font-display:swap}:root,:root[data-theme=dark]{--recessed: #0A0B10;--bg: #13151D;--surface: #1C2029;--surface-2: #262B37;--border: #3A4155;--accent: #2E86F5;--accent-2: #1657C7;--text: #E6E8F0;--muted: #8C91A5;--success: #4CAF7D;--warning: #E5B454;--danger: #E5484D}:root[data-theme=light]{--bg: #F4F5FA;--surface: #FFFFFF;--surface-2: #EDEFF6;--border: #DDE1EC;--accent: #1A5291;--accent-2: #123A68;--text: #23263A;--muted: #6C7185;--success: #2E8B57;--warning: #B07D22;--danger: #D33F44;--recessed: #EDEFF6}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}:focus{outline:none}:root,:root[data-theme=dark]{--hover: #30364A;--pressed: #1657C7;--selection: #1657C7;--input-bg: #0A0B10;--input-bg-focus: #11131B;--input-border: #3A4155;--disabled-bg: #15161D;--disabled-fg: #4E5261;--disabled-border: #2E3242;--list-alt: #14161F;--canvas-bg: #08090D;--label: #C9CDDC;--group-title: #A9AEC4;--danger-text: #E5767A;--danger-border: #7A3A3E;--primary-from: #2E86F5;--primary-to: #1657C7;--primary-border: #1657C7;--primary-hover-from: #4C98F7;--primary-hover-to: #2E70D8;--shadow: 0 10px 30px rgba(0, 0, 0, .45)}:root[data-theme=light]{--hover: #EDEFF6;--pressed: #1A5291;--selection: #1A5291;--input-bg: #FFFFFF;--input-bg-focus: #FFFFFF;--input-border: #CCD1E0;--disabled-bg: #EDEFF6;--disabled-fg: #A7ABBE;--disabled-border: #DDE1EC;--list-alt: #F8F9FC;--canvas-bg: #E8EAF2;--label: #3A3E54;--group-title: #5A5F76;--danger-text: #C43A3F;--danger-border: #E0A9AB;--primary-from: #174A84;--primary-to: #1A5291;--primary-border: #123A68;--primary-hover-from: #1A5291;--primary-hover-to: #2A64A8;--shadow: 0 10px 30px rgba(20, 30, 60, .18)}:root{--brand-blue: #1A5291;--brand-navy: #0B2545;--brand-ink: #1E2B3C;--brand-muted: #5B6B80;--brand-border: #D9E1EC}label,.label{color:var(--label)}.muted{color:var(--muted);font-size:12px}.warning-text{color:var(--warning);font-size:12px}.success-text{color:var(--success);font-size:12px}.error-text{color:var(--danger-text);font-size:12px}.field-caption,.auth-form .caption{text-transform:uppercase;letter-spacing:.08em}.field-caption{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;color:var(--muted)}.dialog-title{font-size:17px;font-weight:700;color:var(--text)}.btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 18px;font-weight:600;cursor:pointer}.btn:hover:not(:disabled){background:var(--hover);border-color:var(--accent)}.btn:active:not(:disabled){background:var(--pressed);color:#fff}.btn:disabled{background:var(--disabled-bg);color:var(--disabled-fg);border-color:var(--disabled-border);cursor:default}.btn.primary{background:linear-gradient(135deg,var(--primary-from),var(--primary-to));border-color:var(--primary-border);color:#fff}.btn.primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-hover-from),var(--primary-hover-to))}.btn.primary:disabled{background:var(--disabled-bg);color:var(--disabled-fg);border-color:var(--disabled-border)}.btn.danger{background:transparent;border-color:var(--danger-border);color:var(--danger-text)}.btn.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}.btn.flat{background:transparent;border:none;padding:4px 6px;color:var(--brand-blue);font-weight:700}.btn.tool{background:transparent;border:1px solid transparent;border-radius:10px;padding:6px;font-size:18px}.btn.tool:hover:not(:disabled){background:var(--hover);border-color:var(--accent)}.btn.tool[aria-pressed=true]{background:var(--accent);border-color:var(--accent-2);color:#fff}.input,.select{width:100%;background:var(--input-bg);color:var(--text);border:1px solid var(--input-border);border-radius:8px;padding:8px 12px}.input:focus{border-color:var(--accent);background:var(--input-bg-focus)}.input:disabled{color:var(--disabled-fg)}.select{padding:7px 12px}.select:hover{border-color:var(--accent)}::selection{background:var(--selection);color:#fff}.check{display:flex;align-items:center;gap:8px;padding:3px 0;color:var(--label)}.group{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 12px 12px;margin-top:12px;position:relative;font-weight:600}.group>.group-title{position:absolute;top:-9px;left:12px;padding:0 6px;color:var(--group-title);background:var(--surface);border-radius:4px}.list{background:var(--recessed);border:1px solid var(--border);border-radius:10px;padding:4px;overflow:auto;margin:0;list-style:none}.list>li{padding:6px 10px;border-radius:6px;margin:1px 2px;cursor:pointer}.list>li:hover:not([aria-selected=true]){background:var(--surface-2)}.list>li[aria-selected=true]{background:var(--selection);color:#fff}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px;min-height:30px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.menubar{display:flex;background:var(--surface);border-bottom:1px solid var(--border);padding:3px;position:relative;z-index:20}.menubar-item{padding:5px 12px;border-radius:6px;cursor:default;background:none;border:none;color:var(--text)}.menubar-item:hover,.menubar-item[aria-expanded=true]{background:var(--hover)}.menu{position:absolute;top:100%;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:var(--shadow)}.menu-item{position:relative;display:flex;justify-content:space-between;gap:24px;width:100%;padding:7px 24px;border-radius:6px;background:none;border:none;color:var(--text);text-align:left}.menu-item:hover:not(:disabled),.menu-item:focus-visible:not(:disabled){background:var(--selection);color:#fff}.menu-item:disabled{color:var(--disabled-fg)}.menu-item .tick{position:absolute;left:8px}.menu-item .key{color:var(--muted)}.menu-item:hover:not(:disabled) .key{color:#fff;opacity:.8}.menu-sep{height:1px;background:var(--border);margin:5px 10px}.toolbar{display:flex;align-items:center;gap:8px;background:var(--surface);border-bottom:1px solid var(--border);padding:6px}.toolbar-sep{width:1px;align-self:stretch;background:var(--border);margin:4px 8px}.statusbar{background:var(--surface);color:var(--muted);border-top:1px solid var(--border);padding:4px 10px;min-height:26px}.backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.dialog{background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto;padding:20px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.form-row{display:grid;grid-template-columns:150px 1fr;gap:8px 12px;align-items:center;margin-bottom:10px}.password-field{display:flex;align-items:center;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;padding-right:4px}.password-field:focus-within{border-color:var(--accent);background:var(--input-bg-focus)}.password-field .input{border:none;background:transparent}.password-field button{width:28px;height:28px;border:none;border-radius:6px;background:transparent;cursor:pointer}.password-field button[aria-pressed=true]{background:var(--hover)}.app{display:flex;flex-direction:column;height:100%}.app-main{flex:1;min-height:0;overflow:auto;padding:8px}.auth-page{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--bg)}.auth-card{display:flex;width:760px;max-width:100%;min-height:460px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:#fff;color:var(--brand-ink)}.auth-brand{flex:0 0 280px;background:linear-gradient(135deg,var(--brand-navy),var(--brand-blue));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.auth-brand img{width:84px}.auth-brand .product{font-family:Space Grotesk,sans-serif;font-size:26px;font-weight:700}.auth-brand .tagline{color:#fffc;font-size:13px}.auth-form{flex:1;padding:32px 36px;display:flex;flex-direction:column;gap:10px;justify-content:center}.auth-form h1{margin:0;font-family:Space Grotesk,sans-serif;font-size:24px;color:var(--brand-ink)}.auth-form .sub{color:var(--brand-muted);font-size:12px;margin-bottom:6px}.auth-form .caption{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--brand-muted);margin-top:4px}.auth-form .input,.auth-form .password-field{background:#fff;color:var(--brand-ink);border-color:var(--brand-border)}.auth-form .password-field .input{border:none}.auth-form .input:focus,.auth-form .password-field:focus-within{border-color:var(--brand-blue);background:#fff}.auth-form .btn.primary{background:linear-gradient(135deg,var(--brand-navy),var(--brand-blue));border-color:var(--brand-navy);margin-top:6px}.auth-form .switch{text-align:center;color:var(--brand-muted);font-size:12px}.auth-form .btn.flat{color:var(--brand-blue)}.auth-form .error-text{min-height:0}.strength{font-size:11px}@media (max-width: 640px){.auth-brand{display:none}.auth-form{padding:24px 20px}}.dash{display:grid;grid-template-columns:250px 1fr;gap:8px;height:100%;min-height:0}.dash-left,.dash-right{display:flex;flex-direction:column;gap:8px;padding:12px;min-height:0;min-width:0}.dash-left .list{flex:1}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.spread{justify-content:space-between}.progress{height:18px;background:var(--input-bg);border:1px solid var(--border);border-radius:8px;overflow:hidden;position:relative;text-align:center;font-size:11px;font-weight:600;line-height:16px}.progress>i{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:7px}.progress>span{position:relative}.gallery{flex:1;min-height:0;overflow:auto;background:var(--recessed);border:1px solid var(--border);border-radius:10px;padding:4px;display:grid;grid-template-columns:repeat(auto-fill,190px);grid-auto-rows:190px;gap:8px;align-content:start;justify-content:center}.card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:6px;border-radius:6px;cursor:pointer;text-align:center;user-select:none;overflow:hidden}.card:hover:not([aria-selected=true]){background:var(--surface-2)}.card[aria-selected=true]{background:var(--selection)}.card .thumb{width:160px;height:120px;display:flex;align-items:center;justify-content:center;background:var(--canvas-bg);border-radius:4px;overflow:hidden;flex:none}.card .thumb img{max-width:100%;max-height:100%;object-fit:contain}.card .name{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .detail{font-size:12px}@media (max-width: 800px){.dash{grid-template-columns:1fr}}.annot{user-select:none;display:flex;gap:4px;height:100%;min-height:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px}.rail-panel{flex:0 0 56px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px}.rail-panel .btn.tool{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center}.side-panel{flex:0 0 220px;width:220px;display:flex;flex-direction:column;gap:6px;padding:8px;overflow-y:auto;min-height:0}.side-panel .btn{padding:8px 10px}.side-panel .layers{flex:1;min-height:70px}.canvas-wrap{flex:1;min-width:0;position:relative;overflow:hidden;background:#112;border:1px solid var(--border);border-radius:10px;outline:none}.canvas-wrap canvas{position:absolute;inset:0;display:block}.canvas-wrap:focus-visible{border-color:var(--accent)}.form-page{max-width:780px;margin:0 auto;padding:14px 14px 22px;display:flex;flex-direction:column;gap:10px}.form-page .group{font-weight:400}.form-page .group-title{font-weight:600}.logview{height:160px;overflow:auto;margin:0;padding:6px 8px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;font:11px JetBrains Mono,monospace;color:var(--group-title);white-space:pre-wrap}input[type=range]{accent-color:var(--accent)}
