:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#164e63;background:#f0f9ff;font-size:16px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}
.loading,.auth{min-height:100vh;display:grid;place-content:center;text-align:center;padding:2rem}
.auth-card{background:#fff;border:1px solid #e0f2fe;border-radius:20px;padding:2.5rem;max-width:440px;box-shadow:0 20px 70px #164e6314}
.auth-card h1{margin:.2rem 0;font-size:2rem}.auth-card p{color:#0369a1;line-height:1.5}.auth-card .btn{display:inline-block;text-decoration:none;margin-top:.8rem}
.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh}
.sidebar{background:#164e63;color:#e0f2fe;padding:24px 14px;display:flex;flex-direction:column;gap:22px}
.brand{font-size:1.33rem;font-weight:800;letter-spacing:.025em;padding:0 12px}.brand small{display:block;font-size:.75rem;font-weight:500;opacity:.65;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
.nav{display:grid;gap:4px}.nav button{background:transparent;color:#e0f2fe;border:0;border-radius:10px;text-align:left;padding:12px 14px;font-size:.92rem;min-height:44px}.nav button:hover,.nav button.active{background:#0369a1;color:#fff}
.identity{margin-top:auto;padding:12px;overflow-wrap:anywhere;font-size:.77rem;color:#7dd3fc;border-top:1px solid #0369a1}.identity strong{display:block;color:white;font-size:.88rem;margin-bottom:4px}.identity a{display:inline-block;margin-top:12px;text-decoration:underline}
.main{min-width:0;padding:26px clamp(16px,3vw,48px) 60px;max-width:1600px;width:100%;margin:auto}
.topline{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}.topline h1{font-size:clamp(1.5rem,2vw,2rem);letter-spacing:-.025em;margin:0}.topline .sub{color:#0369a1;font-size:.88rem;margin-top:3px}
.topline select{max-width:240px}.card,.panel{background:#fff;border:1px solid #e0f2fe;border-radius:16px;box-shadow:0 8px 26px #164e6309}.panel{padding:20px;margin-bottom:18px}.panel h2{font-size:1.08rem;margin:0 0 16px}.panel h3{font-size:.95rem;margin:18px 0 10px}
.grid{display:grid;gap:14px}.cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.metric{padding:18px}.metric .label{font-size:.78rem;color:#0369a1;margin-bottom:10px}.metric .value{font-size:1.45rem;font-weight:750;letter-spacing:-.03em}.metric .hint{color:#38bdf8;font-size:.77rem;margin-top:5px}
.twocol{grid-template-columns:repeat(2,minmax(0,1fr))}.threecol{grid-template-columns:repeat(3,minmax(0,1fr))}
.btn{border:1px solid #164e63;background:#164e63;color:#fff;border-radius:10px;min-height:43px;padding:9px 15px;font-weight:650;white-space:normal}.btn:hover{background:#164e63}.btn.secondary{background:#fff;color:#164e63;border-color:#7dd3fc}.btn.secondary:hover{background:#f0f9ff}.btn.danger{background:#fff;color:#a73535;border-color:#e4b9b9}.btn.small{min-height:35px;padding:6px 10px;font-size:.78rem}
.actions{display:flex;flex-wrap:wrap;gap:8px}.form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.form.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:5px}.field.wide{grid-column:1/-1}.field label{font-weight:650;font-size:.78rem;color:#0369a1}.field input,.field select,.field textarea,.topline select{border:1px solid #e0f2fe;border-radius:9px;min-height:42px;padding:9px 10px;background:#fff;color:#164e63;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #38bdf8;outline-offset:1px}.field textarea{min-height:74px;resize:vertical}.form .btn{align-self:end}.help{font-size:.82rem;color:#0369a1;line-height:1.5}.muted{color:#38bdf8}.warning{color:#9d6222}.negative{color:#a73535}.ok{color:#164e63}
.table-wrap{overflow-x:auto;border:1px solid #e0f2fe;border-radius:12px}.table{width:100%;border-collapse:collapse;text-align:left;font-size:.86rem;min-width:620px}.table th{background:#f0f9ff;color:#0369a1;font-size:.74rem;text-transform:uppercase;letter-spacing:.045em;font-weight:700}.table th,.table td{padding:11px 13px;border-bottom:1px solid #e0f2fe;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f0f9ff}.table td.numeric,.table th.numeric{text-align:right;font-variant-numeric:tabular-nums}
.item-card{padding:20px;margin-bottom:16px}.item-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.item-top h3{margin:0 0 3px;font-size:1.02rem}.item-meta{font-size:.8rem;color:#0369a1}.item-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:18px 0}.item-stats div{background:#f0f9ff;border-radius:9px;padding:10px}.item-stats small{display:block;color:#38bdf8;font-size:.72rem}.item-stats strong{font-size:.93rem}.progress{height:8px;border-radius:8px;background:#e0f2fe;overflow:hidden}.progress span{display:block;height:100%;background:#0369a1;max-width:100%}
.bars{display:grid;gap:12px}.bar-row{display:grid;grid-template-columns:150px 1fr 120px;align-items:center;gap:10px;font-size:.82rem}.bar-track{height:14px;background:#f0f9ff;border-radius:6px;overflow:hidden}.bar-fill{height:100%;background:#38bdf8}
.toast{position:fixed;bottom:20px;right:20px;background:#164e63;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 10px 35px #164e6360;max-width:min(420px,calc(100vw - 40px));z-index:10}.toast.error{background:#a13b3b}
.empty{padding:30px;color:#38bdf8;text-align:center;border:1px dashed #e0f2fe;border-radius:12px}
.mobilebar{display:none}
@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{padding:12px 18px;gap:8px}.brand{font-size:1.1rem}.brand small{display:none}.nav{display:flex;overflow-x:auto;scrollbar-width:thin}.nav button{white-space:nowrap}.identity{display:none}.main{padding:20px 16px 48px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.mobilebar{display:block;color:#0369a1;font-size:.78rem;margin-left:12px}}
@media(max-width:620px){.cards,.twocol,.threecol,.form,.form.two{grid-template-columns:1fr}.topline{align-items:stretch;flex-direction:column}.topline select{max-width:none}.item-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.item-top{flex-direction:column}.bar-row{grid-template-columns:95px 1fr 70px}.panel,.item-card{padding:15px}.metric .value{font-size:1.25rem}.table-wrap{overflow:visible;border:0}.table{display:block;min-width:0}.table thead{display:none}.table tbody{display:grid;gap:10px}.table tr{display:grid;border:1px solid #e0f2fe;border-radius:10px;overflow:hidden}.table td{display:flex;justify-content:space-between;gap:12px;text-align:right;padding:8px 11px;min-width:0;overflow-wrap:anywhere}.table td:before{content:attr(data-label);color:#38bdf8;font-weight:650;text-align:left;flex:0 0 40%}.table td:last-child{border-bottom:0}.table td .inline-rate{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}.table td select{max-width:145px}}

/* Entry fields and calculated figures use separate colors. */
input,select,textarea{background:#fff7e5!important;border:1px solid #c4b692!important}
.metric .value{background:#f0f9ff;border-radius:8px;padding:6px}
.item-stats>div:first-child{background:#fff7e5}
.item-stats>div:not(:first-child){background:#f0f9ff}
.table th,.table td{border:1px solid #e0f2fe}
.table td[data-label="Allocated"]{background:#fff7e5}
.table td[data-label="Used"],.table td[data-label="Balance"],.table td[data-label="On hand"]{background:#f0f9ff}
.inline-rate input{max-width:130px;min-width:0}
.role-projects{max-height:220px;overflow:auto}
@media(max-width:700px){.table td{border:1px solid #e0f2fe}.inline-rate{flex-wrap:wrap}}

/* Shared web and Android operations dashboard */
.dash-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;margin-bottom:22px;border-radius:22px;background:linear-gradient(120deg,#164e63,#0369a1);color:#ffffff;box-shadow:0 12px 28px #164e6318}
.dash-eyebrow{font-size:.68rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase;opacity:.76}.dash-hero h2{font-size:clamp(1.45rem,3vw,2.25rem);line-height:1.12;letter-spacing:-.035em;margin:10px 0}.dash-hero p{margin:0;max-width:490px;color:#e0f2fe;font-size:.9rem;line-height:1.6}.dash-hero-actions{display:grid;justify-items:end;gap:14px;white-space:nowrap;font-size:.78rem;color:#e0f2fe}
.dash-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.dash-metric{display:flex;flex-direction:column;gap:10px;text-align:left;border:1px solid #e0f2fe;border-top:4px solid var(--accent);border-radius:16px;background:#ffffff;color:#164e63;padding:18px;min-height:142px;box-shadow:0 8px 20px #164e6306}.dash-metric:hover{background:#f0f9ff}.dash-metric-label{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;font-weight:650;color:#0369a1}.dash-metric strong{font-size:2.3rem;line-height:1;letter-spacing:-.035em}.dash-metric small{font-size:.73rem;line-height:1.5;color:#38bdf8}
.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.dash-grid>.panel{margin:0;min-width:0;padding:24px}.dash-chart-pair{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:center;min-height:182px}
.dash-donut{width:158px;height:158px;border-radius:50%;display:grid;place-items:center}.dash-donut>div{background:#fff;border-radius:50%;width:112px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.dash-donut strong{font-size:2rem;letter-spacing:-.04em}.dash-donut small{font-size:.62rem;letter-spacing:.1em;color:#38bdf8}
.dash-legend{display:grid;gap:8px;min-width:0}.dash-legend>button,.dash-legend>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:10px;padding:10px 0;border:0;background:none;color:#0369a1;font:inherit;text-align:left;font-size:.83rem;min-height:44px}.dash-legend>button:hover{background:#f0f9ff;border-radius:8px}.dash-legend i{width:9px;height:9px;border-radius:3px}.dash-legend strong{font-size:1.12rem}
.dash-production-head{display:flex;align-items:center;gap:18px;margin:20px 0 24px}.dash-production-head>strong{font-size:2.4rem;letter-spacing:-.035em;color:#0369a1}.dash-production-head>span{font-size:.8rem;line-height:1.6;color:#38bdf8}
.dash-bars{display:grid;gap:14px}.dash-bars>div{display:grid;grid-template-columns:74px minmax(0,1fr) 62px;gap:12px;align-items:center;font-size:.8rem}.dash-bars strong{text-align:right}.dash-track{height:12px;background:#e0f2fe;border-radius:6px;overflow:hidden}.dash-track span{display:block;height:100%;border-radius:6px}
.dash-unit{display:flex;align-items:center;gap:12px;font-size:.8rem;color:#0369a1;margin-bottom:18px}.dash-unit select,.dash-section-head select{border:1px solid #e0f2fe;border-radius:9px;min-height:44px;padding:9px 10px;background:#fff;color:#164e63;max-width:100%}
.dash-stock-bars{display:grid;gap:15px}.dash-stock-bars>div>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:.78rem;margin-bottom:6px}.dash-stock-bars span{overflow-wrap:anywhere}.dash-stock-bars strong{white-space:nowrap}.dash-stock-bars .dash-track{height:8px}
.dash-section-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px;flex-wrap:wrap}.dash-section-head h2{margin:5px 0}.dash-section-head label{display:flex;align-items:center;gap:10px;font-size:.8rem}
.dash-chips{display:flex;gap:8px;flex-wrap:wrap}.dash-chip{display:inline-block;background:#e0f2fe;color:#0369a1;border:1px solid #e0f2fe;border-radius:20px;padding:5px 10px;font-size:.72rem;line-height:1.4;white-space:nowrap}.dash-chip.urgent{background:#fff0e8;color:#a25038;border-color:#efd5c7}
.dash-link{border:0;background:none;color:#0369a1;font:inherit;font-size:.8rem;font-weight:700;padding:8px 0;min-height:44px;text-align:left}.dash-link:hover{text-decoration:underline}.dash-cell-progress{min-width:90px;display:grid;gap:5px;font-size:.75rem}.dash-cell-progress .dash-track{height:6px}
#dashboard-due,#dashboard-projects,#dashboard-alerts{scroll-margin-top:24px}
@media(max-width:1100px){.dash-chart-pair{grid-template-columns:132px minmax(0,1fr);gap:16px}.dash-donut{width:130px;height:130px}.dash-donut>div{width:92px;height:92px}.dash-metric{padding:15px}}
@media(max-width:760px){.dash-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:1fr}.dash-hero{padding:22px;align-items:start;flex-direction:column;gap:18px}.dash-hero-actions{display:flex;justify-content:space-between;align-items:center;width:100%;white-space:normal;gap:10px}.dash-grid>.panel{padding:20px}.dash-chart-pair{grid-template-columns:140px minmax(0,1fr)}.dash-donut{width:138px;height:138px}.dash-donut>div{width:98px;height:98px}.dash-metric strong{font-size:1.9rem}.dash-metric{min-height:132px}.dash-bars>div{grid-template-columns:64px minmax(0,1fr) 50px;gap:9px}.dash-hero-actions .btn{font-size:.75rem;min-height:44px}.dash-legend>button,.dash-legend>div{font-size:.78rem}}
@media(max-width:380px){.dash-chart-pair{grid-template-columns:115px minmax(0,1fr);gap:12px}.dash-donut{width:112px;height:112px}.dash-donut>div{width:80px;height:80px}.dash-donut strong{font-size:1.5rem}.dash-metric{padding:12px}.dash-metric small{font-size:.68rem}.dash-legend>button,.dash-legend>div{gap:6px}.dash-grid>.panel{padding:16px}}

.form .field[hidden],.form output[hidden]{display:none!important}.manpower-hours{padding:14px;background:#e0f2fe;color:#164e63;border-radius:10px;font-weight:700}.field label input[type="checkbox"]{width:auto;min-height:auto;margin-right:8px}

.report-actions{display:flex;gap:10px;flex-wrap:wrap}.report-totals{margin:20px 0}.report-totals .value{font-size:24px}#report-print-document{display:none}@media print{body>*{display:none!important}#report-print-document{display:block!important;color:#000;font:10pt Arial,sans-serif;padding:0}#report-print-document table{width:100%;border-collapse:collapse;table-layout:auto}#report-print-document th,#report-print-document td{border:1px solid #aaa;padding:5px;white-space:normal;overflow-wrap:anywhere}#report-print-document thead{display:table-header-group}#report-print-document tr{break-inside:avoid}@page{size:landscape;margin:10mm}}

.pending-priority{border:2px solid #daa348;border-left:8px solid #c38724;background:#fff4d7;margin-bottom:24px;padding:22px}.pending-priority-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.pending-priority-label{display:block;color:#78530e;letter-spacing:.1em;font-size:.75rem;font-weight:700;margin-bottom:6px}.pending-priority h2{color:#483819;margin:0;font-size:1.35rem}.pending-priority .help{color:#655435}.pending-priority-counts{display:flex;gap:8px;flex-wrap:wrap}.pending-priority-counts span{padding:10px 14px;border-radius:10px;font-size:.9rem;font-weight:700}.pending-total{background:#76510f;color:#fff}.pending-overdue{background:#a43128;color:#fff}.pending-today{background:#f4cc71;color:#493209}.pending-priority .list-shell{background:#ffffff;border-radius:10px}.pending-priority.all-clear{border-color:#38bdf8;border-left-color:#0369a1;background:#e0f2fe}.pending-priority.all-clear h2,.pending-priority.all-clear .help,.pending-priority.all-clear .pending-priority-label{color:#164e63}.pending-priority.all-clear .pending-total{background:#0369a1}.pending-priority.all-clear .pending-overdue,.pending-priority.all-clear .pending-today{background:#e0f2fe;color:#164e63}@media(max-width:600px){.pending-priority{padding:16px;border-left-width:6px}.pending-priority-heading{align-items:flex-start}.pending-priority-counts{width:100%}.pending-priority-counts span{flex:1;text-align:center;padding:10px 8px;white-space:nowrap}.pending-priority h2{font-size:1.18rem}}

/* Servyx sky-blue and white theme. Alert badges retain their warning colors. */
:root{color:#164e63;background:#f0f9ff}
.sidebar{background:linear-gradient(180deg,#38bdf8,#0ea5e9);color:#083344}
.nav button{color:#083344;font-weight:650}
.nav button:hover,.nav button.active{background:#fff;color:#075985}
.brand small{opacity:1;color:#164e63}
.identity,.identity strong,.mobilebar{color:#083344}.identity{border-top-color:#bae6fd}
.dash-hero{background:linear-gradient(120deg,#0ea5e9,#7dd3fc);color:#083344}
.dash-hero p,.dash-hero-actions{color:#164e63}
.card,.panel,.dash-metric{background:#fff;border-color:#bae6fd}
.btn{background:#0369a1;border-color:#0369a1}.btn:hover{background:#075985}
.btn.secondary{color:#075985;border-color:#7dd3fc}.btn.secondary:hover{background:#e0f2fe}
input,select,textarea{background:#f0f9ff!important;border-color:#7dd3fc!important;color:#164e63}
input:focus,select:focus,textarea:focus{outline-color:#0284c7}
.metric .value{background:#e0f2fe}.table th{background:#e0f2fe;color:#075985}
.table td,.table th{border-color:#bae6fd}.table tbody tr:hover{background:#f0f9ff}
.pending-priority,.pending-priority.all-clear{background:#e0f2fe;border-color:#38bdf8;border-left-color:#0284c7}
.pending-priority h2,.pending-priority .help,.pending-priority-label,
.pending-priority.all-clear h2,.pending-priority.all-clear .help,.pending-priority.all-clear .pending-priority-label{color:#164e63}
.pending-total,.pending-priority.all-clear .pending-total{background:#0369a1;color:#fff}
.pending-priority.all-clear .pending-overdue,.pending-priority.all-clear .pending-today{background:#bae6fd;color:#164e63}
