@import "https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700;800;900&family=Geist+Mono:wght@400;500;600&display=swap";
:root{--bg-0:#fff;--bg-1:#fafafa;--bg-2:#f4f4f4;--bg-3:#ebebeb;--fg-0:#0a0a0a;--fg-1:#262626;--fg-2:#525252;--fg-3:#a3a3a3;--fg-4:#d4d4d4;--border-0:#e5e5e5;--border-1:#d4d4d4;--border-2:#a3a3a3;--red-50:#fff1f0;--red-100:#ffdedb;--red-200:#ffb8b2;--red-300:#ff8b82;--red-400:#ff5c50;--red-500:#ff3b30;--red-600:#e5291f;--red-700:#b31d15;--red-800:#80140f;--red-900:#4d0c08;--success:#0a7a3b;--success-bg:#e8f5ec;--warning:#8a5a00;--warning-bg:#fff4d6;--danger:var(--red-600);--danger-bg:var(--red-50);--info:#1f4fa3;--info-bg:#e8eef9;--status-backlog:#a3a3a3;--status-todo:#525252;--status-progress:#1f4fa3;--status-review:#8a5a00;--status-done:#0a7a3b;--status-blocked:var(--red-500);--priority-urgent:var(--red-500);--priority-high:var(--red-700);--priority-medium:#525252;--priority-low:#a3a3a3;--ai-tint:#fff1f0;--ai-border:var(--red-200);--ai-fg:var(--red-700);--shadow-sm:0 1px 0 #0000000a;--shadow-md:0 2px 6px #0000000f, 0 0 0 1px #0000000a;--shadow-lg:0 8px 24px #00000014, 0 0 0 1px #0000000a;--shadow-focus:0 0 0 3px #ff3b3040;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--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;--space-20:80px;--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-display:"Geist", ui-sans-serif, system-ui, sans-serif;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--text-3xl:32px;--text-4xl:44px;--text-5xl:64px;--text-6xl:88px;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.45;--leading-relaxed:1.6;--track-tight:-.03em;--track-snug:-.015em;--track-normal:0;--track-wide:.04em;--track-caps:.08em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-black:800;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur-med:.2s;--dur-slow:.32s}:root[data-theme=dark],.theme-dark{--bg-0:#0a0a0a;--bg-1:#121212;--bg-2:#1c1c1c;--bg-3:#262626;--fg-0:#fafafa;--fg-1:#e5e5e5;--fg-2:#a3a3a3;--fg-3:#737373;--fg-4:#404040;--border-0:#262626;--border-1:#333;--border-2:#525252;--red-50:#2a0908;--red-100:#4d0c08;--red-200:#80140f;--red-300:#b31d15;--red-400:#e5291f;--red-500:#ff3b30;--red-600:#ff5c50;--red-700:#ff8b82;--red-800:#ffb8b2;--red-900:#ffdedb;--success:#2ecc71;--success-bg:#0d2a18;--warning:#e5a83b;--warning-bg:#2a1f08;--danger:var(--red-500);--danger-bg:#2a0908;--info:#5b8def;--info-bg:#0d1a2a;--status-backlog:#737373;--status-todo:#a3a3a3;--status-progress:#5b8def;--status-review:#e5a83b;--status-done:#2ecc71;--status-blocked:var(--red-500);--priority-urgent:var(--red-500);--priority-high:var(--red-400);--priority-medium:#a3a3a3;--priority-low:#737373;--ai-tint:#1a0807;--ai-border:#4d0c08;--ai-fg:#ff8b82;--shadow-sm:0 1px 0 #0006;--shadow-md:0 2px 6px #0006, 0 0 0 1px #ffffff0a;--shadow-lg:0 8px 24px #00000080, 0 0 0 1px #ffffff0a;--shadow-focus:0 0 0 3px #ff3b3066}*{box-sizing:border-box}html,body{background:var(--bg-0);color:var(--fg-0);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}.t-display{font-family:var(--font-display);font-size:var(--text-6xl);line-height:var(--leading-tight);letter-spacing:var(--track-tight);font-weight:var(--weight-black);color:var(--fg-0)}.t-display-sm{font-family:var(--font-display);font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--track-tight);font-weight:var(--weight-bold);color:var(--fg-0)}.t-h1{font-size:var(--text-3xl);line-height:var(--leading-tight);letter-spacing:var(--track-snug);font-weight:var(--weight-bold);color:var(--fg-0)}.t-h2{font-size:var(--text-2xl);line-height:var(--leading-snug);letter-spacing:var(--track-snug);font-weight:var(--weight-semibold);color:var(--fg-0)}.t-h3{font-size:var(--text-xl);line-height:var(--leading-snug);letter-spacing:var(--track-snug);font-weight:var(--weight-semibold);color:var(--fg-0)}.t-h4{font-size:var(--text-lg);line-height:var(--leading-snug);font-weight:var(--weight-semibold);color:var(--fg-0)}.t-body{font-size:var(--text-base);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--fg-0)}.t-body-lg{font-size:var(--text-md);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--fg-0)}.t-body-sm{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--fg-1)}.t-label{font-size:var(--text-sm);line-height:1;font-weight:var(--weight-medium);color:var(--fg-0)}.t-meta{font-size:var(--text-xs);color:var(--fg-2);line-height:1;font-weight:var(--weight-regular)}.t-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--fg-2)}.t-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--fg-1);font-variant-numeric:tabular-nums}.t-code{font-family:var(--font-mono);background:var(--bg-2);border-radius:var(--radius-xs);color:var(--fg-0);padding:.1em .35em;font-size:.92em}.t-quote{font-size:var(--text-2xl);line-height:var(--leading-snug);letter-spacing:var(--track-snug);font-weight:var(--weight-medium);color:var(--fg-0);font-style:italic}.fg-0{color:var(--fg-0)}.fg-1{color:var(--fg-1)}.fg-2{color:var(--fg-2)}.fg-3{color:var(--fg-3)}.fg-red{color:var(--red-500)}.fg-danger{color:var(--danger)}a{color:inherit;transition:color var(--dur-fast) var(--ease-out);text-decoration:none}a.t-link,.description a,.note-block a,.t-body a,.t-body-lg a,.t-quote a{text-underline-offset:3px;color:var(--fg-0);text-decoration:underline;text-decoration-thickness:1px}a.t-link:hover,.description a:hover,.note-block a:hover,.t-body a:hover,.t-body-lg a:hover,.t-quote a:hover{color:var(--red-500)}a.link-red{color:var(--red-600);text-decoration:none}a.link-red:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--red-500);outline-offset:2px;border-radius:var(--radius-xs)}html,body{background:var(--bg-1);color:var(--fg-0);font-family:var(--font-sans);font-size:var(--text-base);min-height:100vh;margin:0;padding:0}.app{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--bg-1);border-right:1px solid var(--border-0);flex-direction:column;gap:4px;padding:16px 12px;display:flex}.sidebar-header{border-bottom:1px solid var(--border-0);align-items:center;gap:8px;margin-bottom:12px;padding:4px 8px 16px;display:flex}.sidebar-logo{background:var(--fg-0);border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;display:flex;position:relative}.sidebar-logo:before{content:"";background:var(--red-500);width:14px;height:3px;position:absolute;top:5px;left:5px}.sidebar-logo:after{content:"";background:#fff;width:10px;height:3px;position:absolute;top:11px;left:5px;box-shadow:0 6px 0 -4px #fff,0 6px #fff}.sidebar-brand{letter-spacing:-.02em;font-size:14px;font-weight:700}.sidebar-brand .dot{color:var(--red-500)}.sidebar-section{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);padding:12px 8px 4px;font-size:10px}.sidebar-item{border-radius:var(--radius-sm);color:var(--fg-1);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);align-items:center;gap:10px;padding:6px 8px;font-size:13px;display:flex}.sidebar-item:hover{background:var(--bg-2);color:var(--fg-0)}.sidebar-item.active{background:var(--bg-2);color:var(--fg-0);font-weight:500}.sidebar-item .count{font-family:var(--font-mono);color:var(--fg-3);margin-left:auto;font-size:10px}.sidebar-item i[data-lucide]{width:15px;height:15px;color:var(--fg-2)}.sidebar-item.active i[data-lucide]{color:var(--fg-0)}.main{background:var(--bg-0);flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border-0);background:var(--bg-0);align-items:center;gap:16px;height:48px;padding:0 20px;display:flex}.breadcrumb{color:var(--fg-2);align-items:center;gap:6px;font-size:13px;display:flex}.breadcrumb .sep{color:var(--fg-4)}.breadcrumb .current{color:var(--fg-0);font-weight:500}.btn{border-radius:var(--radius-sm);font-family:var(--font-sans);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);color:var(--fg-0);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:500;display:inline-flex}.btn i[data-lucide]{width:14px;height:14px}.btn-primary{background:var(--fg-0);color:var(--bg-0)}.btn-primary:hover{opacity:.9}.btn-red{background:var(--red-500);color:#fff}.btn-red:hover{background:var(--red-600)}.btn-secondary{background:var(--bg-0);color:var(--fg-0);border-color:var(--border-1)}.btn-secondary:hover,.btn-ghost:hover{background:var(--bg-2)}.btn-icon{padding:6px}.ico-btn{color:var(--fg-2);cursor:pointer;opacity:.7;transition:opacity var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px;display:inline-flex}.ico-btn:hover{opacity:1;background:var(--bg-2);color:var(--fg-0)}.chip{border-radius:var(--radius-pill);border:1px solid var(--border-0);background:var(--bg-1);color:var(--fg-1);align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:500;line-height:1;display:inline-flex}.chip .dot{border-radius:50%;width:6px;height:6px;display:inline-block}.chip-red{background:var(--red-50);color:var(--red-700);border-color:var(--red-100)}.chip-mono{font-family:var(--font-mono);font-size:10px}.avatar{border:1px solid var(--border-1);background:var(--bg-2);width:24px;height:24px;color:var(--fg-1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex}.avatar.sm{width:20px;height:20px;font-size:9px}.avatar.ai{background:var(--fg-0);color:var(--red-500);border-color:var(--fg-0)}.avatar.ai:before{content:"★";font-size:12px}.stack{display:flex}.stack .avatar{border:2px solid var(--bg-0);margin-left:-6px}.stack .avatar:first-child{margin-left:0}.board{flex:1;gap:12px;padding:16px 20px;display:flex;overflow-x:auto}.column{flex-direction:column;flex:0 0 260px;gap:8px;display:flex}.column-header{align-items:center;gap:8px;padding:4px 2px 8px;display:flex}.column-header .title{letter-spacing:-.01em;font-size:12px;font-weight:600}.column-header .count{font-family:var(--font-mono);color:var(--fg-3);font-size:10px}.column-header .dot{border-radius:50%;width:8px;height:8px}.column-body{flex-direction:column;gap:6px;display:flex}.kcard{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.kcard:hover{border-color:var(--border-1);box-shadow:var(--shadow-sm)}.kcard.selected{border-left:2px solid var(--red-500)}.kcard .id{font-family:var(--font-mono);color:var(--fg-3);font-size:10px}.kcard .title{color:var(--fg-0);font-size:13px;font-weight:500;line-height:1.35}.kcard .meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.kcard .tags{flex-wrap:wrap;gap:4px;display:flex}.kcard .tag{border-radius:var(--radius-xs);border:1px solid var(--border-0);background:var(--bg-1);color:var(--fg-1);padding:1px 6px;font-size:10px;font-weight:500}.kcard .tag.red{background:var(--red-50);color:var(--red-700);border-color:var(--red-100)}.kcard .due{font-family:var(--font-mono);color:var(--fg-2);font-size:10px}.kcard .due.overdue{color:var(--red-600)}.kcard.rich{padding:12px}.kcard.rich .desc{color:var(--fg-2);font-size:12px;line-height:1.4}.kcard.rich .bar{background:var(--bg-2);border-radius:2px;height:3px;overflow:hidden}.kcard.rich .bar>div{background:var(--fg-0);height:100%}.krow{border-bottom:1px solid var(--border-0);cursor:pointer;grid-template-columns:60px 1fr auto auto auto;align-items:center;gap:12px;padding:6px 10px;font-size:13px;display:grid}.krow:hover{background:var(--bg-1)}.krow .id{font-family:var(--font-mono);color:var(--fg-3);font-size:11px}.krow .title{font-weight:500}.krow .due{font-family:var(--font-mono);color:var(--fg-2);font-size:11px}.input{border:1px solid var(--border-1);border-radius:var(--radius-sm);font-family:var(--font-sans);background:var(--bg-0);color:var(--fg-0);padding:6px 10px;font-size:13px}.input:focus{border-color:var(--red-500);box-shadow:var(--shadow-focus);outline:none}.input::placeholder{color:var(--fg-3)}.search{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius-sm);color:var(--fg-2);align-items:center;gap:8px;min-width:240px;padding:5px 10px;font-size:12px;display:flex}.search i[data-lucide]{width:13px;height:13px}.search .kbd{font-family:var(--font-mono);color:var(--fg-3);border:1px solid var(--border-0);border-radius:3px;margin-left:auto;padding:1px 4px;font-size:10px}.page-header{border-bottom:1px solid var(--border-0);flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 20px 12px;display:flex}.page-header .eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);margin-bottom:4px;font-size:10px}.page-header h1{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700}.page-header .meta{color:var(--fg-2);font-size:12px;font-family:var(--font-mono);margin-top:4px}.page-header-actions{gap:6px;display:flex}.task-detail{flex:1;grid-template-columns:1fr 280px;min-height:0;display:grid}.task-detail .content{padding:24px 28px;overflow-y:auto}.task-detail .aside{border-left:1px solid var(--border-0);background:var(--bg-1);flex-direction:column;gap:16px;padding:20px;display:flex}.task-detail h2{letter-spacing:-.02em;margin:0 0 12px;font-size:22px;font-weight:600}.task-detail .description{color:var(--fg-1);font-size:14px;line-height:1.55}.task-detail .description p{margin:0 0 10px}.task-detail .description code{font-family:var(--font-mono);background:var(--bg-2);border-radius:2px;padding:1px 4px;font-size:12px}.task-detail .aside .label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);margin-bottom:6px;font-size:10px}.task-detail .aside .field{border-bottom:1px solid var(--border-0);flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.task-detail .aside .field:last-child{border-bottom:none}.activity{border-top:1px solid var(--border-0);flex-direction:column;gap:12px;margin-top:24px;padding-top:20px;display:flex}.activity-item{color:var(--fg-1);gap:10px;font-size:13px;display:flex}.activity-item .who{color:var(--fg-0);font-weight:500}.activity-item .when{font-family:var(--font-mono);color:var(--fg-3);margin-left:auto;font-size:11px}.ai-tint{background:var(--ai-tint);border:1px solid var(--ai-border);border-radius:var(--radius-md);color:var(--ai-fg);padding:10px 12px;font-size:12px}.team-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:20px;display:grid}.team-card{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:16px;display:flex}.team-card .avatar{width:40px;height:40px;font-size:14px}.team-card .name{font-size:14px;font-weight:600}.team-card .role{color:var(--fg-2);font-size:12px}.team-card .bar{background:var(--bg-2);border-radius:2px;height:3px;overflow:hidden}.team-card .bar>div{background:var(--fg-0);height:100%}.team-card .stats{color:var(--fg-2);font-size:11px;font-family:var(--font-mono);gap:12px;display:flex}.dashboard{grid-template-columns:repeat(12,1fr);gap:12px;padding:20px;display:grid}.stat{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);flex-direction:column;grid-column:span 3;gap:4px;padding:14px 16px;display:flex}.stat .n{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.stat .label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-size:10px}.stat .delta{font-family:var(--font-mono);color:var(--fg-2);font-size:11px}.stat .delta.up{color:var(--success)}.stat .delta.down{color:var(--red-600)}.widget{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);padding:16px}.widget-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.widget-header h3{margin:0;font-size:13px;font-weight:600}.widget-header .meta{font-family:var(--font-mono);color:var(--fg-3);font-size:11px}.toolbar{border-bottom:1px solid var(--border-0);align-items:center;gap:8px;padding:10px 20px;display:flex}.toolbar .spacer{flex:1}.app-shell{background:var(--bg-1);grid-template-rows:100vh;grid-template-columns:220px 1fr;height:100vh;display:grid}.app-shell .main{flex-direction:column;min-height:0;display:flex;overflow:hidden}.app-shell .sidebar{gap:2px;padding:12px 8px}.app-shell .sidebar-header{margin-bottom:8px;padding:4px 6px 12px}.app-shell .sidebar-section{padding:10px 6px 4px;font-size:9px}.app-shell .sidebar-item{padding:5px 6px;font-size:12.5px}.app-shell .sidebar-item i[data-lucide]{width:14px;height:14px}.app-shell.mobile{grid-template-columns:1fr}.app-shell.mobile .sidebar{display:none}.app-shell.mobile .topbar{flex-shrink:0;align-items:center;gap:8px;height:44px;min-height:44px;padding:0 12px}.app-shell.mobile .topbar .btn,.app-shell.mobile .topbar .btn-icon{justify-content:center;align-items:center;min-width:32px;height:32px;padding:0 6px;display:inline-flex}.app-shell.mobile .topbar .search{display:none}.app-shell.mobile .topbar .breadcrumb{font-size:12px}.app-shell.mobile .main{-webkit-overflow-scrolling:touch;min-height:0;padding-bottom:56px;overflow-y:auto}.app-shell.mobile .page{flex:none;overflow:visible}.app-shell.mobile .page-header{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 12px 10px}.app-shell.mobile .page-header h1{font-size:20px}.app-shell.mobile .page-header-actions{flex-wrap:wrap;width:100%}.app-shell.mobile .page-header-actions .btn{flex:auto}.bottom-tabs{background:var(--bg-0);border-top:1px solid var(--border-0);z-index:10;height:56px;display:flex;position:absolute;bottom:0;left:0;right:0}.bottom-tabs .tab{cursor:pointer;color:var(--fg-2);font-size:9.5px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;display:flex}.bottom-tabs .tab i[data-lucide]{width:18px;height:18px}.bottom-tabs .tab.active{color:var(--fg-0)}.bottom-tabs .tab.active i[data-lucide]{color:var(--red-500)}.density-compact{--row-pad:4px 8px;--gap:6px;--card-pad:8px 10px;--section-pad:12px 16px;--card-gap:4px}.density-cozy{--row-pad:6px 10px;--gap:10px;--card-pad:10px 12px;--section-pad:16px 20px;--card-gap:6px}.density-roomy{--row-pad:10px 12px;--gap:14px;--card-pad:14px 16px;--section-pad:20px 24px;--card-gap:10px}.density-compact .kcard{padding:var(--card-pad);gap:6px}.density-compact .kcard .title{font-size:12px}.density-compact .kcard .id{font-size:9px}.density-compact .krow{padding:var(--row-pad);font-size:12px}.density-compact .dashboard{gap:8px;padding:12px}.density-compact .stat{padding:10px 12px}.density-compact .stat .n{font-size:22px}.density-compact .widget{padding:12px}.density-compact .page-header{padding:14px 16px 10px}.density-compact .page-header h1{font-size:18px}.density-compact .toolbar{gap:6px;padding:6px 12px}.density-compact .board{gap:8px;padding:10px 12px}.density-compact .column{flex:0 0 240px}.density-compact .team-grid,.density-compact .team-card{gap:8px;padding:12px}.density-roomy .dashboard{gap:16px;padding:28px}.density-roomy .stat{padding:18px 20px}.density-roomy .stat .n{font-size:32px}.page{padding:var(--section-pad,16px 20px);gap:var(--gap,10px);flex-direction:column;flex:1;min-width:0;display:flex;overflow-y:auto}.project-page-content{--section-pad:16px 20px;--gap:10px}.project-detail-header{align-items:stretch;min-height:104px;padding:18px 20px 14px}.project-header-main{flex-direction:column;justify-content:flex-end;min-width:0;display:flex}.project-header-eyebrow{align-items:center;gap:6px;min-height:20px;margin-bottom:4px;display:flex}.project-header-back{color:var(--fg-2);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;text-decoration:none;display:inline-flex}.project-header-divider{color:var(--fg-4)}.project-header-title-row{align-items:center;gap:10px;min-height:28px;display:flex}.project-header-dot{border-radius:2px;flex-shrink:0;width:10px;height:10px}.project-header-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:28px;overflow:hidden}.project-header-health{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-left:4px}.project-header-meta{text-overflow:ellipsis;white-space:nowrap;min-height:16px;overflow:hidden}.project-header-progress{max-width:320px;margin-top:10px}.project-header-progress-track{background:var(--bg-2);border-radius:4px;height:4px;overflow:hidden}.project-header-progress-fill{background:var(--fg-0);height:100%}.project-header-actions{flex-shrink:0;align-self:flex-end}.density-compact .project-detail-header{min-height:104px;padding:18px 20px 14px}.density-compact .project-detail-header h1{font-size:22px}.app-shell.mobile .project-detail-header{align-items:flex-start;gap:10px;min-height:auto;padding:14px 12px 10px}.app-shell.mobile .project-header-title{font-size:20px}.app-shell.mobile .project-header-meta{white-space:normal}.app-shell.mobile .project-header-actions{flex-wrap:wrap;width:100%}.app-shell.mobile .project-header-actions .btn{flex:auto}.project-tab-summary{flex-shrink:0;min-height:64px}.project-tab-summary>div{justify-content:center;min-height:44px}.project-tab-strip{flex-shrink:0;align-items:center;height:44px;padding:0 12px}.project-tab-strip .tab{align-items:center;height:32px;padding:6px 12px;font-size:13px;display:inline-flex}.project-finance-overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:start;gap:10px;display:grid}@media (max-width:768px){.project-finance-overview-grid{grid-template-columns:1fr}}.tbl{border:1px solid var(--border-0);border-radius:var(--radius-md);background:var(--bg-0);border-collapse:collapse;width:100%;font-size:12.5px;overflow:hidden}.tbl thead th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);text-align:left;background:var(--bg-1);border-bottom:1px solid var(--border-0);padding:8px 12px;font-size:10px;font-weight:500}.tbl tbody td{border-bottom:1px solid var(--border-0);vertical-align:middle;padding:8px 12px}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:var(--bg-1);cursor:pointer}.tbl .mono{font-family:var(--font-mono);color:var(--fg-2);font-size:11px}.tbl .strong{color:var(--fg-0);font-weight:600}.table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.table-scroll>.tbl{min-width:680px}.table-scroll .tbl{table-layout:fixed}.table-scroll .tbl th,.table-scroll .tbl td{white-space:nowrap}.finance-table-title,.finance-table-title .strong,.finance-table-title .muted{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.finance-table-subtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:10.5px;display:block;overflow:hidden}.pill{border-radius:var(--radius-xs);border:1px solid var(--border-0);background:var(--bg-1);color:var(--fg-1);font-size:10.5px;font-weight:500;line-height:1.4;font-family:var(--font-sans);align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.pill .dot{border-radius:50%;width:5px;height:5px;display:inline-block}.pill.red{background:var(--red-50);color:var(--red-700);border-color:var(--red-100)}.pill.green{background:var(--success-bg);color:var(--success);border-color:#0a7a3b2e}.pill.amber{background:var(--warning-bg);color:var(--warning);border-color:#8a5a002e}.pill.blue{background:var(--info-bg);color:var(--info);border-color:#1f4fa32e}.pill.mono{font-family:var(--font-mono)}.section{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.section-head{border-bottom:1px solid var(--border-0);align-items:center;gap:8px;padding:10px 12px;display:flex}.section-head h3{margin:0;font-size:12.5px;font-weight:600}.section-head .meta{font-family:var(--font-mono);color:var(--fg-3);font-size:10.5px}.section-head .spacer{flex:1}.section-body{padding:0}.section-body.pad{padding:12px}.timeline{grid-template-columns:160px 1fr;gap:0;font-size:12px;display:grid}.tl-row{display:contents}.tl-label{border-bottom:1px solid var(--border-0);border-right:1px solid var(--border-0);background:var(--bg-1);padding:8px 12px;font-size:12px;font-weight:500}.tl-track{border-bottom:1px solid var(--border-0);background-image:linear-gradient(to right, var(--border-0) 1px, transparent 1px);background-size:8.33333% 100%;height:32px;position:relative}.tl-bar{background:var(--fg-0);color:var(--bg-0);border-radius:var(--radius-xs);font-size:10px;font-family:var(--font-mono);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:6px;padding:0 8px;display:flex;position:absolute;top:6px;bottom:6px;overflow:hidden}.tl-bar.red{background:var(--red-500);color:#fff}.tl-bar.grey{background:var(--bg-3);color:var(--fg-0)}.tl-bar.outline{background:var(--bg-0);color:var(--fg-0);border:1px solid var(--border-1)}.tl-bar .dot{opacity:.6;background:currentColor;border-radius:50%;width:5px;height:5px}.tl-header{border-bottom:1px solid var(--border-0);background:var(--bg-1);grid-template-columns:160px 1fr;display:grid}.tl-header .blank{border-right:1px solid var(--border-0);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);padding:6px 12px;font-size:10px}.tl-header .months{grid-template-columns:repeat(12,1fr);display:grid}.tl-header .month{text-align:center;font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--border-0);padding:6px 0;font-size:10px}.tl-header .month:last-child{border-right:none}.feed{flex-direction:column;display:flex}.feed-row{border-bottom:1px solid var(--border-0);color:var(--fg-1);align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.feed-row:last-child{border-bottom:none}.feed-row .who{color:var(--fg-0);font-weight:600}.feed-row .when{font-family:var(--font-mono);color:var(--fg-3);margin-left:auto;font-size:10.5px}.feed-row .urgent-dot{background:var(--red-500);border-radius:50%;width:6px;height:6px}.feed-row.unread{background:var(--bg-1)}.sheet-overlay{z-index:100;background:#00000080;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (min-width:768px){.sheet-overlay{align-items:center}}.sheet{background:var(--bg-0);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:720px;max-height:90vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}@media (min-width:768px){.sheet{border-radius:var(--radius-lg);max-height:84vh}}.form-grid{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.field-group{flex-direction:column;gap:4px;display:flex}.field-group label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);font-size:10px;font-weight:500}.field-group .input,.field-group select,.field-group textarea{border:1px solid var(--border-1);border-radius:var(--radius-sm);font-family:var(--font-sans);background:var(--bg-0);color:var(--fg-0);padding:6px 10px;font-size:12.5px}.field-group select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--fg-2) 50%), linear-gradient(135deg, var(--fg-2) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:26px}.field-group textarea{resize:vertical;min-height:70px;font-family:var(--font-sans)}.field-group .row{flex-wrap:wrap;gap:6px;display:flex}.tc-pass{color:var(--success)}.tc-fail{color:var(--red-600)}.tc-block{color:var(--warning)}.tc-skip{color:var(--fg-3)}.sev-critical{background:var(--red-500)}.sev-major{background:var(--warning)}.sev-minor{background:var(--fg-3)}.bug-row{border-bottom:1px solid var(--border-0);cursor:pointer;grid-template-columns:70px 1fr auto auto auto;align-items:center;gap:10px;padding:6px 12px;font-size:12.5px;display:grid}.bug-row:hover{background:var(--bg-1)}.bug-row .id{font-family:var(--font-mono);color:var(--fg-3);font-size:11px}.bug-row .title{font-weight:500}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.proj-card{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.proj-card:hover{border-color:var(--border-1);box-shadow:var(--shadow-sm)}.proj-card .top{align-items:center;gap:8px;display:flex}.proj-card .name{letter-spacing:-.01em;font-size:14px;font-weight:700}.proj-card .client{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.proj-card .stats{border-top:1px solid var(--border-0);grid-template-columns:repeat(3,1fr);gap:8px;padding-top:10px;display:grid}.proj-card .stat-mini{flex-direction:column;gap:1px;display:flex}.proj-card .stat-mini .n{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:16px;font-weight:600}.proj-card .stat-mini .l{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;font-size:9.5px}.proj-card .progress{background:var(--bg-2);border-radius:2px;height:3px;overflow:hidden}.proj-card .progress>div{background:var(--fg-0);height:100%}.login-shell{background:var(--bg-0);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (max-width:768px){.login-shell{grid-template-columns:1fr}}.login-side{border-right:1px solid var(--border-0);flex-direction:column;justify-content:space-between;padding:40px;display:flex}.login-hero{background:var(--fg-0);color:var(--bg-0);flex-direction:column;justify-content:space-between;padding:40px;display:flex;position:relative;overflow:hidden}@media (max-width:768px){.login-hero{display:none}}.login-hero h1{letter-spacing:-.03em;margin:0;font-size:44px;font-weight:800;line-height:1.05}.login-hero .accent{color:var(--red-500)}.empty{text-align:center;border:1px dashed var(--border-1);border-radius:var(--radius-md);color:var(--fg-2);flex-direction:column;align-items:center;gap:8px;padding:40px 20px;display:flex}.tag-mini{border-radius:var(--radius-xs);border:1px solid var(--border-0);background:var(--bg-1);color:var(--fg-2);padding:1px 6px;font-size:10px;font-weight:500;line-height:1.5}.app-shell.mobile .board{flex-direction:column;gap:10px;padding:12px}.app-shell.mobile .column{flex:none}.app-shell.mobile .task-detail{grid-template-columns:1fr}.app-shell.mobile .task-detail .aside{border-left:none;border-top:1px solid var(--border-0)}.tl-label-name{font-size:12px;font-weight:600}.tl-label-proj{margin-top:2px}.tl-label-range,.app-shell.mobile .roadmap-section .tl-header{display:none}.app-shell.mobile .roadmap-section .timeline{flex-direction:column;gap:8px;padding:10px;display:flex}.app-shell.mobile .roadmap-section .tl-row{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.app-shell.mobile .roadmap-section .tl-label{background:0 0;border:none;flex-direction:column;gap:2px;padding:0;display:flex}.app-shell.mobile .roadmap-section .tl-label-range{display:block}.app-shell.mobile .roadmap-section .tl-track{background:var(--bg-2);background-image:none;border:none;border-radius:7px;height:14px;position:relative;overflow:hidden}.app-shell.mobile .roadmap-section .tl-bar{border-radius:5px;padding:0;font-size:0;top:2px;bottom:2px}.app-shell.mobile .roadmap-section .tl-bar .dot{display:none}.meeting-row{border-bottom:1px solid var(--border-0);grid-template-columns:70px minmax(0,1fr) 80px 70px 130px 24px;align-items:center;gap:12px;padding:8px 12px;font-size:12.5px;display:grid}.meeting-row:last-child{border-bottom:none}.meeting-row-id{font-family:var(--font-mono);color:var(--fg-3);font-size:11px}.meeting-row-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.meeting-row-date,.meeting-row-att,.meeting-row-stats{white-space:nowrap}.meeting-row-stats{text-align:right}.meeting-row-rec{color:var(--red-500);justify-content:center;display:flex}.app-shell.mobile .meeting-row{flex-direction:column;gap:4px;padding:10px 12px;display:flex}.app-shell.mobile .meeting-row-id{order:1;font-size:10px}.app-shell.mobile .meeting-row-title{white-space:normal;order:2;font-size:13px;font-weight:600}.app-shell.mobile .meeting-row-date,.app-shell.mobile .meeting-row-att,.app-shell.mobile .meeting-row-stats{text-align:left;order:3}.app-shell.mobile .meeting-row-rec{position:absolute}.app-shell.mobile .meeting-row{position:relative}.app-shell.mobile .meeting-row-rec{position:absolute;top:10px;right:12px}.app-shell.mobile .section-head{flex-wrap:wrap;row-gap:4px}.subnav{border-bottom:1px solid var(--border-0);background:var(--bg-0);flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 12px;display:flex;overflow-x:auto}.subnav .tab{height:32px;color:var(--fg-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;min-height:28px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.subnav .tab:hover{background:var(--bg-1);color:var(--fg-0)}.subnav .tab.active{color:var(--fg-0);background:var(--bg-2)}.subnav .tab .count{font-family:var(--font-mono);color:var(--fg-3);margin-left:6px;font-size:10px}.finance-subnav{z-index:3;pointer-events:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x;position:relative}.role-switch{border:1px solid var(--border-1);border-radius:var(--radius-sm);gap:0;display:flex;overflow:hidden}.role-switch .opt{cursor:pointer;color:var(--fg-2);border-right:1px solid var(--border-1);padding:4px 8px;font-size:11px;font-weight:500}.role-switch .opt:last-child{border-right:none}.role-switch .opt.active{background:var(--fg-0);color:var(--bg-0)}.note-block{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.note-block .title{letter-spacing:-.01em;font-size:13px;font-weight:700}.note-block .meta{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.note-block ul{color:var(--fg-1);margin:0;padding-left:18px;font-size:12.5px;line-height:1.5}.note-block ul li{margin-bottom:3px}.fb-card{background:var(--bg-0);border:1px solid var(--border-0);border-left:2px solid var(--border-1);border-radius:0 var(--radius-md) var(--radius-md) 0;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.fb-card.pos{border-left-color:var(--success)}.fb-card.neg{border-left-color:var(--red-500)}.fb-card.neu{border-left-color:var(--fg-2)}.fb-card .text{color:var(--fg-0);font-size:13px;line-height:1.5}.fb-card .who{font-family:var(--font-mono);color:var(--fg-2);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.run-bar{border:1px solid var(--border-0);border-radius:var(--radius-md);background:var(--bg-0);grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.run-bar>div{border-right:1px solid var(--border-0);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.run-bar>div:last-child{border-right:none}.run-bar .n{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.run-bar .l{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);font-size:10px}.run-bar .pass .n{color:var(--success)}.run-bar .fail .n{color:var(--red-600)}.run-bar .block .n{color:var(--warning)}.page::-webkit-scrollbar{width:8px;height:8px}.board::-webkit-scrollbar{width:8px;height:8px}.subnav::-webkit-scrollbar{width:8px;height:8px}.sheet::-webkit-scrollbar{width:8px;height:8px}.page::-webkit-scrollbar-thumb{background:var(--border-1);border-radius:4px}.board::-webkit-scrollbar-thumb{background:var(--border-1);border-radius:4px}.subnav::-webkit-scrollbar-thumb{background:var(--border-1);border-radius:4px}.sheet::-webkit-scrollbar-thumb{background:var(--border-1);border-radius:4px}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.col{flex-direction:column;display:flex}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-1{gap:4px}.grow{flex:1;min-width:0}.muted{color:var(--fg-2)}.right{margin-left:auto}.mono-meta{font-family:var(--font-mono);color:var(--fg-3);font-size:10.5px}.chip-tab{font-family:var(--font-sans);color:var(--fg-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:500;transition:background .1s,color .1s,border-color .1s;display:inline-flex}.chip-tab:hover{color:var(--fg-0);background:var(--bg-1)}.chip-tab.on{background:var(--fg-0);color:var(--bg-0);border-color:var(--fg-0)}.chip-tab .ct{font-family:var(--font-mono);background:#ffffff2e;border-radius:6px;padding:1px 5px;font-size:9.5px}.chip-tab:not(.on) .ct{background:var(--bg-2);color:var(--fg-3)}.filter-input{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-sm);color:var(--fg-2);align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.filter-input input{font-family:var(--font-sans);color:var(--fg-0);background:0 0;border:none;outline:none;min-width:160px;font-size:12px}.filter-input input::placeholder{color:var(--fg-3)}.sheet-pad{padding:16px 18px 24px}.run-bar{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.dashboard-main-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr);align-items:start;gap:8px;display:grid}.dashboard-main-column,.dashboard-side-column{align-content:start;gap:8px;display:grid}@media (max-width:900px){.dashboard-main-grid{grid-template-columns:1fr}}.finance-overview-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:8px;margin-top:8px;display:grid}.finance-client-row{grid-template-columns:minmax(160px,1fr) 90px 110px 110px 60px;align-items:center}.finance-compact-row{grid-template-columns:minmax(0,1fr) 60px 90px}.finance-quote-row{grid-template-columns:minmax(0,1fr) 50px 80px}.finance-quotes-table,.finance-invoices-table{table-layout:fixed}.finance-invoices-table th:first-child,.finance-invoices-table td:first-child{width:130px}.finance-invoices-table th:nth-child(2),.finance-invoices-table td:nth-child(2){width:360px}.finance-invoices-table th:nth-child(3),.finance-invoices-table td:nth-child(3),.finance-invoices-table th:nth-child(4),.finance-invoices-table td:nth-child(4){width:90px}.finance-invoices-table th:nth-child(5),.finance-invoices-table td:nth-child(5){width:120px}.finance-invoices-table th:nth-child(6),.finance-invoices-table td:nth-child(6),.finance-invoices-table th:nth-child(7),.finance-invoices-table td:nth-child(7),.finance-quotes-table th:first-child,.finance-quotes-table td:first-child{width:130px}.finance-quotes-table th:nth-child(2),.finance-quotes-table td:nth-child(2){width:360px}.finance-quotes-table th:nth-child(3),.finance-quotes-table td:nth-child(3),.finance-quotes-table th:nth-child(4),.finance-quotes-table td:nth-child(4){width:90px}.finance-quotes-table th:nth-child(5),.finance-quotes-table td:nth-child(5){width:110px}.finance-quotes-table th:nth-child(6),.finance-quotes-table td:nth-child(6){width:80px}.finance-quotes-table th:nth-child(7),.finance-quotes-table td:nth-child(7){width:130px}.finance-quote-title{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;display:block;overflow:hidden}.finance-quote-subtitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.finance-payments-table{table-layout:fixed}.finance-payments-table th:first-child,.finance-payments-table td:first-child{width:110px}.finance-payments-table th:nth-child(2),.finance-payments-table td:nth-child(2){width:90px}.finance-payments-table th:nth-child(3),.finance-payments-table td:nth-child(3){width:140px}.finance-payments-table th:nth-child(4),.finance-payments-table td:nth-child(4){width:340px}.finance-payments-table th:nth-child(5),.finance-payments-table td:nth-child(5){width:110px}.finance-payments-table th:nth-child(6),.finance-payments-table td:nth-child(6){width:170px}.finance-payments-table th:nth-child(7),.finance-payments-table td:nth-child(7){width:70px}.finance-payments-table th:nth-child(8),.finance-payments-table td:nth-child(8){width:140px}.finance-aging-table{table-layout:fixed}.finance-aging-table th:first-child,.finance-aging-table td:first-child{width:240px}.finance-aging-table th:nth-child(2),.finance-aging-table td:nth-child(2){width:70px}.finance-aging-table th:nth-child(n+3),.finance-aging-table td:nth-child(n+3){width:120px}.finance-revenue-table{table-layout:fixed}.finance-revenue-table th:first-child,.finance-revenue-table td:first-child{width:240px}.finance-revenue-table th:nth-child(2),.finance-revenue-table td:nth-child(2){width:70px}.finance-revenue-table th:nth-child(3),.finance-revenue-table td:nth-child(3),.finance-revenue-table th:nth-child(4),.finance-revenue-table td:nth-child(4){width:130px}.finance-revenue-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}@media (max-width:768px){.finance-overview-grid{grid-template-columns:1fr;margin-top:6px}.finance-overview-grid .section-head{flex-wrap:wrap;align-items:flex-start}.finance-overview-grid .section-head .spacer{display:none}.finance-overview-grid .section-head .row{flex-wrap:wrap;width:100%}.finance-overview-grid .run-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-overview-grid .run-bar>div{border-right:0;border-bottom:1px solid var(--border-0)}.finance-overview-grid .run-bar .n{overflow-wrap:anywhere;font-size:18px}.finance-client-row{grid-template-columns:minmax(0,1fr) 58px 92px}.finance-client-row>:nth-child(4),.finance-client-row>:nth-child(5){display:none}.finance-compact-row,.finance-quote-row{grid-template-columns:minmax(0,1fr) 52px 78px}.finance-overdue-table{min-width:720px}.finance-invoices-table{min-width:1050px}.finance-quotes-table{min-width:990px}.finance-payments-table{min-width:1170px}.finance-aging-table{min-width:1030px}.finance-revenue-grid{grid-template-columns:1fr}.finance-revenue-table{min-width:570px}.dir-pagination{flex-wrap:wrap;align-items:flex-start}.dir-pagination .dp-meta{width:100%}}.pipe-board{align-items:flex-start;gap:10px;padding-bottom:8px;display:flex;overflow-x:auto}.pipe-col{background:var(--bg-1);border:1px solid var(--border-0);border-radius:var(--radius-md);flex-direction:column;flex:0 0 280px;max-height:calc(100vh - 280px);display:flex}.pipe-col-head{border-bottom:1px solid var(--border-0);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);align-items:center;gap:8px;padding:10px 12px;font-size:10.5px;display:flex}.pipe-col-head .pipe-dot{border-radius:2px;width:8px;height:8px}.pipe-col-head .pipe-label{color:var(--fg-1);font-weight:600}.pipe-col-head .pipe-count{color:var(--fg-3);margin-left:auto}.pipe-cards{flex-direction:column;gap:6px;padding:8px;display:flex;overflow-y:auto}.pipe-card{background:var(--bg-0);border:1px solid var(--border-0);border-radius:var(--radius-sm);cursor:pointer;padding:10px;transition:border-color 80ms}.pipe-card:hover{border-color:var(--border-1)}.pipe-name{color:var(--fg-0);font-size:13px;font-weight:600;line-height:1.3}.pipe-client{color:var(--fg-3);margin-top:1px;font-size:11px}.pipe-meta{border-top:1px solid var(--border-0);font-family:var(--font-mono);color:var(--fg-3);align-items:center;gap:4px;margin-top:8px;padding-top:8px;font-size:10px;display:flex}.pipe-next{background:var(--bg-1);border-radius:var(--radius-xs);color:var(--fg-1);align-items:center;gap:4px;margin-top:6px;padding:6px 8px;font-size:11px;display:flex}.pipe-empty{text-align:center;color:var(--fg-3);padding:24px 12px;font-size:11px}.mobile .pipe-col{flex:0 0 240px}.saved-views{border-bottom:1px solid var(--border-0);background:var(--bg-0);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 16px;display:flex}.sv-chip{border:1px solid var(--border-0);background:var(--bg-0);height:26px;color:var(--fg-2);cursor:pointer;border-radius:13px;align-items:center;gap:6px;padding:0 10px;font-size:12px;transition:all 80ms;display:inline-flex}.sv-chip:hover{border-color:var(--border-1);color:var(--fg-1)}.sv-chip.active{background:var(--fg-0);color:var(--bg-0);border-color:var(--fg-0)}.sv-chip.active .sv-count{color:var(--bg-0);background:#ffffff2e}.sv-chip.ghost{color:var(--fg-3);border-style:dashed}.sv-count{font-family:var(--font-mono);background:var(--bg-2);color:var(--fg-3);border-radius:3px;padding:2px 5px;font-size:10px;line-height:1}.sv-dot{border-radius:50%;width:6px;height:6px}.sv-spacer{flex:1}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.search-box{border:1px solid var(--border-0);border-radius:var(--radius-sm);background:var(--bg-0);flex:1;align-items:center;gap:6px;min-width:200px;max-width:280px;height:28px;padding:0 8px;display:inline-flex}.search-box svg{color:var(--fg-3);flex-shrink:0}.search-box input{color:var(--fg-0);font-size:12.5px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}.search-box .clear{cursor:pointer;color:var(--fg-3);background:0 0;border:none;align-items:center;padding:2px;display:flex}.filter-group{align-items:center;gap:4px;display:inline-flex}.filter-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);margin-right:2px;font-size:10px}.stage-chip{border:1px solid var(--border-0);background:var(--bg-0);height:24px;color:var(--fg-2);cursor:pointer;border-radius:12px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;transition:all 80ms;display:inline-flex}.stage-chip:hover{border-color:var(--border-1)}.stage-chip.on{background:var(--bg-2);border-color:var(--fg-2);color:var(--fg-0);font-weight:500}.sc-dot{border-radius:1px;width:6px;height:6px}.sc-count{font-family:var(--font-mono);color:var(--fg-3);font-size:10px}.f-btn{border:1px solid var(--border-0);background:var(--bg-0);border-radius:var(--radius-sm);height:26px;color:var(--fg-2);cursor:pointer;align-items:center;gap:4px;padding:0 9px;font-size:11.5px;display:inline-flex}.f-btn.on svg{color:var(--bg-0)}.f-select{border:1px solid var(--border-0);border-radius:var(--radius-sm);background:var(--bg-0);height:26px;color:var(--fg-1);font-size:11.5px;font-family:var(--font-sans);cursor:pointer;padding:0 6px}.bulk-bar{background:var(--fg-0);color:var(--bg-0);border-radius:var(--radius-sm);align-items:center;gap:8px;margin-top:8px;padding:8px 12px;display:flex}.bulk-bar .btn{color:var(--bg-0)}.bulk-bar .btn:hover{background:#ffffff14}.bulk-bar .btn svg{color:var(--bg-0)}.bulk-count{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;margin-right:6px;font-size:11px}.pipe-list{border:1px solid var(--border-0);border-radius:var(--radius-md);background:var(--bg-0);font-size:12px;overflow:hidden}.pl-head,.pl-row,.pl-group-head{grid-template-columns:32px minmax(180px,1.6fr) minmax(120px,1.2fr) 100px 72px 52px 52px 52px minmax(140px,1.4fr) 110px 72px 78px;align-items:center;display:grid}.pl-head{background:var(--bg-1);border-bottom:1px solid var(--border-0);height:30px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);font-size:10px}.pl-cell{min-width:0;padding:0 10px;overflow:hidden}.pl-row{border-bottom:1px solid var(--border-0);cursor:pointer;height:36px;transition:background 60ms;position:relative}.pl-row:last-child{border-bottom:none}.pl-row:hover{background:var(--bg-1)}.pl-row.selected{background:#ff3b300a}.pl-row .pl-name{color:var(--fg-0);align-items:center;gap:6px;font-weight:500;display:flex}.pl-name-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.health-bar{border-radius:1px;flex-shrink:0;width:3px;height:18px}.h-red{background:#dc2626}.h-amber{background:#d97706}.h-green{background:#16a34a}.pl-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;background:var(--bg-2);color:var(--fg-3);border-radius:2px;flex-shrink:0;padding:2px 5px;font-size:9.5px}.pl-row .pl-client{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pl-row .pl-stage{position:relative}.stage-pill{color:var(--fg-1);background:var(--bg-1);border-radius:3px;align-items:center;gap:5px;padding:2px 6px;font-size:11px;display:inline-flex}.stage-pill svg{color:var(--fg-3)}.pl-row .pl-owner{align-items:center;gap:3px;display:flex}.pl-row .pl-tasks,.pl-row .pl-block,.pl-row .pl-bugs,.pl-row .pl-burn{font-family:var(--font-mono);color:var(--fg-1);text-align:right;font-variant-numeric:tabular-nums;font-size:11.5px}.pl-row .warn{color:var(--red-700);font-weight:600}.pl-row .pl-due{flex-direction:column;gap:1px;min-width:0;display:flex}.pl-due-date{color:var(--fg-1);font-size:11.5px;font-weight:500}.pl-due-next{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.pl-row .pl-progress{padding-right:14px}.pl-prog{background:var(--bg-2);border-radius:2px;height:14px;position:relative;overflow:hidden}.pl-prog-bar{background:var(--fg-1);transition:width .2s;position:absolute;top:0;bottom:0;left:0}.pl-prog-text{text-align:center;font-family:var(--font-mono);color:var(--fg-0);font-variant-numeric:tabular-nums;mix-blend-mode:difference;filter:invert();font-size:10px;line-height:14px;display:block;position:relative}.pl-row .pl-act{font-family:var(--font-mono);color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.pl-row.health-red .pl-name-text:after,.pl-row.health-amber .pl-name-text:after{content:""}.editable{cursor:pointer;border-radius:3px;transition:background 80ms}.editable:hover{background:var(--bg-2)}.inline-pop{z-index:10;background:var(--bg-0);border:1px solid var(--border-1);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);min-width:160px;padding:4px;position:absolute;top:calc(100% + 2px);left:8px}.ip-section{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);padding:4px 8px 2px;font-size:9.5px}.ip-row{cursor:pointer;border-radius:3px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.ip-row:hover{background:var(--bg-1)}.pl-group-head{background:var(--bg-1);border-bottom:1px solid var(--border-0);height:32px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);align-items:center;gap:8px;padding:0 12px;font-size:10.5px;font-weight:600;display:flex}.pl-group-count{font-family:var(--font-mono);color:var(--fg-3);margin-left:auto;font-size:10px;font-weight:400}.pl-check input[type=checkbox]{width:13px;height:13px;accent-color:var(--fg-0);cursor:pointer}.heatmap-wrap{flex-direction:column;gap:8px;display:flex}.heatmap{flex-direction:column;gap:1px;padding:12px;display:flex}.hm-row{grid-template-columns:220px repeat(5,1fr) 80px;gap:1px;display:grid}.hm-row-head .hm-cell{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);background:0 0;align-items:center;gap:6px;padding:8px 10px;font-size:10px;display:flex}.hm-cell{background:var(--bg-1);border-radius:2px;justify-content:center;align-items:center;height:44px;display:flex;position:relative}.hm-pm{color:var(--fg-1);justify-content:flex-start;gap:6px;padding:0 10px;font-size:12px}.hm-pm-head{justify-content:flex-start}.hm-empty{color:var(--fg-3);background:0 0;font-size:16px}.hm-data{cursor:pointer;transition:filter 80ms}.hm-data:hover{filter:brightness(1.05)}.hm-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.hm-green{color:#166534;background:#dcfce7}.hm-amber{color:#92400e;background:#fef3c7}.hm-red{color:#991b1b;background:#fee2e2}.hm-total{background:var(--bg-2);font-family:var(--font-mono);color:var(--fg-1);font-size:13px;font-weight:600}.hm-tip{background:var(--fg-0);color:var(--bg-0);white-space:nowrap;z-index:10;box-shadow:var(--shadow-lg);border-radius:4px;padding:6px 8px;font-size:11px;display:none;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.hm-data:hover .hm-tip{display:block}.hm-tip-row{cursor:pointer;align-items:center;gap:6px;padding:2px 0;display:flex}.hm-tip-row:hover{color:#fff}.hm-tip-more{color:#fff9;padding-top:2px;font-size:10px;font-style:italic}.hm-legend{border-radius:2px;width:10px;height:10px;display:inline-block}.hm-legend.hm-green{background:#16a34a}.hm-legend.hm-amber{background:#d97706}.hm-legend.hm-red{background:#dc2626}.health-stack{background:var(--bg-2);border-radius:3px;height:32px;display:flex;overflow:hidden}.hs-seg{font-family:var(--font-mono);color:#fff;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.hs-green{background:#16a34a}.hs-amber{background:#d97706}.hs-red{background:#dc2626}.mobile .pl-head,.mobile .pl-row,.mobile .pl-group-head{grid-template-columns:32px minmax(150px,1.4fr) 100px 60px 72px}.mobile .pl-client,.mobile .pl-stage,.mobile .pl-block,.mobile .pl-bugs,.mobile .pl-progress,.mobile .pl-burn,.mobile .pl-act{display:none}.mobile .heatmap{overflow-x:auto}.mobile .hm-row{min-width:720px}.proj-page{background:var(--bg-1);flex-direction:column;flex:1;gap:18px;padding:12px 20px 32px;display:flex;overflow-y:auto}.proj-section{flex-direction:column;gap:8px;display:flex}.proj-section-head{align-items:center;gap:8px;padding:0 2px 2px;display:flex}.proj-section-head h3{color:var(--fg-0);letter-spacing:.01em;margin:0;font-size:12px;font-weight:600}.proj-section-head .ps-icon{color:var(--fg-2)}.proj-section-head .ps-count{color:var(--fg-2);background:var(--bg-2);border:1px solid var(--border-1);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 6px;font-size:11px;font-weight:500}.proj-section-head .ps-hint{color:var(--fg-3);margin-left:auto;font-size:10.5px;font-weight:400}.proj-section-head.sticky{background:var(--bg-1);z-index:2;padding-top:4px;padding-bottom:6px;position:sticky;top:0}.pinned-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.pin-card{background:var(--bg-0);border:1px solid var(--border-1);cursor:pointer;border-radius:6px;flex-direction:column;gap:6px;padding:10px 12px 10px 16px;transition:border-color .12s,box-shadow .12s;display:flex;position:relative}.pin-card:hover{border-color:var(--fg-3);box-shadow:0 1px 3px #0000000a}.pin-card.dragging{opacity:.4}.pin-card .health-bar{border-radius:6px 0 0 6px;width:3px;position:absolute;top:0;bottom:0;left:0}.pin-card-top{align-items:center;gap:6px;display:flex}.pin-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px}.pin-name{color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.pin-star{width:22px;height:22px;color:var(--fg-3);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pin-star:hover{background:var(--bg-2);color:var(--fg-1)}.pin-star.pinned{color:var(--fg-0)}.pin-star.pinned svg{fill:currentColor}.pin-client{color:var(--fg-2);margin-top:-2px;font-size:11px}.pin-meta{align-items:center;gap:8px;display:flex}.pin-progress{flex:1;align-items:center;gap:6px;display:flex}.pp-bar{background:var(--bg-2);border-radius:2px;flex:1;height:4px;overflow:hidden}.pp-bar>span{background:var(--fg-1);border-radius:2px;height:100%;display:block}.pp-text{font-variant-numeric:tabular-nums;color:var(--fg-2);font-size:10.5px;font-weight:500}.pin-stats{color:var(--fg-2);border-top:1px dashed var(--border-1);white-space:nowrap;flex-wrap:nowrap;align-items:baseline;gap:10px;margin-top:1px;padding-top:6px;font-size:10.5px;display:flex;overflow:hidden}.pin-stats>span{white-space:nowrap}.pin-stats strong{color:var(--fg-0);font-variant-numeric:tabular-nums;font-weight:600}.pin-stats .warn{color:#b91c1c;align-items:center;gap:3px;display:flex}.pin-stats .warn strong{color:#b91c1c}.pin-due{font-variant-numeric:tabular-nums;color:var(--fg-3)}.pinned-empty{background:var(--bg-0);border:1px dashed var(--border-1);color:var(--fg-2);border-radius:6px;align-items:center;gap:12px;padding:16px;display:flex}.pinned-empty .empty-title{color:var(--fg-1);font-size:12px;font-weight:600}.pinned-empty .empty-meta{color:var(--fg-2);margin-top:1px;font-size:11px}.attn-list{background:var(--bg-0);border:1px solid var(--border-1);border-radius:6px;overflow:hidden}.attn-row{border-bottom:1px solid var(--border-1);cursor:pointer;align-items:center;gap:8px;padding:7px 10px 7px 0;display:flex;position:relative}.attn-row:last-child{border-bottom:none}.attn-row:hover{background:var(--bg-1)}.attn-bar{flex-shrink:0;align-self:stretch;width:3px}.attn-text{color:var(--fg-1);font-size:11.5px;font-weight:500}.attn-meta{color:var(--fg-3);font-variant-numeric:tabular-nums;text-align:right;min-width:36px;font-size:10.5px}.attn-row.attn-more{color:var(--fg-2);cursor:default;justify-content:center;padding:6px 10px;font-size:11px}.attn-row .link{color:var(--fg-0);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--border-2);text-decoration-color:var(--border-2);text-underline-offset:2px;font-weight:500}.directory-section{gap:6px}.search-box.compact{background:var(--bg-0);border:1px solid var(--border-1);width:240px;color:var(--fg-2);border-radius:4px;align-items:center;gap:6px;padding:4px 8px;display:flex}.search-box.compact input{color:var(--fg-0);background:0 0;border:none;outline:none;flex:1;min-width:0;font-family:inherit;font-size:11.5px}.search-box.compact input::placeholder{color:var(--fg-3)}.search-box.compact .clear{color:var(--fg-3);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.dir-filters{flex-wrap:wrap;align-items:center;gap:6px;padding:0 2px;display:flex}.f-select{background:var(--bg-0);border:1px solid var(--border-1);color:var(--fg-1);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 6px center;background-repeat:no-repeat;border-radius:4px;padding:3px 22px 3px 8px;font-family:inherit;font-size:11px}.f-btn{background:var(--bg-0);border:1px solid var(--border-1);color:var(--fg-1);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:inherit;font-size:11px;display:flex}.f-btn:hover{background:var(--bg-1)}.f-btn.on{background:var(--fg-0);color:var(--bg-0);border-color:var(--fg-0)}.f-btn.ghost{color:var(--fg-2);border-color:#0000}.f-btn.ghost:hover{color:var(--fg-0)}.dir-table{background:var(--bg-0);border:1px solid var(--border-1);border-radius:6px;max-width:100%;overflow:auto hidden}.dir-head,.dir-row{grid-template-columns:28px minmax(220px,1.6fr) minmax(180px,1fr) 112px 72px minmax(220px,1.2fr) minmax(140px,.9fr) 96px 36px;align-items:center;gap:8px;min-width:1120px;padding:0 10px 0 6px;display:grid}.dir-head{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-3);background:var(--bg-1);border-bottom:1px solid var(--border-1);height:26px;font-size:10px;font-weight:600}.dir-row{border-bottom:1px solid var(--border-1);cursor:pointer;height:30px;color:var(--fg-1);font-size:11.5px;position:relative}.dir-row:last-child{border-bottom:none}.dir-row:hover{background:var(--bg-1)}.dir-row.is-pinned{background:linear-gradient(90deg,#d977570a,#0000 60%)}.dir-row.is-pinned:hover{background:linear-gradient(90deg, #d9775712, var(--bg-1) 60%)}.dh-name{align-items:center;gap:6px;min-width:0;display:flex}.dr-name-text{color:var(--fg-0);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.dr-dot{border-radius:1.5px;flex-shrink:0;width:6px;height:6px}.health-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dh-client{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.dh-num{font-variant-numeric:tabular-nums;color:var(--fg-1);align-items:center;gap:6px;font-size:11px;display:flex}.dh-num.warn strong,.dh-blocked{color:#b91c1c}.dh-blocked{align-items:center;gap:2px;font-size:10px;font-weight:600;display:inline-flex}.dh-due{flex-direction:column;gap:0;min-width:0;display:flex}.dr-due-date{color:var(--fg-1);font-variant-numeric:tabular-nums;font-size:11px}.dr-due-next{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.dh-progress{align-items:center;gap:6px;display:flex}.dr-prog{align-items:center;gap:6px;width:100%;display:flex}.dr-prog-bar{background:var(--bg-2);border-radius:2px;flex:1;height:4px;position:relative;overflow:hidden}.dr-prog-bar:after{content:"";height:100%;width:var(--w,0%);background:var(--fg-1);display:block}.dr-prog>.dr-prog-bar{position:relative}.dr-prog>.dr-prog-text{font-variant-numeric:tabular-nums;color:var(--fg-2);text-align:right;min-width:28px;font-size:10.5px}.dr-conf{color:var(--fg-1);font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.dh-act{color:var(--fg-3);font-variant-numeric:tabular-nums;font-size:10.5px}.dh-actions{justify-content:flex-end;display:flex}.row-more{border:1px solid var(--border-1);background:var(--bg-1);width:22px;height:22px;color:var(--fg-3);cursor:pointer;opacity:1;border-radius:4px;justify-content:center;align-items:center;transition:background .1s,color .1s,border-color .1s;display:flex}.dir-row:hover .row-more{opacity:1}.row-more:hover{background:var(--bg-2);color:var(--fg-0);border-color:var(--border-2)}.dh-pin .pin-star{opacity:.3;width:20px;height:20px}.dir-row:hover .dh-pin .pin-star,.dir-row.is-pinned .dh-pin .pin-star{opacity:1}.stage-pill{color:var(--fg-1);background:var(--bg-1);border:1px solid var(--border-1);white-space:nowrap;border-radius:3px;align-items:center;gap:4px;padding:1px 6px;font-size:10.5px;font-weight:500;display:inline-flex}.stage-pill .sc-dot{border-radius:1px;flex-shrink:0;width:5px;height:5px}.stage-pill[data-stage=active]{color:#15803d;background:#16a34a0f;border-color:#16a34a40}.stage-pill[data-stage=bidding]{color:#b45309;background:#d977060f;border-color:#d9770640}.stage-pill[data-stage=demo]{color:#1d4ed8;background:#2563eb0f;border-color:#2563eb40}.stage-pill[data-stage=delivered]{color:#0f766e;background:#0d94880f;border-color:#0d948840}.stage-pill[data-stage=archived]{color:var(--fg-3)}.dir-empty{color:var(--fg-2);justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.dir-empty .empty-title{color:var(--fg-1);font-size:12px;font-weight:600}.empty-link{color:var(--fg-0);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-family:inherit;font-size:11px;text-decoration:underline}.dir-pagination{color:var(--fg-2);align-items:center;gap:10px;padding:8px 4px;font-size:11px;display:flex}.dp-meta strong{color:var(--fg-0);font-variant-numeric:tabular-nums}.page-btn{background:var(--bg-0);border:1px solid var(--border-1);color:var(--fg-1);cursor:pointer;border-radius:4px;align-items:center;gap:3px;padding:4px 10px;font-family:inherit;font-size:11px;display:flex}.page-btn:hover:not(:disabled){background:var(--bg-1)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-indicator{color:var(--fg-2);font-variant-numeric:tabular-nums;font-size:11px}.page-indicator strong{color:var(--fg-0);font-weight:600}.ctx-menu{z-index:100;background:var(--bg-0);border:1px solid var(--border-1);border-radius:6px;flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex;position:fixed;box-shadow:0 6px 20px #0000001f}.ctx-item{color:var(--fg-1);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:3px;align-items:center;gap:8px;width:100%;padding:5px 8px;font-family:inherit;font-size:11.5px;display:flex}.ctx-item:hover{background:var(--bg-1)}.ctx-item.danger{color:#b91c1c}.ctx-item.danger:hover{background:#dc262612}.ctx-sep{background:var(--border-1);height:1px;margin:3px 0}.density-compact .dir-head,.density-compact .dir-row{height:28px}.density-compact .pin-card{gap:5px;padding:8px 10px 7px}.density-compact .pin-name{font-size:12px}.density-compact .pin-stats{padding-top:5px}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.mob-drawer-overlay{z-index:200;background:#00000073;animation:.18s ease-out mob-fade;display:flex;position:absolute;inset:0}@keyframes mob-fade{0%{opacity:0}to{opacity:1}}.mob-drawer{background:var(--bg-0);flex-direction:column;width:86%;max-width:320px;animation:.22s cubic-bezier(.2,.8,.2,1) mob-slide;display:flex;box-shadow:4px 0 24px #0000002e}@keyframes mob-slide{0%{transform:translate(-100%)}to{transform:translate(0)}}.mob-drawer-head{border-bottom:1px solid var(--border-1);align-items:center;gap:8px;padding:12px 14px;display:flex}.mob-drawer-close{width:28px;height:28px;color:var(--fg-1);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex}.mob-drawer-close:hover{background:var(--bg-1)}.mob-drawer-body{flex:1;padding:6px 0 16px;overflow-y:auto}.mob-section-head{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-3);align-items:center;gap:6px;padding:12px 14px 4px;font-size:9.5px;font-weight:600;display:flex}.mob-row{cursor:pointer;color:var(--fg-1);border-bottom:1px solid #0000;align-items:center;gap:10px;padding:9px 14px;font-size:13px;display:flex}.mob-row:hover,.mob-row:active{background:var(--bg-1)}.mob-row-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.mob-meta{color:var(--fg-3);white-space:nowrap;font-size:10.5px}.mob-warn{color:#b91c1c;background:#fee2e2;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:600}.mob-row.mob-more{color:var(--fg-2);font-size:11.5px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:6px}.mb-3{margin-bottom:8px}.mb-4{margin-bottom:12px}.mb-5{margin-bottom:14px}.mb-6{margin-bottom:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.text-right{text-align:right}.text-center{text-align:center}.flex-wrap{flex-wrap:wrap}.bg-2{background:var(--bg-2)}.fw-600{font-weight:600}.truncate{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dash-bar{background:var(--bg-2);border-radius:2px;width:60px;height:3px;overflow:hidden}.feed-id{font-family:var(--font-mono);font-size:11px}.feed-text-grow{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--fg-1);flex:1;overflow:hidden}.spread{justify-content:space-between}.amount-big{font-size:18px;font-weight:700}.amount-xl{font-size:24px;font-weight:600;font-family:var(--font-mono)}.tbl-flush{border:none;border-radius:0}.sheet-field-grid{border-top:1px solid var(--border-1);border-bottom:1px solid var(--border-1);gap:12px;margin-bottom:14px;padding:12px 0;display:grid}.proj-dot-sq{border-radius:1px;width:6px;height:6px;display:inline-block}
.app-drawer-overlay{z-index:260;cursor:default;border:0;animation:.15s ease-out mob-fade;position:fixed;inset:0}.app-drawer-overlay.is-dim{background:#00000047}.app-drawer-overlay.is-clear{background:0 0}.app-drawer-panel{z-index:270;width:min(430px,92vw);max-width:100%;height:100dvh;color:var(--fg-0);border-left:1px solid var(--line);opacity:0;pointer-events:none;background:#fff;align-content:start;gap:12px;padding:16px;transition:transform .18s,opacity .18s;display:grid;position:fixed;inset:0 0 0 auto;overflow-y:auto;transform:translate(105%);box-shadow:-24px 0 60px #0f172a29}.app-drawer-panel-lg{width:min(460px,100vw - 28px)}.app-drawer-panel.is-open{opacity:1;pointer-events:auto;transform:translate(0)}.app-drawer-head{z-index:1;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:flex-start;gap:12px;margin:-16px -16px 6px;padding:16px;display:flex;position:sticky;top:0}.app-drawer-head span{color:var(--fg-3);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:700}.app-drawer-head h3,.app-drawer-panel h4{letter-spacing:-.04em;margin:4px 0 0}.app-drawer-head button{border:1px solid var(--border-1);width:30px;height:30px;color:var(--fg-1);cursor:pointer;background:#fff;border-radius:7px;place-items:center;display:grid}.app-drawer-panel h4{font-size:20px;line-height:1.2}
