:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f6f7f9)var(--lightningcss-dark,#0f1115);--surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#171a21);--surface-2:var(--lightningcss-light,#f0f2f5)var(--lightningcss-dark,#1f232c);--border:var(--lightningcss-light,#e2e5ea)var(--lightningcss-dark,#2a2f3a);--fg:var(--lightningcss-light,#1a1d23)var(--lightningcss-dark,#e6e8ec);--muted:var(--lightningcss-light,#667085)var(--lightningcss-dark,#8b93a3);--accent:var(--lightningcss-light,#0f766e)var(--lightningcss-dark,#2dd4bf);--accent-fg:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0b1f1d);--danger:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#f97066);--ok:var(--lightningcss-light,#067647)var(--lightningcss-dark,#47cd89);--warn:var(--lightningcss-light,#b54708)var(--lightningcss-dark,#fdb022);--radius:8px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.5 var(--font);margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 16px;font-size:22px}h2{margin:0 0 12px;font-size:16px}.muted{color:var(--muted)}.error{color:var(--danger)}.shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:14px;height:100vh;padding:14px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;display:flex}.brand{color:var(--fg);align-items:center;gap:10px;padding:4px 8px;font-size:15px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.logo{background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M13 7h6v6h6v6h-6v6h-6v-6H7v-6h6z' fill='%23fff'/%3E%3C/svg%3E") center / 100% no-repeat;border-radius:7px;flex:none;width:26px;height:26px}.nav{gap:2px;display:grid}.nav a{border-radius:var(--radius);color:var(--muted);align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2);color:var(--fg);text-decoration:none}.nav a.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.nav a>span:first-of-type{flex:1}.nav-n{background:var(--surface-2);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:0 7px;font-size:11px;font-weight:600;line-height:20px}.nav a.active .nav-n{background:var(--accent);color:var(--accent-fg)}.nav-n.due{background:var(--danger);color:#fff}.sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:4px;margin-top:auto;padding-top:12px;display:flex}.me{border-radius:var(--radius);min-width:0;color:var(--fg);flex:1;align-items:center;gap:10px;padding:6px;display:flex}.me:hover{background:var(--surface-2);text-decoration:none}.me .avatar{flex:none;width:32px;height:32px;font-size:12px}.me-text{min-width:0;line-height:1.3;display:grid}.me-text>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.me-text .muted{font-size:12px}.icon-btn{border-radius:var(--radius);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--fg)}.topbar,.backdrop,.close-drawer{display:none}.content{min-width:0;padding:24px 28px}@media (max-width:760px){.shell{display:block}.topbar{z-index:30;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);align-items:center;gap:4px;height:52px;padding:0 8px;display:flex;position:sticky;top:0}.sidebar{z-index:60;visibility:hidden;width:min(290px,85vw);height:100dvh;transition:transform .2s,visibility 0s .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{visibility:visible;transition:transform .2s;transform:none;box-shadow:8px 0 24px #0000002e}.close-drawer{display:inline-grid}.backdrop{z-index:55;opacity:0;pointer-events:none;background:#0006;transition:opacity .2s;display:block;position:fixed;inset:0}.backdrop.show{opacity:1;pointer-events:auto}.nav a{padding:11px 10px}.content{padding:16px 12px 88px}h1{font-size:20px}table.t{display:block;overflow-x:auto}.shot.desktop,.shot.upload{width:300px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.kpis{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.kpi .v{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.kpi .l{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}input,select,textarea,button{font:inherit;color:inherit}input:not([type=checkbox]),select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;padding:6px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}textarea{resize:vertical;width:100%;min-height:90px}label{color:var(--muted);gap:4px;font-size:13px;display:grid}label>input,label>select,label>textarea{color:var(--fg)}label.check{color:var(--fg);align-items:center;gap:6px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--fg);border-radius:6px;align-items:center;gap:6px;padding:6px 12px;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent);filter:brightness(1.08)}.btn-danger{color:var(--danger)}table.t{border-collapse:collapse;width:100%}table.t th,table.t td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:6px 10px}table.t th{color:var(--muted);font-size:12px;font-weight:500}dl.kv{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}dl.kv dt{color:var(--muted)}dl.kv dd{overflow-wrap:anywhere;margin:0}.badge{background:var(--surface-2);border-radius:999px;align-self:center;padding:1px 8px;font-size:12px;font-weight:600;line-height:18px;display:inline-block}.cat-N{color:var(--lightningcss-light,#b42318)var(--lightningcss-dark,#fda29b);background:var(--lightningcss-light,#fee4e2)var(--lightningcss-dark,#55160c)}.cat-A\+\+{color:var(--lightningcss-light,#05603a)var(--lightningcss-dark,#75e0a7);background:var(--lightningcss-light,#d1fadf)var(--lightningcss-dark,#053321)}.cat-A{color:var(--lightningcss-light,#067647)var(--lightningcss-dark,#75e0a7);background:var(--lightningcss-light,#dcfae6)var(--lightningcss-dark,#074d31)}.cat-A\/B{color:var(--lightningcss-light,#079455)var(--lightningcss-dark,#6ce9a6);background:var(--lightningcss-light,#ecfdf3)var(--lightningcss-dark,#0c3b2a)}.cat-B\+{color:var(--lightningcss-light,#b54708)var(--lightningcss-dark,#fec84b);background:var(--lightningcss-light,#fef0c7)var(--lightningcss-dark,#4e1d09)}.cat-B{color:var(--lightningcss-light,#93370d)var(--lightningcss-dark,#fedf89);background:var(--lightningcss-light,#fffaeb)var(--lightningcss-dark,#3d1d0a)}.cat-C{color:var(--muted)}.progress{background:var(--surface-2);border-radius:3px;min-width:80px;height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%}.login{background:var(--bg);grid-template-columns:minmax(360px,480px) 1fr;min-height:100dvh;display:grid}.login-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:32px;padding:48px clamp(24px,5vw,72px);display:flex}.login-brand{align-items:center;gap:14px;display:flex}.login-brand .logo{border-radius:10px;width:52px;height:52px}.login-brand div{line-height:1.25;display:grid}.login-brand strong{font-size:17px}.login-brand span{color:var(--muted);font-size:14px}.login-body{gap:16px;max-width:360px;margin:auto 0;display:grid}.login-body h1{letter-spacing:-.02em;margin:0;font-size:40px}.login-body>p.muted{margin:0;font-size:15px}.login-foot{align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.login-art{background:radial-gradient(55% 60% at 75% 95%, color-mix(in srgb, var(--accent) 55%, transparent), transparent 70%), radial-gradient(45% 50% at 20% 100%, #0ea5e959, transparent 70%), radial-gradient(#ffffff12 1px, transparent 1px) 0 0 / 24px 24px, #0c1117;justify-content:flex-end;align-items:flex-end;padding:48px;display:flex;position:relative;overflow:hidden}.login-art p{border-radius:var(--radius);color:#e6e8ec;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c11178c;border:1px solid #ffffff14;max-width:340px;margin:0;padding:14px 16px;font-size:15px;line-height:1.5}.btn-lg{border-radius:var(--radius);justify-content:center;padding:11px 16px;font-weight:600}.alert{border-radius:var(--radius);color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:13px;display:flex}.alert svg{flex:none;margin-top:1px}.login-body label>input{padding:9px 10px}@media (max-width:760px){.login{grid-template-columns:1fr}.login-art{display:none}.login-panel{border-right:0;gap:24px;padding:32px 20px}.login-body{max-width:none}.login-body h1{font-size:32px}}.divider{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--border);flex:1}.filters{gap:10px;padding:12px;display:grid}.chips{gap:6px}.chip{border:1px solid var(--border);background:var(--surface);color:var(--fg);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.chip:hover{background:var(--surface-2)}.chip .n{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.chip.on .n{color:inherit;opacity:.8}.board{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;align-items:start;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.lane{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);gap:8px;min-height:120px;padding:8px;display:grid}.lane.over{outline:2px dashed var(--accent);outline-offset:-2px}.lane.muted-lane{opacity:.75}.lane header{padding:2px 4px 4px}.kcard{background:var(--surface);border:1px solid var(--border);cursor:grab;border-radius:6px;gap:4px;padding:8px 10px;display:grid}.kcard:active{cursor:grabbing}.bubble{white-space:pre-wrap;border-radius:10px;max-width:85%;padding:8px 12px}.bubble.user{background:var(--accent);color:var(--accent-fg);justify-self:end}.bubble.assistant{background:var(--surface-2);justify-self:start}.chat-fab{z-index:40;background:var(--accent);width:56px;height:56px;color:var(--accent-fg);cursor:pointer;box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 40%, transparent), 0 2px 6px #00000026;border:0;border-radius:50%;place-items:center;transition:transform .15s,box-shadow .15s;display:grid;position:fixed;bottom:20px;right:20px}.chat-fab:hover{transform:translateY(-2px)scale(1.04)}.chat-panel{z-index:50;background:var(--surface);border-left:1px solid var(--border);grid-template-rows:auto 1fr auto;gap:10px;width:400px;max-width:100vw;padding:12px;display:grid;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 24px #00000014}.chat-body{align-content:start;gap:8px;display:grid;overflow-y:auto}.chat-panel .bubble{max-width:92%;font-size:13.5px}@media (min-width:1200px){.with-chat .content{margin-right:400px}}@media (max-width:760px){.chat-fab{bottom:16px;right:16px}}.avatar{background:var(--accent);width:22px;height:22px;color:var(--accent-fg);border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:inline-grid}.shots{align-items:start;gap:12px;display:flex;overflow-x:auto}.shot{flex:none;gap:4px;margin:0;display:grid}.shot img{border:1px solid var(--border);border-radius:6px;width:100%;height:auto;display:block}.shot.desktop,.shot.upload{width:420px}.shot.mobile{width:140px}.shot figcaption{font-size:12px}
