@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";:root{--peach-500:#ff8577;--peach-600:#ff5c4a;--cloud-100:#f9faff;--cloud-300:#e0e4f0;--cloud-600:#5e6e7d;--cloud-900:#131e28;--cloud-400:#c9cedb;--ocean-100:#e3f0f7;--ocean-600:#2f7fa8;--mint-100:#e2f5ec;--mint-700:#1f8f5f;--lemon-100:#fdf3d8;--lemon-700:#caa227;--bg:var(--cloud-100);--card:#fff;--border:var(--cloud-300);--border-strong:var(--cloud-400);--fg:var(--cloud-900);--fg-muted:var(--cloud-600);--fg-subtle:var(--cloud-600);--primary:var(--peach-500);--primary-hover:var(--peach-600);--primary-fg:#fff;--info:var(--ocean-600);--info-bg:var(--ocean-100);--success:var(--mint-700);--success-bg:var(--mint-100);--warning-border:var(--lemon-700);--warning-bg:var(--lemon-100);--focus-ring:#ff857752;--shadow-emphasized:0px 2px 8px #131e2814;--hover-wash:var(--cloud-100);--font-en:"Nunito", sans-serif;--h-8:32px;--h-9:36px;--h-10:40px;--radius-panel:14px;--radius-card:12px;--radius-badge:8px;--radius-pill:99px;--dur-fast:.1s;--dur-base:.15s;--ease-out:cubic-bezier(.2, .8, .4, 1)}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-en);color:var(--fg);background:var(--bg);margin:0}.login-screen{background:var(--card);justify-content:center;align-items:center;min-height:100vh;padding:40px 20px;display:flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-panel);width:100%;max-width:400px;box-shadow:var(--shadow-emphasized);text-align:center;padding:40px 36px}.login-title{font:800 26px/1.25 var(--font-en);color:var(--fg);letter-spacing:-.01em;margin:0 0 6px}.login-subtitle{font:400 14px/1.5 var(--font-en);color:var(--fg-muted);margin:0 0 28px}.login-submit{width:100%;height:var(--h-10);background:var(--primary);color:var(--primary-fg);border-radius:var(--radius-pill);font:700 14px/1 var(--font-en);cursor:pointer;letter-spacing:.02em;transition:background var(--dur-base);border:none}.login-submit:hover{background:var(--primary-hover)}.login-submit:focus-visible{box-shadow:0 0 0 2px var(--focus-ring);outline:none}.login-divider{font:400 12px/1 var(--font-en);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:20px 0}.login-form{text-align:left;flex-direction:column;gap:6px;display:flex}.login-label{font:600 13px/1.4 var(--font-en);color:var(--fg)}.login-input{height:var(--h-10);background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-panel);font:400 14px/1 var(--font-en);margin-bottom:12px;padding:0 14px}.login-input:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.login-error{font:400 13px/1.4 var(--font-en);color:var(--peach-600);margin:0 0 12px}.login-mode-toggle{color:var(--fg-muted);font:400 13px/1.4 var(--font-en);cursor:pointer;background:0 0;border:none;margin-top:16px;text-decoration:underline}.login-mode-toggle:focus-visible{box-shadow:0 0 0 2px var(--focus-ring);outline:none}.topbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--border);align-items:stretch;gap:28px;height:56px;padding:0 40px;display:flex;position:sticky;top:0}.brand{font:800 17px/1 var(--font-en);color:var(--fg);flex-shrink:0;align-items:center;display:flex}.nav{flex:1;align-items:center;gap:4px;display:flex}.nav-tab{height:34px;font:700 13px/1 var(--font-en);color:var(--fg-muted);cursor:pointer;border-radius:var(--radius-pill);white-space:nowrap;background:0 0;border:none;align-items:center;gap:7px;padding:0 16px;text-decoration:none;display:inline-flex}.nav-tab:hover{color:var(--fg);background:var(--bg)}.nav-tab.active{color:var(--primary-fg);background:var(--primary)}.nav-badge{border-radius:var(--radius-pill);background:var(--primary);min-width:17px;height:17px;color:var(--primary-fg);font:700 10px/1 var(--font-en);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.nav-tab.active .nav-badge{color:#fff;background:#ffffff52}.user-chip{font:500 13px/1 var(--font-en);color:var(--fg-muted);flex-shrink:0;align-items:center;gap:8px;display:flex}.av{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);width:26px;height:26px;font:700 10px/1 var(--font-en);color:var(--fg-muted);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.log-out{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--card);cursor:pointer;height:30px;font:700 12px/1 var(--font-en);color:var(--fg-muted);align-items:center;padding:0 12px;display:inline-flex}.log-out:hover{color:var(--fg);background:var(--bg)}.ts-page{max-width:1280px;margin:0 auto;padding:40px}.pg-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.pg-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.weeknav{align-items:center;gap:4px;display:inline-flex}.weeknav-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--card);cursor:pointer;width:30px;height:30px;color:var(--fg-muted);justify-content:center;align-items:center;display:inline-flex}.weeknav-btn:hover{background:var(--bg);color:var(--fg)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);margin-bottom:20px;overflow:hidden}.card table{border-collapse:collapse;width:100%;font-size:13px}.card thead th{text-align:center;font:700 10.5px/1 var(--font-en);color:var(--fg-muted);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--border);background:var(--card);white-space:nowrap;padding:10px 14px}.card thead th.col-left{text-align:left}.card thead th.col-tot{border-left:1px solid var(--border)}.card td{border-bottom:1px solid var(--border);color:var(--fg);text-align:center;vertical-align:middle;padding:12px 14px}.card td.col-left{text-align:left}.card tbody tr:last-child td{border-bottom:none}.card tbody tr:hover td{background:var(--bg)}.row-name{font:600 13px/1.3 var(--font-en);color:var(--fg)}.card td.cell-total{font:800 15px/1 var(--font-en);color:var(--primary);border-left:1px solid var(--border)}.badge{font:700 11px/1 var(--font-en);border-radius:var(--radius-badge);letter-spacing:.02em;white-space:nowrap;border:1px solid;align-items:center;gap:4px;padding:5px 11px;display:inline-flex}.badge-billable{background:var(--info-bg);border-color:var(--info);color:var(--info)}.badge-non-billable{background:var(--success-bg);border-color:var(--success);color:var(--success)}.hcell{border:1px solid var(--border);border-radius:var(--radius-badge);background:var(--card);width:44px;height:34px;font:700 13px/1 var(--font-en);color:var(--fg);text-align:center;outline:none}.hcell::placeholder{color:var(--fg-subtle)}.hcell.filled{background:var(--warning-bg);border-color:var(--warning-border)}.hcell:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring)}.page{max-width:1280px;margin:0 auto;padding:40px 40px 80px}.ops-subnav{max-width:1280px;margin:0 auto;padding:16px 40px 0}.pg-title h1{margin:0 0 6px}.pg-meta{font:400 13px/1 var(--font-en);color:var(--fg-muted)}.section-title{margin:32px 0 16px}.form-row{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:20px;padding:18px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{font:700 11px/1 var(--font-en);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em}.form-input,.form-select{height:var(--h-9);border:1px solid var(--border);border-radius:var(--radius-badge);font:500 14px/1 var(--font-en);color:var(--fg);background:var(--card);padding:0 12px}.form-input:focus-visible,.form-select:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.btn{height:var(--h-9);border-radius:var(--radius-pill);font:700 13px/1 var(--font-en);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast);border:1px solid #0000;align-items:center;gap:6px;padding:0 18px;display:inline-flex}.btn-primary{background:var(--primary);color:var(--primary-fg)}.btn-primary:hover{background:var(--primary-hover)}.btn-ghost{color:var(--fg);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--hover-wash)}.btn-sm{height:var(--h-8);padding:0 14px;font-size:12px}.badge-default{background:var(--bg);border-color:var(--border);color:var(--fg-muted)}
