/* 4.4 — forest glass, pale mint and sky. One palette before and after sign-in. */
:root{--green:#21695d;--dark:#163f43;--neon:#c5eadb;--muted:#647f7e;--line:#d9e5e0;color:#244647;background:#eaf1ee}
body{background:radial-gradient(ellipse at 95% 0,#dfeaf1 0,transparent 55%),#edf3ef;color:#244647}
.primary,.light{background:linear-gradient(110deg,#c9eadb,#bedfe5);border-color:#b4d7ca;color:#164f48;box-shadow:0 4px 15px #1f665810}
.primary:hover,.light:hover{background:linear-gradient(110deg,#def3e8,#d7eef2);filter:none}
.secondary{background:#ffffffe6;border-color:#d4e1dc;color:#345f5b}.link{color:#367765}
input,select,textarea{background:#ffffffed;border-color:#d2e0da;color:#214a45}input:focus,select:focus,textarea:focus{border-color:#75a99b;box-shadow:0 0 0 3px #7cae9b18}
.eyebrow{color:#5e9081}.muted{color:#68817d}.panel,.category-overview,.category-overview.generator{background:linear-gradient(130deg,#fffffff5,#f8fcfbe6);border-color:#dce7e0;box-shadow:0 9px 26px #2d5d4805;backdrop-filter:blur(12px)}
.shell{background:radial-gradient(ellipse at 5% 0,#cbe3d742,transparent 52%),radial-gradient(ellipse at 95% 10%,#d3e4ed90,transparent 50%),#edf3ef;animation:workspace-enter .45s ease-out}
.shell aside{background:linear-gradient(150deg,#1d4945f2,#163e43f5 58%,#244e54f2);border-right:1px solid #ffffff24;color:#e9f4ef;box-shadow:8px 0 35px #142f3111;backdrop-filter:blur(25px)}
.shell aside .brand{color:#eef8f3}.shell aside .brand b{color:#c8eadc}.shell aside .brand small{color:#8dada3}.brandmark{background:linear-gradient(135deg,#c9ebd8,#c0dce6);color:#23584c;box-shadow:0 3px 17px #0002}
.shell aside .hospital,.shell aside .hospital small{color:#b7cfc4}.shell aside .nav-label{color:#819f98}.shell aside nav button{color:#adc9bf}.shell aside nav button:hover{background:#ffffff0b;color:#effaf5}.shell aside nav button.active{background:linear-gradient(110deg,#d0eadbcc,#bddde3d9);color:#1d514b;box-shadow:0 4px 20px #102b2920,inset 0 0 0 1px #f2fff666}
.shell aside .side-tip{background:#ffffff06;border-color:#ffffff16;color:#c4ded3}.shell aside .side-tip p{color:#8cad9f}.shell aside .neon{color:#b5e5c7}.shell aside .profile{color:#dbece1;border-color:#ffffff19}.shell aside .profile small{color:#8dab9e}.shell aside .avatar{background:#ffffff12;color:#d4eede;border-color:#ffffff22}.shell aside .logout{color:#b1d4c2}
.main header{background:#f1f6f3dc;border-color:#d7e4dc;color:#375c55;backdrop-filter:blur(18px)}.live-dot{background:#709e89;box-shadow:0 0 7px #709e8930}.breadcrumb{color:#74958a}.scan-hero{background:linear-gradient(125deg,#254f47,#183f4c)}
.readiness-track i{background:linear-gradient(90deg,#6baf92,#a7d5bf)}.generator .readiness-track i{background:linear-gradient(90deg,#6f9cac,#b3d5dd)}.category-icon{background:#e1efe6;color:#477d68}.generator .category-icon{background:#e3eef1;color:#547f8d}.category-readiness b{color:#4b8970}.generator .category-readiness b{color:#5c8a97}.category-stats strong{color:#285b52}.category-number.ok strong{color:#4f9373}.category-number.due strong{color:#a28543}.category-number.fail strong{color:#bb6570}
.scan-frame,.choice-art{background:linear-gradient(135deg,#e1f1e4,#dcecf0);color:#4e8874;border-color:#a4c9b7;box-shadow:none}.generator-art{background:#e1ecf0;color:#668694}.inspection-choice{background:linear-gradient(130deg,#fffffff2,#f0f6f1);border-color:#d2e2d6;box-shadow:0 10px 22px #426b5306}.inspection-choice:hover{background:#f7fcf8;box-shadow:0 12px 25px #426b5310}.inspection-choice strong{color:#315f4f}.inspection-choice .choice-cta{color:#4a8068;border-color:#d9e6dc}
.table-wrap th{background:#edf4ef;color:#688575}.table-wrap td{border-color:#edf3ee}.table-wrap td b{color:#3b6857}.notice{background:#eff6f1;border-color:#d8e9dc;color:#527263}.auth-error{background:#fff2ed;border-color:#ebd2c9;color:#985d48}.checklist fieldset{background:#f6faf7;border-color:#dbe7dd}.radio:has(input:checked){background:#e1efe5;border-color:#93b9a4}.radio input{accent-color:#51876a}
.pending-screen{background:radial-gradient(at 10% 0,#d7e7dc,transparent 60%),radial-gradient(at 100% 100%,#d7e5ee,transparent 60%),#edf3ef}footer,.footnote{color:#7b9286}footer{align-items:center;gap:18px}.developer-credit{font-size:10px;line-height:1.8;max-width:100%;white-space:normal}.developer-credit>span{display:inline!important;color:inherit;opacity:.7;margin-right:5px}footer>span{white-space:nowrap;font-size:9px}#toast{background:#214b40}
/* Full-bleed entry scene. The photograph is not blurred or enlarged at rest. */
.login{display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;position:relative;isolation:isolate;min-height:100vh;min-height:100dvh;width:100%;max-width:none;margin:0;padding:32px 5vw 22px;gap:18px;background:#193c3f;color:#f3faf6;overflow:hidden;border-radius:0}
.login-scene{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;border-radius:0;margin:0;padding:0;z-index:-2;background:#1b3e42;overflow:hidden;isolation:auto;box-shadow:none}
.login .scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%;opacity:1;filter:none;animation:none;transform:scale(1);transform-origin:54% 58%;transition:none;will-change:transform}
.login .scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,#092b345e 0,#112e3110 55%,#0c2d3335),linear-gradient(0deg,#06292bd9 0,transparent 50%,#132b3c38 100%);pointer-events:none;z-index:1}
.login-masthead{display:flex;align-items:center;gap:12px;position:relative;z-index:2;font-size:14px;letter-spacing:1.8px;font-weight:400;text-shadow:0 1px 12px #102c3545}.masthead-mark{width:37px;height:37px;display:grid;place-items:center;background:#e9fff210;border:1px solid #effff04f;border-radius:11px;color:#d1efe0;font-size:23px;backdrop-filter:blur(8px)}.login-masthead b{font-weight:500;color:#d2eadb}.login-masthead small{display:block;font-size:7px;letter-spacing:2px;color:#d7e7de}.masthead-rule{height:27px;width:1px;background:#eaf9ef42;margin:0 5px}.masthead-caption{font-size:8px;letter-spacing:1.8px;color:#cbded5}
.login-layout{display:grid;grid-template-columns:minmax(0,1fr) 410px;align-items:center;gap:7vw;width:100%;max-width:1400px;flex:1;margin:auto;padding:28px 0;position:relative;z-index:2}
.login-story{align-self:end;padding:0 0 60px;max-width:630px;transition:opacity .65s,transform .9s;text-shadow:0 2px 25px #122d3340}.story-kicker{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:2.5px;color:#dbe9df}.story-kicker i{height:6px;width:6px;border-radius:50%;background:#c4e8ce;box-shadow:0 0 12px #d7f8c345}.login-story h1{font-size:clamp(40px,4.1vw,67px);font-weight:400;line-height:1.45;color:#f7fff9;margin:20px 0 18px;letter-spacing:-1px}.login-story h1>span{color:#baddbf}.login-story p{font-size:15px;line-height:1.9;color:#e1ede6;font-weight:300;margin:0}.story-line{height:1px;width:65px;background:#d2ecdd88;margin:25px 0 17px}.login-story>small{font-size:8px;letter-spacing:2.2px;color:#cadfd6}
.login-panel{position:relative;overflow:hidden;display:block;width:100%;padding:32px 36px 26px;margin:0;border:1px solid #e6fff051;border-radius:26px;background:linear-gradient(140deg,#f4fff51f,#11342f70);backdrop-filter:blur(22px) saturate(115%);-webkit-backdrop-filter:blur(22px) saturate(115%);box-shadow:0 25px 70px #0d2a3429,inset 0 1px 0 #fff5;color:#f0faf3;transition:transform .9s}
.glass-highlight{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(130deg,#ffffff14,transparent 35%,transparent 70%,#e3fff908)}
.login .login-brand{position:relative;text-align:center;margin:0 0 25px}.login .hospital-logo{width:76px;height:76px;margin:0 auto 10px;filter:drop-shadow(0 5px 16px #082d371e)}.login .login-brand .login-hospital{color:#effaf4;font-size:17px;margin:0;line-height:1.7}.login .login-product{color:#bed9ca;letter-spacing:2.8px;font-size:8px;margin:10px 0 14px}.login .login-brand h2{color:#f8fff9;font-size:30px;font-weight:400;margin:0 0 7px}.login .login-brand .muted{color:#c6dbd0;font-size:11px}
.login #login-form{display:block;position:relative}.login #login-form label{display:block;font-size:12px;color:#e6f1e9;font-weight:300;margin:0 0 16px}.login #login-form input{display:block;width:100%;margin-top:7px;background:#ebffed12;border:1px solid #d8f2df4a;border-radius:11px;color:#f5fff6;font-size:14px;padding:13px 14px;min-height:48px;box-shadow:inset 0 1px 3px #0b302809}.login #login-form input::placeholder{color:#bfd4c480;font-weight:300}.login #login-form input:focus{background:#f7fff519;border-color:#d0ebd8;box-shadow:0 0 0 3px #d7f5e114;outline:none}.login #login-form input:autofill{box-shadow:0 0 0 1000px #335b52 inset;-webkit-text-fill-color:#eff9ef}
.login .login-submit{position:relative;display:flex;justify-content:center;align-items:center;gap:13px;min-height:49px;padding:12px 18px;margin:23px 0 0;background:linear-gradient(110deg,#d2eedb,#bcdfe6);border:1px solid #f0fff050;box-shadow:0 4px 18px #072b3018;color:#1c5047;border-radius:11px;font-size:14px;font-weight:400}.login .login-submit:hover{background:linear-gradient(110deg,#e3f5e8,#cce8ee)}.login-arrow{position:absolute;right:18px;font-size:21px;font-weight:300;line-height:1}.login-spinner{display:none;width:16px;height:16px;border:1.5px solid #1f584033;border-top-color:#1f5840;border-radius:50%;animation:login-spin .7s linear infinite}.login-panel button:disabled{opacity:.58;cursor:default}.login-panel input:disabled{opacity:.85}.login .login-signup{display:flex;justify-content:center;align-items:center;gap:7px;font-size:11px;margin-top:7px}.login-signup>span{color:#c9dbcd}.login .login-signup .link{color:#f0fff2;min-height:32px;padding:5px 4px;text-decoration:underline;text-underline-offset:4px;font-weight:400;font-size:11px}.login-access-note{display:block;text-align:center;color:#a9c7b7;font-size:9px;line-height:1.7;margin-top:9px}.login #login-progress{min-height:16px;line-height:1.5;font-size:10px;text-align:center;color:#d0e8d8;margin:10px 0 0}
.login .notice{font-size:11px;padding:11px 13px;margin:0 0 17px;border-radius:10px}.login .setup-notice{background:#b4d6df13;border-color:#c7e7e333;color:#d3e7e0}.login .auth-error{background:#633c3299;border-color:#ffd4bc66;color:#ffe9d8;position:relative}.login-credit{position:relative;z-index:2;text-align:center;color:#d0e3d7;font-size:10px;line-height:1.9;padding-top:7px;text-shadow:0 1px 9px #052e3044}
.login.is-authenticating .login-story{opacity:.25;transform:translateY(10px)}.login.is-authenticating .login-panel{transform:translateY(3px)}.login.is-authenticating .login-arrow{display:none}.login.is-authenticating .login-spinner{display:block}.login.is-authenticating .login-submit{opacity:.85}.login.image-unavailable .login-scene{background:radial-gradient(at 50% 15%,#48737c,transparent 75%),#163d35}.image-unavailable .scene-image{display:none}
/* Small coloured heads, generous transparent targets, one short status label. */
.map-pin{width:30px!important;height:30px!important;border-radius:50%!important;outline-offset:1px}.map-pin .pin-body{inset:4px;background:var(--kind);border:1.3px solid #fff;border-radius:50%;box-shadow:0 2px 5px #183d4538;transition:box-shadow .15s,transform .15s}.map-pin .equipment-icon{width:14px;height:14px;stroke-width:1.7}.map-pin.kind-co2 b{font-size:8px;letter-spacing:-.2px;line-height:1}.map-pin.generator-pin .pin-body{border-radius:7px}.map-pin .pin-status{right:2px;bottom:2px;width:7px;height:7px;border:1px solid #fff;font-size:0;line-height:0;box-shadow:0 1px 3px #183d4525}.map-pin:hover .pin-body,.map-pin:focus-visible .pin-body{box-shadow:0 2px 7px #1239434f,0 0 0 2px #ffffffcc;transform:translateY(-1px)}.pin-status.due{background:#d9b65e}.pin-status.fail{background:#c76770}.pin-status.ok{background:#64a783}
.equipment-popup{max-width:160px!important}.equipment-popup .maplibregl-popup-content{padding:8px 12px;border-radius:10px;border:1px solid #d8e4df;background:#fbfefcea;backdrop-filter:blur(9px);box-shadow:0 5px 16px #26453724;max-height:none;overflow:visible}.status-tooltip{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;line-height:1.5;font-weight:400;color:#3e6e57}.status-tooltip i{display:block;width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.status-tooltip.due{color:#97712a}.status-tooltip.fail{color:#ab4d58}.status-tooltip.retired{color:#72807a}.equipment-popup .maplibregl-popup-tip{border-top-color:#fbfefc}
@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes workspace-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1800px){.login-layout{grid-template-columns:minmax(0,1fr) 445px}.login-panel{padding:38px 43px}.login-story h1{font-size:70px}}
@media(max-width:1100px){.login{padding:25px 4vw 19px}.login-layout{grid-template-columns:minmax(0,1fr) 385px;gap:6vw}.login-panel{padding:28px 30px}.login-story h1{font-size:40px}.login-story{padding-bottom:35px}.masthead-caption{display:none}.masthead-rule{display:none}}
@media(max-width:760px){.login{padding:19px 20px 18px;gap:12px;min-height:100dvh}.login-masthead{font-size:12px;gap:10px}.masthead-mark{width:31px;height:31px;border-radius:9px;font-size:20px}.login-masthead small{font-size:6px;letter-spacing:1.8px}.login-layout{display:block;flex:none;max-width:420px;padding:18px 0 8px;margin:auto;width:100%}.login-story{display:none}.login-panel{border-radius:22px;padding:25px 26px 22px;background:linear-gradient(140deg,#f4fff520,#173a327d)}.login .hospital-logo{width:67px;height:67px}.login .login-brand{margin-bottom:22px}.login .login-brand h2{font-size:27px}.login .login-brand .login-hospital{font-size:17px}.login .login-product{margin:8px 0 12px}.login #login-form input{font-size:16px;min-height:47px;padding:12px}.login #login-form label{margin-bottom:15px;font-size:11px}.login .login-submit{margin-top:22px;min-height:47px}.login-credit{font-size:8px;max-width:340px;margin:0 auto;line-height:1.9}.login .scene-image{object-position:54% 52%;transform-origin:54% 60%}.login .scene-shade{background:linear-gradient(0deg,#06292bd9,transparent 52%,#12344033)}.shell aside{background:linear-gradient(115deg,#244e47ed,#23494eea);border:1px solid #ffffff2c;box-shadow:0 -4px 22px #152e2b24}.shell aside nav button{color:#a6c6b8}.shell aside nav button.active{background:#cee7d6e8;color:#285d47}.shell aside nav button[data-page=scan]{background:#c9e4d7;color:#2a654d;box-shadow:none}.table-wrap tr{background:#fafdfa;border-color:#dbe6db}footer{padding-bottom:20px}.developer-credit{font-size:9px}footer>span{font-size:8px;display:block;margin-top:5px}.map-pin{width:30px!important;height:30px!important}.equipment-popup .maplibregl-popup-content{padding:8px 11px}.status-tooltip{font-size:12px}}
@media(max-width:380px){.login{padding-left:15px;padding-right:15px}.login-panel{padding:22px}.login-credit{font-size:8px}.login .hospital-logo{width:61px;height:61px}.login .login-brand{margin-bottom:19px}}
@media(max-height:750px) and (min-width:761px){.login{padding-top:20px;padding-bottom:15px}.login-layout{padding:13px 0}.login-panel{padding-top:23px;padding-bottom:20px}.login .hospital-logo{width:60px;height:60px}.login .login-brand{margin-bottom:18px}.login .login-product{margin:7px 0 10px}.login .login-brand h2{font-size:26px}.login #login-form label{margin-bottom:13px}.login .login-submit{margin-top:17px}.login-story{padding-bottom:30px}}
@media(prefers-reduced-motion:reduce){.login .scene-image,.login.is-authenticating .scene-image{transform:none;transition:none}.login.is-authenticating .login-panel,.login.is-authenticating .login-story{transform:none;opacity:1}.shell{animation:none}.login-spinner{animation:none}}
@media print{.developer-credit{color:#536b5b}}
/* 4.5 — hospital identity, credit inside glass and a visible entry sequence. */
.brand-hospital-logo{display:block;flex:none;width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 2px 5px #082a3b22)}
.masthead-logo{display:block;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 2px 8px #082a3b25)}
.header-identity{display:flex;align-items:center;gap:9px}.header-hospital-logo{display:none;flex:none;width:31px;height:31px;object-fit:contain}
.login-panel .login-credit{position:relative;margin:18px 0 0;padding:14px 0 0;border-top:1px solid #deefe021;width:100%;max-width:none;text-align:center;color:#d4e4d8;font-size:10px;line-height:1.9;text-shadow:none}
.login-panel{transition:opacity .26s ease,transform .45s ease}
.login.is-authenticating .login-panel{opacity:0;transform:translateY(12px) scale(.985);pointer-events:none}
.login.is-authenticating .login-story,.login.is-authenticating .login-masthead{opacity:0;transition:opacity .3s ease}
.login-transition-status{position:absolute;z-index:4;bottom:32px;left:50%;transform:translateX(-50%) translateY(5px);display:flex;align-items:center;justify-content:center;gap:12px;max-width:calc(100% - 35px);padding:13px 22px;border:1px solid #d6efdf3b;border-radius:40px;background:#1b4342de;backdrop-filter:blur(14px);color:#effbf3;font-size:13px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}
.login.is-authenticating .login-transition-status{opacity:1;transform:translateX(-50%) translateY(0)}
.login-transition-status .login-spinner{display:block;border-color:#ddf4e439;border-top-color:#ddf4e4}
@media(max-width:760px){.masthead-logo{width:35px;height:35px}.header-hospital-logo{display:block}.login-panel .login-credit{font-size:9px;line-height:1.9;padding-top:13px;margin-top:16px}.login-transition-status{bottom:25px;font-size:12px}.login-layout{padding-bottom:18px}}
@media(prefers-reduced-motion:reduce){.login.is-authenticating .login-panel,.login.is-authenticating .login-story{transform:none;opacity:0}.login-transition-status{transition:none}.login .scene-image{transition:none}}
