*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#faf7ff;--card:#ffffff;--text:#241a3e;--muted:#7c7590;--accent:#e64f97;--accent-dark:#c93a80;--green:#16a34a;--red:#dc2626;--border:#e5e9f0}body{background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,Roboto,Heebo,Arial,sans-serif;min-height:100vh}.container{max-width:860px;margin:0 auto;padding:20px 16px 60px}nav.topnav{gap:18px;padding:14px 0;margin-bottom:20px;border-bottom:1px solid var(--border);flex-wrap:wrap}nav.topnav,nav.topnav .brand{display:flex;align-items:center}nav.topnav .brand{gap:10px;font-weight:800;font-size:15px;color:var(--muted);text-decoration:none;letter-spacing:.02em}nav.topnav .brand-logo{height:26px;width:auto;display:block}.login-logo{display:block;height:44px;width:auto;margin:0 auto 14px}nav.topnav a{color:var(--text);text-decoration:none;font-size:15px;padding:4px 2px}nav.topnav a:hover{color:var(--accent)}nav.topnav a.active{color:var(--accent);font-weight:700;border-bottom:2px solid var(--accent);padding-bottom:2px}nav.topnav .spacer{flex:1 1}nav.topnav .who{color:var(--muted);font-size:13px}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px rgba(20,30,60,.05)}h1{font-size:22px;margin-bottom:14px}h2{font-size:17px;margin-bottom:10px}p.muted,span.muted{color:var(--muted);font-size:14px}.btn,button{border:none;border-radius:9px;padding:10px 18px;font-size:15px;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s;font-family:inherit}.btn:hover,button:hover{background:var(--accent-dark)}button.green{background:var(--green)}button.green:hover{background:#15803d}button.red{background:var(--red)}button.red:hover{background:#b91c1c}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--border);font-weight:500}button.ghost:hover{background:#f0f3f8;color:var(--text)}button.small{padding:6px 12px;font-size:13px}button:disabled{opacity:.55;cursor:default}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:9px;font-size:15px;font-family:inherit;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid #bfd3f8;border-color:var(--accent)}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field{margin-bottom:12px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1;min-width:140px}table.data{width:100%;border-collapse:collapse;font-size:14px}table.data th{text-align:right;padding:8px 10px;background:#f5f7fb;color:var(--muted);font-weight:600}table.data td{padding:9px 10px;border-bottom:1px solid var(--border)}table.data tr:last-child td{border-bottom:none}.timer-display{font-size:44px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:1px;direction:ltr;text-align:center;margin:10px 0}.timer-project{font-size:17px;color:var(--muted);margin-bottom:14px}.center,.timer-project{text-align:center}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.stat{background:#f5f7fb;border-radius:10px;padding:14px;text-align:center}.stat .num{font-size:22px;font-weight:800}.stat .lbl{font-size:12px;color:var(--muted);margin-top:2px}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge.on{background:#dcfce7;color:#15803d}.badge.manual{background:#e0e7ff;color:#4338ca}.error{color:var(--red)}.error,.success{font-size:14px;margin-top:8px}.success{color:var(--green)}.project-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.project-item:last-child{border-bottom:none}.project-item .info{flex:1 1;min-width:180px}.project-item .name{font-weight:700}.project-item .sub{font-size:13px;color:var(--muted)}@media (max-width:560px){.timer-display{font-size:34px}}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.card-head h2{margin-bottom:0}.period-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.period-bar>label{margin:0;white-space:nowrap}.period-bar select{width:auto;min-width:190px;padding:7px 10px;font-size:14px}.period-custom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.period-custom label{margin:0}.period-custom input[type=date]{width:auto;padding:6px 8px;font-size:14px}table.sortable th{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}table.sortable th:hover{color:var(--accent)}table.data tr.total-row td{background:#f7f3fc;font-weight:700;border-top:2px solid var(--border)}table.data tr.editing td{background:#fff3f9}.badge.paid{background:#dcfce7;color:#166534}.badge.open{background:#fef3c7;color:#92400e}.badge.overdue{background:#fee2e2;color:#991b1b}.badge:not(.paid):not(.open):not(.overdue):not(.manual):not(.on){background:#ececf1;color:#555}.proj{padding:14px 0;border-bottom:1px solid var(--border)}.proj:last-child{border-bottom:none}.proj-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.proj-name{font-weight:800;font-size:17px;color:var(--text);text-decoration:none}.proj-name:hover{color:var(--accent)}.proj-meta{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-top:4px}.proj-meta span{white-space:nowrap}.proj-links{display:flex;gap:6px 16px;flex-wrap:wrap;align-items:center;margin-top:6px;font-size:14px}.proj-links a{color:var(--accent)}.file-link{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;direction:ltr}.quote-control{display:inline-flex;align-items:center;gap:8px;max-width:100%}.upload-label{cursor:pointer;display:inline-block;padding:4px 10px;border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--muted);margin:0}.upload-label:hover{background:#f0f3f8;color:var(--text)}.proj-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.proj-actions .btn{display:inline-block;text-decoration:none}.btn.small{padding:6px 12px;font-size:13px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;color:var(--muted)}.chip,.chips{font-size:12px}.chip{background:#f3eefa;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-weight:500}.chip:hover{background:#e9e0f7;color:var(--text)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}.seg button{background:#fff;color:var(--muted);border-radius:0;padding:9px 14px;font-size:14px;font-weight:500}.seg button+button{border-right:1px solid var(--border)}.seg button.on{background:var(--accent);color:#fff}.preview{border-radius:9px;padding:10px 12px;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-height:42px}.preview,.subform{background:#f7f3fc}.subform{border-radius:10px;padding:12px 16px;margin-bottom:14px}@media (max-width:560px){nav.topnav{gap:12px}nav.topnav .who{display:none}.file-link{max-width:200px}}