:root{--navy: #0c2549;--navy-soft: #16345f;--gold: #c9a052;--gold-soft: #e4ce9c;--blue: #5b9bd5;--cream: #F7F4EC;--ink: #1a1e24;--line: #ded6c2;--ok: #2f7146;--warn: #9e4423;--muted: #000000;--muted-light: #4f3f14;--tint: #fbf9f4;--radius: 0;--radius-sm: 0;--field-h: 42px;--shadow-card: 0 1px 2px rgba(12, 37, 73, .06), 0 6px 14px -6px rgba(12, 37, 73, .09), 0 24px 48px -28px rgba(12, 37, 73, .38);--shadow-float: inset 0 1px 0 rgba(255, 255, 255, .85), 0 2px 4px rgba(12, 37, 73, .1), 0 12px 26px -12px rgba(12, 37, 73, .3), 0 22px 44px -20px rgba(201, 160, 82, .28);--shadow-pop: 0 8px 18px -8px rgba(12, 37, 73, .28);--ring: 0 0 0 3px rgba(91, 155, 213, .28);color-scheme:cream}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#f3efe4 0%,var(--cream) 420px);color:var(--ink);font-family:Inter,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}input,select,textarea,button{font-family:Inter,sans-serif;font-size:14px;line-height:1.4}.wrap{max-width:900px;margin:0 auto;padding:0 20px 80px}header{background:linear-gradient(120deg,#0a2040 0%,var(--navy) 55%,#1a3a6b 100%);color:#fff;padding:36px 20px 80px;position:relative;overflow:hidden}header .chevrons{position:absolute;top:0;right:-40px;bottom:0;width:220px;background:linear-gradient(135deg,transparent 48%,rgba(201,160,82,.16) 49%,rgba(201,160,82,.16) 51%,transparent 52%),linear-gradient(135deg,transparent 58%,rgba(91,155,213,.14) 59%,rgba(91,155,213,.14) 61%,transparent 62%);background-size:60px 60px;pointer-events:none}header .inner{max-width:900px;margin:0 auto;position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap}header .inner .titles{min-width:0}.wordmark{font-family:Fraunces,serif;font-weight:600;font-size:15px;letter-spacing:.24em;color:var(--gold-soft);text-transform:uppercase;margin:0 0 6px}h1{font-family:Fraunces,serif;font-weight:500;font-size:34px;line-height:1.15;margin:0 0 6px;letter-spacing:-.015em}.subtitle{font-size:14px;color:#fffc;margin:0}.user-badge{display:flex;align-items:center;gap:12px;color:#ffffffd9;flex-shrink:0;position:relative;z-index:3;font-size:14px}.user-badge .u-name{font-weight:600;color:#fff;line-height:1.3}.user-badge .u-role{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-soft);line-height:1.4}.user-badge button{background:#ffffff14;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:14px;font-weight:600;padding:8px 14px;margin-left:auto;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s ease}.user-badge button:hover{background:#ffffff29}.tab-bar{display:flex;gap:10px;margin-top:-41.5px;position:relative;z-index:3;padding:0}.tab-btn{background:#ede8da;border:1px solid var(--line);color:var(--muted);font-weight:600;font-size:14px;padding:11px 20px 9px;cursor:pointer;position:relative;top:1px;white-space:nowrap;transition:background .15s ease,color .15s ease}.tab-btn:hover{background:#f2ede1;color:var(--navy)}.tab-btn.active{background:#fff;color:var(--navy);border-bottom:1px solid #fff}.queue-badge{margin-left:6px;background:var(--gold);color:var(--navy);padding:1px 8px;border-radius:10px;font-size:12px}.tab-btn.active .queue-badge{background:var(--gold)}.view{display:none}.view.active{display:block}.card{background:#fff;border:1px solid #e7e1d0;border-radius:var(--radius);margin-top:0;position:relative;z-index:2;box-shadow:var(--shadow-card);overflow:hidden}.card+.card{margin-top:24px}.card-head{padding:16px 24px;border-bottom:1px solid #eee9dc;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:56px}.card-head h2{font-family:Fraunces,serif;font-weight:500;font-size:19px;line-height:1.3;margin:0;color:var(--navy);letter-spacing:-.01em}.card-body{padding:24px}.kicker{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-light);font-weight:600;margin:24px 0 8px}.form-section-title{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-light);font-weight:600;border-bottom:1px solid var(--line);padding-bottom:6px;margin:0 0 12px}.card-body .actions{margin-top:16px}.card-body>:first-child{margin-top:0!important}.card-body>:last-child{margin-bottom:0!important}label{display:block;font-size:14px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),select,textarea{display:block;width:100%;min-width:0;height:var(--field-h);padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);background:#fdfcf8;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:#c9c0a8}textarea{height:auto;min-height:80px;resize:vertical}select{padding-right:32px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B6455' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer;text-overflow:ellipsis}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:0}input::placeholder,textarea::placeholder{color:#857d69}input[readonly]{cursor:default}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:var(--ring);background:#fff}button:focus-visible{outline:none;box-shadow:var(--ring)}.field{margin-bottom:0;min-width:0}.setup-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px}.day-block{border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:12px;overflow:hidden}.day-block:last-child{margin-bottom:0}.day-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--tint);border-bottom:1px solid var(--line)}.day-top>div:first-child{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}.day-name{font-family:Fraunces,serif;font-weight:500;font-size:15px;color:var(--navy)}.day-date{font-size:14px;color:var(--muted-light)}.day-total{font-size:14px;font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.entries{padding:12px 16px 14px}.entry-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.42fr) 40px;gap:10px;align-items:start;margin-bottom:8px}.entry-row:last-child{margin-bottom:0}.entry-row>*{min-width:0}.remove-btn{width:40px;height:var(--field-h);border:1px solid var(--line);background:#fff;color:var(--warn);border-radius:var(--radius-sm);cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}.remove-btn:hover{background:#fbede7;border-color:#eed2c4}.add-entry{background:none;border:1px dashed #c7bfa9;color:var(--navy-soft);font-size:14px;font-weight:600;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;width:100%;text-align:left;margin-top:4px;transition:background .15s ease,border-color .15s ease}.add-entry:hover{background:var(--tint);border-color:var(--gold)}.notes-input{width:100%;margin:0 0 14px;font-size:14px}.entries>.notes-input:last-child{margin-bottom:0}.totals-strip{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:18px 24px;color:#fff;background:linear-gradient(120deg,#0a2040,var(--navy) 60%,#1a3a6b);flex-wrap:wrap}.totals-strip .label{font-size:14px;letter-spacing:.05em;text-transform:uppercase;color:#fff9;margin-bottom:2px}.totals-strip .value{font-family:Fraunces,serif;font-size:30px;line-height:1.1;font-weight:500;font-variant-numeric:tabular-nums}.breakdown{display:flex;gap:14px 28px;flex-wrap:wrap;justify-content:flex-end}.breakdown .item{text-align:right}.breakdown .item .value{font-size:18px;color:var(--gold-soft)}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.card-body>.actions:first-child{margin-top:0}button.primary{background:linear-gradient(180deg,#d3ac60,var(--gold));color:var(--navy);border:1px solid #b8904a;padding:12px 22px;font-weight:700;font-size:14px;border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.01em;min-height:var(--field-h);box-shadow:0 1px 2px #0c25491f;transition:transform .12s ease,box-shadow .15s ease,filter .15s ease}button.primary:hover{filter:brightness(1.05);transform:translateY(-1px);box-shadow:var(--shadow-pop)}button.primary:active{transform:translateY(0);box-shadow:none}button.secondary,.secondary{background:#fff;color:var(--navy);border:1px solid #b8c0ce;padding:12px 22px;font-weight:600;font-size:14px;border-radius:var(--radius-sm);cursor:pointer;min-height:var(--field-h);transition:background .15s ease,border-color .15s ease,transform .12s ease}button.secondary:hover,.secondary:hover{background:#f4f6fa;border-color:var(--navy);transform:translateY(-1px)}button.text{background:none;border:none;color:var(--blue);font-size:14px;font-weight:600;cursor:pointer;padding:6px 4px}button.text:hover{text-decoration:underline}button:disabled{opacity:.5;cursor:not-allowed}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;padding:5px 12px;border-radius:20px;white-space:nowrap;flex-shrink:0}.status-draft{background:#f1ead6;color:#6e5417}.status-submitted{background:#ddeee2;color:var(--ok)}.status-warn{background:#fbede7;color:var(--warn)}.banner{padding:14px 24px;font-size:14px;color:var(--ok);background:#eaf5ee;border-bottom:1px solid var(--line)}.banner.warn{color:var(--warn);background:#fbede7;border-color:#eed2c4}.history-item{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.history-item:last-child{border-bottom:none}.history-item .h-left{display:flex;flex-direction:column;gap:3px;min-width:0}.history-item .h-week{font-weight:600;color:var(--navy)}.history-item .h-meta{font-size:14px;color:var(--muted-light)}.history-item .h-right{display:flex;align-items:center;gap:16px;flex-shrink:0}.history-item .h-hours{font-family:Fraunces,serif;font-size:18px;color:var(--navy);font-variant-numeric:tabular-nums;white-space:nowrap}.empty-note{font-size:14px;color:var(--muted-light);padding:6px 0}footer{text-align:center;padding:24px 20px 0;font-size:14px;color:#757062}.range-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.range-btn{background:#fff;border:1px solid var(--line);color:var(--navy);font-size:14px;font-weight:600;padding:9px 16px;border-radius:20px;cursor:pointer;white-space:nowrap}.range-btn:hover{background:var(--tint)}.range-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}.custom-range{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.custom-range .field{width:170px;flex-shrink:0}.month-field{width:170px;margin-left:auto}.checkbox-row{display:flex;align-items:center;gap:8px;margin:16px 0;font-size:14px;color:var(--muted)}.checkbox-row input[type=checkbox]{width:16px;height:16px;margin:0;flex-shrink:0;accent-color:var(--navy);cursor:pointer}.checkbox-row label{margin:0;font-size:14px;text-transform:none;letter-spacing:0;font-weight:400;cursor:pointer}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#d8d2c2 transparent}table.summary-table{width:100%;border-collapse:collapse;font-size:14px}table.summary-table th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-light);font-weight:600;padding:8px 10px;background:var(--tint);border-bottom:1px solid var(--line);white-space:nowrap}table.summary-table th:first-child{border-radius:8px 0 0 8px}table.summary-table th:last-child{border-radius:0 8px 8px 0}table.summary-table td{padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:top}table.summary-table tr:last-child td{border-bottom:none}.worker-name{font-weight:600;color:var(--navy)}.worker-role{font-size:14px;color:var(--muted-light);margin-top:2px}.num-cell{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.total-cell{font-family:Fraunces,serif;font-size:17px;color:var(--navy);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.draft-flag{display:inline-block;font-size:12px;font-weight:600;color:#8a6a2a;background:#f1ead6;padding:3px 8px;border-radius:10px;margin-top:6px}.summary-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.summary-grand-total{font-family:Fraunces,serif;font-size:22px;color:var(--navy);font-variant-numeric:tabular-nums}.visibility-note{font-size:14px;color:var(--muted-light);background:var(--cream);border:1px solid var(--line);border-left:3px solid var(--gold);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:16px}.login-wrap{max-width:780px;margin:48px auto;padding:0 20px}.login-card{background:#fff;border:1px solid #e7e1d0;border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}.login-split{display:grid;grid-template-columns:.85fr 1fr}.login-side{background:linear-gradient(150deg,#0a2040 0%,var(--navy) 55%,#1a3a6b 100%);color:#fff;padding:40px 34px;position:relative;overflow:hidden}.login-side:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 48%,rgba(201,160,82,.14) 49%,rgba(201,160,82,.14) 51%,transparent 52%);background-size:56px 56px;pointer-events:none}.login-side-mark{font-family:Fraunces,serif;font-weight:600;font-size:15px;letter-spacing:.24em;color:var(--gold-soft)}.login-side-title{font-family:Fraunces,serif;font-weight:500;font-size:24px;line-height:1.3;margin-top:14px;text-wrap:balance;position:relative;z-index:1}.login-side-points{margin:26px 0 0;padding:0;list-style:none;position:relative;z-index:1}.login-side-points li{font-size:13.5px;color:#ffffffd1;padding:7px 0 7px 24px;position:relative}.login-side-points li:before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}.login-form{padding:40px 34px}@media (max-width: 680px){.login-split{grid-template-columns:1fr}.login-side{padding:26px 24px}.login-side-points{display:none}.login-form{padding:28px 24px}}.login-card h2{font-family:Fraunces,serif;font-weight:500;font-size:24px;color:var(--navy);margin:0 0 8px}.login-card p{color:var(--muted);font-size:14px;margin:0 0 24px;line-height:1.55}.login-card .field{margin-bottom:18px}.login-card button.primary{width:100%;margin-top:4px}.login-err{color:var(--warn);background:#fbede7;border:1px solid #eed2c4;padding:10px 12px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}.login-hint{font-size:14px;color:var(--muted-light);margin-top:22px;line-height:1.9;border-top:1px dashed var(--line);padding-top:16px}.login-hint code{background:#f1efe8;padding:3px 7px;font-size:12px;font-family:Menlo,Consolas,monospace;white-space:nowrap}.admin-subtabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px;flex-wrap:wrap}.admin-subtabs button{background:none;border:1px solid transparent;color:var(--muted);font-weight:600;font-size:13.5px;padding:7px 14px;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.admin-subtabs button:hover{color:var(--navy);background:#f1ede2}.admin-subtabs button.active{color:var(--navy);background:#f6eddb;border-color:var(--gold)}.admin-users-table,.admin-audit-table{width:100%;border-collapse:collapse;font-size:14px}.admin-users-table th,.admin-audit-table th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted-light);font-weight:600;padding:8px;background:var(--tint);border-bottom:1px solid var(--line);white-space:nowrap}.admin-users-table th:first-child,.admin-audit-table th:first-child{border-radius:8px 0 0 8px}.admin-users-table th:last-child,.admin-audit-table th:last-child{border-radius:0 8px 8px 0}.admin-users-table td,.admin-audit-table td{padding:12px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-users-table tbody tr,table.summary-table tbody tr{transition:background .12s ease}.admin-users-table tbody tr:hover,table.summary-table tbody tr:hover{background:var(--tint)}.role-pill{display:inline-block;font-size:12px;font-weight:600;padding:3px 10px 3px 8px;border-radius:10px;white-space:nowrap;margin:5px 0}.role-pill:before,.status-pill:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7;margin-right:6px;vertical-align:1px}.role-admin{background:#e8dcf3;color:#5a2e86}.role-pending{background:#f6e7c4;color:#71530e}.role-overdue{background:#f5ddd6;color:#8f361d}.role-worker{background:#ddeee2;color:var(--ok)}.push-status{font-size:14px;padding:10px 14px;margin-top:12px}.push-status.ok{background:#eaf5ee;color:var(--ok);border:1px solid #c9e4d2}.push-status.err{background:#fbede7;color:var(--warn);border:1px solid #eed2c4}.pp-grid{display:flex;flex-wrap:wrap;gap:16px}.pp-box{flex:1;min-width:150px;padding:14px 16px 12px;border:1px solid #ece6d7;border-left-width:4px;background:#fff;box-shadow:0 1px 2px #0c25490d}.pp-box .pp-label{font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-weight:700}.pp-box .pp-label:before{margin-right:6px}.pp-box .pp-val{font-family:Fraunces,serif;font-size:30px;line-height:1.15;color:var(--navy);font-variant-numeric:tabular-nums}.pp-approved{border-left-color:var(--ok);background:#eaf5ee}.pp-approved .pp-label{color:var(--ok)}.pp-approved .pp-label:before{content:"✓"}.pp-pending{border-left-color:#c9a052;background:#f1ead6}.pp-pending .pp-label{color:#8a6a2a}.pp-pending .pp-label:before{content:"◔"}.pp-needs{border-left-color:var(--warn);background:#fbede7}.pp-needs .pp-label{color:var(--warn)}.pp-needs .pp-label:before{content:"⚠"}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c254980;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.modal-card{background:#fff;max-width:600px;width:100%;border-radius:var(--radius);overflow:hidden;box-shadow:0 24px 60px -20px #0c25498c;animation:modal-in .18s ease-out}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.modal-card{animation:none}}.cx-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.cx{display:inline-flex;align-items:baseline;gap:6px;background:#f1efe8;border:1px solid var(--line);border-radius:12px;padding:3px 10px;font-size:12px;white-space:nowrap}.cx-code{font-weight:600;color:var(--navy);letter-spacing:.02em}.cx-hrs{color:var(--muted);font-variant-numeric:tabular-nums}.note-table{width:100%;border-collapse:collapse;font-size:12px;color:var(--muted)}.note-table td{padding:3px 10px 3px 0;border:none;vertical-align:top;line-height:1.45}.note-table .n-date{white-space:nowrap;color:var(--muted-light);font-variant-numeric:tabular-nums;width:1%}.note-table .n-code{white-space:nowrap;font-weight:600;color:var(--navy-soft);width:1%}.note-table .n-hrs{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;width:1%;padding-right:12px}.note-table .n-text{width:auto}.note-more{font-size:12px;color:var(--muted-light);margin-top:6px;font-style:italic}table.summary-table .w-cell{min-width:150px}@media (max-width: 820px){.setup-grid{grid-template-columns:1fr 1fr}.setup-grid .field:first-child{grid-column:1 / -1}.breakdown{justify-content:flex-start}}@media (max-width: 640px){header{padding:22px 16px 62px}header .inner{flex-direction:column;gap:16px}h1{font-size:24px}.user-badge{order:-1;width:100%;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.12)}.wrap{padding:0 12px 60px}.card-head{padding:16px 16px 14px}.card-body{padding:16px}.setup-grid{grid-template-columns:1fr!important;gap:14px}.setup-grid .field:first-child{grid-column:auto}.tab-bar{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:5px;scrollbar-width:none;width:100%}.tab-bar::-webkit-scrollbar{display:none}.tab-btn{flex-shrink:0;padding:11px 13px 9px;font-size:13px}.totals-strip{flex-direction:column;align-items:flex-start;gap:16px;padding:18px 16px}.breakdown{gap:14px 24px;justify-content:flex-start}.breakdown .item{text-align:left}.actions{flex-direction:column;align-items:stretch;gap:10px}.actions button.primary,.actions button.secondary,.login-card button.primary,form button[type=submit].primary,form button[type=submit].secondary{width:100%;padding:14px 18px;font-size:16px}.actions button.text{width:100%;text-align:center;padding:12px 0}.range-row{gap:6px}.custom-range{flex-direction:column;align-items:stretch;width:100%}.custom-range .field{width:100%}.day-top,.entries{padding:12px}.entry-row{grid-template-columns:1fr 44px;gap:8px}.entry-row select{grid-column:1 / -1}.entry-row input[type=number]{grid-column:1}.remove-btn{width:44px;grid-column:2}input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;height:46px}textarea{height:auto}.admin-users-table,.admin-audit-table{font-size:14px}.admin-users-table thead,.admin-audit-table thead{display:none}.admin-users-table tr,.admin-audit-table tr{display:block;border-bottom:1px solid var(--line);padding:12px 0}.admin-users-table td,.admin-audit-table td{display:block;border:none;padding:3px 0}.admin-users-table.keep-table{min-width:640px;font-size:13px}.admin-users-table.keep-table thead{display:table-header-group}.admin-users-table.keep-table tr{display:table-row;padding:0;border-bottom:none}.admin-users-table.keep-table td{display:table-cell;border-bottom:1px solid var(--line);padding:10px 8px}.admin-users-table.keep-table tr:last-child td{border-bottom:none}table.summary-table thead{display:none}table.summary-table,table.summary-table tbody,table.summary-table tr,table.summary-table td{display:block;width:auto}table.summary-table tr{padding:14px 0;border-bottom:1px solid var(--line)}table.summary-table tr:last-child{border-bottom:none}table.summary-table td{border:none;padding:0}table.summary-table .w-cell{min-width:0;margin-bottom:10px}table.summary-table .total-cell{text-align:left;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}table.summary-table .total-cell:before{content:"Total  ";font-family:Inter,sans-serif;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-light)}.note-table,.note-table tbody,.note-table tr,.note-table td{display:block;width:auto}.note-table tr{padding:7px 0;border-bottom:1px dashed var(--line)}.note-table tr:last-child{border-bottom:none}.note-table td{padding:0}.note-table .n-date,.note-table .n-code,.note-table .n-hrs{display:inline;width:auto;text-align:left;padding:0 8px 0 0}.note-table .n-text{display:block;padding-top:3px;color:var(--ink)}.cx{font-size:12px;padding:3px 8px;white-space:normal}.summary-foot{flex-direction:column;align-items:flex-start;gap:8px}.user-badge{padding-bottom:12px}.admin-subtabs{gap:14px}.modal-backdrop{padding:14px 8px}.month-field{width:100%;margin-left:0}.history-item{flex-wrap:wrap}.history-item .h-right{margin-left:auto}.pp-box .pp-val{font-size:20px}}@media print{body:has(.print-area) #root{display:none!important}.toast-wrap{display:none!important}.modal-backdrop:has(.print-area){position:static!important;display:block!important;padding:0!important;background:#fff!important;overflow:visible!important}.modal-backdrop:has(.print-area) .modal-card{max-width:none;box-shadow:none}.modal-backdrop:has(.print-area) .card-head,.modal-backdrop:has(.print-area) .actions{display:none!important}.stub-internal,.no-print{display:none!important}}.toast-wrap{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:10px;width:min(480px,calc(100vw - 32px));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.45;background:#fff;border:1px solid var(--line, #ded6c2);border-left-width:4px;border-radius:var(--radius-sm);box-shadow:0 10px 26px -12px #0c254973;pointer-events:auto;animation:toast-in .22s ease-out}.toast-error{border-left-color:#b4552f;background:#fbede7;color:#7a3b20}.toast-success{border-left-color:#3c8a5b;background:#eaf5ee;color:#2a6b44}.toast-warn{border-left-color:#c9a052;background:#fbf3e4;color:#6b5320}.toast-icon{flex-shrink:0;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;margin-top:1px}.toast-error .toast-icon{background:#b4552f}.toast-success .toast-icon{background:#3c8a5b}.toast-warn .toast-icon{background:#c9a052}.toast-msg{flex:1}.toast-close{background:none;border:none;cursor:pointer;font-size:18px;line-height:1;color:inherit;opacity:.6;padding:0 2px}.toast-close:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;letter-spacing:.02em;flex-shrink:0;-webkit-user-select:none;user-select:none}.person-cell{display:flex;align-items:center;gap:10px;min-width:0}.person-cell>div{min-width:0}.day-top{background:linear-gradient(90deg,var(--tint),#fff)}.day-name{font-size:16px}.admin-users-table tbody tr{transition:background .12s ease}.admin-users-table tbody tr:hover td{background:#fbf9f4}.table-scroll{scrollbar-width:thin;scrollbar-color:#d8d2c2 transparent}.table-scroll::-webkit-scrollbar{height:8px}.table-scroll::-webkit-scrollbar-thumb{background:#d8d2c2;border-radius:4px}.table-scroll::-webkit-scrollbar-track{background:transparent}p.empty-note{padding:22px 16px;text-align:center;color:var(--muted-light);background:var(--tint);border:1px dashed var(--line);border-radius:var(--radius-sm)}.dialog-card{max-width:460px}.dialog-title{font-family:Fraunces,serif;font-weight:500;font-size:18px;color:var(--navy);margin-bottom:8px}.dialog-msg{margin:0 0 4px;color:var(--muted);white-space:pre-line;line-height:1.55}.dialog-msg+input[readonly]{margin-top:10px}button.dialog-danger{background:var(--warn);border-color:#8f361d;color:#fff}.clock-toggle{font-size:13px;display:block;padding:0 0 12px}.clock-panel{background:var(--tint);border:1px dashed var(--line);padding:12px 14px 10px;margin:0 0 14px}.clock-rows{display:flex;gap:20px;flex-wrap:wrap}.time-select{display:flex;align-items:center;gap:4px}.time-select-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);min-width:78px}.time-select select{width:auto;min-width:60px;height:38px;padding:6px 26px 6px 8px}.clock-note{font-size:13px;margin-top:8px}.clock-note.ok{color:var(--ink)}.clock-note.warn{color:var(--warn)}@media (max-width: 640px){.clock-rows{flex-direction:column;gap:8px}.time-select select{flex:1;height:42px}}.shift-client{margin-bottom:12px}.shift-entry{padding:12px 0 0;margin:12px 0 0;border-top:1px dashed var(--line)}.shift-entry:first-child{padding-top:0;margin-top:0;border-top:none}.shift-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 8px;font-size:13px}.shift-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.entries>.add-entry{margin-top:12px}.saved-note{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--ok);background:#eaf5ee;border:1px solid #c9e4d2;padding:6px 12px;white-space:nowrap}.client-ts-mark{font-family:Fraunces,serif;font-weight:600;font-size:13px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase}.client-ts-title{font-family:Fraunces,serif;font-weight:500;font-size:26px;color:var(--navy);margin:4px 0 2px}.client-ts-sub{font-size:15px;color:var(--muted)}.client-ts-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--navy)}.client-ts-week{font-size:14px;font-weight:600;color:var(--navy);white-space:nowrap}.client-ts-next{font-size:11px;color:var(--muted-light)}.client-ts-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:18px;padding:14px 16px;background:var(--tint);border:1px solid var(--line)}.client-ts-total .label{font-size:12px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--muted)}.client-ts-total .value{font-family:Fraunces,serif;font-size:34px;color:var(--navy);font-variant-numeric:tabular-nums}.client-ts-meta{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px;font-size:13px;color:var(--muted)}.client-ts-meta a{color:var(--blue);font-weight:600}.client-ts-foot{border-top:1px solid var(--line);padding:12px 24px;font-size:12px;color:var(--muted-light)}@media print{.client-ts .client-ts-meta a{display:none}}.ct-client{border:1px solid var(--line);padding:14px 16px 12px;margin-bottom:16px;background:#fff}.ct-client-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;margin-bottom:12px}.ct-client-settings{display:flex;gap:12px;flex-wrap:wrap}.ct-client-settings .field{min-width:220px}@media (max-width: 640px){.ct-client-settings .field{min-width:0;width:100%}}.inv-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:12px;border-bottom:2px solid var(--navy)}.inv-client{font-family:Fraunces,serif;font-size:20px;color:var(--navy)}.inv-code{font-size:12px;color:var(--muted-light);font-family:Inter,sans-serif;margin-left:6px}.inv-range{font-size:13px;color:var(--muted)}.inv-gen{font-size:12px;color:var(--muted-light)}.inv-warnings{background:#fbf3e4;border:1px solid #e4ce9c;border-left:3px solid var(--gold);padding:10px 14px;margin-top:14px;font-size:13px;color:var(--muted);display:grid;gap:6px}.inv-warnings a{color:var(--blue);font-weight:600}.inv-missing{margin:6px 0 0;padding-left:18px}.inv-missing li{margin:2px 0}.inv-missing button.text,button.text.inv-name{padding:0;font-size:inherit;font-weight:600;color:var(--blue);text-decoration:underline dotted;text-underline-offset:3px}button.text.inv-name:hover,.inv-missing button.text:hover{color:var(--navy);text-decoration-style:solid}.inv-grand{text-align:right;font-size:15px;margin-top:8px;color:var(--navy)}.inv-detail{border-bottom:1px dashed var(--line);padding:2px 0}.inv-detail .table-scroll{margin:4px 0 10px}select[multiple]{padding:6px 8px;background-image:none}
