:root{--ink:#203c36;--muted:#79847f;--green:#235b49;--lime:#dceab8;--line:#e1e5de;--paper:#f6f7f2;--white:#fff;--orange:#bc6c47}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}aside{width:238px;position:fixed;inset:0 auto 0 0;background:#edf0e8;border-right:1px solid var(--line);padding:30px 21px;display:flex;flex-direction:column}.brand{text-decoration:none;color:var(--ink);padding:0 12px}.brand b{font-size:48px;letter-spacing:-4px;line-height:1}.brand b span{font-size:13px;color:#84a45e;letter-spacing:0;margin-left:5px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:10px}.workspace{border:1px solid #d7ded2;border-radius:9px;margin:36px 0 23px;padding:12px;display:flex;gap:12px;align-items:center;font-weight:600}.workspace small{display:block;font-size:11px;color:var(--muted);font-weight:400}nav a{display:flex;gap:12px;padding:12px;margin:4px 0;color:#65736a;text-decoration:none;border-radius:6px}nav a.active{color:#234e3b;background:#dce6d1;font-weight:650}.aside-bottom{margin-top:auto;color:#65736a;font-size:12px}.aside-bottom p{font-size:11px}.status{color:#4f7052}.avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#d8dfcf;margin:20px 8px 0 0}.shell{margin-left:238px}header{height:77px;border-bottom:1px solid var(--line);padding:0 44px;display:flex;justify-content:space-between;align-items:center;font-size:12px}header i{font-style:normal;margin:0 15px;color:#b0b8ae}header strong{font-weight:500}.local{color:#678062;font-size:11px}main{padding:38px 44px 50px;max-width:1600px;margin:auto}h1{font-size:32px;letter-spacing:-1px;font-weight:550;margin:0 0 7px}h2{font-size:17px;margin:0;font-weight:600}h3{font-size:14px;margin:0}p{color:var(--muted);margin:4px 0 0}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:15px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}button,.button{border:1px solid var(--line);border-radius:6px;background:white;color:var(--ink);padding:9px 14px;text-decoration:none;display:inline-block}.primary{background:var(--green);color:white;border-color:var(--green)}.subtle{border:0;background:transparent;padding:5px 8px;color:#788579}.danger{color:#a74232}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.5px;color:var(--muted);margin-bottom:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.stat{background:#fff;border:1px solid var(--line);border-radius:9px;padding:22px}.stat label{color:#708075;font-size:12px}.stat strong{display:block;font-size:30px;font-weight:500;letter-spacing:-1px;margin:11px 0 5px}.stat small{color:var(--muted);font-size:11px}.stat.featured{background:#254e40;color:white;border-color:#254e40}.stat.featured label,.stat.featured small{color:#c3d3c7}.grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}.panel{background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:22px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:21px 23px;border-bottom:1px solid var(--line);gap:12px}.panel-head p{font-size:11px}.panel-body{padding:23px}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-size:10px;letter-spacing:.6px;color:#829084;font-weight:500;text-transform:uppercase;background:#fafbf8}td,th{padding:15px 22px;border-bottom:1px solid #edf0e9}tr:last-child td{border-bottom:0}td strong{display:block;font-weight:600}td small{color:var(--muted)}.table-wrap{overflow:auto}.badge{font-size:10px;border-radius:4px;background:#edf3e5;color:#577446;padding:4px 7px;white-space:nowrap}.badge.warn{background:#fbede2;color:#a56c43}.progress{height:5px;background:#eef0e9;border-radius:9px;overflow:hidden;margin:8px 0 5px}.progress span{display:block;height:100%;background:#8ca96c}.progress.over span{background:#c9805d}.budget-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.project-card{padding:22px;border-bottom:1px solid var(--line)}.project-card:last-child{border:0}.project-title{display:flex;justify-content:space-between;margin-bottom:10px}.project-title a{color:inherit;text-decoration:none;font-weight:600}.chart{height:215px;display:flex;gap:18px;align-items:flex-end;padding-top:20px}.chart-group{flex:1;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:flex-end}.bars{display:flex;gap:5px;height:160px;align-items:flex-end;justify-content:center}.bar{width:25px;background:#325e49;border-radius:4px 4px 0 0;min-height:2px}.bar.cost{background:#d9e2cb}.chart-group small{font-size:10px;color:var(--muted);padding-top:10px}.legend{display:flex;gap:18px;font-size:10px;color:var(--muted)}.legend b{display:inline-block;background:#325e49;width:7px;height:7px;margin-right:5px}.legend b.light{background:#d9e2cb}.empty{text-align:center;padding:40px;color:var(--muted)}.filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:20px}.filters label{font-size:11px;color:var(--muted)}input,select{background:white;border:1px solid #d7ded4;padding:9px 10px;border-radius:5px;color:var(--ink);max-width:100%}label input,label select{display:block;width:100%;margin-top:5px}footer{padding:15px 44px 30px;color:#8b968b;font-size:10px;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:12px;padding:28px;max-width:550px;width:calc(100% - 30px);color:var(--ink);box-shadow:0 20px 80px #183d3628}dialog::backdrop{background:#183d3655}dialog h2{font-size:22px;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}form label{font-size:12px;color:#657669}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:25px}.check{display:flex;gap:10px;align-items:center}.check input{width:auto;margin:0}#timerbar:not(:empty){position:fixed;bottom:20px;left:calc(50% + 119px);transform:translateX(-50%);background:#203f34;color:#fff;border-radius:9px;padding:12px 16px;display:flex;align-items:center;gap:20px;box-shadow:0 10px 30px #1234;z-index:5;min-width:430px}#timerbar small{color:#bfd0c3;display:block}#clock{font-size:21px;font-variant-numeric:tabular-nums;margin-left:auto}#toast{position:fixed;right:22px;top:20px;background:#203f34;color:white;border-radius:6px;padding:12px 20px;z-index:20;display:none}.pnl{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line)}.pnl.total{font-size:20px;font-weight:600;border:0}.note{font-size:12px;color:#7d897c;margin-top:15px}.project-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.project-list .panel{margin:0}.inline-link{color:var(--green);font-size:12px}.negative{color:#b66548}.task-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}@media(max-width:1100px){aside{width:195px}.shell{margin-left:195px}main{padding:28px 25px}header{padding:0 25px}.stats{gap:10px}.stat{padding:16px}.stat strong{font-size:25px}.grid{grid-template-columns:1fr}#timerbar:not(:empty){left:calc(50% + 97px)}}@media(max-width:720px){aside{position:static;width:auto;padding:15px}.brand b{font-size:30px}.brand small,.workspace,.aside-bottom{display:none}nav{display:flex;overflow:auto;margin-top:10px}nav a{white-space:nowrap;padding:8px;font-size:12px;gap:5px}.shell{margin:0}header{height:50px;padding:0 18px}main{padding:24px 17px}.heading{align-items:flex-start;flex-direction:column}h1{font-size:27px}.stats{grid-template-columns:repeat(2,1fr)}.project-list{grid-template-columns:1fr}td,th{padding:12px}footer{padding:20px}#timerbar:not(:empty){left:12px;right:12px;transform:none;min-width:0;gap:10px;font-size:11px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.local{font-size:10px}}
@media(min-width:721px) and (max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}}
/* TAD internal workspace — reference-aligned UI */
:root{--ink:#25272c;--muted:#878a92;--green:#087fff;--lime:#eaf3ff;--line:#e4e6eb;--paper:#fff;--orange:#b96740}
body{background:#fff;font-size:14px}aside{width:246px;background:#fff;padding:22px 12px;border-color:var(--line)}.shell{margin-left:246px}.brand{display:flex;align-items:center;gap:12px;padding:0 10px}.brand-mark{color:#3489b5;font-size:31px;filter:drop-shadow(0 0 3px #7fa9ba)}.brand strong{font-size:16px;font-weight:650}.brand small{font-size:12px;color:#989ba3;letter-spacing:0;margin:0}.nav-label{font-size:10px;letter-spacing:1px;font-weight:600;color:#989ba3;margin:35px 12px 12px}nav a{padding:10px 12px;gap:11px;color:#5d626b;margin:3px 0}nav a.active{background:#f0f1f3;color:#25272c}.icon{width:19px;height:19px;flex-shrink:0;vertical-align:middle}nav [data-icon]{display:flex}.aside-bottom{border-top:1px solid var(--line);padding:18px 9px 0}.aside-bottom>p,.status{display:none}.avatar{background:#f1f3f5;border:1px solid #dfe3e9;color:#626975;margin:0 6px 0 0}header{height:56px;padding:0 38px}header>span:first-child{font-size:13px}.local{color:#8a9099}main{padding:32px 38px 40px}h1{font-size:25px;letter-spacing:-.8px;font-weight:650}.eyebrow{display:none}.heading{margin-bottom:25px}.heading p:empty{display:none}h2{font-size:15px}.stat,.panel{border-color:#e0e3ea;border-radius:11px;box-shadow:0 2px 8px #1a2b4010}.stat{padding:23px 25px;display:flex;flex-direction:column;align-items:flex-start;min-height:166px}.stat-icon{display:flex;align-items:center;justify-content:center;width:37px;height:37px;background:#edf5ff;color:#087fff;border-radius:9px;margin-bottom:12px}.stat strong{order:1;font-size:31px;font-weight:650;letter-spacing:-1px;margin:0 0 2px}.stat label{order:2;font-size:12px;font-weight:550;color:#7f838b}.stat small{order:3;margin-top:5px;font-size:11px;color:#9b9fa5}.stat.featured{background:#fff;border-color:#e0e3ea;color:var(--ink)}.stat.featured label,.stat.featured small{color:#7f838b}.panel-head{padding:17px 20px}.panel-body{padding:21px}.panel-head p{color:#999da5}.inline-link{color:#087fff}.grid{grid-template-columns:1.6fr 1fr}.progress{background:#edf0f5}.progress span{background:#087fff}.badge{background:#edf5ff;color:#087fff}.primary{background:#087fff;border-color:#087fff}.primary:hover{background:#0070e8}button{border-radius:7px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover{border-color:#aebdce}button .icon{width:17px;height:17px}.inline-link{display:inline-flex;align-items:center;gap:5px}.inline-link .icon{width:13px;height:13px}.project-title a{display:inline-flex;gap:5px;align-items:center}input:focus,select:focus{outline:2px solid #b8dbff;border-color:#087fff}.chart-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chart-controls button{font-size:11px;padding:5px 9px;border-color:transparent;background:#f4f7fb}.chart-controls button[aria-pressed=false]{opacity:.45}.chart-controls>span{margin-left:auto;font-size:10px;color:#999da5}.key{height:7px;width:7px;display:inline-block;border-radius:2px;background:#087fff}.key.cost{background:#bfdaff}.chart{position:relative;gap:7px;height:230px;margin-top:12px;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#f0f2f6 49px,#f0f2f6 50px)}button.chart-group{background:transparent;border:0;padding:0 3px;border-radius:5px;position:relative;display:flex;gap:0;min-width:0}button.chart-group:hover,button.chart-group:focus-visible{background:#eff6ff;outline:2px solid #c3ddff;outline-offset:0}.bars{display:flex;width:100%;height:190px}.bar{background:#087fff;width:25px}.bar.cost{background:#bfdaff}.chart-group small{display:block;padding:8px 0 0}.chart-tip{display:none;position:absolute;bottom:110px;left:50%;transform:translateX(-50%);width:190px;border:1px solid var(--line);border-radius:7px;background:#fff;box-shadow:0 8px 30px #182b4420;padding:12px;z-index:3;pointer-events:none;text-align:left;font-size:11px;font-weight:400}.chart-tip strong{display:block;margin-bottom:8px}.chart-tip>span{display:flex;justify-content:space-between;gap:10px;padding:3px 0;color:#747e8a}.chart-tip b{color:var(--ink);font-weight:600}.chart-group:hover .chart-tip,.chart-group:focus-visible .chart-tip{display:block}.chart-group:first-child .chart-tip{left:0;transform:none}.chart-group:last-child .chart-tip{left:auto;right:0;transform:none}.chart-empty{text-align:center;font-size:11px;margin:8px 0;color:#969ca4}#timerbar:not(:empty){background:#182e4c;left:calc(50% + 123px)}dialog{border-color:#e1e5ec;border-radius:11px}dialog::backdrop{background:#16263b55}footer{display:none}.empty h2{margin-bottom:6px}.empty p{font-size:12px}.note{font-size:11px}.pnl small{color:var(--muted)}
@media(max-width:1100px){aside{width:206px}.shell{margin-left:206px}main{padding:28px 24px}.grid{grid-template-columns:1fr}.brand strong{font-size:14px}.brand small{font-size:11px}#timerbar:not(:empty){left:calc(50% + 103px)}}
@media(max-width:720px){aside{width:auto;padding:14px 12px;position:static}.shell{margin:0}.brand{padding:0 5px}.brand small{display:block}.brand-mark{font-size:25px}.nav-label{display:none}nav{margin-top:14px}nav a{padding:8px;font-size:11px}nav a .icon{width:16px;height:16px}.heading{flex-direction:row;align-items:center;flex-wrap:wrap}.heading h1{font-size:23px}.heading p{font-size:12px}.stats{gap:10px}.stat{padding:17px;min-height:150px}.stat strong{font-size:27px}.stat small{font-size:10px}main{padding:24px 16px}.panel-head{padding:15px}.panel-body{padding:17px}.chart-controls>span{width:100%;margin:4px 0 0}.chart-tip{width:160px}.chart{gap:2px}.bar{width:18px}#timerbar:not(:empty){left:12px}.brand b{letter-spacing:0}}

.inline-link{text-decoration:none}.inline-link:hover{text-decoration:underline}
.time-options{border-top:1px solid var(--line);padding-top:14px}.time-options summary{cursor:pointer;color:#78818e;font-size:12px}.time-options[open] summary{margin-bottom:16px}
/* Shared internal-tool controls */
nav{margin-top:28px}.brand-mark{filter:none;font-size:27px}.aside-bottom .local{display:block;font-size:10px;margin-bottom:14px;color:#959ca7}main{padding-top:30px}.icon{width:18px;height:18px;stroke-width:1.6}.brand small{font-size:11px}#toast{background:#fff;color:#27394d;border:1px solid #cfe3ff;border-left:3px solid #087fff;box-shadow:0 5px 24px #182a4218;border-radius:7px;padding:12px 18px;font-size:13px;max-width:calc(100vw - 36px);right:20px;top:20px}#timerbar:not(:empty){background:#fff;color:#27394d;border:1px solid #dce5f1;box-shadow:0 6px 26px #182a4220}#timerbar small{color:#8490a0}#timerbar button{background:#087fff;border-color:#087fff;color:white}.billing-summary{font-size:11px;color:#687a91;background:#f4f8fd;border-radius:6px;padding:10px 12px}.assignment-list{border-top:1px solid var(--line);padding-top:16px}.assignment{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;padding:14px;background:#f7f9fc;border-radius:7px}.assignment input[type=number]{width:100%}.assignment-list h3{margin-bottom:10px}.form-actions{align-items:center}#confirm-dialog{max-width:420px}.danger{color:#b54646}.aside-bottom .local{white-space:normal}

[hidden]{display:none!important}

.finance-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.month-switch{display:flex;align-items:center;gap:18px}.month-switch strong{min-width:130px;text-align:center;font-weight:550}.month-switch button{font-size:22px;padding:2px 12px}.view-switch{margin-left:auto;display:flex;background:#f2f5f9;padding:3px;border-radius:8px;gap:3px}.view-switch button{background:transparent;border-color:transparent;padding:7px 12px;font-size:12px}.view-switch button[aria-pressed=true]{background:white;box-shadow:0 1px 4px #19304414;color:#087fff}.month-link{padding:0;background:transparent;border:0;color:#087fff;font-size:12px;white-space:nowrap}.month-link .icon{width:12px}.months-table td:not(:first-child),.months-table th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.months-table tfoot{background:#f5f8fc;font-weight:600}.period-note{padding:10px 22px 18px}.client-label{font-size:11px;color:#087fff;text-decoration:none}.heading p{font-size:12px;margin-top:5px}@media(max-width:720px){.finance-controls{gap:8px}.view-switch{margin-left:0}.month-switch{width:100%;justify-content:space-between}}

.forecast-strip{display:flex;align-items:center;gap:22px;padding:17px 20px;flex-wrap:wrap;font-size:12px}.forecast-strip>span{color:var(--muted)}.forecast-strip .inline-link{margin-left:auto}

.recurring-category+ .recurring-category{margin-top:25px}.recurring-category h3{background:#f4f7fb;padding:9px 12px;border-radius:5px;color:#465b74}.recurring-category .pnl{padding:13px 8px}.recurring-category .pnl>span:last-child{white-space:nowrap}

.sheet-scroll{overflow:auto;max-height:65vh}.planning-sheet{width:max-content;min-width:100%;table-layout:fixed}.planning-sheet th,.planning-sheet td{padding:0;border-right:1px solid #edf0f5;height:54px;min-width:96px;width:96px;font-variant-numeric:tabular-nums}.planning-sheet thead th{position:sticky;top:0;z-index:3;background:#f5f7fa;padding:12px;font-size:10px;white-space:nowrap}.planning-sheet .sticky-project{position:sticky;left:0;width:230px;min-width:230px;background:#fff;z-index:2;padding:12px 16px;max-width:230px;white-space:normal}.planning-sheet .sticky-consultant{position:sticky;left:230px;width:160px;min-width:160px;background:#fff;z-index:2;padding:12px;border-right:1px solid #dfe5ee}.planning-sheet thead .sticky-project,.planning-sheet thead .sticky-consultant{z-index:5;background:#f5f7fa}.planning-sheet td small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.plan-cell input{width:100%;height:54px;border:0;border-radius:0;background:transparent;text-align:right;padding:12px 16px;font-size:13px;font-variant-numeric:tabular-nums}.plan-cell input:focus{background:#eff6ff;outline:2px solid #087fff;outline-offset:-2px}.plan-cell input::-webkit-inner-spin-button{appearance:none}.plan-cell input.cell-saved{background:#eaf4ff}.planning-sheet tfoot{background:#f5f8fc;font-weight:600}.planning-sheet tfoot td{text-align:right;padding:12px 16px}.sheet-empty{text-align:center;color:#c5cbd3}.capacity-value{display:flex;flex-direction:column;gap:0;align-items:center;width:100%;border:0;border-radius:0;height:58px;background:#f7fbff;padding:4px;font-size:10px}.capacity-value strong{font-weight:550;white-space:nowrap}.capacity-value small{font-size:9px;margin:0}.capacity-value.overloaded{background:#fff1ed;color:#a34832}.capacity-value.overloaded small{color:#a34832}.chart-scroll{overflow-x:auto;padding-top:10px}.forecast-chart{min-width:600px;gap:4px;margin-top:0}.forecast-chart .bar{width:13px}.forecast-chart .chart-group small{font-size:9px;white-space:nowrap}.forecast-chart .current-month{background:#eff6ff;border-bottom:2px solid #087fff}.forecast-chart .chart-tip{bottom:85px}.forecast-chart .chart-group:nth-last-child(-n+3) .chart-tip{left:auto;right:0;transform:none}@media(max-width:720px){.planning-sheet .sticky-project{min-width:145px;width:145px;padding:10px}.planning-sheet .sticky-consultant{left:145px;min-width:120px;width:120px;padding:10px}.planning-sheet th,.planning-sheet td{min-width:80px;width:80px}}

.sidebar-toggle{position:absolute;right:8px;top:29px;border:0;padding:6px;color:#7a8490;background:white;z-index:2}.sidebar-toggle:hover{background:#f0f4f8;color:#087fff}.brand{margin-right:21px}.brand strong{font-size:14px}.brand small{font-size:10px}.sidebar-collapsed aside{width:66px;padding:70px 10px 18px}.sidebar-collapsed .shell{margin-left:66px}.sidebar-collapsed aside .brand{display:none}.sidebar-collapsed .sidebar-toggle{top:23px;right:16px}.sidebar-collapsed .sidebar-toggle svg{transform:rotate(180deg)}.sidebar-collapsed nav{margin:0}.sidebar-collapsed nav a{padding:12px;justify-content:center;gap:0}.sidebar-collapsed nav a>span:last-child{display:none}.sidebar-collapsed .aside-bottom{padding:16px 0 0;text-align:center}.sidebar-collapsed .aside-bottom .local,.sidebar-collapsed #profile-name{display:none}.sidebar-collapsed .avatar{margin:0}.sidebar-collapsed #timerbar:not(:empty){left:calc(50% + 33px)}@media(max-width:720px){.sidebar-toggle{top:18px;right:15px}.brand{margin-right:35px}.sidebar-collapsed aside{width:auto;padding:14px 12px;min-height:55px}.sidebar-collapsed .shell{margin-left:0}.sidebar-collapsed aside .brand{display:flex}.sidebar-collapsed .sidebar-toggle{top:18px;right:15px}.sidebar-collapsed nav{display:none}.sidebar-collapsed #timerbar:not(:empty){left:12px}}

.planning-sheet .plan-revenue-row td{height:33px;background:#f6faff;color:#3771a8;font-size:10px;text-align:right;padding:7px 12px;border-bottom:2px solid #e3ebf4}.planning-sheet .plan-revenue-row .sticky-project,.planning-sheet .plan-revenue-row .sticky-consultant{background:#f6faff;text-align:left;font-size:10px;font-weight:500}.planning-sheet tfoot tr+tr td,.planning-sheet tfoot tr+tr th{border-top:1px solid #dce5f1;color:#2867a8}

.auth-pending aside,.auth-pending .shell,.auth-pending #timerbar{display:none!important}#auth-root:empty{display:none}#auth-root{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f8fafc}.auth-card{width:100%;max-width:400px;background:#fff;padding:34px;border:1px solid #e1e6ee;border-radius:12px;box-shadow:0 10px 40px #233b5010}.auth-brand{font-size:13px;font-weight:600;color:#087fff;margin-bottom:28px}.auth-card h1{font-size:24px;margin-bottom:22px}.auth-card label{display:block;font-size:12px;color:#69768a;margin:15px 0}.auth-card button.primary{width:100%;margin-top:12px}.auth-card #auth-message{font-size:12px;color:#8b5e4d;min-height:18px}.auth-links{display:flex;justify-content:space-between;margin-top:14px;gap:8px}.auth-links button{padding:0;border:0;background:transparent;font-size:11px;color:#087fff}.auth-card>.note{margin-top:24px}button:disabled{cursor:wait;opacity:.65}[data-plan-cell]:disabled{background:#f6f8fb;cursor:default}
/* Consistent blue / neutral tables and full-page editors. */
thead th{background:#f2f7fd;color:#607086;border-bottom:1px solid #dfe7f1}td,th{border-bottom-color:#e8edf4}tbody tr:hover{background:#f7faff}.subtle{color:#62738b}form label{color:#657286}input,select,textarea{border:1px solid #dce3ec;border-radius:6px;color:var(--ink);background:#fff;font:inherit}textarea{width:100%;padding:10px;resize:vertical;display:block;margin-top:5px}input:focus,select:focus,textarea:focus{outline:2px solid #b8dbff;border-color:#087fff}tbody tr[data-entry-row],tbody tr[data-open-row],tbody tr[data-invoice-row]{cursor:pointer}tbody tr[tabindex]:focus-visible{outline:2px solid #087fff;outline-offset:-2px;background:#edf5ff}.entry-start{display:block;margin-top:3px;white-space:nowrap}.consultant-picker{display:inline-flex;gap:10px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:16px}.panel-head .consultant-picker{margin:0}.consultant-picker select{width:auto;margin:0}.completed-projects summary{padding:19px 20px;cursor:pointer;font-weight:600}.completed-projects summary span{float:right;color:var(--muted);font-weight:400}.search-label{min-width:240px}.editor-panel{max-width:1000px;padding:28px}.editor-panel .form-grid{gap:22px}.form-section{margin-top:15px;padding-top:22px;border-top:1px solid var(--line)}.editor-panel .form-actions .danger{margin-right:auto}.invoice-editor{padding:28px}.invoice-lines{margin:24px 0 16px}.invoice-lines td,.invoice-lines th{padding:12px}.invoice-lines td:first-child{width:55%}.invoice-lines input{width:100%;min-width:80px;padding:9px}.invoice-lines td:first-child input{min-width:210px}.invoice-totals{margin:20px 0 24px auto;max-width:300px;display:grid;gap:12px}.invoice-totals>div{display:flex;justify-content:space-between;gap:30px}.invoice-totals input{width:90px;margin-left:auto}.invoice-grand{border-top:1px solid var(--line);padding-top:14px;font-size:19px}.invoice-print-head{display:flex;justify-content:space-between;gap:40px;margin-bottom:35px}.invoice-print-head>div{max-width:55%}#invoice-print{display:none}.bar,.key{background:#bfdaff}.bar.cost,.key.cost{background:#087fff}.planning-sheet thead th,.planning-sheet thead .sticky-project,.planning-sheet thead .sticky-consultant{background:#f2f7fd;color:#607086}.project-hours-sheet .sticky-project{left:0}.project-hours-sheet .sticky-consultant{left:230px}
@media(max-width:720px){.editor-panel,.invoice-editor{padding:18px}.consultant-picker{flex-wrap:wrap}.project-hours-sheet .sticky-consultant{left:145px}.invoice-print-head{gap:20px}}
@media print{body.printing-invoice aside,body.printing-invoice .heading,body.printing-invoice #timerbar,body.printing-invoice #toast,body.printing-invoice .invoice-editor{display:none!important}body.printing-invoice .shell{margin:0!important}body.printing-invoice main{padding:0;max-width:none}body.printing-invoice #invoice-print{display:block;color:#1f2937;font-size:12px}#invoice-print td,#invoice-print th{padding:12px 8px}#invoice-print th{background:#f2f7fd!important}#invoice-print p{white-space:normal;color:#475569}#invoice-print h1{font-size:25px}#invoice-print strong{font-weight:600}#invoice-print tr{break-inside:avoid}@page{size:A4;margin:18mm}}
input[type=number]{appearance:textfield;-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none!important;appearance:none!important;margin:0}
/* Fit the chosen month window; scrolling is only needed if a wider view is requested. */
.planning-sheet{width:100%;min-width:0;table-layout:fixed}.planning-sheet th,.planning-sheet td{width:auto;min-width:70px}.planning-sheet .sticky-project{width:200px;min-width:200px;max-width:200px}.planning-sheet .sticky-consultant{left:200px;width:140px;min-width:140px}.project-hours-sheet .sticky-consultant{left:200px}.sheet-scroll{scrollbar-width:thin;scrollbar-color:#cad8e8 transparent}.sheet-scroll::-webkit-scrollbar{height:5px;width:5px}.sheet-scroll::-webkit-scrollbar-thumb{background:#cad8e8;border-radius:8px}.sheet-scroll::-webkit-scrollbar-track{background:transparent}.planning-view{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.planning-view select{margin:0;width:auto}.plan-cell input{min-width:65px;padding:10px 8px}.planning-sheet th{font-size:10px;white-space:nowrap}.planning-sheet td{overflow:hidden}.planning-sheet .sticky-project,.planning-sheet .sticky-consultant{overflow-wrap:anywhere}
@media(max-width:700px){.planning-sheet .sticky-project{width:130px;min-width:130px;max-width:130px}.planning-sheet .sticky-consultant{left:130px;width:100px;min-width:100px}.project-hours-sheet .sticky-consultant{left:130px}.planning-sheet thead th{padding:10px 5px}.planning-sheet .sticky-project,.planning-sheet .sticky-consultant{padding:10px 8px}.panel-head:has(.planning-view){flex-wrap:wrap}.plan-cell input{padding:8px 6px}}
/* Unified control rhythm and table palette. */
:root{--field-height:40px;--table-head:#f2f7fd;--table-rule:#e3eaf3;--table-label:#607086}label{color:#69768a}.filters{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.filters>label,.filters>.consultant-picker{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:0;min-width:150px;flex:1 1 170px;font-size:12px}.filters>button{flex:0 0 auto;height:var(--field-height);margin:0}.filters label input,.filters label select{width:100%;margin:0}.filters>.consultant-picker select{width:100%}input:not([type=checkbox]):not([type=radio]),select{min-height:var(--field-height);padding:9px 11px;line-height:20px}button,.button{min-height:var(--field-height);padding:9px 14px;line-height:20px;vertical-align:middle}.form-grid>label{display:flex;flex-direction:column;gap:6px;justify-content:flex-start}.form-grid>label>input,.form-grid>label>select,.form-grid>label>textarea{margin:0}.form-grid>label.check{flex-direction:row;align-items:center;justify-content:flex-start}.assignment{align-items:end}.assignment label input{margin-top:6px}input[type=checkbox],input[type=radio]{min-height:0;padding:0}.panel-head label{font-size:12px;display:flex;align-items:center;gap:8px}.panel-head label select{margin:0}.subtle{min-height:32px;padding:5px 8px}.plan-cell input{min-height:54px;border-radius:0;line-height:20px}.month-switch button{min-height:36px}.panel-head{flex-wrap:wrap}table thead th,table tfoot th,table tfoot td,.planning-sheet thead .sticky-project,.planning-sheet thead .sticky-consultant,.planning-sheet tfoot .sticky-project,.planning-sheet tfoot .sticky-consultant{background:var(--table-head);color:var(--table-label);border-color:var(--table-rule)}table td,table th{border-color:var(--table-rule)}.planning-sheet tbody .sticky-project,.planning-sheet tbody .sticky-consultant{background:#fff}.planning-sheet .plan-revenue-row td,.planning-sheet .plan-revenue-row .sticky-project,.planning-sheet .plan-revenue-row .sticky-consultant{background:#f4f8fe;color:#3771a8}.months-table tfoot td,.months-table tfoot th{background:var(--table-head);color:var(--table-label)}.stat{min-height:145px}.stat small:empty{display:none}.pnl>span:last-child{display:flex;align-items:center;gap:12px}.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.settings-layout>.panel{margin:0}.settings-account{order:1}.settings-target{order:2}.settings-consultants{order:3;grid-column:1/-1}.settings-team{order:4;grid-column:1/-1}.settings-costs{order:5;grid-column:1/-1}.settings-target form{display:flex;gap:14px;align-items:flex-end}.settings-target form label{flex:1}.settings-target form input{margin-top:6px;width:100%}.settings-account .panel-body>p{font-size:14px;color:var(--ink)}.settings-costs .recurring-category{margin-top:22px}.settings-costs .recurring-category:first-child{margin-top:0}.recurring-category h3{background:#f2f7fd;padding:12px;border-radius:6px;color:#4a6585}.settings-layout .pnl{align-items:center;gap:18px}.settings-layout .pnl>span:first-child{min-width:0;overflow-wrap:anywhere}.settings-layout .pnl>span:last-child{white-space:nowrap}.settings-layout .panel-head{min-height:65px}.capacity-chart{padding:20px}.capacity-chart svg{width:100%;height:auto;display:block;overflow:visible}.capacity-chart text{font-size:11px;fill:#768498}.capacity-grid{stroke:#e8edf5;stroke-width:1;fill:none}.capacity-line{fill:none;stroke:#087fff;stroke-width:2.5}.capacity-line.workload{stroke:#7b9fc7;stroke-dasharray:6 4}.capacity-point{cursor:pointer;outline:none}.capacity-point circle{fill:#fff;stroke:#087fff;stroke-width:2}.capacity-point circle.workload{stroke:#7b9fc7}.capacity-point:hover circle,.capacity-point:focus-visible circle,.capacity-point.selected circle{stroke-width:3.5}.capacity-point.selected text{fill:#087fff;font-weight:600}.capacity-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:11px;color:#687b93}.capacity-legend b{display:inline-block;width:17px;height:2px;background:#087fff;vertical-align:middle;margin-right:6px}.capacity-legend b.workload{background:#7b9fc7}.capacity-chart-selection{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:12px;color:#63748b;font-size:12px}.capacity-chart-selection strong{color:var(--ink)}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.settings-layout>.panel{grid-column:1}.filters>label,.filters>.consultant-picker{flex-basis:150px}.settings-target form{flex-wrap:wrap}.settings-target form label{min-width:160px}}@media(max-width:600px){.filters>label,.filters>.consultant-picker{flex-basis:calc(50% - 12px);min-width:120px}.form-grid{grid-template-columns:1fr}.capacity-chart{padding:12px}.capacity-chart-selection{gap:10px}.task-row{gap:12px;flex-wrap:wrap}.task-row>span:last-child{display:flex;align-items:center;flex-wrap:wrap}}

.bulk-timesheet{min-width:920px;table-layout:fixed}.bulk-timesheet th,.bulk-timesheet td{padding:8px;border-right:1px solid var(--table-rule);vertical-align:top}.bulk-timesheet th:nth-child(1){width:145px}.bulk-timesheet th:nth-child(2),.bulk-timesheet th:nth-child(3){width:180px}.bulk-timesheet th:nth-child(4){width:110px}.bulk-timesheet th:nth-child(5){width:85px}.bulk-timesheet th:last-child{width:40px}.bulk-timesheet input,.bulk-timesheet select{width:100%;margin:0;border-color:transparent;border-radius:0;background:transparent}.bulk-timesheet input:focus,.bulk-timesheet select:focus{background:#edf5ff;outline:2px solid #087fff;outline-offset:-2px}.bulk-timesheet input[hidden]{display:none}.bulk-time-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--table-rule);color:var(--muted);font-size:12px}

.bulk-month-controls{padding:16px 20px;margin:0}.bulk-month-controls label{display:flex;align-items:center;gap:8px}.bulk-month-controls label select{margin:0}.monthly-timesheet .sticky-project select,.monthly-timesheet .sticky-consultant select,.monthly-timesheet .sticky-consultant input{width:100%;border-color:transparent;background:transparent;margin:0;padding:8px 4px}.monthly-timesheet .plan-cell small{display:block;text-align:center;font-size:10px;color:#8a96a6;padding-bottom:8px}.monthly-timesheet .plan-cell input{height:44px;min-height:44px}.monthly-timesheet input[hidden]{display:none}

.milestone-editor{min-width:650px}.milestone-editor td{padding:9px}.milestone-editor input:not([type=checkbox]){width:100%}.milestone-editor .check{white-space:nowrap}.pipeline-label{color:#9a681f!important}.pipeline-strip{padding:12px 16px;background:#fff9ee;border:1px solid #f0dfc1;border-radius:7px;margin-bottom:20px;color:#936324;font-size:12px}.capacity-line.pipeline{stroke:#c48c3c;stroke-dasharray:3 4}.capacity-legend b.pipeline{background:#c48c3c}.pipeline-projects .panel-head{background:#fffaf1}
/* Detailed project reporting. */
.report-controls{padding:20px;overflow:visible}.report-controls .filters{margin-bottom:14px}.report-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.report-search{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;flex:1;min-width:200px}.report-search input{margin:0}.report-columns{position:relative}.report-columns summary{list-style:none;border:1px solid var(--line);padding:9px 14px;border-radius:6px;cursor:pointer;min-height:40px;background:#fff}.report-columns>div{position:absolute;top:calc(100% + 6px);right:0;width:210px;padding:12px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 25px #1f3b5915;z-index:4}.report-columns label{display:flex;gap:9px;align-items:center;padding:5px}.report-columns input{width:auto;margin:0}.report-totals{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin:20px 0;color:#63748b}.report-totals strong{font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}.report-group>summary{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#f2f7fd;padding:14px 20px;cursor:pointer;border-bottom:1px solid var(--table-rule);list-style:none}.report-group>summary strong:before{content:'▾';font-size:12px;color:#7b8b9f;margin-right:12px}.report-group:not([open])>summary strong:before{content:'▸'}.report-group>summary span{font-size:12px;color:#60748b}.detailed-report table{min-width:850px}.detailed-report thead th{background:#fff;font-size:10px;color:#738195;font-weight:600;white-space:nowrap}.detailed-report td,.detailed-report th{padding:14px 18px}.report-entry{cursor:pointer}.report-entry:hover td{background:#f8fbff}.report-entry:focus-visible{outline:2px solid #087fff;outline-offset:-2px}.report-amount,.report-hours,.report-expense{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.report-actions{white-space:nowrap;text-align:right}.report-note td{white-space:pre-wrap;overflow-wrap:anywhere;padding:14px 30px 22px;color:#66758a;background:#fcfdff;border-bottom:1px solid var(--table-rule);font-size:12px}.report-note .note{margin:0}.report-grand-total{display:flex;gap:20px;justify-content:space-between;padding:20px;background:#f2f7fd;color:#425e80}.report-pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:16px;color:var(--muted);font-size:12px}.report-pagination label{margin-right:auto;display:flex;gap:10px;align-items:center}.report-pagination select{margin:0;width:90px}.report-print-heading{display:none}.entry-notes{white-space:pre-wrap;margin-top:18px;color:var(--ink)}.timesheet-entry-notes{max-width:320px;min-width:130px;white-space:pre-wrap;overflow-wrap:anywhere;color:#6d798d;font-size:12px}.monthly-timesheet [data-monthly-field=notes]{font-size:11px;color:#65758d}.report-controls .filters>button{align-self:flex-end}.detailed-report .table-wrap{scrollbar-width:thin;scrollbar-color:#cad8e8 transparent}
@media(max-width:700px){.report-controls{padding:14px}.report-group>summary{flex-wrap:wrap;padding:12px 14px}.report-group>summary span{width:100%;padding-left:22px}.report-totals{gap:10px 18px}.report-totals strong{font-size:14px}.report-grand-total{flex-wrap:wrap}.report-toolbar>button{flex:1}.report-controls .filters>label{min-width:120px}}
@media print{body.project-report-print aside,body.project-report-print footer,body.project-report-print .heading,body.project-report-print .report-controls,body.project-report-print .report-pagination,body.project-report-print #timerbar,body.project-report-print #toast{display:none!important}body.project-report-print .shell{margin:0}body.project-report-print main{padding:0;max-width:none}body.project-report-print .panel{border:0;box-shadow:none;overflow:visible}body.project-report-print .report-print-heading{display:block;margin-bottom:18px}body.project-report-print .report-print-heading h1{font-size:22px}body.project-report-print .report-group{display:block;break-inside:auto}body.project-report-print .table-wrap{overflow:visible}body.project-report-print .detailed-report table{min-width:0;table-layout:auto;font-size:9px}body.project-report-print .detailed-report td,body.project-report-print .detailed-report th{padding:8px 5px;white-space:normal}body.project-report-print .report-actions{display:none}body.project-report-print .report-entry{break-inside:avoid}body.project-report-print .report-note{break-before:avoid}body.project-report-print .report-grand-total{break-inside:avoid}body.project-report-print .report-group>summary{padding:10px 5px;break-after:avoid}body.project-report-print .report-totals strong{font-size:12px}}
.report-controls>.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.report-controls>.filters>label{min-width:0}.report-controls>.filters:nth-child(2){grid-template-columns:repeat(4,minmax(0,1fr)) auto}.report-controls select,.report-controls input{min-width:0}.detailed-report .report-actions{position:sticky;right:0;z-index:1;background:white;box-shadow:-4px 0 8px #23456708;min-width:100px}.detailed-report th.report-actions{z-index:2}.report-entry:hover .report-actions{background:#f8fbff}@media(max-width:700px){.report-controls>.filters,.report-controls>.filters:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr))}.report-controls>.filters:nth-child(2)>button{grid-column:1/-1}}
.scenario-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:20px}.scenario-project{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:15px;cursor:pointer}.scenario-project input{width:auto;flex-shrink:0;margin:0;accent-color:#087fff}.scenario-project span{min-width:0;flex:1}.scenario-project strong{display:block;color:var(--ink);font-size:13px}.scenario-project small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.scenario-project>b{font-size:13px;color:#58718c;white-space:nowrap}.scenario-project.selected{border-color:#8cbeff;background:#f2f7ff}.scenario-projects>.empty{grid-column:1/-1}.scenario-stat{display:flex;flex-direction:column}.scenario-stat strong{margin-top:12px}.scenario-comparison{display:flex;justify-content:space-between;flex-wrap:wrap;gap:7px;font-size:11px;color:#7f8ca0;margin-top:auto;padding-top:12px}.scenario-comparison b{color:#376fae;font-weight:600}.scenario-changed{box-shadow:inset 0 -3px #c99745;background:#fffaf0}.scenario-capacity{text-align:center;font-variant-numeric:tabular-nums}.scenario-capacity small{display:block;font-size:10px;color:#8190a4;margin-top:4px}.scenario-capacity.overloaded{background:#fff3f0;color:#ae4d3e}.scenario-capacity.overloaded small{color:#ae4d3e}.scenario-monthly td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.assignment{grid-template-columns:1.3fr 1fr 1fr}@media(max-width:800px){.scenario-projects{grid-template-columns:1fr}.scenario-project>b{font-size:12px}.assignment{grid-template-columns:1fr 1fr}.assignment>label:first-child{grid-column:1/-1}}
