:root{--teal: #00C4A8;--sky: #0FA8E2;--violet: #6644EF;--purple: #9922EE;--grad: linear-gradient(135deg, #00C4A8 0%, #0FA8E2 35%, #6644EF 65%, #9922EE 100%);--bg: #09090C;--surface: #0D0D12;--surface-2: #121219;--surface-3: #18181F;--border: rgba(0, 196, 168, .1);--border-2: rgba(0, 196, 168, .2);--t1: #EAE8F5;--t2: #7A7888;--t3: #46444F;--success: #00C4A8;--warning: #E8A020;--danger: #E05252;--r: 8px;--r-lg: 12px;--sidebar-w: 228px;--ease: cubic-bezier(.16, 1, .3, 1)}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg)}.login-shell:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 50% at 15% 20%,rgba(0,196,168,.07),transparent),radial-gradient(ellipse 55% 45% at 85% 80%,rgba(153,34,238,.07),transparent),radial-gradient(ellipse 40% 35% at 50% 50%,rgba(15,168,226,.03),transparent);pointer-events:none}.login-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");background-size:200px 200px;pointer-events:none;opacity:.4}.login-center{position:relative;z-index:1;width:100%;max-width:440px;padding:0 32px;text-align:center;animation:fade-up .3s var(--ease) both}.login-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:52px}.login-logo{width:26px;height:26px;object-fit:contain}.login-brand-name{font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--t1)}.login-title{font-family:Montserrat,sans-serif;font-size:clamp(42px,9vw,64px);font-weight:800;line-height:1;letter-spacing:-.04em;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:14px;word-break:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.login-sub{font-size:9.5px;font-family:JetBrains Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);margin-bottom:52px}.login-form{text-align:left}.login-form .modal-field{border-bottom-color:#ffffff0f}.login-error{font-size:11px;color:var(--danger);font-family:JetBrains Mono,monospace;letter-spacing:.04em;padding:12px 0 4px}.login-btn{display:block;width:100%;padding:14px;border:none;border-radius:12px;background:var(--grad);color:#fff;font-family:Montserrat,sans-serif;font-size:13.5px;font-weight:600;cursor:pointer;margin-top:24px;letter-spacing:.03em;transition:opacity .13s var(--ease),transform .13s var(--ease)}.login-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.login-btn:disabled{opacity:.45;cursor:default}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Montserrat,sans-serif;font-size:14px;line-height:1.6;background:var(--bg);color:var(--t1);min-height:100vh}button,a{font:inherit;color:inherit}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--surface-2) inset!important;-webkit-text-fill-color:var(--t1)!important;caret-color:var(--t1);transition:background-color 9999s ease-in-out 0s}.skip-link{position:absolute;left:16px;top:16px;transform:translateY(-200%);background:var(--t1);color:var(--bg);padding:8px 12px;border-radius:4px;font-size:12px;font-weight:600;z-index:999}.skip-link:focus{transform:translateY(0)}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);overflow:hidden}.sidebar-header{padding:24px 20px 22px;border-bottom:1px solid var(--border)}.brand-mark{display:flex;align-items:center;gap:10px}.brand-logo{width:26px;height:26px;object-fit:contain}.brand-name{font-size:13px;font-weight:700;letter-spacing:.03em;color:var(--t1)}.brand-env{font-size:10px;font-family:JetBrains Mono,monospace;color:var(--t3);letter-spacing:.08em;margin-top:1px}.nav{flex:1;padding:14px 10px;display:flex;flex-direction:column;gap:1px;overflow-y:auto}.nav-link{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r);color:var(--t2);text-decoration:none;font-size:13px;font-weight:500;transition:color .14s var(--ease),background .14s var(--ease);position:relative}.nav-icon{width:15px;height:15px;flex-shrink:0;opacity:.5;transition:opacity .14s var(--ease)}.nav-link:hover,.nav-link:focus-visible{color:var(--t1);background:var(--surface-2)}.nav-link:hover .nav-icon,.nav-link:focus-visible .nav-icon{opacity:.85}.nav-link.active{color:var(--t1);background:var(--surface-2)}.nav-link.active .nav-icon{opacity:1}.nav-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:16px;border-radius:0 2px 2px 0;background:var(--grad)}.sidebar-footer{padding:12px 14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-user{min-width:0;flex:1}.sidebar-user-name{font-size:12.5px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:10px;font-family:JetBrains Mono,monospace;letter-spacing:.06em;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-logout{width:28px;height:28px;border-radius:var(--r);border:1px solid var(--border);background:transparent;color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .13s var(--ease),border-color .13s var(--ease),background .13s var(--ease)}.sidebar-logout:hover{color:var(--danger);border-color:#e052524d;background:#e052520f}.content{padding:36px 40px;min-width:0}.page-stack{display:flex;flex-direction:column;gap:20px;animation:fade-up .26s var(--ease) both}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--border)}.page-eyebrow{font-size:9.5px;font-family:JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:4px}.page-title{font-family:Montserrat,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--t1);line-height:1.15}.page-meta{font-size:10.5px;color:var(--t3);font-family:JetBrains Mono,monospace;flex-shrink:0}.hero-panel{position:relative;background:var(--surface);border-radius:var(--r-lg);padding:32px 36px;display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;isolation:isolate;overflow:hidden}.hero-panel:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:calc(var(--r-lg) + 1px);background:var(--grad);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;padding:1px;z-index:-1;pointer-events:none}.hero-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-lg);background:radial-gradient(ellipse at 8% 30%,rgba(0,196,168,.07),transparent 50%),radial-gradient(ellipse at 90% 75%,rgba(153,34,238,.07),transparent 50%);pointer-events:none;z-index:-1}.hero-copy{flex:1;min-width:0}.eyebrow{font-size:9.5px;font-family:JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:10px}.hero-copy h2{font-family:Montserrat,sans-serif;font-size:clamp(18px,2vw,26px);font-weight:700;line-height:1.2;letter-spacing:-.02em;margin-bottom:8px;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-copy p{font-size:13px;color:var(--t2);line-height:1.6;max-width:52ch}.hero-rail{display:flex;flex-direction:column;gap:5px;flex-shrink:0;align-items:flex-end}.hero-rail span{font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--t3);padding:5px 12px;border:1px solid var(--border);border-radius:3px;white-space:nowrap;background:var(--surface-2)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border)}.metric-card{background:var(--surface);padding:22px 20px 18px;display:flex;flex-direction:column;gap:0;animation:fade-up .26s var(--ease) both}.metric-card:nth-child(2){animation-delay:40ms}.metric-card:nth-child(3){animation-delay:80ms}.metric-card:nth-child(4){animation-delay:.12s}.metric-card>span,.metric-label{font-size:10px;font-family:JetBrains Mono,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);display:block;margin-bottom:8px}.metric-card>strong,.metric-value{display:block;font-family:Montserrat,sans-serif;font-size:34px;font-weight:700;line-height:1;letter-spacing:-.03em;margin-bottom:8px;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.metric-card>small,.metric-delta{font-size:10.5px;color:var(--t2);display:block;font-family:JetBrains Mono,monospace;letter-spacing:.03em}.two-col,.double-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.panel-header{padding:13px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.panel-title{font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--t1)}.panel-meta{font-size:10px;color:var(--t3);font-family:JetBrains Mono,monospace}.table-row{display:grid;grid-template-columns:1.6fr .9fr .7fr;gap:12px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);transition:background .13s var(--ease)}.table-row:last-child{border-bottom:none}.table-row:hover{background:var(--surface-2)}.row-primary{font-size:12.5px;font-weight:500;color:var(--t1)}.row-sub{font-size:11px;color:var(--t3);margin-top:1px}.row-stage{font-size:11px;color:var(--t2);font-family:JetBrains Mono,monospace}.row-amount{font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;color:var(--t1);text-align:right}.activity-item{display:flex;align-items:flex-start;gap:14px;padding:10px 20px;border-bottom:1px solid var(--border);transition:background .13s var(--ease)}.activity-item:last-child{border-bottom:none}.activity-item:hover{background:var(--surface-2)}.activity-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;margin-top:6px}.activity-dot.tone-ok{background:var(--teal)}.activity-dot.tone-warn{background:var(--warning)}.activity-dot.tone-accent{background:var(--violet)}.activity-body{flex:1;min-width:0}.activity-title{font-size:12.5px;font-weight:500;color:var(--t1)}.activity-text{font-size:11px;color:var(--t2);margin-top:2px}.activity-stamp{font-family:JetBrains Mono,monospace;font-size:9.5px;color:var(--t3);flex-shrink:0;margin-top:3px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;transition:border-color .14s var(--ease),background .14s var(--ease);animation:fade-up .26s var(--ease) both}.project-card:nth-child(2){animation-delay:40ms}.project-card:nth-child(3){animation-delay:80ms}.project-card:nth-child(4){animation-delay:.12s}.project-card:nth-child(5){animation-delay:.16s}.project-card:nth-child(6){animation-delay:.2s}.project-card:hover{border-color:#00c4a838;background:var(--surface-2)}.project-card-link{text-decoration:none;display:block;cursor:pointer}.project-topline{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.project-code{font-family:JetBrains Mono,monospace;font-size:9.5px;letter-spacing:.09em;color:var(--t3);text-transform:uppercase}.status-pill{font-size:9px;font-weight:700;font-family:JetBrains Mono,monospace;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:3px;white-space:nowrap}.status-pill.healthy{color:var(--teal);background:#00c4a81f}.status-pill.at-risk{color:var(--warning);background:#e8a0201f}.status-pill.delivered,.status-pill.closed{color:var(--t3);background:var(--surface-3)}.status-pill.blocked{color:var(--danger);background:#e052521a}.status-pill.in-progress,.status-pill.in_progress{color:var(--sky);background:#0fa8e21f}.status-pill.discovery{color:var(--violet);background:#6644ef1f}.status-badge.healthy{color:var(--teal);background:#00c4a81f}.status-badge.at-risk{color:var(--warning);background:#e8a0201f}.status-badge.delivered{color:var(--t3);background:var(--surface-3)}.project-name{font-size:14.5px;font-weight:600;color:var(--t1);margin-bottom:3px;line-height:1.3}.project-client{font-size:11.5px;color:var(--t2);margin-bottom:16px}.progress-track{height:2px;background:var(--border);border-radius:1px;margin-bottom:12px;overflow:hidden}.progress-fill{height:100%;background:var(--grad);border-radius:1px;transition:width .6s var(--ease)}.project-meta{display:flex;align-items:center;justify-content:space-between}.project-pct{font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:600;color:var(--teal)}.project-status{font-size:11px;color:var(--t2)}.project-delivery{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--t3)}.kanban-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}.kanban-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;animation:fade-up .28s var(--ease) both}.kanban-col:nth-child(2){animation-delay:40ms}.kanban-col:nth-child(3){animation-delay:80ms}.kanban-col:nth-child(4){animation-delay:.12s}.kanban-col-header{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--border)}.kanban-col-title{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--t2)}.kanban-col-count{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--t3);background:var(--surface-2);padding:1px 6px;border-radius:3px}.kanban-cards{padding:8px;display:flex;flex-direction:column;gap:5px}.task-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:11px 12px;transition:border-color .13s var(--ease)}.task-card:hover{border-color:#00c4a838}.task-title{font-size:12.5px;font-weight:500;color:var(--t1);margin-bottom:3px}.task-assignees{font-size:11px;color:var(--t2);margin-bottom:9px}.task-footer{display:flex;align-items:center;justify-content:space-between}.task-priority{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:3px}.task-priority.critical{color:var(--danger);background:#e052521f}.task-priority.high{color:var(--sky);background:#0fa8e21a}.task-priority.medium{color:var(--t2);background:var(--surface-3)}.task-priority.low{color:var(--t3);background:transparent;padding-left:0}.task-due{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--t3)}.task-card{cursor:grab}.task-card:active{cursor:grabbing}.kanban-cards-inner{min-height:32px}.kanban-col-over{border-color:#00c4a84d;background:#00c4a808}.drag-overlay-card{position:relative;width:100%;cursor:grabbing;transform:rotate(1.5deg);box-shadow:0 24px 60px #000000b3,0 0 0 1px #00c4a840;border-radius:var(--r);opacity:.96}.drag-overlay-card .task-card{pointer-events:none;margin:0}.add-task-form{background:var(--surface-3);border:1px solid var(--border-2);border-radius:var(--r);padding:10px;margin-top:4px}.add-task-form input,.add-task-form select{display:block;width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--t1);padding:6px 8px;font-family:Montserrat,sans-serif;font-size:12px;margin-bottom:6px;outline:none;transition:border-color .13s var(--ease)}.add-task-form input:focus,.add-task-form select:focus{border-color:var(--teal)}.add-task-form select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.add-task-form-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.form-actions{display:flex;gap:6px;margin-top:8px}.btn-primary{padding:6px 14px;border-radius:var(--r);border:none;background:var(--grad);color:#fff;font-size:11.5px;font-weight:600;cursor:pointer;font-family:inherit}.btn-primary:hover{opacity:.9}.btn-ghost{padding:6px 12px;border-radius:var(--r);border:1px solid var(--border);background:transparent;color:var(--t2);font-size:11.5px;cursor:pointer;font-family:inherit;transition:color .13s var(--ease)}.btn-ghost:hover{color:var(--t1)}.add-task-btn{display:block;width:100%;padding:7px;border:1px dashed var(--border);border-radius:var(--r);background:transparent;color:var(--t3);font-size:11px;font-family:inherit;cursor:pointer;text-align:center;margin-top:4px;transition:color .13s var(--ease),border-color .13s var(--ease)}.add-task-btn:hover{color:var(--teal);border-color:#00c4a84d}.task-desc{font-size:11px;color:var(--t2);margin-bottom:6px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-checklist-bar{display:flex;align-items:center;gap:6px;margin-bottom:8px}.task-checklist-track{flex:1;height:2px;background:var(--border);border-radius:1px;overflow:hidden}.task-checklist-fill{height:100%;background:var(--grad);border-radius:1px}.task-checklist-count{font-size:9.5px;font-family:JetBrains Mono,monospace;color:var(--t3);white-space:nowrap}.pipeline-strip{display:flex;gap:5px;flex-wrap:wrap}.pipeline-stage{padding:5px 11px;border-radius:3px;border:1px solid var(--border);font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--t3)}.billing-row{display:grid;grid-template-columns:1.6fr .9fr .8fr .6fr;gap:12px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);transition:background .13s var(--ease)}.billing-row:last-child{border-bottom:none}.billing-row:hover{background:var(--surface-2)}.billing-status{font-size:9px;font-weight:700;font-family:JetBrains Mono,monospace;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:3px;text-align:center;white-space:nowrap;justify-self:start}.billing-status.pending{color:var(--t2);background:var(--surface-3)}.billing-status.overdue{color:var(--danger);background:#e052521f}.billing-status.paid{color:var(--teal);background:#00c4a81f}.billing-status.draft{color:var(--t3);background:var(--surface-2);border:1px solid var(--border)}.billing-status.cancelled{color:var(--t3);background:transparent;text-decoration:line-through;opacity:.5}.billing-status.billed{color:var(--sky);background:#0fa8e21f}.ghost-btn{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--t2);background:transparent;border:1px solid var(--border-2);border-radius:var(--r);padding:5px 12px;cursor:pointer;transition:color .13s var(--ease),border-color .13s var(--ease),background .13s var(--ease)}.ghost-btn:hover{color:var(--t1);border-color:var(--teal);background:#00c4a80f}.bill-config-body{padding:18px 20px 20px}.bill-headline{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.bill-model-badge{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}.bill-model-badge.saas{color:var(--violet);background:#6644ef1f;border:1px solid rgba(102,68,239,.3)}.bill-model-badge.custom{color:var(--teal);background:#00c4a81a;border:1px solid var(--border-2)}.bill-headline-amount{display:flex;align-items:baseline;gap:6px}.bill-amount-value{font-family:JetBrains Mono,monospace;font-size:26px;font-weight:600;letter-spacing:-.01em;background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.bill-amount-cycle{font-size:12px;color:var(--t2)}.bill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 24px;padding-top:16px}.bill-cell{display:flex;flex-direction:column;gap:3px}.bill-cell-label{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3)}.bill-cell-value{font-size:13px;color:var(--t1)}.bill-notes{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--border);font-size:12px;color:var(--t2);line-height:1.5}.bill-empty{padding:18px 20px;color:var(--t3);font-size:12px;line-height:1.5}.dte-totals{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--t2)}.dte-ledger{padding:6px 0}.dte-row{display:grid;grid-template-columns:72px 1fr 64px 92px 96px 70px;align-items:center;gap:12px;width:100%;padding:9px 20px;background:transparent;border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;transition:background .13s var(--ease)}.dte-row:last-child{border-bottom:none}.dte-row:hover:not(:disabled){background:var(--surface-2)}.dte-row:disabled{cursor:default}.dte-period{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--t2);text-transform:uppercase;letter-spacing:.04em}.dte-bar-track{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.dte-bar-fill{display:block;height:100%;border-radius:999px;background:var(--grad);transition:width .24s var(--ease)}.dte-qty{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;color:var(--t1);text-align:right}.dte-unit{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--t3);text-align:right}.dte-total{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--t1);text-align:right}.modal-total-strip{display:flex;align-items:center;justify-content:space-between;margin:14px 0 4px;padding:11px 14px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border-2)}.modal-total-strip span{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--t2)}.modal-total-strip strong{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600;color:var(--teal)}.modal-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--t1);cursor:pointer;margin-bottom:6px}.modal-check input{width:15px;height:15px;accent-color:var(--teal)}.bill-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.bill-kpi{padding:16px 18px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border)}.bill-kpi-label{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3)}.bill-kpi-value{margin-top:8px;font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--t1)}.bill-kpi.accent .bill-kpi-value{background:var(--grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.bill-kpi.danger .bill-kpi-value{color:var(--danger)}.bill-kpi-sub{margin-top:2px;font-size:11px;color:var(--t2)}.bill-filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.bill-filter-select{font-size:12px;color:var(--t1);background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r);padding:6px 10px;outline:none;cursor:pointer;transition:border-color .13s var(--ease)}.bill-filter-select:focus{border-color:var(--teal)}.bill-filter-month{min-width:130px}.bill-filter-divider{width:1px;height:20px;background:var(--border-2);flex-shrink:0}.bill-filter-pills{display:flex;gap:4px;flex-wrap:wrap}.bill-filter-pill{font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:5px 10px;border-radius:999px;border:1px solid var(--border-2);background:transparent;color:var(--t2);cursor:pointer;transition:all .13s var(--ease);white-space:nowrap}.bill-filter-pill:hover{color:var(--t1);border-color:#00c4a866}.bill-filter-pill.active{background:#00c4a81f;border-color:var(--teal);color:var(--teal)}.bill-filter-clear{font-size:10px;font-weight:600;color:var(--t3);background:transparent;border:none;padding:5px 8px;cursor:pointer;border-radius:var(--r);transition:color .13s var(--ease)}.bill-filter-clear:hover{color:var(--danger)}.bill-filter-count{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--t3)}.entry-type-badge{display:inline-flex;align-items:center;font-size:8px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:3px;margin-right:6px;vertical-align:middle}.entry-type-badge.dte{color:var(--sky);background:#0fa8e21f;border:1px solid rgba(15,168,226,.3)}.entry-type-badge.saas{color:var(--violet);background:#6644ef1f;border:1px solid rgba(102,68,239,.3)}.entry-type-badge.custom{color:var(--teal);background:#00c4a81a;border:1px solid var(--border-2)}.billing-dte-row{cursor:default}.billing-virtual-row{border-left:2px dashed rgba(102,68,239,.4);opacity:.85}.billing-virtual-row:hover{opacity:1;background:#6644ef0d}.row-recurrence{margin-left:6px;color:var(--teal);font-family:JetBrains Mono,monospace;font-size:10px}@media (max-width: 720px){.bill-kpis{grid-template-columns:repeat(2,1fr)}.bill-grid{grid-template-columns:1fr}.dte-row{grid-template-columns:56px 1fr 70px}.dte-unit,.dte-total,.dte-row .billing-status{display:none}.bill-filter-bar{gap:6px;padding:10px 12px}.bill-filter-divider{display:none}}.proj-back{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-family:JetBrains Mono,monospace;letter-spacing:.04em;color:var(--t3);text-decoration:none;transition:color .13s var(--ease)}.proj-back:hover{color:var(--teal)}.proj-header{background:var(--surface);border-radius:var(--r-lg);padding:28px 30px;position:relative;isolation:isolate}.proj-header:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:calc(var(--r-lg) + 1px);background:var(--grad);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;padding:1px;z-index:-1;pointer-events:none}.proj-header-top{display:flex;align-items:center;gap:10px;margin-bottom:8px}.proj-header-title{font-family:Montserrat,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--t1);margin-bottom:8px;line-height:1.2;word-break:break-word}.proj-header-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--t2);margin-bottom:18px;flex-wrap:wrap;font-family:JetBrains Mono,monospace}.proj-progress-row{display:flex;align-items:center;gap:12px}.proj-progress-track{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden}.proj-progress-fill{height:100%;background:var(--grad);border-radius:2px;transition:width .6s var(--ease)}.proj-pct{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--teal);flex-shrink:0}.proj-team{display:flex;align-items:center;flex-shrink:0}.proj-avatar{width:22px;height:22px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:7.5px;font-weight:700;color:#fff;border:2px solid var(--surface);margin-left:-4px;text-transform:uppercase;flex-shrink:0}.proj-avatar:first-child{margin-left:0}.proj-tabs{display:flex;gap:0;border-bottom:1px solid var(--border)}.proj-tab{padding:9px 16px;border:none;background:transparent;color:var(--t3);font-size:12.5px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:Montserrat,sans-serif;letter-spacing:.01em;transition:color .13s var(--ease)}.proj-tab:hover{color:var(--t2)}.proj-tab.active{color:var(--t1);border-bottom-color:var(--teal)}.milestones-list{position:relative}.milestone-item{display:flex;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid var(--border)}.milestone-item:last-child{border-bottom:none}.milestone-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--border-2);flex-shrink:0;background:var(--surface-2);margin-top:2px;transition:border-color .2s var(--ease),background .2s var(--ease)}.milestone-dot.done{border-color:var(--teal);background:#00c4a82e;box-shadow:0 0 0 3px #00c4a814}.milestone-body{flex:1;min-width:0}.milestone-title{font-size:12.5px;font-weight:500;color:var(--t1);margin-bottom:3px}.milestone-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t3);font-family:JetBrains Mono,monospace}.milestone-amount{font-family:JetBrains Mono,monospace;font-size:11.5px;font-weight:600;color:var(--t1);flex-shrink:0}.milestone-kind{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:3px;color:var(--t3);background:var(--surface-3);font-family:JetBrains Mono,monospace}.overview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border)}.empty-state,.error-banner{padding:18px 20px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--t2);font-size:13px}.error-banner{color:#ffd7ea;border-color:#ff5f8759;background:#ff5f870d}.form-grid{display:grid;gap:10px}.form-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-width:0;padding:10px 13px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--t1);font-family:Montserrat,sans-serif;font-size:13px;outline:none;transition:border-color .13s var(--ease),background .13s var(--ease);-webkit-appearance:none}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--border-2);background:var(--surface-3)}.form-grid input::placeholder,.form-grid textarea::placeholder{color:var(--t3)}.form-grid select{cursor:pointer}.form-grid select[multiple]{min-height:120px}.role-button{display:inline-flex;align-items:center;justify-content:center;padding:9px 18px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--t2);font-family:Montserrat,sans-serif;font-size:12.5px;font-weight:500;cursor:pointer;transition:color .13s var(--ease),border-color .13s var(--ease),background .13s var(--ease);white-space:nowrap}.role-button:hover{color:var(--t1);border-color:var(--border-2);background:var(--surface-3)}.role-button.active{background:var(--grad);border-color:transparent;color:#fff;font-weight:600}.role-button.active:hover{opacity:.9}.inline-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.billing-row-button{width:100%;border:0;cursor:pointer;color:inherit;text-align:left;background:transparent;font-family:inherit}.detail-stack{display:grid;gap:10px}.detail-stack>div{font-size:13px;color:var(--t2);line-height:1.5}.detail-stack strong{color:var(--t1);font-weight:600}.mini-row{display:grid;grid-template-columns:1.2fr .8fr auto;gap:10px;padding:10px 14px;border-radius:10px;background:var(--surface-2);color:var(--t1);align-items:center;font-size:12.5px;border:1px solid var(--border);transition:border-color .13s var(--ease)}.mini-row:hover{border-color:var(--border-2)}.mini-row strong{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;color:var(--t1);text-align:right}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#09090cd1;backdrop-filter:blur(10px) saturate(.8);-webkit-backdrop-filter:blur(10px) saturate(.8);display:flex;align-items:center;justify-content:center;padding:24px;z-index:900;animation:modal-backdrop-in .18s var(--ease) both}.modal-backdrop:before{content:"";position:absolute;width:600px;height:400px;background:radial-gradient(ellipse at 30% 40%,rgba(0,196,168,.06),transparent 60%),radial-gradient(ellipse at 75% 65%,rgba(153,34,238,.06),transparent 60%);pointer-events:none}.modal-card{position:relative;background:var(--surface);border-radius:16px;width:100%;max-height:92vh;overflow-y:auto;animation:modal-card-in .24s var(--ease) both;isolation:isolate;scrollbar-width:none}.modal-card::-webkit-scrollbar{display:none}.modal-card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:17px;background:var(--grad);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;padding:1px;z-index:-1;pointer-events:none;opacity:.6}.modal-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad);border-radius:16px 16px 0 0;z-index:1;pointer-events:none}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:32px 32px 0}.modal-eyebrow{font-size:9px;font-family:JetBrains Mono,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin-bottom:8px}.modal-title{font-family:Montserrat,sans-serif;font-size:26px;font-weight:700;letter-spacing:-.02em;color:var(--t1);line-height:1.15;word-break:break-word}.modal-close{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--t3);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:4px;transition:color .13s var(--ease),border-color .13s var(--ease),background .13s var(--ease)}.modal-close:hover{color:var(--t1);border-color:var(--border-2);background:var(--surface-2)}.modal-body{padding:24px 32px 32px}.modal-field{display:flex;flex-direction:column;gap:0;padding:14px 0;border-bottom:1px solid var(--border);position:relative}.modal-field:last-of-type{border-bottom:none}.modal-field label{font-size:8.5px;font-family:JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);margin-bottom:9px;display:block;pointer-events:none;transition:color .16s var(--ease)}.modal-field:focus-within label{color:var(--teal)}.modal-field input,.modal-field select,.modal-field textarea{width:100%;background:transparent;border:none;color:var(--t1);font-size:14px;font-family:Montserrat,sans-serif;padding:0;outline:none;line-height:1.4;-webkit-appearance:none}.modal-field input::placeholder,.modal-field textarea::placeholder{color:var(--t3);font-size:13px}.modal-field select{cursor:pointer}.modal-field select option{background:var(--surface-3);color:var(--t1)}.modal-field textarea{resize:none;min-height:56px}.modal-field:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .22s var(--ease)}.modal-field:focus-within:after{transform:scaleX(1)}.modal-row{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}.modal-row .modal-field{border-bottom:none}.modal-row-wrap{border-bottom:1px solid var(--border);padding:0}.modal-row-wrap:last-of-type{border-bottom:none}.modal-section{font-size:8.5px;font-family:JetBrains Mono,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);padding:20px 0 4px;display:flex;align-items:center;gap:12px}.modal-section:after{content:"";flex:1;height:1px;background:var(--border)}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding-top:20px;border-top:1px solid var(--border);margin-top:8px}.new-btn{position:relative;display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:10px;border:none;background:var(--surface-2);color:var(--t1);font-family:Montserrat,sans-serif;font-size:12px;font-weight:600;cursor:pointer;letter-spacing:.02em;isolation:isolate;transition:background .13s var(--ease)}.new-btn:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:11px;background:var(--grad);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;padding:1px;z-index:-1;pointer-events:none;opacity:.5;transition:opacity .13s var(--ease)}.new-btn:hover{background:var(--surface-3)}.new-btn:hover:before{opacity:1}.new-btn-icon{width:14px;height:14px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:#fff;font-weight:300;flex-shrink:0}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-card-in{0%{opacity:0;transform:translateY(14px) scale(.975)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 1280px){.metric-grid,.project-grid,.kanban-grid{grid-template-columns:repeat(2,1fr)}.form-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-stats{grid-template-columns:repeat(2,1fr)}.hero-panel{grid-template-columns:1fr}.hero-rail{flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:flex-start}}@media (max-width: 960px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap}.nav{flex-direction:row;flex-wrap:wrap;padding:8px}.sidebar-footer{padding:8px 12px;border-top:none;border-left:1px solid var(--border)}.content{padding:20px 18px}.two-col,.double-grid{grid-template-columns:1fr}}@media (max-width: 600px){.metric-grid{grid-template-columns:1fr 1fr}.project-grid,.kanban-grid{grid-template-columns:1fr}.overview-stats{grid-template-columns:1fr 1fr}.form-grid-wide,.mini-row{grid-template-columns:1fr}.billing-row{grid-template-columns:1fr 1fr}.billing-row>:nth-child(3){display:none}.hero-panel{padding:22px 18px}.content{padding:16px 14px}}@media (prefers-reduced-motion: reduce){*,.page-stack{animation:none!important;transition:none!important}}
