:root{--navy:#0f2748;--navy-dark:#0a1c36;--orange:#f15a24;--orange-dark:#d6481a;--text:#1f2937;--muted:#6b7280;--border:#e2e6ec;--bg:#f4f6f9;--white:#fff;color:var(--text);background:var(--bg);font:16px/1.45 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}button{cursor:pointer;font-family:inherit}input,select{font-family:inherit;font-size:14px}@media print{.no-print{display:none!important}body{background:#fff}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.app-brand{letter-spacing:.5px;font-size:18px;font-weight:800}.app-brand span{color:var(--orange)}.app-brand-sub{letter-spacing:1px;margin-left:4px;font-size:12px;color:#ffffff8c!important}.app-header-right{align-items:center;gap:16px;display:flex}.app-view-switch{background:#ffffff14;border-radius:8px;gap:4px;padding:3px;display:flex}.app-view-switch button{color:#ffffffbf;background:0 0;border:none;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600}.app-view-switch button.active{background:var(--orange);color:#fff}.app-user{color:#ffffffd9;font-size:13px}.app-main{flex:1;width:100%;max-width:1000px;margin:0 auto;padding:28px}.full-screen-loading{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;display:flex}.muted{color:var(--muted);font-size:14px}.form-error{color:#b3261e;background:#fdecea;border-radius:8px;margin:10px 0 0;padding:10px 12px;font-size:13px}.form-success{color:#1e7a34;background:#eaf6ec;border-radius:8px;margin:10px 0 0;padding:10px 12px;font-size:13px}.post-save-banner{color:#1e7a34;background:#eaf6ec;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:10px 0 0;padding:10px 12px;font-size:13px;display:flex}.post-save-banner-actions{flex-shrink:0;gap:8px;display:flex}.btn{border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--orange);color:#fff}.btn-primary:hover{background:var(--orange-dark)}.btn-secondary{background:var(--navy);color:#fff}.btn-ghost{color:var(--navy);border:1px solid var(--border);background:0 0}.btn-danger{color:#c0392b;background:#fff;border:1px solid #f1c4c0}.btn-google{color:#1f2937;border:1px solid var(--border);background:#fff;justify-content:center;width:100%;padding:12px}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-link{color:var(--orange);background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.btn-link-danger{color:#c0392b;background:0 0;border:none;padding:0;font-size:12px}.login-screen{background:linear-gradient(160deg, var(--navy) 0%, var(--navy-dark) 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:420px;padding:40px;box-shadow:0 20px 60px #0000004d}.login-brand{color:var(--navy);letter-spacing:.5px;font-weight:800}.login-brand span{color:var(--orange)}.login-brand-sub{color:var(--muted);letter-spacing:2px;margin-bottom:18px;font-size:11px}.login-card h1{margin:8px 0 12px;font-size:22px}.login-copy{color:var(--muted);margin-bottom:24px;font-size:14px}.login-denied{color:#b3261e;background:#fdecea;border-radius:8px;margin-bottom:18px;padding:12px;font-size:13px}.login-footnote{color:var(--muted);margin-top:18px;font-size:12px}.calendar-wrap{border:1px solid var(--border);background:#fff;border-radius:12px;padding:24px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-header h2{color:var(--navy);margin:0;font-size:18px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-grid-labels{margin-bottom:6px}.calendar-label{text-align:center;color:var(--muted);font-size:12px;font-weight:600}.calendar-cell{aspect-ratio:1;border:1px solid var(--border);background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px;display:flex}.calendar-cell:hover{border-color:var(--orange)}.calendar-cell-blank{background:0 0;border:none}.calendar-daynum{color:var(--text);font-size:13px;font-weight:600}.calendar-cell.is-today .calendar-daynum{color:var(--orange)}.calendar-hours-pill{background:var(--navy);color:#fff;border-radius:10px;padding:1px 7px;font-size:11px}.calendar-cell.has-entry{background:#fff7f2;border-color:#fcd9c4}.modal-backdrop{z-index:50;background:#0f274873;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:14px;width:100%;max-width:380px;padding:28px}.modal-card h3{color:var(--navy);margin:0 0 4px}.modal-card form label{color:var(--muted);margin-top:14px;font-size:13px;font-weight:600;display:block}.modal-card form input{border:1px solid var(--border);border-radius:8px;width:100%;margin-top:6px;padding:9px 10px;display:block}.modal-actions{justify-content:space-between;margin-top:22px;display:flex}.modal-actions-right{gap:8px;display:flex}.day-entry-list{flex-direction:column;gap:10px;max-height:320px;margin-top:16px;display:flex;overflow-y:auto}.day-entry-row{border:1px solid var(--border);background:#fafbfc;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.day-entry-row .muted{font-size:13px}.day-entry-actions{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.owner-tabs{gap:6px;margin-bottom:20px;display:flex}.owner-tabs button{border:1px solid var(--border);color:var(--navy);background:#fff;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600}.owner-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.generate-panel{border:1px solid var(--border);background:#fff;border-radius:12px;padding:24px}.week-picker{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.week-picker input{border:1px solid var(--border);border-radius:8px;margin-top:6px;padding:8px 10px;display:block}.preview-table{border-collapse:collapse;width:100%;margin:16px 0}.preview-table th,.preview-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px;font-size:14px}.invoice-list{flex-direction:column;gap:8px;display:flex}.invoice-list-row-wrap{align-items:center;gap:10px;display:flex}.invoice-list-row{border:1px solid var(--border);text-align:left;background:#fff;border-radius:10px;flex:1;grid-template-columns:90px 1fr 100px 100px;align-items:center;padding:14px 16px;display:grid}.invoice-list-row:hover{border-color:var(--orange)}.invoice-list-delete{white-space:nowrap;flex-shrink:0}.invoice-list-delete-confirm{white-space:nowrap;flex-shrink:0;align-items:center;gap:10px;display:flex}.invoice-list-number{color:var(--navy);font-weight:700}.invoice-list-total{text-align:right;font-weight:700}.status-pill{text-transform:uppercase;border-radius:12px;width:fit-content;padding:3px 9px;font-size:11px;font-weight:700;display:inline-block}.status-draft{color:#b9690a;background:#fff3e0}.status-final{color:#1e7e34;background:#e6f4ea}.employee-manager{border:1px solid var(--border);background:#fff;border-radius:12px;padding:24px}.employee-form{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.employee-form input,.employee-form select{border:1px solid var(--border);border-radius:8px;padding:9px 10px}.invoice-sheet{border:1px solid var(--border);background:#fff;border-radius:12px;margin-top:16px;padding:36px}.invoice-top{border-bottom:3px solid var(--orange);justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:16px;display:flex}.invoice-title{color:#b5b8c0;font-size:34px;font-weight:300}.invoice-meta{text-align:right;font-size:14px}.invoice-meta .label{color:var(--orange);margin-right:4px;font-weight:700}.invoice-status{margin-top:6px}.invoice-parties{justify-content:space-between;gap:24px;margin-bottom:24px;font-size:14px;display:flex}.invoice-company{color:var(--navy);font-weight:700}.invoice-billto{flex:1;max-width:320px}.invoice-billto label{margin-bottom:10px;display:block}.invoice-billto .label{color:var(--orange);margin-bottom:3px;font-size:12px;font-weight:700;display:block}.invoice-billto input{border:1px solid var(--border);border-radius:6px;width:100%;padding:8px 10px}.invoice-table{border-collapse:collapse;width:100%}.invoice-table thead th{background:var(--orange-dark);color:#fff;text-align:left;padding:10px 12px;font-size:13px}.invoice-table tbody tr:nth-child(2n){background:#fdf2ec}.invoice-table td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:14px}.invoice-table input{background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:4px 6px;font-size:14px}.invoice-table input:hover,.invoice-table input:focus{border-color:var(--border);background:#fff}.hours-rate-cell{white-space:nowrap;align-items:center;gap:4px;display:flex}.hours-input{width:50px!important}.rate-input{width:60px!important}.total-cell{color:var(--navy);font-weight:700}.invoice-table tfoot td{border-bottom:none;border-top:2px solid var(--navy)}.grand-total-label{text-align:right;color:var(--navy);font-weight:700}.grand-total-value{color:var(--orange);font-size:16px;font-weight:800}.preview-row-actions{white-space:nowrap;gap:10px;display:flex}.preview-row-editing td{background:#fff7ed}.preview-row-input{border:1px solid var(--border);border-radius:6px;width:100%;margin-bottom:4px;padding:6px 8px;font-size:13px;display:block}.preview-row-input-narrow{width:70px}.add-line-btn{margin-top:12px}.invoice-remittance{border-top:2px dashed var(--border);margin-top:32px;padding-top:18px}.invoice-remittance-cut{text-align:center;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-bottom:14px;font-size:11px}.invoice-remittance-row{justify-content:space-between;margin-bottom:6px;font-size:14px;display:flex}.invoice-remittance-row .label{color:var(--orange);margin-right:4px;font-weight:700}.invoice-remittance-row.muted{color:var(--muted);font-size:13px}.invoice-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;display:flex}@media print{.app-header,.owner-tabs{display:none!important}.app-main{max-width:none;padding:0}.invoice-sheet{box-shadow:none;border:none}}
