@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--yellow:#fed400;--ink:#151515;--muted:#6b6b68;--line:#d8d8d2;--paper:#f6f6f2;--white:#fff;--green:#16754a;--red:#c94132;--blue:#245d9c;--shadow:0 2px 0 rgba(20,20,20,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--ink);color:#fff;width:248px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;padding:28px 18px 18px}.brand{font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}.brand-mark{background:var(--yellow);color:var(--ink);padding:7px 6px;font-family:'IBM Plex Mono',monospace;font-size:13px}.workspace-label{color:#a6a6a0;font-size:11px;margin:40px 10px 14px;text-transform:uppercase;letter-spacing:.06em}.status-dot{display:inline-block;width:6px;height:6px;background:#47b879;border-radius:50%;margin-left:5px}.main-nav{display:grid;gap:4px}.nav-item{background:none;border:0;color:#bdbdb8;text-align:left;padding:12px 10px;display:flex;gap:12px;align-items:center;border-left:3px solid transparent}.nav-item span{font-family:'IBM Plex Mono',monospace;font-size:17px;width:18px;text-align:center}.nav-item:hover,.nav-item.active{color:#111;background:var(--yellow);border-left-color:var(--yellow)}.sidebar-bottom{margin-top:auto;border-top:1px solid #383836;padding:18px 5px 0;display:flex;justify-content:space-between;align-items:center}.mini-user{display:flex;gap:9px;align-items:center}.mini-user strong,.mini-user small{display:block}.mini-user strong{font-size:12px}.mini-user small{color:#a6a6a0;font-size:10px;margin-top:3px}.avatar{display:grid;place-items:center;background:var(--yellow);color:var(--ink);border:0;border-radius:50%;width:30px;height:30px;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600}.avatar-large{width:38px;height:38px}.icon-btn{border:0;background:none;color:#aaa;font-size:17px}.main-content{margin-left:248px;width:calc(100% - 248px);padding:0 42px 48px}.topbar{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);text-transform:uppercase;margin:0 0 8px;letter-spacing:.05em}.topbar h1{font-size:28px;letter-spacing:-.03em;margin:0}.top-actions{display:flex;align-items:center;gap:14px}.outline-btn,.primary-btn{border:1px solid var(--ink);background:var(--white);padding:10px 14px;font-weight:600;box-shadow:var(--shadow)}.primary-btn{background:var(--yellow)}.outline-btn:hover,.primary-btn:hover{transform:translateY(-1px)}.view-container{padding-top:28px}.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 16px}.section-head h2{font-size:18px;margin:0}.section-head p{color:var(--muted);margin:5px 0 0;font-size:12px}.filterbar{display:flex;gap:10px;align-items:center;margin-bottom:20px;flex-wrap:wrap}select,input,textarea{border:1px solid var(--line);background:var(--white);padding:10px 11px;color:var(--ink);min-height:38px}input[type=date]{font-family:'IBM Plex Mono',monospace}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px}.metric-card{background:var(--white);border:1px solid var(--line);padding:18px;min-height:124px;box-shadow:var(--shadow)}.metric-card.highlight{background:var(--yellow);border-color:var(--ink)}.metric-label{font-family:'IBM Plex Mono',monospace;color:var(--muted);font-size:10px;text-transform:uppercase}.highlight .metric-label{color:var(--ink)}.metric-value{font-size:30px;font-weight:600;margin:17px 0 8px;letter-spacing:-.05em}.metric-note{font-size:11px;color:var(--muted)}.highlight .metric-note{color:var(--ink)}.grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:18px}.panel{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);padding:20px}.panel h3{font-size:14px;margin:0 0 16px}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.panel-title h3{margin:0}.small-link{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--blue);background:none;border:0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-family:'IBM Plex Mono',monospace;color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;border-bottom:2px solid var(--ink);padding:9px 10px;white-space:nowrap}td{border-bottom:1px solid var(--line);padding:12px 10px;vertical-align:middle}tr:last-child td{border-bottom:0}.mono{font-family:'IBM Plex Mono',monospace}.tag,.badge{display:inline-block;padding:4px 7px;font-family:'IBM Plex Mono',monospace;font-size:10px;background:#ecece7}.badge.active{background:#d8f0df;color:var(--green)}.badge.warn{background:#fff0c0;color:#7b5c00}.badge.over{background:#f9dbd7;color:var(--red)}.bar{height:7px;background:#e8e8e2;width:130px}.bar span{display:block;height:100%;background:var(--yellow)}.bar.red span{background:var(--red)}.bar.green span{background:var(--green)}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:0}.list-item strong{font-size:13px}.list-item small{display:block;color:var(--muted);margin-top:4px}.warning{border-left:4px solid var(--yellow);padding-left:12px}.time-entry{display:grid;grid-template-columns:70px 1fr 100px 90px;gap:12px;align-items:center}.timer-box{display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:#fff;padding:18px 20px;margin-bottom:20px}.timer-time{font-family:'IBM Plex Mono',monospace;font-size:28px;color:var(--yellow)}.stop-btn{background:var(--yellow);border:0;padding:11px 18px;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field{display:grid;gap:6px}.field label{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);text-transform:uppercase}.field.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.tabbar{display:flex;border-bottom:1px solid var(--line);margin-bottom:20px;gap:20px}.tab{background:none;border:0;padding:10px 0;color:var(--muted);border-bottom:3px solid transparent}.tab.active{color:var(--ink);border-color:var(--yellow);font-weight:600}.import-box{border:2px dashed #aaa;padding:32px;text-align:center;background:#fbfbf8}.import-box strong{display:block;font-size:16px;margin-bottom:8px}.import-box p{color:var(--muted);font-size:12px}.capacity-cell{min-width:100px}.capacity-number{font-family:'IBM Plex Mono',monospace;font-weight:600}.capacity-bar{height:5px;background:#e9e9e4;margin-top:7px}.capacity-bar i{display:block;height:100%;background:var(--green)}.capacity-bar i.warn{background:var(--yellow)}.capacity-bar i.over{background:var(--red)}.legend{display:flex;gap:18px;font-size:11px;color:var(--muted)}.legend span:before{content:'';display:inline-block;width:8px;height:8px;margin-right:5px;background:var(--green)}.legend .l-warn:before{background:var(--yellow)}.legend .l-over:before{background:var(--red)}.chart{height:150px;display:flex;align-items:flex-end;gap:10px;padding:20px 10px 0;border-bottom:1px solid var(--ink)}.chart-col{flex:1;text-align:center;font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted)}.chart-bar{background:var(--yellow);min-height:4px;margin:0 auto 7px;width:70%;border:1px solid var(--ink)}.chart-bar.actual{background:#bbb}.toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:#fff;padding:13px 17px;transform:translateY(120px);transition:.25s;z-index:5}.toast.show{transform:translateY(0)}@media(max-width:1000px){.sidebar{width:205px}.main-content{margin-left:205px;width:calc(100% - 205px);padding:0 22px 40px}.cards{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.time-entry{grid-template-columns:60px 1fr 80px}}@media(max-width:680px){.sidebar{position:static;width:100%;height:auto;padding:14px 14px 10px}.app-shell{display:block}.brand{justify-content:center}.workspace-label{margin:15px 6px 8px}.main-nav{display:flex;overflow:auto;gap:3px}.nav-item{font-size:0;padding:9px;justify-content:center}.nav-item span{font-size:18px}.sidebar-bottom{display:none}.main-content{margin:0;width:100%;padding:0 14px 30px}.topbar{height:90px}.topbar h1{font-size:23px}.top-actions .outline-btn{font-size:0;padding:10px}.top-actions .outline-btn:first-letter{font-size:18px}.view-container{padding-top:20px}.cards{gap:8px}.metric-card{padding:13px;min-height:105px}.metric-value{font-size:23px;margin:13px 0 5px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.panel{padding:14px}.time-entry{grid-template-columns:1fr 70px}.time-entry>div:nth-child(3){display:none}.time-entry>div:nth-child(4){text-align:right}.filterbar select,.filterbar input{flex:1;min-width:130px}}