:root{--bg: #f6f7f9;--card: #ffffff;--ink: #1a2233;--muted: #68718a;--line: #e3e6ee;--accent: #2456d6;--accent-ink: #ffffff;--ok: #157347;--warn: #b45309;--danger: #b3261e}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink)}.app{min-height:100vh;display:flex;flex-direction:column}main{flex:1;padding:20px clamp(12px,4vw,40px);max-width:1200px;width:100%;margin:0 auto}.topbar{display:flex;align-items:center;gap:24px;padding:10px clamp(12px,4vw,40px);background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.brand{font-weight:800;font-size:18px;letter-spacing:.5px}.brand span{color:var(--accent);font-weight:600}.topbar nav{display:flex;gap:4px}.topbar nav button,.tabs button{border:none;background:none;padding:8px 14px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--muted)}.topbar nav button.active,.tabs button.active{background:#e8eefc;color:var(--accent);font-weight:600}.userbox{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.center-text{text-align:center}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:12px 0}.card.login{width:340px;display:flex;flex-direction:column;gap:14px;text-align:center;padding:32px}.card.login h1{margin:0 0 8px;font-size:26px}.card.login h1 span{color:var(--accent);font-weight:600}.btn{display:inline-block;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:8px 14px;font-size:14px;cursor:pointer;text-decoration:none}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover{opacity:.92;color:var(--accent-ink)}.btn.small{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}button.link{border:none;background:none;color:var(--accent);cursor:pointer;font-size:13px;padding:0}select,input[type=date],input[type=number],input[type=text],input:not([type]){padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:var(--card);color:var(--ink)}input[type=number]{width:70px;text-align:right}input.inline{border-color:transparent;background:transparent;width:100%}input.inline:hover,input.inline:focus{border-color:var(--line);background:var(--card)}input.inline.clientname{font-weight:700;font-size:16px}.page h2{margin:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:6px}.controls,.tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.status{font-size:13px;color:var(--ok);min-width:60px}.error{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:13px}table.grid{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:12px 0}table.grid.narrow{max-width:720px}table.grid th,table.grid td{padding:8px 10px;text-align:center;border-bottom:1px solid var(--line);font-size:14px}table.grid th{background:#eef1f7;font-weight:600}table.grid .left{text-align:left}table.grid td.ok{color:var(--ok);font-weight:600}table.grid td.warn{color:var(--warn);font-weight:600}table.grid tr.inactive td{opacity:.45}table.grid tfoot td{background:#eef1f7}.summary td:first-child{text-align:left;font-weight:600}.entries .clientrow td{background:#f0f3fa;text-align:left;font-weight:700}.entries .indent{padding-left:22px}.entries .proj{font-weight:600}.entries .role{color:var(--muted);margin-left:8px;font-size:13px}.entries .role:before{content:"· "}.entries input[type=number]{width:64px}.addrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.addrow.wrap label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}.clientcard .clienthead{display:flex;gap:16px;align-items:center}.clientcard .clienthead input.inline{max-width:260px}.projlist{list-style:none;margin:8px 0;padding:0 0 0 12px}.projlist li{display:flex;gap:12px;align-items:center;padding:3px 0}.projlist li input.inline{max-width:300px}.devbanner{background:#fff7e0;border-top:1px solid #eadfb2;color:#7a5d00;text-align:center;font-size:13px;padding:6px}
