:root{--navy:#071f35;--emerald:#0b5d58;--gold:#b99352;--cream:#f6f3ed;--white:#fff;--ink:#17212b;--line:#dce3e7}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;color:var(--ink);background:#f5f7f8}a{text-decoration:none;color:inherit}.portal-page{background:linear-gradient(135deg,#071f35,#0b5d58);min-height:100vh;padding:48px 22px}.portal-shell{max-width:1180px;margin:auto}.portal-brand,.dash-brand{font-weight:900;letter-spacing:.08em;color:#fff}.portal-brand span{display:block;font-size:.65rem;letter-spacing:.2em;color:#d9e5e4}.portal-intro{max-width:800px;color:#fff;padding:72px 0 36px}.portal-intro h1,.dashboard h1{font-family:Georgia,serif;font-size:clamp(2.3rem,5vw,4.8rem);margin:.25em 0}.portal-intro p{line-height:1.7}.portal-kicker{font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--gold)}.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portal-card{background:#fff;padding:30px;min-height:190px;display:flex;flex-direction:column;justify-content:flex-end;border-top:5px solid var(--emerald);box-shadow:0 20px 50px #0018}.portal-card b{font-family:Georgia,serif;font-size:1.6rem;color:var(--navy);margin-bottom:12px}.portal-card span{line-height:1.6}.portal-admin{border-color:var(--gold)}.clock-panel{margin-top:24px;background:#fff;padding:28px;display:flex;justify-content:space-between;gap:24px;align-items:center}.clock-panel h2{margin:.2em 0;color:var(--navy)}.clock-actions{display:flex;gap:10px;flex-wrap:wrap}.portal-btn{display:inline-block;border:0;background:var(--emerald);color:#fff;padding:13px 19px;font-weight:800;cursor:pointer}.portal-btn-outline{background:var(--navy)}button:disabled{opacity:.55;cursor:not-allowed}.portal-note{color:#d9e5e4;font-size:.82rem;margin-top:20px}.dashboard{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.dashboard aside{background:var(--navy);color:#fff;padding:34px 24px}.dashboard aside>strong{display:block;color:var(--gold);font-size:.72rem;letter-spacing:.2em;margin:22px 0}.dashboard nav{display:grid;gap:5px}.dashboard nav a{padding:11px 12px;color:#d9e5e4}.dashboard nav a:hover{background:#ffffff12;color:#fff}.dashboard main{padding:38px;max-width:1450px;width:100%;margin:auto}.dashboard header{display:flex;justify-content:space-between;align-items:center;gap:20px}.dashboard h1{font-size:clamp(2rem,4vw,3.6rem);color:var(--navy)}.metric-grid,.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0}.metric-grid article,.dash-panel{background:#fff;padding:24px;border:1px solid var(--line);box-shadow:0 10px 28px #071f350c}.metric-grid b{display:block;font-size:2rem;color:var(--emerald);margin:10px 0}.metric-grid small{color:#697780}.dash-grid{grid-template-columns:repeat(2,1fr)}.dash-panel{margin:20px 0}.dash-panel h2{font-family:Georgia,serif;color:var(--navy);font-size:1.7rem}.dash-panel p{line-height:1.65}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;margin:20px 0}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line)}th{color:var(--navy)}.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-form label{display:grid;gap:8px;font-weight:700}.booking-form textarea{min-height:100px}.booking-form input,.booking-form select,.booking-form textarea{padding:12px;border:1px solid var(--line)}.status-track{display:flex;gap:7px;flex-wrap:wrap;margin-top:20px}.status-track span{background:var(--cream);padding:8px 10px;font-size:.8rem;font-weight:700}@media(max-width:900px){.portal-grid,.metric-grid{grid-template-columns:1fr 1fr}.dashboard{grid-template-columns:1fr}.dashboard aside nav{grid-template-columns:repeat(2,1fr)}.dashboard main{padding:24px}}@media(max-width:620px){.portal-grid,.metric-grid,.dash-grid,.booking-form{grid-template-columns:1fr}.clock-panel,.dashboard header{align-items:flex-start;flex-direction:column}.dashboard aside nav{grid-template-columns:1fr}}.login-shell{max-width:560px;margin:auto}.login-card{background:#fff;margin-top:60px;padding:36px;box-shadow:0 25px 70px #0018}.login-card h1{font-family:Georgia,serif;font-size:3rem;color:var(--navy);margin:.2em 0}.login-card form{display:grid;gap:16px}.login-card label{display:grid;gap:7px;font-weight:700}.login-card input{padding:13px;border:1px solid var(--line);font:inherit}.security-note{font-size:.82rem;color:#66747d;line-height:1.5}.form-error{background:#fff0f0;border-left:4px solid #a22;padding:12px;margin:15px 0}.form-success{background:#eef8f4;border-left:4px solid var(--emerald);padding:12px}.login-card .clock-actions form{display:block}
/* V5.3 role-based sign-in and operations dashboards */
.wide-login{max-width:680px}.role-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0}.role-tabs button{padding:14px;border:1px solid var(--line);background:var(--cream);font-weight:800;cursor:pointer}.role-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 26px}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.module-card{background:#fff;border:1px solid var(--line);padding:22px;min-height:170px}.module-card h2{font-family:Georgia,serif;color:var(--navy);margin-top:0}.module-card p{line-height:1.55;color:#52616b}.module-card span{font-size:.75rem;font-weight:800;color:var(--emerald);text-transform:uppercase;letter-spacing:.08em}@media(max-width:1100px){.module-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.role-tabs,.module-grid{grid-template-columns:1fr}}

/* V5.4 operational controls */
.inline-status{display:grid;grid-template-columns:minmax(140px,1fr) minmax(160px,1.4fr) auto;gap:7px;min-width:430px}.inline-status select,.inline-status input{padding:10px;border:1px solid var(--line);background:#fff}.inline-status .portal-btn{padding:10px 14px}@media(max-width:620px){.inline-status{grid-template-columns:1fr;min-width:240px}}

/* V5.5 registration and auth actions */
.auth-secondary{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-secondary .portal-btn{width:auto;text-decoration:none}.role-tabs a{text-decoration:none}

/* V5.6 account approval controls */
.dashboard nav a[aria-current="page"]{background:#ffffff16;color:#fff;border-left:3px solid var(--gold)}.count-pill{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:20px;background:var(--emerald);color:#fff;font:700 13px Arial,sans-serif}.role-badge{display:inline-block;padding:5px 9px;background:var(--cream);color:var(--navy);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.account-action{margin:0}.portal-btn-danger{background:#7a2830}

/* V5.7 employee job execution */
.portal-btn-small{padding:8px 11px;font-size:.78rem;white-space:nowrap}.job-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.job-summary article{background:#fff;border-top:3px solid var(--gold);padding:18px}.job-summary span,.job-summary b{display:block}.job-summary span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#687680;margin-bottom:8px}.job-summary b{color:var(--navy)}.job-status-actions{display:flex;gap:9px;flex-wrap:wrap}.panel-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.progress-track{height:10px;background:#e8ecee;margin:18px 0 24px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--emerald)}.checklist{display:grid;gap:9px}.check-item{display:flex;gap:13px;align-items:center;padding:13px;background:#f8faf9;border:1px solid var(--line)}.check-item button{width:36px;height:36px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:1.1rem;cursor:pointer}.check-item div{display:grid;gap:3px}.check-item span{font-size:.78rem;color:#687680}.check-item.done{opacity:.7}.check-item.done b{text-decoration:line-through}.check-item.done button{background:var(--emerald)}@media(max-width:900px){.job-summary{grid-template-columns:1fr 1fr}}@media(max-width:620px){.job-summary{grid-template-columns:1fr}.panel-heading{align-items:flex-start;flex-direction:column}}

/* V5.8 dispatch assignment and checklist management */
.stack-form{display:grid;gap:12px}.stack-form label{display:grid;gap:7px;font-weight:700}.stack-form input,.stack-form select{width:100%;padding:12px;border:1px solid var(--line);background:#fff}.assignment-list,.admin-checklist{display:grid;gap:8px;margin-top:18px}.assignment-list>div,.admin-checklist>div{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.assignment-list span,.admin-checklist span{display:grid;gap:4px}.assignment-list small,.admin-checklist small{color:#687680}.text-danger{border:0;background:transparent;color:#8a2730;font-weight:800;cursor:pointer}.admin-checklist .done{opacity:.65}.admin-checklist .done b{text-decoration:line-through}


/* V5.9 quality assurance workflow */
.qa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.qa-card{border:1px solid var(--line);padding:20px;background:#fbfcfc}.qa-card h3{font-family:Georgia,serif;color:var(--navy);font-size:1.45rem;margin:0}.qa-card textarea{width:100%;min-height:110px;padding:12px;border:1px solid var(--line);font:inherit;resize:vertical}.qa-card small{font-weight:400;color:#687680}.qa-actions{display:flex;gap:9px;flex-wrap:wrap}.qa-actions .portal-btn{flex:1 1 150px}@media(max-width:900px){.qa-grid{grid-template-columns:1fr}}

/* V6.0 service catalog */
.stack-form textarea{width:100%;min-height:105px;padding:12px;border:1px solid var(--line);font:inherit;resize:vertical}.stack-form small{font-weight:400;color:#687680}td small{color:#687680;line-height:1.4}

/* V6.1 job review, scheduling and lifecycle history */
.job-summary small{display:block;margin-top:6px;color:#687680;font-size:.78rem}.timeline{display:grid;gap:0}.timeline>div{position:relative;padding:12px 12px 14px 24px;border-left:2px solid var(--line)}.timeline>div:before{content:"";position:absolute;left:-6px;top:17px;width:10px;height:10px;border-radius:50%;background:var(--emerald)}.timeline b,.timeline span{display:block}.timeline span{font-size:.78rem;color:#687680;margin-top:4px}.timeline p{margin:7px 0 0}

/* V6.3 administrator operations suite */
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.filter-tabs a{padding:10px 14px;background:#fff;border:1px solid var(--line);font-weight:800}.filter-tabs a.active{background:var(--navy);color:#fff}.status-chip{display:inline-block;padding:5px 9px;font-size:.75rem;font-weight:800;text-transform:uppercase}.status-chip.active{background:#e8f5ef;color:var(--emerald)}.status-chip.inactive{background:#f5e8e9;color:#7a2830}.attention-row{background:#fff8e8}.time-edit{display:grid;grid-template-columns:170px 170px minmax(180px,1fr) auto;gap:6px;min-width:650px}.time-edit input{padding:9px;border:1px solid var(--line)}@media(max-width:700px){.time-edit{grid-template-columns:1fr;min-width:240px}}

/* V6.6 administrator attention center and operational controls */
.alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alert-grid a{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid var(--line);background:#fff}.alert-grid b{font-size:1.65rem;color:var(--navy)}.alert-grid span{font-size:.82rem;font-weight:800;color:#687680}.equipment-edit{display:grid;grid-template-columns:minmax(150px,1fr) 120px 145px auto auto;gap:7px;align-items:center;min-width:650px}.equipment-edit input,.equipment-edit select{padding:9px;border:1px solid var(--line)}.check-inline{display:flex!important;flex-direction:row!important;gap:5px!important;align-items:center;white-space:nowrap}@media(max-width:850px){.alert-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.alert-grid{grid-template-columns:1fr}.equipment-edit{grid-template-columns:1fr;min-width:260px}}
