:root{--bg:#fff;--bg-subtle:#fafafa;--surface:#fff;--hover:#f4f4f5;--active:#ececee;--border:#e7e7ea;--border-strong:#d4d4d8;--text:#18181b;--text-muted:#71717a;--text-faint:#a1a1aa;--primary:#18181b;--primary-text:#fafafa;--danger:#dc2626;--danger-bg:#fef2f2;--focus:#a1a1aa;--shadow:0 1px 2px #0000000a, 0 8px 24px #00000014;--shadow-lg:0 24px 64px #00000029;--status-open:#a1a1aa;--status-in_progress:#d97706;--status-review:#7c3aed;--status-done:#16a34a;--priority-high:#dc2626;--priority-medium:#ea580c;--series-1:#2a78d6;--series-2:#eb6834;--seg-done:#16a34a;--seg-review:#7c3aed;--seg-in_progress:#d97706;--seg-open:#d4d4d8;--cat-1:#2a78d6;--cat-2:#eb6834;--cat-3:#1baf7a;--cat-4:#eda100;--cat-5:#e87ba4;--cat-6:#008300;--cat-7:#6250d6;--cat-8:#e34948;--cat-other:#a1a1aa;--radius:8px;--radius-sm:6px;--sidebar-w:248px;--sidebar-w-collapsed:60px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f0f11;--bg-subtle:#131316;--surface:#18181b;--hover:#1f1f23;--active:#27272a;--border:#26262b;--border-strong:#3f3f46;--text:#ededef;--text-muted:#a1a1aa;--text-faint:#63636b;--primary:#ededef;--primary-text:#18181b;--danger:#f87171;--danger-bg:#2a1215;--focus:#63636b;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000059;--shadow-lg:0 24px 64px #0000008c;--status-open:#71717a;--status-in_progress:#f59e0b;--status-review:#a78bfa;--status-done:#22c55e;--priority-high:#f87171;--priority-medium:#fb923c;--series-1:#3987e5;--series-2:#d95926;--seg-done:#16a34a;--seg-review:#8b5cf6;--seg-in_progress:#d97706;--seg-open:#3f3f46;--cat-1:#3987e5;--cat-2:#d95926;--cat-3:#199e70;--cat-4:#c98500;--cat-5:#d55181;--cat-6:#008300;--cat-7:#9085e9;--cat-8:#e66767;--cat-other:#63636b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}code,.mono{font-family:var(--mono);font-size:.92em}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.muted{color:var(--text-muted)}.small{font-size:12px}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.row{align-items:center;display:flex}.stack{flex-direction:column;display:flex}.wrap{flex-wrap:wrap}.gap-xs{gap:4px}.gap-sm{gap:10px}.grow{flex:1}.min-w-0{min-width:0}.center{justify-content:center;padding:16px 0;display:flex}.dimmed{opacity:.55}.boot{background:var(--bg);height:100%}.btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);white-space:nowrap;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 12px;font-weight:500;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--hover)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.btn-primary:hover:not(:disabled){background:var(--primary);opacity:.88}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:#0000}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-sm{height:26px;padding:0 8px;font-size:12px}.btn-block{width:100%}.btn-discord{color:#fff;background:#5865f2;border-color:#5865f2;height:40px}.btn-discord:hover:not(:disabled){background:#4752c4}.icon-btn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn-sm{width:22px;height:22px}.input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;height:34px;padding:0 10px;transition:border-color .12s}.input:hover:not(:disabled){border-color:var(--border-strong)}.input:focus{border-color:var(--text-muted);outline:none}.input:disabled{opacity:.6}textarea.input{resize:vertical;height:auto;padding:8px 10px;line-height:1.55}select.input{padding-right:6px}.select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;align-items:center;gap:8px;width:100%;min-width:0;height:34px;padding:0 10px;transition:border-color .12s,background .12s;display:inline-flex}.select:hover:not(:disabled){border-color:var(--border-strong)}.select-open{border-color:var(--text-muted)!important}.select:disabled{cursor:default;opacity:.6}.select-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.select-placeholder{color:var(--text-faint)}.select-icon{flex-shrink:0;place-items:center;min-width:16px;display:inline-grid}.select-chevron{color:var(--text-faint);flex-shrink:0;transition:transform .15s}.select-open .select-chevron{transform:rotate(180deg)}.select-sm{width:auto;min-width:150px;max-width:220px;height:30px;font-size:13px}.select-ghost{background:0 0;border-color:#0000;width:auto;max-width:100%;height:30px;padding:0 8px}.select-ghost:hover:not(:disabled){background:var(--hover);border-color:#0000}.select-ghost:disabled{opacity:1}.select-pop{z-index:70;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;animation:.1s pop;display:flex;position:fixed;overflow:hidden}.select-search{border-bottom:1px solid var(--border);color:var(--text-muted);align-items:center;gap:8px;padding:8px 10px;display:flex}.select-search input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.select-list{outline:none;margin:0;padding:4px;list-style:none;overflow-y:auto}.select-option{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;min-height:32px;padding:4px 8px;display:flex}.select-option.active{background:var(--hover)}.select-option[aria-selected=true]{font-weight:500}.select-option-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.select-check{color:var(--text-muted);flex-shrink:0}.select-empty{color:var(--text-faint);text-align:center;padding:8px;font-size:13px}.form{flex-direction:column;gap:16px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text-muted);font-size:12px;font-weight:500}.field-hint{color:var(--text-muted);font-size:12px}.badge{border:1px solid var(--border);height:22px;color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:0 8px;font-size:12px;display:inline-flex}.badge-sm{height:18px;padding:0 6px;font-size:11px}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pill{background:var(--hover);color:var(--text-muted);border-radius:999px;padding:1px 8px;font-size:12px;display:inline-block}.pill-active{color:var(--status-done)}.pill-invited{color:var(--status-in_progress)}.pill-disabled{color:var(--text-faint)}.avatar{background:var(--active);color:var(--text-muted);border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-empty{border:1px dashed var(--border-strong);background:0 0}.user-chip{align-items:center;gap:8px;min-width:0;display:inline-flex}.status-icon{flex-shrink:0}.status-open{color:var(--status-open)}.status-in_progress{color:var(--status-in_progress)}.status-review{color:var(--status-review)}.status-done{color:var(--status-done)}.priority-icon{color:var(--text-muted);flex-shrink:0}.priority-high{color:var(--priority-high)}.priority-medium{color:var(--priority-medium)}.app{grid-template-columns:var(--sidebar-w) 1fr;height:100%;transition:grid-template-columns .18s;display:grid}.app-collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar{border-right:1px solid var(--border);background:var(--bg-subtle);flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden}.sidebar-head{align-items:center;gap:4px;padding:12px 10px 8px 12px;display:flex}.brand{border-radius:var(--radius-sm);flex:1;align-items:center;gap:10px;min-width:0;padding:4px;display:flex}.brand-mark{background:var(--primary);width:26px;height:26px;color:var(--primary-text);border-radius:7px;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.brand-mark-lg{border-radius:12px;width:44px;height:44px;font-size:20px}.brand-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sidebar-scroll{flex:1;padding:4px 8px 12px;overflow:hidden auto}.nav-group{flex-direction:column;gap:1px;padding-top:12px;display:flex}.nav-group:first-child{padding-top:4px}.nav-heading{letter-spacing:.04em;text-transform:uppercase;height:26px;color:var(--text-faint);justify-content:space-between;align-items:center;padding:0 4px 0 10px;font-size:11px;font-weight:600;display:flex}.nav-item{border-radius:var(--radius-sm);height:32px;color:var(--text-muted);white-space:nowrap;align-items:center;gap:10px;padding:0 10px;display:flex}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--active);color:var(--text);font-weight:500}.nav-icon{flex-shrink:0;place-items:center;display:grid}.nav-label{text-overflow:ellipsis;flex:1;overflow:hidden}.nav-count{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12px}.nav-empty{color:var(--text-faint);padding:4px 10px;font-size:12px}.sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:4px;padding:10px 8px;display:flex}.profile-link{border-radius:var(--radius-sm);flex:1;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.profile-link:hover,.profile-link.active{background:var(--hover)}.profile-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.app-collapsed .brand-name,.app-collapsed .nav-label,.app-collapsed .nav-count,.app-collapsed .nav-heading,.app-collapsed .profile-text,.app-collapsed .sign-out,.app-collapsed .brand{display:none}.app-collapsed .sidebar-head{justify-content:center;padding:12px 0 8px}.app-collapsed .nav-group{border-top:1px solid #0000;padding-top:10px}.app-collapsed .nav-group+.nav-group{border-top-color:var(--border);margin-top:8px}.app-collapsed .nav-item{justify-content:center;padding:0}.app-collapsed .sidebar-foot{justify-content:center}.app-collapsed .profile-link{flex:none}.main{min-width:0;height:100%;overflow-y:auto}.topbar,.scrim{display:none}.page{max-width:1080px;margin:0 auto;padding:32px 32px 64px}.page-narrow{max-width:720px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-header h1{letter-spacing:-.01em;font-size:20px;font-weight:600}.page-header-text{flex-direction:column;gap:4px;min-width:0;display:flex}.page-header-actions{flex-shrink:0;gap:8px;display:flex}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.segmented{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);max-width:100%;padding:2px;display:inline-flex;overflow-x:auto}.segmented button{border-radius:var(--radius-sm);height:26px;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;padding:0 10px;font-size:13px}.segmented button:hover{color:var(--text)}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.search{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);height:30px;color:var(--text-muted);align-items:center;gap:6px;padding:0 10px;display:flex}.search:focus-within{border-color:var(--text-muted)}.search input{width:160px;color:var(--text);background:0 0;border:none;outline:none;font-size:13px}.task-groups{flex-direction:column;gap:20px;display:flex}.group-head{align-items:center;gap:8px;padding:0 12px 6px;font-size:13px;font-weight:500;display:flex}.task-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0;padding:0;list-style:none;overflow:hidden}.task-list>li+li{border-top:1px solid var(--border)}.task-row{cursor:pointer;align-items:center;gap:10px;min-height:42px;padding:0 12px;transition:background .1s;display:flex}.task-row:hover,.task-row.selected{background:var(--hover)}.task-id{width:40px;color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.task-title{flex:1}.task-category{text-overflow:ellipsis;flex-shrink:1;max-width:160px;overflow:hidden}.task-time{text-align:right;flex-shrink:0;width:84px}.task-assignee{flex-shrink:0;justify-content:center;width:52px;display:flex}.take-btn{border-color:var(--border);color:var(--text)}.take-btn:hover:not(:disabled){border-color:var(--border-strong)}.skeleton-list{flex-direction:column;gap:8px;display:flex}.skeleton-row{border-radius:var(--radius);background:var(--hover);height:42px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.5}}.empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:64px 16px;display:flex}.empty-icon{border:1px solid var(--border);width:44px;height:44px;color:var(--text-muted);border-radius:12px;place-items:center;margin-bottom:4px;display:grid}.empty-title{font-weight:500}.empty-text{max-width:360px;color:var(--text-muted)}.panel-backdrop{z-index:30;background:#0000002e;animation:.15s fade;position:fixed;inset:0}.panel{border-left:1px solid var(--border);background:var(--surface);width:min(560px,100%);box-shadow:var(--shadow-lg);flex-direction:column;animation:.18s slide-in;display:flex;position:absolute;top:0;bottom:0;right:0}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}@keyframes fade{0%{opacity:0}}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;height:52px;padding:0 12px 0 20px;display:flex}.panel-body{flex:1;padding:20px;overflow-y:auto}.title-input,.title-static{border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;width:100%;margin:0 0 16px;padding:4px 6px;font-size:18px;font-weight:600;line-height:1.4;display:block}.title-input:hover{background:var(--hover)}.title-input:focus{border-color:var(--border-strong);background:var(--surface);outline:none}.title-static{padding:4px 6px}.props{grid-template-columns:110px 1fr;align-items:center;gap:4px 12px;margin:0 0 8px;display:grid}.props dt{color:var(--text-muted);padding-left:6px;font-size:13px}.props dd{align-items:center;min-height:32px;margin:0;display:flex}.props dd:not(:has(>.select)){padding-left:8px}.panel-section{border-top:1px solid var(--border);margin-top:16px;padding-top:20px}.panel-section h3{margin-bottom:10px;font-size:13px;font-weight:600}.description{white-space:pre-wrap;overflow-wrap:anywhere}.gallery{flex-wrap:wrap;gap:6px;display:flex}.gallery:after{content:"";flex-grow:1000}.gallery-item{border-radius:var(--radius-sm);background:var(--hover);min-width:0;box-shadow:inset 0 0 0 1px var(--border);position:relative;overflow:hidden}.gallery-open{cursor:zoom-in;background:0 0;border:none;width:100%;height:100%;padding:0;display:block}.gallery-open img{object-fit:cover;width:100%;height:100%;transition:transform .25s,opacity .2s;display:block}.gallery-item:hover .gallery-open img{transform:scale(1.03)}.gallery-item.pending .gallery-open{cursor:progress}.gallery-item.pending img{opacity:.45;filter:saturate(.4)}.gallery-spinner{filter:drop-shadow(0 1px 2px #0006);border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:22px;height:22px;margin:auto;animation:.8s linear infinite spin;position:absolute;inset:0}@keyframes spin{to{transform:rotate(360deg)}}.gallery-remove{color:#fff;opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border:none;border-radius:50%;place-items:center;width:24px;height:24px;transition:opacity .15s;display:grid;position:absolute;top:6px;right:6px}.gallery-item:hover .gallery-remove,.gallery-remove:focus-visible{opacity:1}.gallery-remove:hover{background:#000c}.gallery-add{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;flex-direction:column;flex-grow:0;justify-content:center;align-items:center;gap:6px;font-size:12px;transition:background .12s,color .12s,border-color .12s;display:flex}.gallery-add:hover{background:var(--hover);color:var(--text);border-color:var(--text-faint)}.gallery-hint{margin-top:8px}.drop-overlay{z-index:5;border:2px dashed var(--text-muted);background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--text);pointer-events:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-weight:500;animation:.1s fade;display:flex;position:absolute;inset:8px}.form-dragging{outline:2px dashed var(--text-muted);outline-offset:8px;border-radius:4px}.lightbox{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fafafa;background:#08080aeb;justify-content:center;align-items:center;padding:64px 72px 104px;animation:.15s fade;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;-webkit-user-select:none;user-select:none;border-radius:6px;max-width:100%;max-height:100%;animation:.15s pop;box-shadow:0 16px 48px #00000080}.lightbox-bar{justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 12px 0 20px;display:flex;position:absolute;top:0;left:0;right:0}.lightbox-info{flex-direction:column;min-width:0;line-height:1.35;display:flex}.lightbox-meta{color:#fafafa99;font-size:12px}.lightbox-actions{flex-shrink:0;gap:4px;display:flex}.lightbox-btn{color:#fafafacc;background:0 0;border:none;border-radius:8px;place-items:center;width:36px;height:36px;display:grid}.lightbox-btn:hover{color:#fff;background:#ffffff1a}.lightbox-nav{color:#fff;background:#ffffff14;border:none;border-radius:50%;place-items:center;width:44px;height:44px;margin-top:-22px;transition:background .12s;display:grid;position:absolute;top:50%}.lightbox-nav:hover{background:#ffffff2e}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-strip{gap:6px;max-width:calc(100% - 32px);padding:4px;display:flex;position:absolute;bottom:20px;left:50%;overflow-x:auto;transform:translate(-50%)}.lightbox-thumb{opacity:.5;background:0 0;border:2px solid #0000;border-radius:6px;flex-shrink:0;width:56px;height:56px;padding:0;transition:opacity .12s,border-color .12s;overflow:hidden}.lightbox-thumb:hover{opacity:.85}.lightbox-thumb.active{opacity:1;border-color:#fff}.lightbox-thumb img{object-fit:cover;width:100%;height:100%;display:block}.task-chip{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:4px;font-size:12px;display:inline-flex}.task-chip-done{color:var(--status-done)}.task-parent{color:var(--text-faint);font-size:12px}.task-row-done .task-title{color:var(--text-muted)}.stages{flex-direction:column;gap:22px;display:flex}.stage-head{align-items:center;gap:12px;padding:0 4px 8px;font-size:13px;font-weight:600;display:flex}.stage-title{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:70%;overflow:hidden}.stage-line{background:var(--border);flex:1;height:1px}.stage-empty{border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-faint);padding:12px 16px;font-size:13px}.task-row-nested{background:var(--bg-subtle);padding-left:30px}.task-row-nested:hover,.task-row-nested.selected{background:var(--hover)}.nest-mark{color:var(--text-faint);flex-shrink:0;margin-right:-4px}.arrange-bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-subtle);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;font-size:13px;display:flex}.arrange-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.arrange-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:10px;min-height:40px;padding:0 8px 0 12px;display:flex}.arrange-kid{background:var(--bg-subtle);min-height:34px}.arrange-section{background:var(--bg-subtle);border-style:dashed}.arrange-input{border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;flex:1;min-width:0;height:30px;padding:0 8px;font-weight:600}.arrange-input:hover{background:var(--hover)}.arrange-input:focus{border-color:var(--text-muted);background:var(--surface);outline:none}.arrange-insert{color:var(--text-faint)}.progress{background:var(--hover);border-radius:2px;height:4px;margin:-2px 0 10px;overflow:hidden}.progress span{background:var(--status-done);border-radius:2px;height:100%;transition:width .25s;display:block}.subtasks{margin:0;padding:0;list-style:none}.subtask{border-radius:var(--radius-sm);align-items:center;gap:8px;min-height:34px;padding:0 6px;display:flex}.subtask:hover{background:var(--hover)}.subtask-check{background:0 0;border:none;border-radius:50%;place-items:center;padding:2px;display:grid}.subtask-title{text-align:left;background:0 0;border:none;flex:1;min-width:0;padding:0;display:flex}.subtask-title:hover{text-underline-offset:2px;text-decoration:underline}.task-row-done .subtask-title{color:var(--text-muted);text-decoration:line-through}.subtask-add{border:1px dashed var(--border);border-radius:var(--radius-sm);align-items:center;gap:8px;height:34px;margin-top:4px;padding:0 8px;display:flex}.subtask-add:focus-within{border-style:solid;border-color:var(--text-muted)}.subtask-add input{background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:13px}.link-btn{color:var(--text-muted);text-underline-offset:2px;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.link-btn:hover{color:var(--text)}.timeline{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.timeline li{align-items:flex-start;gap:10px;font-size:13px;display:flex}.timeline li .avatar{margin-top:1px}.timeline strong{font-weight:600}.modal-backdrop{z-index:40;background:#0000004d;place-items:start center;padding:10vh 16px 16px;animation:.12s fade;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{border:1px solid var(--border);background:var(--surface);width:100%;box-shadow:var(--shadow-lg);border-radius:12px;animation:.14s pop}@keyframes pop{0%{opacity:0;transform:scale(.98)}}.modal-head{justify-content:space-between;align-items:center;padding:16px 16px 0 20px;display:flex}.modal-head h2{font-size:15px;font-weight:600}.modal-body{padding:16px 20px 20px}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.modal-foot-left{margin-right:auto}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:20px}.table{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.table-head{border-bottom:1px solid var(--border);background:var(--bg-subtle);color:var(--text-muted);padding:8px 16px;font-size:12px;font-weight:500}.table-row{padding:10px 16px}.table-row+.table-row{border-top:1px solid var(--border)}.users-grid{grid-template-columns:minmax(0,2.2fr) 1.2fr .8fr .9fr 110px;align-items:center;gap:12px;display:grid}.row-actions{justify-content:flex-end;display:flex}.roles-layout{grid-template-columns:240px 1fr;align-items:start;gap:20px;display:grid}.role-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.role-item{border-radius:var(--radius-sm);text-align:left;width:100%;height:36px;color:var(--text-muted);background:0 0;border:none;align-items:center;gap:10px;padding:0 10px;display:flex}.role-item:hover{background:var(--hover);color:var(--text)}.role-item.active{background:var(--active);color:var(--text);font-weight:500}.role-count{font-variant-numeric:tabular-nums;margin-left:auto}.role-editor{flex-direction:column;gap:20px;display:flex}.swatches{flex-wrap:wrap;align-items:center;gap:6px;min-height:34px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0;box-shadow:inset 0 0 0 1px #00000014}.swatch.active{outline:2px solid var(--text);outline-offset:1px}.swatch-none{background:linear-gradient(135deg, transparent 45%, var(--border-strong) 45%, var(--border-strong) 55%, transparent 55%), var(--surface);box-shadow:inset 0 0 0 1px var(--border-strong)}.swatch:disabled{cursor:default}.perm-list{border:1px solid var(--border);border-radius:var(--radius);margin:4px 0 0;padding:0;list-style:none}.perm-list li+li{border-top:1px solid var(--border)}.perm{cursor:pointer;align-items:flex-start;gap:12px;padding:10px 14px;display:flex}.perm input{accent-color:var(--primary);margin-top:3px}.perm-disabled{cursor:default;opacity:.6}.editor-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notice{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-subtle);color:var(--text-muted);padding:10px 12px;font-size:13px}.notice-error{background:var(--danger-bg);color:var(--danger);border-color:#0000}.choice-list{flex-direction:column;gap:8px;display:flex}.choice{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;gap:12px;padding:12px 14px;display:flex}.choice.active{border-color:var(--text-muted)}.choice input{accent-color:var(--primary);margin-top:3px}.audit-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:0;padding:0;list-style:none}.audit-row{align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.audit-row+.audit-row{border-top:1px solid var(--border)}.audit-text{overflow-wrap:anywhere;flex:1;min-width:0;padding-top:3px}.audit-time{flex-shrink:0;padding-top:4px}.audit-link{color:var(--text-muted);text-underline-offset:2px;margin-left:8px;font-size:12px;text-decoration:underline}.audit-link:hover{color:var(--text)}.profile-card{align-items:center;gap:16px;margin-bottom:8px;display:flex}.profile-name{font-size:17px;font-weight:600}.profile-role{margin-top:6px}.stats{grid-template-columns:repeat(4,1fr);gap:8px;margin:24px 0;display:grid}.stat{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;padding:14px 16px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.section{margin-top:28px}.section-title{margin-bottom:10px;font-size:14px;font-weight:600}.perm-summary{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.perm-summary li{flex-direction:column;display:flex}.login{background:var(--bg-subtle);place-items:center;min-height:100%;padding:24px 16px;display:grid}.login-card{border:1px solid var(--border);background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:14px;padding:32px 28px;display:flex}.login-card h1{font-size:19px;font-weight:600}.login-card .notice{text-align:left;width:100%}.dev-login{border-top:1px dashed var(--border-strong);text-align:left;flex-direction:column;gap:8px;width:100%;margin-top:4px;padding-top:16px;display:flex}.toasts{z-index:50;flex-direction:column;gap:8px;max-width:min(380px,100% - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:10px 14px;font-size:13px;animation:.14s pop}.toast-error{background:var(--danger-bg);color:var(--danger);border-color:#0000}.archived-notice{align-items:center;gap:10px;margin-bottom:16px;display:flex}.analytics .tiles{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.stat{gap:2px}.stat-delta{color:var(--text-muted);margin-left:8px;font-size:13px;font-weight:500}.dash-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.dash-card{margin-bottom:16px}.dash-title{align-items:baseline;gap:10px;margin-bottom:16px;font-size:14px;font-weight:600;display:flex}.num{font-variant-numeric:tabular-nums}.legend-swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px;display:inline-block}.tooltip{z-index:5;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:160px;box-shadow:var(--shadow);white-space:nowrap;pointer-events:none;flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex;position:absolute}.tooltip span{color:var(--text-muted);align-items:center;gap:6px;display:flex}.tooltip b{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:12px}.donut-wrap{align-items:center;gap:24px;display:flex}.donut{flex-shrink:0;width:220px;height:220px;position:relative}.donut>svg{width:100%;height:100%;display:block;overflow:visible}.donut-slice{stroke:var(--surface);stroke-width:2px;stroke-linejoin:round;cursor:pointer;transition:opacity .15s}.dim{opacity:.3}.donut-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:0 56px;display:flex;position:absolute;inset:0}.donut-center .muted{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.donut-total{font-variant-numeric:tabular-nums;font-size:26px;font-weight:600;line-height:1.2}.donut-tip{transform:translate(14px,14px)}.donut-legend{flex-direction:column;flex:1;gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.donut-legend li{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:5px 8px;font-size:13px;transition:opacity .15s;display:flex}.donut-legend li:hover{background:var(--hover)}.donut-legend a:hover{text-underline-offset:2px;text-decoration:underline}.donut-legend .num{margin-left:auto}.sbar{gap:2px;min-width:6px;height:10px;display:flex}.sbar-seg{border-radius:3px;min-width:4px}.sbar-empty{background:var(--hover);border-radius:3px;flex:1}.seg-done{background:var(--seg-done)}.seg-review{background:var(--seg-review)}.seg-in_progress{background:var(--seg-in_progress)}.seg-open{background:var(--seg-open)}.progress-list{flex-direction:column;gap:22px;display:flex}.cat-progress{flex-direction:column;gap:8px;display:flex}.cat-progress-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.cat-name{font-weight:600}.cat-name:hover{text-underline-offset:2px;text-decoration:underline}.section-progress{flex-direction:column;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.section-progress li{grid-template-columns:minmax(0,1fr) minmax(80px,2fr) 48px;align-items:center;gap:12px;font-size:13px;display:grid}.section-progress .num{text-align:right}.mini-bar{background:var(--hover);border-radius:3px;height:6px;overflow:hidden}.mini-bar span{background:var(--seg-done);border-radius:3px;height:100%;display:block}.idle{background:var(--hover);color:var(--text-muted);font-variant-numeric:tabular-nums;border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:12px}.workload{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.workload li{grid-template-columns:minmax(0,180px) 1fr auto;align-items:center;gap:16px;display:grid}.workload-bar{align-items:center;gap:8px;min-width:0;display:flex}.workload-bar .sbar{flex-shrink:0}.workload-closed{text-align:right;min-width:80px}@media (width<=860px){.task-category{display:none}.users-grid{grid-template-columns:minmax(0,1fr) auto}.users-grid>:nth-child(3),.users-grid>:nth-child(4){display:none}.users-grid>:nth-child(5){grid-column:1/-1;justify-content:flex-start}.users-grid>.row-actions:empty,.table-head.users-grid{display:none}.roles-layout{grid-template-columns:1fr}.role-list{flex-direction:row;overflow-x:auto}.role-item{white-space:nowrap;width:auto}.role-count{display:none}}@media (width<=720px){.app,.app-collapsed{grid-template-columns:1fr}.sidebar{z-index:20;width:min(280px,85vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app-mobile-open .sidebar{box-shadow:var(--shadow-lg);transform:none}.app-mobile-open .scrim{z-index:15;background:#0000004d;display:block;position:fixed;inset:0}.collapse-btn{display:none}.app-collapsed .brand{display:flex}.app-collapsed .brand-name,.app-collapsed .nav-label,.app-collapsed .nav-count,.app-collapsed .profile-text,.app-collapsed .sign-out{display:initial}.app-collapsed .nav-heading{display:flex}.app-collapsed .sidebar-head{justify-content:flex-start;padding:12px 10px 8px 12px}.app-collapsed .nav-item{justify-content:flex-start;padding:0 10px}.app-collapsed .nav-group+.nav-group{border-top-color:#0000;margin-top:0}.app-collapsed .profile-link{flex:1}.topbar{z-index:10;border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:8px;height:48px;padding:0 8px;display:flex;position:sticky;top:0}.topbar-title{font-weight:600}.page{padding:20px 16px 48px}.page-header{flex-direction:column}.toolbar-right{width:100%}.search{flex:1}.search input{width:100%}.task-time{display:none}.task-id{width:auto}.props{grid-template-columns:90px 1fr}.lightbox{padding:56px 8px 96px}.lightbox-nav,.arrange-insert-label{display:none}.analytics .tiles{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:1fr}.donut-wrap{flex-direction:column;align-items:stretch}.donut{align-self:center}.workload li{grid-template-columns:minmax(0,1fr) auto}.workload-bar{grid-area:2/1/auto/-1}.tp{padding-left:22px}.arrange-bar>.muted{flex-basis:100%}.select-sm{flex:1;max-width:none}.stats{grid-template-columns:repeat(2,1fr)}.profile-card{flex-wrap:wrap}}@media (width<=1100px){.dash-grid{grid-template-columns:1fr}}.perm-limit{flex-direction:column;gap:10px;padding:0 14px 12px 40px;display:flex}.perm-limit .segmented{align-self:flex-start}.perm-limit .segmented button:disabled{opacity:.45;cursor:default}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--border);height:28px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:13px;display:inline-flex}.chip input{display:none}.chip:hover{border-color:var(--border-strong)}.chip.active{border-color:var(--text);background:var(--hover);color:var(--text)}.perm-limit-box{padding-top:12px}.perm-limit-box .perm-limit{padding-left:14px}.logo-field{align-items:center;gap:16px;margin-bottom:16px;display:flex}.brand-mark{overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.btn-disabled{opacity:.45;pointer-events:none}@media (width<=720px){.logo-field{flex-wrap:wrap}}.arrange-list>li,.arrange-kids>li{transition:transform .18s}.arrange-kids{flex-direction:column;gap:4px;margin:4px 0 0 28px;padding:0;list-style:none;display:flex}.grip{width:22px;height:28px;color:var(--text-faint);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:4px;flex-shrink:0;place-items:center;margin-left:-6px;padding:0;display:grid}.grip:hover,.grip:focus-visible{background:var(--hover);color:var(--text)}.is-dragging.arrange-row,.is-dragging>.arrange-row{border-color:var(--border-strong);box-shadow:var(--shadow)}body.dragging,body.dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.stage-finished .stage-title{color:var(--status-done)}
