:root{--bg: #0f1117;--bg-card: #1a1d27;--bg-input: #252832;--border: #2d3140;--text: #e4e6ed;--text-dim: #8b8fa3;--accent: #6366f1;--accent-hover: #818cf8;--red: #ef4444;--yellow: #f59e0b;--green: #22c55e;--ffb-blue: #3b82f6;--bruker-sage: #22c55e;--other-gray: #94a3b8}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app{max-width:1200px;margin:0 auto;padding:16px}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:24px}.header h1{font-size:1.5rem;font-weight:600}.header .date{color:var(--text-dim);font-size:.875rem}.tabs{display:flex;gap:4px;background:var(--bg-card);border-radius:10px;padding:4px;margin-bottom:24px}.tab{flex:1;padding:10px 16px;border:none;background:transparent;color:var(--text-dim);font-size:.875rem;font-weight:500;cursor:pointer;border-radius:8px;transition:all .15s}.tab.active{background:var(--accent);color:#fff}.tab:hover:not(.active){color:var(--text)}.card{background:var(--bg-card);border-radius:12px;padding:20px;margin-bottom:16px;border:1px solid var(--border)}.card h2{font-size:1.125rem;margin-bottom:16px;font-weight:600}.card h3{font-size:.875rem;color:var(--text-dim);margin-bottom:8px;font-weight:500}.gauge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.gauge-card{background:var(--bg-card);border-radius:12px;padding:20px;border:1px solid var(--border);text-align:center}.gauge-card .label{font-size:.8rem;color:var(--text-dim);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.gauge-card .value{font-size:1.5rem;font-weight:700;margin-top:4px}.gauge-card .sub{font-size:.75rem;color:var(--text-dim);margin-top:2px}.grid-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.inline-grid{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}.inline-grid th{position:sticky;top:0;background:var(--bg-card);padding:10px 8px;text-align:left;font-weight:600;font-size:.75rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border);white-space:nowrap}.inline-grid td{padding:2px 4px;border-bottom:1px solid var(--border);vertical-align:middle}.inline-grid tr:hover td{background:#6366f10d}.inline-grid tr.today td{background:#6366f11a}.inline-grid tr.weekend td{background:#ffffff05}.inline-grid .date-cell{white-space:nowrap;font-weight:500;min-width:90px;padding-left:8px}.inline-grid .day-name{color:var(--text-dim);font-size:.75rem;margin-left:4px}.inline-grid input{width:100%;min-width:50px;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-size:.85rem;font-family:inherit;transition:all .15s}.inline-grid input:hover{border-color:var(--border);background:var(--bg-input)}.inline-grid input:focus{outline:none;border-color:var(--accent);background:var(--bg-input)}.inline-grid input.num{text-align:right;max-width:70px}.inline-grid input.wide{min-width:150px}.inline-grid .client-hours{display:flex;gap:2px;align-items:center}.inline-grid .client-tag{font-size:.65rem;font-weight:600;padding:1px 4px;border-radius:3px;color:#fff;flex-shrink:0}.client-tag.ffb{background:var(--ffb-blue)}.client-tag.bruker{background:var(--bruker-sage)}.client-tag.other{background:var(--other-gray)}.inline-grid .billable-group{display:flex;flex-direction:column;gap:2px}.inline-grid .total-row td{font-weight:600;border-top:2px solid var(--border);padding-top:8px;color:var(--accent)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.status-dot.red{background:var(--red)}.status-dot.yellow{background:var(--yellow)}.status-dot.green{background:var(--green)}.summary-bar{display:flex;gap:24px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--border);margin-bottom:16px}.summary-item{display:flex;flex-direction:column}.summary-item .label{font-size:.7rem;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em}.summary-item .val{font-size:1.25rem;font-weight:700}.btn{padding:8px 16px;border:none;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--text-dim);color:var(--text)}.loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--text-dim)}.settings-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;gap:8px;align-items:center;font-size:.85rem}.settings-grid .label{color:var(--text-dim)}.settings-grid input{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-input);color:var(--text);font-size:.85rem;text-align:right}.settings-grid input:focus{outline:none;border-color:var(--accent)}@media (max-width: 768px){.gauge-grid{grid-template-columns:repeat(2,1fr)}.header h1{font-size:1.2rem}.inline-grid{font-size:.8rem}}.pace-bar{height:4px;background:var(--bg-input);border-radius:2px;margin-top:8px;position:relative;overflow:visible}.pace-bar .fill{height:100%;border-radius:2px;transition:width .3s}.pace-bar .marker{position:absolute;top:-3px;width:2px;height:10px;background:#fff;border-radius:1px}
