@font-face{font-family:Golos Text;src:url(/fonts/GolosText-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Golos Text;src:url(/fonts/GolosText-Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Golos Text;src:url(/fonts/GolosText-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Golos Text;src:url(/fonts/GolosText-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Unbounded;src:url(/fonts/Unbounded-SemiBold.woff) format("woff"),url(/fonts/Unbounded-SemiBold.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Unbounded;src:url(/fonts/Unbounded-Bold.woff) format("woff"),url(/fonts/Unbounded-Bold.ttf) format("truetype");font-weight:700;font-display:swap}:root{color-scheme:light;--bg: #FFFFFF;--surface: #FFFFFF;--surface-subtle: #F4F9E1;--surface-sunken: #EDEDEB;--border: #E0E0DC;--border-control: #82868B;--ink: #1C1F23;--ink-secondary: #464A50;--ink-muted: #676B71;--ink-disabled: #9A9DA1;--ink-on-primary: #FFFFFF;--primary: #1C1F23;--primary-hover: #33373D;--primary-pressed: #0F1114;--primary-tint: #C5F02C;--accent: #C5F02C;--accent-hover: #B6E21C;--accent-tint: #E9F5BE;--ink-on-accent: #1C1F23;--ink-on-accent-2: #464A50;--surface-brand: #C5F02C;--camera-bg: #121417;--focus: #1C1F23;--overlay: rgba(28, 31, 35, .45);--overlay-dark: rgba(18, 20, 23, .94);--hover-on-brand: rgba(28, 31, 35, .08);--done-fg: #13693F;--done-bg: #E5F3EB;--review-fg: #1C1F23;--review-bg: #C5F02C;--partial-fg: #5B3FA0;--partial-bg: #EFEAF8;--blocked-fg: #464A50;--blocked-bg: #EDEDEB;--rejected-fg: #A3261B;--rejected-bg: #FCEBE9;--font: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fh: "Unbounded", "Golos Text", system-ui, sans-serif;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-pill: 999px;--shadow: 0 8px 24px rgba(28, 31, 35, .12);--ease: cubic-bezier(.2, 0, 0, 1)}:root{font-family:var(--font);font-size:14px;line-height:20px;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}#root{overflow-x:clip}a{color:var(--ink);text-underline-offset:2px}img,video{max-width:100%}svg.lucide{flex:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,.h1{font-family:var(--fh);font-size:26px;line-height:32px;font-weight:700;letter-spacing:-.01em;margin:0;text-wrap:balance}h2,.h2{font-family:var(--fh);font-size:20px;line-height:26px;font-weight:600;letter-spacing:-.01em;margin:0}h3,.h3{font-size:18px;line-height:24px;font-weight:600;margin:0}h4{font-size:16px;line-height:22px;font-weight:600;margin:0}p{margin:0}@media (max-width: 600px){h1,.h1{font-size:22px;line-height:28px}h2,.h2{font-size:18px;line-height:24px}}.muted{color:var(--ink-muted)}.secondary{color:var(--ink-secondary)}.small,.caption{font-size:13px;line-height:18px}.caption{font-weight:500;color:var(--ink-muted)}.label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.right{text-align:right}.row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.spacer{flex:1}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack.tight{gap:var(--space-2)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}@media (max-width: 720px){.grid2{grid-template-columns:minmax(0,1fr)}}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--surface-brand);color:var(--ink-on-accent)}.topbar-inner{max-width:1280px;margin:0 auto;padding-left:max(var(--space-6),env(safe-area-inset-left));padding-right:max(var(--space-6),env(safe-area-inset-right))}.topbar-row{display:flex;align-items:center;gap:var(--space-4);min-height:60px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-family:var(--fh);font-weight:700;font-size:18px;line-height:24px;letter-spacing:-.02em;white-space:nowrap}.brand img{width:24px;height:28px;display:block}.brand small{font-family:var(--font);font-size:12px;font-weight:500;letter-spacing:0;color:var(--ink-on-accent-2)}.who{margin-left:auto;display:flex;align-items:center;gap:var(--space-3);min-width:0}.who-name{display:flex;flex-direction:column;align-items:flex-end;min-width:0}.who-name b{font-weight:600;font-size:14px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.who-name span{font-size:12px;line-height:16px;color:var(--ink-on-accent-2)}.topbar .burger{display:none;margin-left:auto}.mainnav{display:flex;gap:var(--space-1);padding:0 0 var(--space-3);overflow-x:auto;scrollbar-width:none}.mainnav::-webkit-scrollbar{display:none}.mainnav a{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border-radius:var(--r-md);color:var(--ink-on-accent-2);text-decoration:none;font-weight:500;white-space:nowrap;flex:none;transition:background-color .12s var(--ease)}.mainnav a:hover{background:var(--hover-on-brand);color:var(--ink)}.mainnav a.active{background:var(--primary);color:var(--ink-on-primary);font-weight:600}.mainnav .nav-user{display:none}main.page{flex:1;width:100%;max-width:1280px;margin:0 auto;min-width:0;padding:var(--space-8) max(var(--space-6),env(safe-area-inset-right)) var(--space-12) max(var(--space-6),env(safe-area-inset-left));display:flex;flex-direction:column;gap:var(--space-6)}@media (max-width: 900px){.topbar{position:sticky;top:0;z-index:40;padding-top:env(safe-area-inset-top)}.topbar-inner{padding-left:max(var(--space-4),env(safe-area-inset-left));padding-right:max(var(--space-4),env(safe-area-inset-right))}.topbar-row{min-height:56px}.who{display:none}.topbar .burger{display:inline-flex}.mainnav{display:none;flex-direction:column;gap:2px;padding:0 0 var(--space-4);overflow:visible;max-height:calc(100vh - 56px);overflow-y:auto}.mainnav.open{display:flex}.mainnav a{height:44px;font-size:15px}.mainnav .nav-user{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-3) var(--space-3) 0;border-top:1px solid var(--hover-on-brand)}.mainnav .nav-user .who-name{align-items:flex-start}.mainnav .nav-user .btn{margin-left:auto}main.page{padding:var(--space-5) var(--space-4) var(--space-10);gap:var(--space-5)}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-head-text{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:72ch}.page-head-text p{color:var(--ink-secondary);font-size:15px;line-height:22px}.page-head-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);font-size:13px;color:var(--ink-muted)}.crumbs a{color:var(--ink-secondary);text-decoration:none}.crumbs a:hover{text-decoration:underline}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--space-5);min-width:0}.card.flush{padding:0;overflow:hidden}.card.subtle{background:var(--surface-subtle);border-color:transparent}.card-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.card.flush>.card-head{margin:0;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.card-head .card-actions{margin-left:auto;display:flex;gap:var(--space-2);flex-wrap:wrap}@media (max-width: 600px){.card{padding:var(--space-4)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);border-radius:var(--r-md);border:1px solid transparent;font:600 14px/20px var(--font);color:var(--ink);background:var(--surface);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .12s var(--ease),border-color .12s var(--ease);-webkit-tap-highlight-color:transparent}.btn.sm{height:32px;padding:0 var(--space-3);font-size:13px;border-radius:var(--r-sm);gap:6px}.btn.lg{height:56px;padding:0 var(--space-5);font-size:16px}.btn.block{width:100%}.btn.icon-only{width:40px;padding:0}.btn.sm.icon-only{width:32px}.btn.lg.icon-only{width:56px}.btn-primary{background:var(--primary);color:var(--ink-on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-pressed)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--border-control)}.btn-secondary:hover{background:var(--surface-subtle)}.btn-accent{background:var(--accent);color:var(--ink-on-accent)}.btn-accent:hover{background:var(--accent-hover)}.btn-danger{background:var(--surface);color:var(--rejected-fg);border-color:var(--rejected-fg)}.btn-danger:hover{background:var(--rejected-bg)}.btn-ghost{background:transparent;color:var(--ink-secondary)}.btn-ghost:hover{background:var(--surface-subtle);color:var(--ink)}.topbar .btn-ghost{color:var(--ink)}.topbar .btn-ghost:hover{background:var(--hover-on-brand)}.btn-link{background:none;border:none;height:auto;padding:0;color:var(--ink);text-decoration:underline;font-weight:600}.btn:disabled,.btn[aria-disabled=true]{background:var(--surface-sunken);color:var(--ink-disabled);border-color:transparent;cursor:not-allowed}.btn-link:disabled{background:none}.btn .spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field>label,.field-label{font:500 13px/18px var(--font);color:var(--ink-secondary)}.field-hint{font-size:12px;line-height:16px;color:var(--ink-muted)}.field-error{font-size:12px;line-height:16px;color:var(--rejected-fg);font-weight:500}.input,.select,.textarea{width:100%;min-height:40px;padding:0 var(--space-3);border:1px solid var(--border-control);border-radius:var(--r-md);font:400 14px/20px var(--font);color:var(--ink);background:var(--surface)}.input::placeholder,.textarea::placeholder{color:var(--ink-muted)}.input:hover,.select:hover,.textarea:hover{border-color:var(--ink-secondary)}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--rejected-fg)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-sunken);color:var(--ink-disabled);border-color:var(--border)}.input.lg{min-height:48px;font-size:16px}.textarea{min-height:88px;padding:var(--space-2) var(--space-3);resize:vertical}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231C1F23' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.search{position:relative;min-width:0}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-muted);pointer-events:none}.search .input{padding-left:38px}.check{display:inline-flex;align-items:center;gap:var(--space-2);font-size:14px;cursor:pointer;color:var(--ink)}.check input{width:18px;height:18px;margin:0;accent-color:var(--primary);cursor:pointer}@media (max-width: 600px){.input,.select,.textarea{font-size:16px}}.tabs{display:inline-flex;gap:2px;padding:3px;border-radius:var(--r-md);background:var(--surface-sunken);max-width:100%;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 var(--space-3);border:none;border-radius:8px;background:transparent;color:var(--ink-secondary);font:500 14px/20px var(--font);cursor:pointer;white-space:nowrap;flex:none}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #1c1f231f}.tabs.sm button{height:28px;font-size:13px;padding:0 10px}.tabs.pills{background:none;padding:0;gap:var(--space-2);flex-wrap:wrap;overflow:visible}.tabs.pills button{height:32px;border:1px solid var(--border);border-radius:var(--r-pill);font-size:13px}.tabs.pills button:hover{background:var(--surface-subtle)}.tabs.pills button[aria-selected=true]{background:var(--accent);border-color:var(--accent);color:var(--ink-on-accent);box-shadow:none}.tabs .cnt{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;color:var(--ink-muted)}.tabs button[aria-selected=true] .cnt{color:var(--ink-secondary)}.status{display:inline-flex;align-items:center;gap:var(--space-1);height:24px;padding:0 var(--space-2);border-radius:var(--r-pill);font:600 12px/16px var(--font);white-space:nowrap;vertical-align:middle}.status.done{color:var(--done-fg);background:var(--done-bg)}.status.review{color:var(--review-fg);background:var(--review-bg)}.status.partial{color:var(--partial-fg);background:var(--partial-bg)}.status.blocked{color:var(--blocked-fg);background:var(--blocked-bg)}.status.rejected{color:var(--rejected-fg);background:var(--rejected-bg)}.status.neutral{color:var(--ink-secondary);background:var(--surface);border:1px solid var(--border)}.count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--ink);color:var(--ink-on-primary);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.mainnav a.active .count-badge{background:var(--accent);color:var(--ink-on-accent)}.progress{display:flex;flex-direction:column;gap:6px;min-width:0}.progress-top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);font-size:13px;line-height:18px}.progress-top .progress-label{color:var(--ink-secondary);min-width:0;flex:1 1 auto;overflow-wrap:anywhere}.progress-top .progress-pct{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.progress-inline{display:flex;align-items:center;gap:var(--space-2)}.progress-inline .progress-pct{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.bar{display:flex;height:8px;border-radius:var(--r-pill);background:var(--accent-tint);overflow:hidden;min-width:60px;flex:1}.progress>.bar{flex:none}.bar.sm{height:6px}.bar.lg{height:12px}.bar>span{display:block;height:100%;transition:width .3s var(--ease)}.bar .t-ink{background:var(--primary)}.bar .t-done{background:var(--done-fg)}.bar .t-accent{background:var(--accent)}.bar .t-partial{background:var(--partial-fg)}.bar .t-rejected{background:var(--rejected-fg)}.bar .t-muted{background:var(--border-control)}.on-brand .bar{background:#ffffff8c}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.stat{border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--space-4);background:var(--surface);display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.stat-label{display:flex;align-items:flex-start;gap:var(--space-2);min-width:0;overflow-wrap:anywhere}.stat-label svg{flex:none;margin-top:1px}.stat-label svg{color:var(--ink-secondary)}.stat-value{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:6px}.stat-value b{font-family:var(--fh);font-size:26px;line-height:34px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.stat-value .unit{font-size:15px;font-weight:500;color:var(--ink-muted)}.stat .progress{margin-top:var(--space-2)}.stat.is-brand{background:var(--surface-brand);border-color:transparent}.stat.is-brand .label,.stat.is-brand .caption,.stat.is-brand .stat-value .unit,.stat.is-brand .stat-label svg{color:var(--ink-on-accent-2)}.stat.is-dark{background:var(--primary);border-color:transparent;color:var(--ink-on-primary)}.stat.is-dark .label,.stat.is-dark .caption,.stat.is-dark .stat-value .unit,.stat.is-dark .stat-label svg{color:#ffffffb8}.stat.is-dark .bar{background:#fff3}.stat.is-dark .bar .t-ink{background:var(--accent)}button.stat{font:inherit;text-align:left;cursor:pointer;color:inherit}button.stat:hover{border-color:var(--border-control)}@media (max-width: 600px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.stat{padding:var(--space-3)}.stat-value b{font-size:19px;line-height:26px}.stat-value .unit{font-size:13px}}.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);max-width:100%;overscroll-behavior-x:contain}.card.flush .table-wrap,.table-wrap.bare{border:none;border-radius:0}.table-wrap::-webkit-scrollbar{height:10px;width:10px}.table-wrap::-webkit-scrollbar-thumb{background:var(--border-control);border-radius:5px;border:2px solid var(--surface)}.table-wrap::-webkit-scrollbar-track{background:var(--surface-subtle)}.table-wrap::-webkit-scrollbar-corner{background:var(--surface)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;line-height:20px}.table th,.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;background:var(--surface)}.table thead th{position:sticky;top:0;z-index:2;background:var(--surface-subtle);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}.table tbody tr:last-child td{border-bottom:none}.table tfoot td{position:sticky;bottom:0;z-index:2;background:var(--surface-subtle);font-weight:600;border-top:1px solid var(--border);border-bottom:none}.table .num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table .center{text-align:center}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-subtle)}.table tr.selected td{background:var(--accent-tint)}.table.dense th,.table.dense td{padding:var(--space-2) var(--space-3)}.table .sticky-col{position:sticky;left:0;z-index:1;box-shadow:inset -1px 0 0 var(--border)}.table thead th.sticky-col,.table tfoot td.sticky-col{z-index:3}.cell-sub{display:block;font-size:12px;line-height:16px;color:var(--ink-muted);font-weight:400}.table-empty{padding:var(--space-8) var(--space-4)}.alert{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--r-md);font-size:14px;line-height:20px}.alert svg{margin-top:1px}.alert b{display:block}.alert.error{background:var(--rejected-bg);color:var(--rejected-fg)}.alert.ok{background:var(--done-bg);color:var(--done-fg)}.alert.warn{background:var(--accent-tint);color:var(--ink)}.alert.info{background:var(--surface-sunken);color:var(--ink-secondary)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-12) var(--space-4);color:var(--ink-muted)}.empty-icon{width:64px;height:64px;border-radius:var(--r-lg);background:var(--accent-tint);color:var(--ink);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.empty.error .empty-icon{background:var(--rejected-bg);color:var(--rejected-fg)}.empty-title{font-size:18px;line-height:24px;font-weight:600;color:var(--ink)}.empty-text{max-width:48ch;font-size:14px;line-height:20px}.empty-action{margin-top:var(--space-3);display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.empty.compact{padding:var(--space-6) var(--space-4)}.empty.compact .empty-icon{width:44px;height:44px;border-radius:var(--r-md)}.loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-10) var(--space-4);color:var(--ink-muted)}.spinner{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--accent-tint);border-top-color:var(--ink);animation:spin .8s linear infinite;flex:none}.spinner.lg{width:32px;height:32px;border-width:3px}.loading-full{min-height:100vh}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,#F6F6F4 50%,var(--surface-sunken) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-sm)}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.spinner,.skeleton,.btn .spin{animation-duration:3s}}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fade .14s var(--ease)}.modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:520px;max-height:min(90vh,900px);display:flex;flex-direction:column;box-shadow:var(--shadow);outline:none;animation:pop .16s var(--ease)}.modal.sm{max-width:400px}.modal.lg{max-width:820px}.modal-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-3) var(--space-5)}.modal-head h2{font-size:18px;line-height:24px;min-width:0}.modal-head .btn{margin-left:auto}.modal-body{padding:0 var(--space-5) var(--space-5);overflow-y:auto;min-height:0}.modal-foot{display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap;padding:var(--space-3) var(--space-5) var(--space-4);border-top:1px solid var(--border)}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@media (max-width: 600px){.modal-back{align-items:flex-end;padding:0}.modal,.modal.sm,.modal.lg{max-width:none;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:92vh;padding-bottom:env(safe-area-inset-bottom)}.modal-foot .btn{flex:1}}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-2)}.media-tile{position:relative;display:block;width:100%;height:160px;padding:0;border:none;border-radius:var(--r-md);overflow:hidden;background:var(--camera-bg);cursor:zoom-in;color:#fff}.media-tile img,.media-tile video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.media-tile.video{cursor:pointer}.media-tile:hover img{opacity:.92}.media-cap{position:absolute;left:var(--space-2);bottom:var(--space-2);max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#121417b8;color:#fff;font-size:12px;line-height:16px;font-weight:600;padding:3px var(--space-2);border-radius:var(--r-sm)}.media-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--ink);padding-left:3px}.media-missing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);height:160px;border-radius:var(--r-md);border:1px dashed var(--border-control);background:var(--surface-subtle);color:var(--ink-muted);font-size:13px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--overlay-dark);display:flex;flex-direction:column;color:#fff;animation:fade .14s var(--ease)}.lightbox-top{display:flex;align-items:center;gap:var(--space-3);padding:calc(var(--space-3) + env(safe-area-inset-top)) var(--space-4) var(--space-3)}.lightbox-top .count{font-size:13px;color:#ffffffb3;font-variant-numeric:tabular-nums}.lightbox-top .title{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox-top .tools{margin-left:auto;display:flex;gap:var(--space-2)}.lightbox .btn-dark{background:#ffffff24;color:#fff;border:none}.lightbox .btn-dark:hover{background:#ffffff3d}.lightbox-stage{flex:1;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;padding:0 var(--space-4)}.lightbox-stage img,.lightbox-stage video{max-width:100%;max-height:100%;object-fit:contain;touch-action:pinch-zoom}.lightbox-stage video{background:#000}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav.prev{left:var(--space-4)}.lightbox-nav.next{right:var(--space-4)}.lightbox-meta{padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));font-size:13px;color:#ffffffbf;text-align:center}@media (max-width: 600px){.media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-tile,.media-missing{height:130px}.lightbox-stage{padding:0}.lightbox-nav{top:auto;bottom:var(--space-3);transform:none}}.drop{position:relative;display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);min-height:88px;border:1.5px dashed var(--border-control);border-radius:var(--r-lg);background:var(--surface-subtle);color:var(--ink);cursor:pointer;transition:background-color .12s var(--ease),border-color .12s var(--ease)}.drop:hover,.drop.over{border-color:var(--ink);background:var(--accent-tint)}.drop.disabled{opacity:.6;cursor:progress}.drop:focus-within{outline:2px solid var(--focus);outline-offset:2px}.drop-icon{width:48px;height:48px;border-radius:var(--r-md);background:var(--accent);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:none}.drop-text{display:flex;flex-direction:column;gap:2px;min-width:0}.drop-text b{font-size:15px;line-height:20px}.drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-md)}.file-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);min-width:0}.file-item+.file-item{border-top:1px solid var(--border)}.file-item svg{color:var(--ink-secondary)}.file-item .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.file-item .size{color:var(--ink-muted);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width: 600px){.drop{padding:var(--space-4);gap:var(--space-3)}.drop-icon{width:40px;height:40px}}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.auth-brand{background:var(--surface-brand);padding:var(--space-10) var(--space-12);display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-8);position:relative;overflow:hidden}.auth-brand .brand{font-size:22px}.auth-brand .brand img{width:30px;height:36px}.auth-brand h1{font-size:34px;line-height:42px;max-width:14ch}.auth-brand p{color:var(--ink-on-accent-2);font-size:16px;line-height:24px;max-width:40ch;margin-top:var(--space-3)}.auth-brand .mark{position:absolute;right:-40px;bottom:-30px;width:300px;opacity:.12;pointer-events:none}.auth-brand .facts{display:flex;gap:var(--space-2);flex-wrap:wrap;position:relative}.auth-brand .facts span{background:#fff9;border-radius:var(--r-pill);padding:4px 12px;font-size:13px;font-weight:600}.auth-main{display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-6)}.auth-form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:var(--space-4)}.auth-form h2{margin-bottom:var(--space-1)}.auth-foot{font-size:13px;color:var(--ink-muted)}@media (max-width: 860px){.auth{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}.auth-brand{padding:calc(var(--space-6) + env(safe-area-inset-top)) var(--space-5) var(--space-6);gap:var(--space-5)}.auth-brand h1{font-size:24px;line-height:30px;max-width:none}.auth-brand p{font-size:14px;line-height:20px;margin-top:var(--space-2)}.auth-brand .mark{width:160px;right:-20px;bottom:-20px}.auth-brand .facts{display:none}.auth-main{align-items:flex-start;padding:var(--space-6) var(--space-5) var(--space-10)}}.install{min-height:100vh;background:var(--bg)}.install-head{background:var(--surface-brand)}.install-head-inner{max-width:880px;margin:0 auto;padding:var(--space-8) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.install-head p{color:var(--ink-on-accent-2);font-size:16px;line-height:24px}.install-body{max-width:880px;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-12);display:flex;flex-direction:column;gap:var(--space-4)}.install-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center}.install-card.dim{opacity:.55}.install-card .qr{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--space-2);background:#fff}.install-card .qr img{display:block;image-rendering:pixelated}.kit-section{display:flex;flex-direction:column;gap:var(--space-4)}.kit-section>header{display:flex;flex-direction:column;gap:4px;padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.kit-section>header code{font-size:12px;color:var(--ink-muted)}.kit-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-3)}.kit-swatch{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.kit-swatch div{height:48px}.kit-swatch span{display:block;padding:6px 10px;font-size:12px;line-height:16px}.kit-swatch span b{display:block;font-size:13px}.kit-type{display:grid;grid-template-columns:160px minmax(0,1fr);gap:var(--space-3) var(--space-6);align-items:baseline}@media (max-width: 600px){.kit-type{grid-template-columns:minmax(0,1fr);gap:2px var(--space-3)}.kit-type>.caption{margin-top:var(--space-2)}}.stack-16{display:flex;flex-direction:column;gap:16px;min-width:0}.stack-8{display:flex;flex-direction:column;gap:8px;min-width:0}.row-wrap{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.card-inner{border:1px solid var(--border);border-radius:var(--r-md);padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}.card-inner.is-muted{background:var(--surface-sunken)}.card-inner>.btn,.stack-16>.btn,.stack-8>.btn{align-self:flex-start}.work-done{color:var(--done-fg);font-weight:600;display:inline-flex;flex-direction:column;align-items:flex-end}.work-done svg{vertical-align:-4px}.work-part{color:var(--partial-fg)}
