:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#f2f4f8;--surface-3:#e8ecf4;--border:#e2e6ef;--border-strong:#cbd3e1;--text:#16202f;--muted:#64748b;--faint:#94a3b8;--accent:#4f46e5;--accent-soft:#eef2ff;--accent-text:#4338ca;--positive:#17803d;--positive-soft:#eafbf0;--warning:#b45309;--warning-soft:#fff7e6;--danger:#be123c;--danger-soft:#fff1f4;--info:#0369a1;--info-soft:#eff8ff;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px #1018280a, 0 1px 3px #1018280f;--shadow-md:0 4px 12px #10182812, 0 2px 4px #1018280a;--shadow-lg:0 12px 32px #1018281f;--sidebar-width:244px;--topbar-height:60px;--ease:cubic-bezier(.22, .9, .3, 1)}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.55}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.021em;margin:0 0 2px;font-size:20px;font-weight:650}h2{letter-spacing:-.012em;margin:0 0 2px;font-size:15px;font-weight:620}h3{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:11px;font-weight:600}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-down{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}@keyframes grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);scrollbar-width:thin;flex-direction:column;flex-shrink:0;height:100vh;padding:0 12px 20px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{height:var(--topbar-height);letter-spacing:-.02em;background:var(--surface);z-index:2;align-items:center;gap:10px;padding:0 8px;font-size:15px;font-weight:700;display:flex;position:sticky;top:0}.brand small{color:var(--faint);letter-spacing:0;font-size:10.5px;font-weight:400;line-height:1.2;display:block}.brand-mark{background:linear-gradient(135deg, var(--accent), #7c6cf0);color:#fff;width:28px;height:28px;box-shadow:var(--shadow-sm);border-radius:8px;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.nav{flex-direction:column;gap:16px;padding-top:6px;display:flex}.nav-group{flex-direction:column;gap:1px;display:flex}.nav-group-title{color:var(--faint);text-transform:uppercase;letter-spacing:.09em;padding:0 10px 5px;font-size:10px;font-weight:600}.nav a{border-radius:var(--radius-sm);color:var(--text);transition:background .14s var(--ease), color .14s var(--ease), transform .14s var(--ease);padding:6px 10px;font-size:13px;position:relative}.nav a:hover{background:var(--surface-2);text-decoration:none;transform:translate(2px)}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-text);font-weight:560}.nav a[aria-current=page]:before{content:"";background:var(--accent);width:3px;animation:fade .2s var(--ease) both;border-radius:0 3px 3px 0;position:absolute;top:6px;bottom:6px;left:-12px}.content{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--topbar-height);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);z-index:20;background:#ffffffd1;flex-shrink:0;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.crumbs{align-items:center;gap:7px;min-width:0;display:flex}.crumbs .group{color:var(--faint);font-size:12.5px}.crumbs .sep{color:var(--border-strong)}.crumbs .current{letter-spacing:-.01em;font-size:14px;font-weight:600}.topbar-spacer{flex:1}.topbar-search{border:1px solid var(--border);background:var(--surface-2);min-width:200px;height:32px;color:var(--faint);transition:border-color .14s var(--ease), background .14s var(--ease);border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:12.5px;display:flex}.topbar-search:hover{border-color:var(--border-strong);background:var(--surface)}.topbar-search kbd{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-bottom-width:2px;border-radius:4px;margin-left:auto;padding:0 5px;font-size:11px}.user-menu{position:relative}.user-menu>summary{cursor:pointer;transition:background .14s var(--ease), border-color .14s var(--ease);border:1px solid #0000;border-radius:999px;align-items:center;gap:9px;padding:4px 8px 4px 4px;list-style:none;display:flex}.user-menu>summary::-webkit-details-marker{display:none}.user-menu>summary:hover,.user-menu[open]>summary{background:var(--surface-2);border-color:var(--border)}.user-menu .who{line-height:1.25;display:none}.user-menu .who strong{font-size:12.5px;font-weight:600;display:block}.user-menu .who small{color:var(--faint);font-size:10.5px}.user-menu .chevron{color:var(--faint);font-size:10px}@media (min-width:900px){.user-menu .who{display:block}}.user-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:244px;box-shadow:var(--shadow-lg);animation:slide-down .16s var(--ease) both;z-index:30;padding:6px;position:absolute;top:calc(100% + 8px);right:0}.user-panel .head{border-bottom:1px solid var(--border);margin-bottom:6px;padding:10px 10px 12px}.user-panel .head strong{font-size:13px;display:block}.user-panel .head small{color:var(--muted);word-break:break-all;font-size:11.5px}.user-panel a,.user-panel button{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text);transition:background .12s var(--ease);background:0 0;border:none;padding:7px 10px;font-size:13px;display:block}.user-panel a:hover,.user-panel button:hover{background:var(--surface-2);text-decoration:none}.user-panel button.signout{color:var(--danger)}.user-panel button.signout:hover{background:var(--danger-soft)}.user-panel .tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.main{width:100%;min-width:0;max-width:1640px;animation:rise .28s var(--ease) both;flex:1;padding:24px 28px 72px}.main>*+*{margin-top:20px}.main>.section+.section,.main>*+.section{margin-top:34px}.main>.page-header+*{margin-top:0}.section>*+*{margin-top:12px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header>div:first-child{flex:320px;min-width:0}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.page-hint{color:var(--muted);margin:0;font-size:13px}.page-hint.empty{color:var(--faint);padding:20px 0}.section{animation:rise .3s var(--ease) both}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-head>div:first-child{flex:240px;min-width:0}.cards{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .18s var(--ease), transform .18s var(--ease);animation:rise .32s var(--ease) both;min-width:0;padding:13px 15px;overflow:hidden}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.cards .card:first-child{animation-delay:20ms}.cards .card:nth-child(2){animation-delay:50ms}.cards .card:nth-child(3){animation-delay:80ms}.cards .card:nth-child(4){animation-delay:.11s}.cards .card:nth-child(5){animation-delay:.14s}.cards .card:nth-child(6){animation-delay:.17s}.card .value{letter-spacing:-.028em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(18px,1.55vw + 8px,23px);font-weight:650;line-height:1.25}.card .label{color:var(--muted);overflow-wrap:anywhere;margin-top:2px;font-size:12px}.card .hint{color:var(--faint);overflow-wrap:anywhere;margin-top:7px;font-size:11px}.tone-positive{color:var(--positive)}.tone-warning{color:var(--warning)}.tone-danger{color:var(--danger)}.tone-info{color:var(--info)}.tone-neutral{color:var(--text)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);animation:rise .32s var(--ease) both;min-width:0;padding:16px 18px}.panel h2{margin-top:0}.panel>*+*{margin-top:10px}.panel>h2+.page-hint{margin-top:2px}.panel>.page-hint+*{margin-top:12px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;display:grid}.grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;display:grid}.grid-2>*,.grid-3>*{min-width:0}.grid-3>*{overflow-wrap:anywhere}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);animation:rise .32s var(--ease) both;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle;padding:10px 14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.055em;background:var(--surface-2);z-index:1;font-size:10.5px;font-weight:600;position:sticky;top:0}tbody tr{transition:background .12s var(--ease)}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}td.wrap{white-space:normal;min-width:260px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.panel table{font-size:12.5px}.panel th,.panel td{padding:7px 12px}.panel th:first-child,.panel td:first-child{padding-left:0}.panel th:last-child,.panel td:last-child{padding-right:0}.panel th{background:0 0}.panel td.wrap,.panel th.wrap{min-width:0}.panel{overflow-x:auto}.data-table{flex-direction:column;gap:10px;display:flex}.table-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.table-search{flex:0 300px;min-width:220px}.table-count{color:var(--faint);white-space:nowrap;margin-left:auto;font-size:12px}th .sorter{width:100%;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:0;display:flex}th.num .sorter{justify-content:flex-end}th .sorter:hover{color:var(--accent-text)}th .sorter .arrow{color:var(--border-strong);font-size:10px}th .sorter.sorted{color:var(--accent-text)}th .sorter.sorted .arrow{color:var(--accent)}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:550;line-height:17px;display:inline-block}.badge.neutral{color:var(--muted);background:var(--surface-2);border-color:var(--border)}.badge.positive{color:var(--positive);background:var(--positive-soft);border-color:#bfe8cd}.badge.warning{color:var(--warning);background:var(--warning-soft);border-color:#f5dfb0}.badge.danger{color:var(--danger);background:var(--danger-soft);border-color:#f6c8d3}.badge.info{color:var(--info);background:var(--info-soft);border-color:#c2e2f7}.badge+.badge{margin-left:4px}.chips{flex-wrap:wrap;gap:4px;display:inline-flex}.chip{text-overflow:ellipsis;white-space:nowrap;background:var(--surface-2);border:1px solid var(--border);max-width:100%;color:var(--muted);border-radius:5px;padding:0 6px;font-size:11px;line-height:18px;overflow:hidden}.bar+small{margin-top:3px;font-size:11px;line-height:1.3;display:block}.bar{background:var(--surface-3);border-radius:999px;width:100%;min-width:84px;height:6px;overflow:hidden}.bar-fill{background:var(--accent);transform-origin:0;height:100%;animation:grow-x .5s var(--ease) both;border-radius:999px;display:block}.bar-fill.tone-positive{background:var(--positive)}.bar-fill.tone-warning{background:var(--warning)}.bar-fill.tone-danger{background:var(--danger)}.bar-fill.tone-neutral{background:var(--border-strong)}.person{align-items:center;gap:8px;min-width:0;display:inline-flex}.person>span{overflow-wrap:anywhere;min-width:0}.person small{color:var(--faint);font-size:11px;display:block}.avatar{background:var(--accent-soft);width:27px;height:27px;color:var(--accent-text);letter-spacing:.03em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:650;display:inline-flex}.avatar-stack{display:inline-flex}.avatar-stack .avatar{border:2px solid var(--surface);transition:transform .14s var(--ease);margin-left:-9px}.avatar-stack .avatar:first-child{margin-left:0}.avatar-stack .avatar:hover{z-index:1;transform:translateY(-2px)}.board{grid-auto-columns:minmax(238px,1fr);grid-auto-flow:column;align-items:start;gap:12px;padding-bottom:10px;display:grid;overflow-x:auto}.board-column{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);transition:background .16s var(--ease), border-color .16s var(--ease);padding:10px}.board-column h3{justify-content:space-between;margin-bottom:9px;display:flex}.board-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow .16s var(--ease), transform .16s var(--ease), opacity .16s var(--ease);animation:rise .3s var(--ease) both;overflow-wrap:anywhere;border-radius:8px;margin-bottom:7px;padding:9px 11px;font-size:12px}.board-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.board-card .key{color:var(--faint);font-family:ui-monospace,SFMono-Regular,monospace;font-size:10.5px}.board-card .row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-top:7px;display:flex}.board-card .row>span{min-width:0}.board-card.draggable{cursor:grab}.board-card.draggable:active{cursor:grabbing}.board-card.dragging{opacity:.35;transform:rotate(-1deg)}.board-column.drop-target{border-color:var(--accent);background:var(--accent-soft)}.card-move{gap:3px;display:inline-flex}.card-move button{padding:0 6px;font-size:12px;line-height:18px}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--border);animation:rise .3s var(--ease) both;padding:0 0 15px 16px;position:relative}.timeline li:before{content:"";background:var(--surface);border:2px solid var(--border-strong);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:-5px}.timeline li:last-child{border-left-color:#0000;padding-bottom:0}.timeline li>div{overflow-wrap:anywhere}.timeline .when{color:var(--faint);font-size:11.5px}.chart{align-items:flex-end;gap:10px;height:140px;padding-top:10px;display:flex}.chart-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:5px;height:100%;display:flex}.chart-stack{flex-direction:column;justify-content:flex-end;gap:2px;width:100%;height:100%;display:flex}.chart-bar{background:var(--accent);transform-origin:bottom;width:100%;animation:grow-y .45s var(--ease) both;border-radius:4px 4px 0 0}.chart-bar.secondary{background:#a5b4fc;border-radius:0 0 4px 4px}@keyframes grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.chart-col:nth-child(2) .chart-bar{animation-delay:40ms}.chart-col:nth-child(3) .chart-bar{animation-delay:80ms}.chart-col:nth-child(4) .chart-bar{animation-delay:.12s}.chart-col:nth-child(5) .chart-bar{animation-delay:.16s}.chart-col:nth-child(6) .chart-bar{animation-delay:.2s}.chart-label{color:var(--faint);font-size:11px}.legend{color:var(--muted);gap:14px;margin-top:10px;font-size:11.5px;display:flex}.legend span:before{content:"";background:var(--accent);border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.legend span.secondary:before{background:#a5b4fc}.split{flex-direction:column;gap:9px;display:flex}.split-row{grid-template-columns:minmax(96px,140px) 1fr auto;align-items:center;gap:12px;display:grid}.split-row>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.split-row .value{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:12px}input,select,button,textarea{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .14s var(--ease), box-shadow .14s var(--ease), background .14s var(--ease);padding:6px 10px}input::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}button{cursor:pointer;font-size:13px}button:hover{border-color:var(--accent);color:var(--accent-text)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button:disabled:hover{border-color:var(--border-strong);color:var(--text)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:550}button.primary:hover{background:var(--accent-text);color:#fff}button.wide{width:100%}button.danger{color:var(--danger)}button.danger:hover{border-color:var(--danger);color:var(--danger)}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.row-actions form{display:inline}.reset-cell{flex-direction:column;align-items:flex-end;gap:5px;display:inline-flex}.reset-result{animation:rise .24s var(--ease) both;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.reset-result .secret{margin-left:0}.notice{border:1px solid var(--border);border-left:3px solid var(--warning);background:var(--warning-soft);border-radius:var(--radius);animation:rise .26s var(--ease) both;overflow-wrap:anywhere;padding:11px 15px}.notice.error{border-left-color:var(--danger);background:var(--danger-soft)}.sign-in{background:var(--surface);border:1px solid var(--border);max-width:360px;box-shadow:var(--shadow-md);animation:rise .3s var(--ease) both;border-radius:14px;margin:11vh auto;padding:28px 26px 26px}.sign-in label{color:var(--muted);margin-bottom:12px;font-size:12.5px;display:block}.sign-in input{width:100%;color:var(--text);margin-top:5px}.sign-in button{width:100%;margin-top:10px}.secret{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);letter-spacing:.07em;-webkit-user-select:all;user-select:all;animation:pulse-soft 1.6s var(--ease) 2;margin-left:8px;padding:3px 9px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:14px;display:inline-block}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.attention-urgent{color:var(--danger);font-weight:550}.attention-watch{color:var(--warning);font-weight:550}@keyframes drawer-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.drawer-root{z-index:60;position:fixed;inset:0}.drawer-backdrop{animation:fade .16s var(--ease) both;background:#0f172a47;position:absolute;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--border);width:min(460px,100%);height:100%;box-shadow:var(--shadow-lg);animation:drawer-in .2s var(--ease) both;flex-direction:column;display:flex;position:absolute;top:0;right:0}.drawer-head{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.drawer-head>div:first-child{flex:1;min-width:0}.drawer-head h2{overflow-wrap:anywhere;font-size:17px}.drawer-badges{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.drawer-close{color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:15px}.drawer-close:hover{background:var(--surface-2);color:var(--text)}.drawer-body{flex:1;padding:16px 20px 32px;overflow-y:auto}.drawer-field+.drawer-field{margin-top:18px}.drawer-field h3{margin-bottom:5px}.drawer-field>div{overflow-wrap:anywhere}.drawer-field small{margin-top:4px;display:block}.drawer-list{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.drawer-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding-bottom:7px;font-size:12.5px;display:flex}.drawer-list li:last-child{border-bottom:none;padding-bottom:0}.drawer-list li>span:first-child{overflow-wrap:anywhere;min-width:0}.peek{font:inherit;color:var(--text);text-align:left;cursor:pointer;border:none;border-bottom:1px dotted var(--border-strong);overflow-wrap:anywhere;background:0 0;border-radius:0;max-width:100%;padding:0}.peek:hover{color:var(--accent-text);border-bottom-color:var(--accent)}.peek:active{transform:none}@media (max-width:860px){.shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;height:auto;position:static}.brand{position:static}.nav{flex-direction:row;gap:10px;padding-bottom:10px;overflow-x:auto}.nav-group{flex-direction:row;align-items:center;gap:2px}.nav-group-title{display:none}.main{padding:18px 16px 56px}.topbar{padding:0 16px}.topbar-search{display:none}.drawer{border-left:none;width:100%}}
