:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#22263a;--border:#2e3250;--accent:#4f7cff;--accent2:#7c4fff;--green:#3ecf8e;--yellow:#f5c542;--red:#ff5f5f;--text:#e4e6f1;--muted:#7b809a}
body.theme-front-slate_light,.theme-preview.theme-front-slate_light{--bg:#f4f6f8;--surface:#fff;--surface2:#edf1f4;--border:#d4dbe2;--accent:#2367a8;--text:#17212b;--muted:#667584}
body.theme-front-ocean,.theme-preview.theme-front-ocean{--bg:#071827;--surface:#0d2639;--surface2:#12344c;--border:#20506e;--accent:#32b7e8;--text:#e1f5ff;--muted:#78a8bf}
body.theme-front-forest,.theme-preview.theme-front-forest{--bg:#0b1913;--surface:#13271d;--surface2:#1c3528;--border:#315844;--accent:#55c98a;--text:#e2f4e9;--muted:#83a991}
body.theme-front-ember,.theme-preview.theme-front-ember{--bg:#1c120c;--surface:#2b1c12;--surface2:#3b281a;--border:#67452c;--accent:#ee8b3a;--text:#fff0df;--muted:#b39275}
body.theme-front-midnight,.theme-preview.theme-front-midnight{--bg:#100d1d;--surface:#1c1730;--surface2:#292143;--border:#493b72;--accent:#9b78ff;--text:#f0ebff;--muted:#9a8ebd}
body.theme-front-steel,.theme-preview.theme-front-steel{--bg:#15191d;--surface:#20262b;--surface2:#2b333a;--border:#46515a;--accent:#70a8c4;--text:#edf2f5;--muted:#93a0aa}
body.theme-admin-nord,.theme-preview.theme-admin-nord{--bg:#242933;--surface:#2e3440;--surface2:#3b4252;--border:#4c566a;--accent:#88c0d0;--text:#eceff4;--muted:#a3b1c6}
body.theme-admin-dracula,.theme-preview.theme-admin-dracula{--bg:#191a21;--surface:#282a36;--surface2:#343746;--border:#4b4e61;--accent:#bd93f9;--text:#f8f8f2;--muted:#9b9caf}
body.theme-admin-monokai,.theme-preview.theme-admin-monokai{--bg:#1e1f1c;--surface:#272822;--surface2:#34352e;--border:#4c4d43;--accent:#a6e22e;--text:#f8f8f2;--muted:#a6a69c}
body.theme-admin-solarized,.theme-preview.theme-admin-solarized{--bg:#002b36;--surface:#073642;--surface2:#0d4652;--border:#35616a;--accent:#2aa198;--text:#eee8d5;--muted:#93a1a1}
body.theme-admin-one_light,.theme-preview.theme-admin-one_light{--bg:#f5f6f8;--surface:#fff;--surface2:#eef0f3;--border:#d6dae0;--accent:#4078f2;--text:#24292f;--muted:#6e7781}
body.theme-admin-warm_dark,.theme-preview.theme-admin-warm_dark{--bg:#18130f;--surface:#251d17;--surface2:#33271e;--border:#594536;--accent:#e6a15a;--text:#f5eadf;--muted:#aa9482}
*{box-sizing:border-box}
body{margin:0;font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.theme-choice{cursor:pointer;position:relative}.theme-choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}.theme-preview{height:66px;border:2px solid var(--border);border-radius:8px;background:var(--bg);display:flex;overflow:hidden}.theme-preview i{display:block;width:25%;background:var(--surface)}.theme-preview b{display:block;width:46%;height:9px;margin:14px;background:var(--accent);border-radius:4px;box-shadow:0 17px 0 var(--surface2)}.theme-choice>strong{display:block;font-size:11px;margin-top:5px}.theme-choice.selected .theme-preview,.theme-choice:has(input:checked) .theme-preview{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}.theme-choice:focus-within .theme-preview{outline:2px solid var(--accent);outline-offset:3px}.theme-note{padding:20px;color:var(--muted);font-size:13px}

/* Auth / setup pages */
.b2c-auth{min-height:100vh;display:grid;place-items:center;padding:24px}
.b2c-auth-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:36px}
.b2c-brand{font-weight:900;font-size:18px;margin-bottom:22px}
.b2c-brand span{color:var(--accent)}
.b2c-auth-card h1{font-size:22px;margin:0 0 8px}
.b2c-auth-card p{color:var(--muted);font-size:13px;margin:0 0 20px}
.b2c-auth-card form{display:grid;gap:12px}
.b2c-auth-card label{font-size:11px;font-weight:700;color:var(--muted);display:block}
.b2c-auth-card label small{display:block;font-weight:400;margin-top:4px;color:var(--muted)}
.b2c-auth-card input{width:100%;margin-top:5px;padding:11px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text)}
.b2c-auth-links{display:grid;gap:8px;margin-top:18px;font-size:12px}.b2c-auth-links a{color:var(--accent);font-weight:700}.b2c-org-auth{display:grid}.b2c-org-auth-shell{width:min(860px,100%);display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden}.b2c-org-auth-brand,.b2c-org-auth-form{padding:42px}.b2c-org-auth-brand{background:color-mix(in srgb,var(--org-accent,var(--accent)) 36%,var(--bg));display:flex;flex-direction:column;justify-content:space-between;min-height:460px}.b2c-org-auth-brand h1{font-size:30px;margin:16px 0 6px}.b2c-org-auth-brand p,.b2c-org-auth-brand small,.b2c-org-auth-form>p,.b2c-auth-help{color:var(--muted)}.b2c-org-auth-brand img{max-width:180px;max-height:90px;object-fit:contain}.b2c-org-auth-form>small{color:var(--org-accent,var(--accent));font-weight:800;letter-spacing:.1em}.b2c-org-auth-form h2{font-size:26px;margin:8px 0 2px}.b2c-org-auth-form form{display:grid;gap:14px;margin-top:24px}.b2c-org-auth-form label{font-size:11px;font-weight:700;color:var(--muted)}.b2c-org-auth-form input{width:100%;margin-top:5px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface2)}.b2c-org-auth-form button{background:var(--org-accent,var(--accent))}.b2c-auth-help{font-size:11px;margin-top:18px}@media(max-width:700px){.b2c-org-auth-shell{grid-template-columns:1fr}.b2c-org-auth-brand{min-height:210px;padding:28px}.b2c-org-auth-form{padding:28px}}
.b2c-button,button,.b2c-p-btn{border:0;background:var(--accent);color:#fff;border-radius:8px;padding:12px 16px;font-weight:700;cursor:pointer;display:inline-block;text-align:center}
.b2c-button.secondary{background:var(--surface2);border:1px solid var(--border)}
.b2c-error{background:#3a1a1a;border:1px solid var(--red);color:#ffb3b3;padding:11px 14px;border-radius:8px;font-size:12px;margin-bottom:14px}
.b2c-notice{background:#12331f;border:1px solid var(--green);color:#a7f3cf;padding:11px 14px;border-radius:8px;font-size:12px;margin-bottom:14px}

/* Admin shell */
body:has(.b2c-sidebar){display:flex}
.b2c-sidebar{width:230px;flex-shrink:0;min-height:100vh;background:var(--surface);border-right:1px solid var(--border);padding:22px 16px;display:flex;flex-direction:column}
.b2c-sidebar .b2c-brand{margin-bottom:4px}
.b2c-org-name{font-size:11px;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:16px}
.b2c-sidebar nav{display:flex;flex-direction:column;gap:3px}
.b2c-sidebar nav a{padding:10px 12px;border-radius:8px;font-size:13px;color:var(--muted);display:flex;gap:10px;align-items:center}
.b2c-sidebar nav a.active,.b2c-sidebar nav a:hover{background:var(--surface2);color:var(--text)}
.b2c-side-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px;font-size:12px}
.b2c-side-footer small{color:var(--muted)}
.b2c-side-footer a{color:var(--accent);font-weight:700}

.b2c-main{flex:1;padding:30px 36px;max-width:1200px}
.b2c-main>header{display:flex;align-items:center;margin-bottom:22px;gap:16px}
.b2c-main>header small{font-size:10px;letter-spacing:.1em;color:var(--accent);font-weight:800}
.b2c-main>header h1{font-size:26px;margin:6px 0 0}
.b2c-hint{color:var(--muted);font-size:12px;margin:4px 0 0}
.b2c-main>header .b2c-button{margin-left:auto}

.b2c-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.b2c-stats article{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}
.b2c-stats small{font-size:10px;letter-spacing:.08em;color:var(--muted);font-weight:700}
.b2c-stats strong{display:block;font-size:24px;margin-top:8px}

.b2c-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:18px}
.b2c-card-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}
.b2c-card-head h2{font-size:15px;margin:0}
.b2c-card-head a{margin-left:auto;color:var(--accent);font-size:12px;font-weight:700}
.b2c-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
@media(max-width:900px){.b2c-two-col{grid-template-columns:1fr}.b2c-sidebar{position:static}body:has(.b2c-sidebar){flex-direction:column}}

.b2c-table{overflow-x:auto}
.b2c-table table{width:100%;border-collapse:collapse;font-size:13px}
.b2c-table th{text-align:left;font-size:10px;letter-spacing:.06em;color:var(--muted);padding:10px 20px;background:var(--surface2)}
.b2c-table td{padding:12px 20px;border-top:1px solid var(--border)}
.b2c-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}

.b2c-status{display:inline-block;font-size:10px;font-weight:700;text-transform:capitalize;padding:4px 9px;border-radius:20px;background:var(--surface2);color:var(--muted)}
.b2c-status.paid,.b2c-status.active,.b2c-status.completed{background:#12331f;color:var(--green)}
.b2c-status.partial,.b2c-status.pending_signature,.b2c-status.sent{background:#332912;color:var(--yellow)}
.b2c-status.void,.b2c-status.inactive{background:#331414;color:var(--red)}

.b2c-list{display:flex;flex-direction:column}
.b2c-list-row{display:flex;align-items:center;gap:12px;padding:13px 20px;border-top:1px solid var(--border)}
.b2c-list-row:first-child{border-top:0}
.b2c-list-row:hover{background:var(--surface2)}
.b2c-list-row b{display:block;font-size:13px}
.b2c-list-row small{color:var(--muted);font-size:11px}
.b2c-muted{color:var(--muted);font-size:11px}

.b2c-form{padding:18px 20px;display:grid;gap:12px}
.b2c-form label{font-size:11px;font-weight:700;color:var(--muted);display:block}
.b2c-form input,.b2c-form select,.b2c-form textarea{width:100%;margin-top:5px;padding:10px 11px;border:1px solid var(--border);border-radius:7px;background:var(--surface2);color:var(--text)}
.b2c-form textarea{min-height:70px}
.b2c-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.b2c-check-row{display:flex;gap:20px;font-size:12px;color:var(--muted)}
.b2c-check-row label{display:flex;align-items:center;gap:6px;font-weight:400;color:var(--text)}
.b2c-check-row input{width:auto;margin:0}
.b2c-form button{justify-self:start}

.b2c-invoice-totals{padding:16px 20px;border-top:1px solid var(--border);display:grid;gap:6px}
.b2c-invoice-totals div{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.b2c-invoice-totals div.total{color:var(--text);font-weight:700;font-size:14px}
.b2c-detail-list{padding:6px 20px 20px;display:grid;gap:16px}
.b2c-detail-list small{display:block;font-size:9px;letter-spacing:.08em;color:var(--muted);margin-bottom:4px}
.b2c-signature-img{max-width:220px;background:#fff;border-radius:6px;padding:8px;display:block;margin-bottom:6px}
.b2c-payment-row{display:block;margin-top:4px}
.timesheet-main{max-width:1500px}.timesheet-nav{margin-left:auto;display:flex;gap:7px}.timesheet-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px}.timesheet-summary article{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:15px}.timesheet-summary small,.timesheet-summary span{display:block;color:var(--muted);font-size:10px}.timesheet-summary strong{display:block;font-size:23px;margin:5px 0}.timesheet-actions{display:flex;gap:5px}.timesheet-actions button{padding:6px 8px;font-size:9px;background:var(--green);color:#082116}.timesheet-actions button.reject{background:var(--surface2);color:var(--red);border:1px solid var(--red)}.b2c-status.approved{background:#12331f;color:var(--green)}.b2c-status.rejected{background:#331414;color:var(--red)}@media(max-width:900px){.timesheet-main>header{align-items:flex-start;flex-direction:column}.timesheet-nav{margin-left:0;flex-wrap:wrap}}

/* Scheduling and dispatch */
.schedule-main{max-width:1500px}.schedule-nav{margin-left:auto;display:flex;gap:7px}.schedule-board{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:8px;margin-bottom:18px;overflow-x:auto}.schedule-day{min-height:270px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:9px}.schedule-day>header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:2px 3px 8px;margin-bottom:8px}.schedule-day>header small{font-size:9px;color:var(--muted);font-weight:800}.schedule-day>header b{font-size:18px}.schedule-day.today{border-color:var(--accent)}.schedule-day.today>header b{color:var(--accent)}.schedule-job{display:block;background:var(--surface2);border-left:3px solid var(--accent);border-radius:6px;padding:8px;margin-bottom:7px}.schedule-job:hover{filter:brightness(1.12)}.schedule-job time,.schedule-job small,.schedule-job span{display:block;font-size:9px;color:var(--muted)}.schedule-job b{display:block;font-size:11px;line-height:1.3;margin:3px 0}.schedule-job.priority-high{border-left-color:var(--yellow)}.schedule-job.priority-urgent{border-left-color:var(--red)}.schedule-job.priority-low{border-left-color:var(--green)}.schedule-form{max-width:780px}@media(max-width:900px){.schedule-nav{margin-left:0;flex-wrap:wrap}.schedule-main>header{align-items:flex-start;flex-direction:column}.schedule-board{grid-template-columns:repeat(7,190px)}}
