:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070b12;--card:#141b27;--card-2:#1b2433;--line:#ffffff14;--text:#f4f7fb;--muted:#b7c2d0;--faint:#8b98ab;--accent:#2f8cff;--critical:#ff5d6c;--accent-2:#9cc7ff;--glow:#2f8cff73;--early:#3ddc97;--late:#ff5d6c;--risk:#f5b942;--radius:16px;--font:system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(880px 420px at 8% -12%, #2f8cff47, transparent 58%), var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);font-size:15px;line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.boot{padding:32px 16px}.app{min-height:100vh}.sidebar{display:none}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:5;border-bottom:1px solid var(--line);background:#070b12eb;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex;position:sticky;top:0}.brand-phone{flex:none;width:36px;height:auto}.brand-word{width:auto;height:28px;display:none}.search{border:1px solid var(--line);min-width:0;min-height:44px;color:var(--faint);background:#0d1420;border-radius:999px;flex:160px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:16px}.search input::placeholder{color:var(--faint)}.icon-button{border:1px solid var(--line);width:44px;height:44px;color:var(--accent-2);background:#121a28;border-radius:12px;flex:none;place-items:center;display:grid;position:relative}.badge{background:var(--accent);color:#fff;text-align:center;min-width:16px;height:16px;box-shadow:0 0 10px var(--glow);border-radius:99px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:4px;right:4px}.alert-slot{flex:none;position:relative}.alerts{background:#121a28;border:1px solid #2f8cff66;border-radius:14px;width:min(320px,100vw - 24px);padding:12px;position:absolute;top:50px;right:0;box-shadow:0 0 28px #2f8cff38,0 18px 40px #00000059}.alerts-kicker{color:#f5d48a;letter-spacing:.08em;margin:0 0 8px;font-size:11px;font-weight:700}.alerts ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.alerts li{color:var(--muted);font-size:13px}.profile{flex:none;align-items:center;gap:8px;display:flex}.profile-text{flex-direction:column;line-height:1.15;display:flex}.profile-name{font-size:13px;font-weight:700}.profile-role{color:var(--faint);font-size:11px;display:none}.avatar{color:#fff;width:36px;height:36px;box-shadow:0 0 16px var(--glow);background:radial-gradient(circle at 30% 30%,#9cc7ff,#2f8cff 58%,#123a73);border-radius:99px;place-items:center;font-size:12px;font-weight:750;display:grid}.content{flex-direction:column;gap:14px;min-width:0;padding:16px 14px 104px;display:flex}.tabbar{z-index:6;padding:6px 8px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0c121c;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-width:88px;min-height:48px;color:var(--faint);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:700;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--accent-2)}.example-banner{color:#f5d48a;background:#f5b9421f;border:1px solid #f5b94266;border-radius:999px;width:fit-content;max-width:100%;margin:0;padding:6px 10px;font-size:12px}.example-banner strong{letter-spacing:.06em}.greet h1{letter-spacing:-.03em;margin:2px 0 4px;font-size:1.7rem;line-height:1.1}.greet p:last-child,.lede,.empty{color:var(--muted);margin:0}.kicker{color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:750}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.kpi,.card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg, var(--card-2) 0%, var(--card) 55%);min-width:0;box-shadow:0 12px 30px #00000038}.kpi{padding:12px;position:relative;overflow:hidden}.kpi:after{content:"";pointer-events:none;background:radial-gradient(circle,#2f8cff66,#0000 70%);width:96px;height:96px;position:absolute;top:-36px;right:-28px}.kpi-label{color:var(--faint);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.kpi-value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:1.35rem;font-weight:750}.kpi-note{color:var(--muted);margin:4px 0 0;font-size:12px}.card{padding:14px}.only-you{border-color:#2f8cff80;box-shadow:0 0 0 1px #2f8cff33,0 0 32px #2f8cff38}.card h2,.greet h1{font-weight:750}.card h2{letter-spacing:-.02em;margin:0;font-size:1.05rem}.section-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.section-head p{color:var(--faint);margin:0;font-size:12px}.only-list,.task-list,.sub-block ul{margin:0;padding:0;list-style:none}.only-list{flex-direction:column;gap:12px;margin-top:12px;display:flex}.only-list li{flex-direction:column;gap:2px;display:flex}.only-title{font-weight:700}.only-detail{color:var(--muted);font-size:13px}.table-wrap{max-width:100%;overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--faint);letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:8px 8px 8px 0;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 8px 10px 0}tr:last-child td{border-bottom:0}.job-name{font-weight:700;display:block}.job-meta{color:var(--faint);margin-top:2px;font-size:12px;display:block}.health{cursor:pointer;border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;font-weight:750;display:inline-flex}.health-on_track{color:var(--early);background:#3ddc9724}.health-at_risk{color:var(--risk);background:#f5b94224}.health-behind{color:var(--late);background:#ff5d6c24}.health-details{margin-bottom:4px}.reason{max-width:220px;color:var(--muted);margin:6px 0 0;font-size:12px}.health::-webkit-details-marker{display:none}.variance{font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:750}.variance-early{color:var(--early)}.variance-late{color:var(--late)}.variance-even{color:var(--muted);font-weight:650}.progress-line{align-items:center;gap:8px;min-width:108px;display:flex}.progress{background:#ffffff14;border-radius:99px;flex:1;height:8px;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;box-shadow:0 0 12px var(--glow);border-radius:99px;display:block}.pct{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}@media (max-width:959px){.hide-phone{display:none}}.kanban{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.column{border:1px solid var(--line);background:#0e1522;border-radius:14px;flex:0 0 210px;min-width:0;padding:12px}.column h3{margin:0;font-size:14px}.column-meta{color:var(--accent-2);font-variant-numeric:tabular-nums;margin:4px 0 10px;font-size:12px}.lead{border-top:1px solid var(--line);padding:8px 0}.lead h4{margin:0;font-size:13px}.lead p{color:var(--faint);margin:2px 0 0;font-size:12px}.lead-value{font-variant-numeric:tabular-nums;color:var(--text)!important}.chart{width:100%;height:auto;display:block}.chart text{font-family:var(--font)}.task-list,.task{flex-direction:column;gap:10px;display:flex}.percent-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.percent-readout{font-variant-numeric:tabular-nums;min-width:48px;margin:0;font-size:1.25rem;font-weight:750}.percent-controls input[type=range]{min-height:44px;accent-color:var(--accent);flex:140px}.percent-number input{border:1px solid var(--line);text-align:center;font-variant-numeric:tabular-nums;background:#0d1420;border-radius:10px;width:72px;min-height:44px}.scorecard{flex-direction:column;gap:4px;display:flex}.sub-block{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.sub-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sub-block h3{margin:0;font-size:15px}.sub-block li{color:var(--muted);justify-content:space-between;gap:10px;padding:7px 0;font-size:13px;display:flex}.side-nav{flex-direction:column;gap:4px;display:flex}.nav-link{min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-weight:650;text-decoration:none;display:flex}.nav-link[aria-current=page]{color:var(--text);box-shadow:inset 3px 0 0 var(--accent);background:linear-gradient(90deg,#2f8cff38,#2f8cff0d)}.logo-lockup{width:100%;height:auto;margin:0 0 18px}.sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding-top:14px}@media (min-width:720px){.profile-role{display:block}.kpi-value{font-size:1.6rem}}@media (min-width:960px){.app{display:flex}.sidebar{border-right:1px solid var(--line);background:#0c121c;flex-direction:column;flex:none;width:240px;height:100vh;padding:18px 14px 16px;display:flex;position:sticky;top:0}.tabbar,.brand-phone{display:none}.brand-word{display:block}.content{gap:16px;padding:22px 28px 40px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kanban{grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:visible}.column{flex:none}.greet h1{font-size:2rem}.task{flex-direction:row;justify-content:space-between;align-items:center}.percent-controls{width:min(420px,48%)}}.schedule-screen,.schedule-screen [data-testid=schedule-view]{min-width:0}.schedule-screen h1{letter-spacing:-.03em;margin:0;font-size:1.4rem}.schedule-name{border:0;border-bottom:1px solid var(--line);background:0 0;width:min(100%,560px);margin-top:4px;padding:6px 0;font-size:1.15rem;font-weight:750;display:block}.schedule-tools,.zoom,.link-add,.link-list li,.legend,.row-actions,.confirm-reset{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-tools{align-items:flex-end}.schedule-tools label,.zoom{color:var(--faint);letter-spacing:.04em;flex-direction:column;gap:4px;font-size:11px;font-weight:750;display:flex}.zoom{flex-direction:row;align-items:center}.schedule-tools input,.schedule-tools select,.cell-input,.text-button,.zoom button,.row-actions button,.link-list button{border:1px solid var(--line);background:#0d1420;border-radius:8px;min-height:36px;font-size:16px}.text-button,.zoom button,.row-actions button,.link-list button,.link-add button{min-height:44px;padding:0 12px;font-weight:750}.text-button.primary,.link-add button{background:var(--accent);color:#fff;border-color:#0000}.zoom button[aria-pressed=true]{color:var(--accent-2);background:#2f8cff38}.cell-input{padding:0 8px}.id-input{width:64px}.name-input{width:148px}.csi-input{width:96px}.cell-input[aria-invalid=true]{border-color:var(--critical)}.calendar-note,.float-readout{color:var(--muted);margin:0;font-size:13px}.legend{color:var(--muted);margin:0;padding:0;font-size:12px;list-style:none}.legend li{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.swatch-normal{background:var(--accent)}.swatch-critical{background:var(--critical)}.swatch-milestone{background:var(--accent);transform:rotate(45deg)}.swatch-today{background:#f4f7fb}.swatch-data{background:var(--risk)}.schedule-board{grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;display:grid}.schedule-board>*{min-width:0}.table-scroll,.gantt-scroll{contain:paint;border:1px solid var(--line);background:#101722;border-radius:14px;min-width:0;max-width:100%;overflow-x:auto}.gantt-scroll{order:1;container-type:inline-size}.table-scroll{order:3}.schedule-table{border-collapse:separate;border-spacing:0;min-width:980px}.money-input{width:112px}.cost-note{color:var(--muted);margin:0;font-size:13px}.local-mode-banner{background:var(--card);border:1px solid var(--line);color:var(--muted);border-radius:12px;margin:0;padding:10px 12px;font-size:13px}.sign-in{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:12px;width:min(440px,100%);margin:8px auto;padding:22px 20px;display:flex}.sign-in h1{margin:0;font-size:1.6rem}.sign-in form{flex-direction:column;gap:10px;display:flex}.sign-in label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.sign-in input,.sign-in button{border:1px solid var(--line);background:#0d1420;border-radius:10px;min-height:44px;padding:8px 12px}.sign-in button.primary{background:var(--accent);color:#fff;border-color:#0000;font-weight:650}.sign-in button:disabled{opacity:.55;cursor:not-allowed}.sign-in .test-sign-in{border-top:1px solid var(--line);flex-direction:column;gap:10px;margin-top:8px;padding-top:12px;display:flex}.swatch-cost{background:#2f8cff8c;box-shadow:inset 0 -3px #2f8cff}.schedule-table th,.schedule-table td{white-space:nowrap;height:48px;padding:0 6px}.schedule-table thead th{height:40px}.schedule-table tr.is-critical td:first-child{box-shadow:inset 3px 0 0 var(--critical)}.constraint-pair{align-items:center;gap:6px;display:flex}.row-actions button{min-height:32px;padding:0 8px;font-size:12px}.gantt-canvas{position:relative}.gantt-head{border-bottom:1px solid var(--line);height:40px;position:relative}.gantt-tick{color:var(--faint);font-size:11px;font-weight:700;position:absolute;top:10px}.gantt-body{position:relative}.gantt-row{border-bottom:1px solid var(--line);height:48px;position:relative}.gantt-name{display:none}.sunday{pointer-events:none;background:#ffffff09;position:absolute;top:0;bottom:0}.gantt-arrows{pointer-events:none;position:absolute;inset:0;overflow:visible}.link-arrow{fill:none;stroke-width:1.5px}.gantt-bar{background:var(--accent);height:16px;box-shadow:0 0 12px var(--glow);color:#fff;text-align:left;border:0;border-radius:6px;padding:0 0 0 4px;font-size:11px;font-weight:750;line-height:16px;position:absolute;top:16px;overflow:hidden}.gantt-bar.is-critical{background:var(--critical);box-shadow:0 0 12px #ff5d6c73}.gantt-bar.is-summary{background:var(--faint);height:8px;box-shadow:none;color:#0000;border-radius:999px;top:20px}.schedule-table tr.is-summary .name-input{font-weight:750}.gantt-bar.is-milestone{border-radius:2px;width:14px;height:14px;padding:0;top:17px;transform:rotate(45deg)}.milestone-id{color:var(--text);pointer-events:none;font-size:11px;font-weight:750;position:absolute;top:14px}.cost-plot{display:block}.cost-bar{fill:#2f8cff80}.cost-line{fill:none;stroke:#2f8cff;stroke-width:2px}.cost-baseline{stroke:#ffffff29;stroke-width:1px}.cost-caption{box-sizing:border-box;width:100cqi;padding:8px 10px 12px;position:sticky;left:0}.cost-caption p{color:var(--muted);margin:0 0 6px;font-size:13px}.cost-weeks{flex-wrap:wrap;gap:6px 8px;display:flex}.cost-weeks span{color:var(--accent-2);background:#2f8cff2e;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.csi-panel{border:1px solid var(--line);background:#101722;border-radius:14px;order:2;min-width:0;padding:12px}.csi-panel h2,.csi-panel h3{margin:12px 0 8px;font-size:1rem}.csi-panel h2{margin-top:0}.csi-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.csi-label{color:var(--faint);letter-spacing:.04em;margin-bottom:2px;font-size:11px;font-weight:750;display:block}.csi-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr);gap:8px;padding:10px 0;display:grid}.csi-row label{min-width:0}.csi-row .cell-input{width:100%;max-width:100%}.csi-compare p{margin:0 0 8px}.marker-line{z-index:3;pointer-events:none;border-left:2px solid #f4f7fb;position:absolute;top:0;bottom:0}.marker-data{border-left-style:dashed;border-left-color:var(--risk)}.marker-tag{color:var(--text);white-space:nowrap;font-size:10px;font-weight:750;position:absolute;top:2px;left:4px}.marker-data .marker-tag{color:var(--risk);top:auto;bottom:4px}.link-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.link-list li{align-items:center}.link-add{margin-top:12px}@media (min-width:960px){.schedule-screen h1{font-size:1.7rem}.schedule-board{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}.table-scroll{order:1;grid-area:1/1}.gantt-scroll{order:2;grid-area:1/2}.csi-panel{order:3;grid-column:1/-1}.csi-row{grid-template-columns:140px minmax(0,1.4fr) 180px auto;align-items:end}}
