:root{font-family:Arial,sans-serif;color:#16333f;background:#eef3f3;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:#006e79;text-underline-offset:3px}header{background:#173842;color:white;padding:20px max(20px,calc((100vw - 1200px)/2));display:flex;justify-content:space-between;gap:16px;align-items:center}header a{color:white;text-decoration:none;font-weight:bold;letter-spacing:.05em}header a span{display:block;font-weight:normal;font-size:13px;letter-spacing:0}header form{display:flex;align-items:center;gap:12px}main{max-width:1240px;margin:auto;padding:24px}h1{font-size:32px;line-height:1.2;margin:24px 0 16px}h2{font-size:21px;line-height:1.3}nav,.actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;align-items:center}nav a{padding:10px 16px;border-radius:8px;text-decoration:none;background:white}nav .current{background:#007e85;color:white}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:16px}.card,section{background:white;border:1px solid #d5e2e3;border-radius:14px;padding:24px;margin:16px 0;min-width:0}.cards section,.cards .card{margin:0}.card{text-decoration:none;color:inherit}.card:hover{border-color:#007e85}.number{display:block;font-size:42px;color:#007e85}.eyebrow{font-size:12px;letter-spacing:.16em;font-weight:bold;color:#55747c}form{margin:12px 0}label{display:flex;flex-direction:column;gap:6px;margin:12px 0;font-weight:600}input,textarea,select{font:inherit;width:100%;min-width:0;padding:12px;border:1px solid #98b1b8;border-radius:7px;background:white;color:#16333f}input[type=file]{max-width:100%}textarea{resize:vertical}button,.button{display:inline-block;background:#007e85;color:white;border:0;border-radius:8px;padding:12px 18px;font:inherit;font-weight:bold;cursor:pointer;text-decoration:none;margin:6px 4px 6px 0;min-height:44px}button:focus-visible,a:focus-visible{outline:3px solid #e1a236;outline-offset:3px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.row{display:block;padding:16px 0;border-bottom:1px solid #d5e2e3;text-decoration:none;color:inherit;overflow-wrap:anywhere}.row span{float:right;font-size:14px;color:#52717b}.row p{margin:5px 0}.error{background:#fee8e7;color:#8b1915;border:1px solid #ddacaa;border-radius:8px;padding:16px}.notice{background:#fff2ce;padding:16px;border-radius:8px}.badge{display:inline-block;background:#daeeeb;padding:6px 14px;border-radius:20px}.login{max-width:520px;margin:8vh auto}.pre{white-space:pre-wrap}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#f2f5f5;padding:12px}.break{overflow-wrap:anywhere}.photos{display:flex;flex-wrap:wrap;gap:12px}.photos img{max-width:250px;max-height:220px;object-fit:contain}footer{text-align:center;padding:24px;color:#55747c;font-size:13px}.room-picker{width:100%;max-height:320px;background:#eef5f5;border:1px solid #aac0c5;touch-action:manipulation}.room-picker polygon{fill:#c8e5e4;stroke:#007c85;stroke-width:.5}.room-picker circle{fill:#ef742e;pointer-events:none}.sign{max-width:600px;margin:auto;text-align:center}.sign svg{max-width:260px;width:100%}.search{display:flex;gap:12px;align-items:end}.search label{flex:1}details{padding:10px 0;border-bottom:1px solid #ddd}summary{cursor:pointer}@media(max-width:650px){main{padding:14px}header{padding:16px;flex-wrap:wrap}.fields{grid-template-columns:1fr}h1{font-size:27px}section,.card{padding:18px}.row span{float:none;display:block}.search{display:block}.photos img{max-width:100%}}@media print{header,nav,footer,button{display:none}body{background:white}.sign{border:0;max-width:100%}main{padding:0}}
.room-map{margin:1rem 0}.room-map svg{width:100%;height:320px;background:#e7eff3;touch-action:none;border-radius:12px}.room-highlight{fill:#0ba7b722;stroke:#087d91;stroke-width:1.2}.room-map circle{fill:#ed642c;stroke:white;stroke-width:.7}.room-map [hidden]{display:none}
/* Outlook-inspired application shell */
:root{font-family:"Segoe UI",Arial,sans-serif;color:#242424;background:#fafafa;--nav-width:244px;--header-height:64px}a{color:#0f6cbd}header{height:var(--header-height);padding:0 24px;gap:16px;background:#0f6cbd;position:sticky;top:0;z-index:40;box-shadow:0 1px 4px #0002}header .brand{font-size:16px;letter-spacing:.02em;margin-right:auto}header .brand span{font-size:11px;opacity:.85}header form{margin:0;font-size:13px;white-space:nowrap}header form button{background:#ffffff1f;border:1px solid #ffffff60;padding:6px 12px;font-size:13px;min-height:34px;margin:0}button,.button{background:#0f6cbd;border-radius:5px;font-size:14px;font-weight:600}button:hover,.button:hover{background:#115ea3}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #f0b900;outline-offset:3px}.menu-toggle{display:grid;place-items:center;background:transparent;width:40px;height:40px;min-height:40px;padding:8px;margin:0;border-radius:4px;flex-shrink:0}.menu-toggle:hover{background:#ffffff26}.menu-toggle svg,.app-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}main{max-width:1440px;padding:32px 40px}.signed-in main{margin-left:var(--nav-width);max-width:none;min-height:calc(100vh - 134px)}.app-nav{position:fixed;left:0;top:var(--header-height);bottom:0;width:var(--nav-width);display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:4px;padding:24px 12px 16px;margin:0;background:#f0f2f5;border-right:1px solid #e0e3e8;overflow-y:auto;z-index:30}.app-nav a{display:flex;align-items:center;gap:14px;background:transparent;color:#424242;padding:11px 16px;min-height:46px;border-radius:5px;font-size:14px;border-left:3px solid transparent}.app-nav a:hover{background:#e4e8ed}.app-nav a.current{background:#e0ecf9;color:#0f548c;border-left-color:#0f6cbd;font-weight:600}.nav-heading{font-size:10px;letter-spacing:.13em;color:#68717c;padding:0 19px 22px}.nav-heading span{display:block;font-size:17px;font-weight:600;letter-spacing:0;color:#242424;margin-top:7px}.nav-bottom{margin-top:auto;padding:32px 19px 0;font-size:10px;letter-spacing:.09em;color:#697586}.nav-bottom span{display:block;margin-top:4px;letter-spacing:0}.signed-in footer{margin-left:var(--nav-width);padding:20px 32px;text-align:left;border-top:1px solid #eee;background:#fafafa;color:#68717c;font-size:11px}.nav-collapsed .app-nav{display:none}.nav-collapsed main,.nav-collapsed footer{margin-left:0}.nav-backdrop{display:none}h1{font-size:28px;font-weight:600;letter-spacing:-.02em;margin:12px 0 24px}h2{font-size:18px;font-weight:600}.eyebrow{font-size:10px;letter-spacing:.13em;color:#68717c;margin-top:0}.cards{gap:18px;grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}.card,section{border-radius:8px;border:1px solid #e1e4e8;box-shadow:0 2px 5px #1f293705;padding:24px}.card:hover{border-color:#80b4df;box-shadow:0 4px 14px #0f6cbd10}.number{color:#0f6cbd;font-size:38px;font-weight:600;line-height:1.3;margin-top:12px}.cards section>span{color:#61666d;font-size:13px}.notice{background:#fff8df;border:1px solid #f4e5b3;color:#675723;font-size:13px;padding:12px 16px;border-radius:5px;margin:24px 0}.row{border-color:#eef0f3;padding:18px 4px;font-size:14px}.row:hover{background:#f5f9fd}.row span{color:#0f548c}.row p{color:#61666d;font-size:13px;margin-top:8px}input,textarea,select{border-radius:4px;border-color:#b8bdc5;font-size:14px;padding:10px}label{font-size:13px}input:focus,textarea:focus,select:focus{outline:2px solid #0f6cbd;outline-offset:1px}.badge{background:#e0ecf9;color:#0f548c}.sign{margin:24px auto}.login{box-shadow:0 12px 40px #1f293710}.search{max-width:760px}.signed-out header{position:relative}.signed-out main{max-width:1240px}
@media(min-width:1600px){.signed-in main{padding:40px 56px}}
@media(max-width:760px){header{padding:0 12px;gap:10px;flex-wrap:nowrap;height:60px}:root{--header-height:60px}header .brand{font-size:13px}header form>span{display:none}header form button{font-size:12px;padding:6px 9px}.signed-in main,.signed-in footer{margin-left:0}.signed-in main{padding:24px 16px}.app-nav{width:min(280px,85vw);box-shadow:8px 0 24px #0002}.nav-backdrop:not([hidden]){display:block;position:fixed;inset:var(--header-height) 0 0 0;background:#0006;border:0;border-radius:0;margin:0;padding:0;z-index:25;width:100%;height:calc(100vh - var(--header-height));cursor:default}.nav-collapsed .nav-backdrop{display:none}.nav-open{overflow:hidden}h1{font-size:25px}.cards{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px}.card,section{padding:18px}.number{font-size:32px}.signed-in footer{padding:18px 16px}.sign{margin:8px auto}.sign button{width:100%;margin-right:0}}
@media print{header,.app-nav,.nav-backdrop,.no-print,[data-insert-status]{display:none!important}.signed-in main,.signed-in footer{margin-left:0}main{padding:0!important}.card,section{box-shadow:none}.sign{margin:0}}
.floor-group{border:0;padding:0;margin:24px 0 32px}.floor-group>summary{display:flex;align-items:center;gap:16px;list-style:none;padding:16px 18px;background:#edf3fa;border:1px solid #dbe5f0;border-radius:7px;color:#243c52}.floor-group>summary::-webkit-details-marker{display:none}.floor-group>summary::before{content:"›";font-size:26px;line-height:1;transition:transform .15s}.floor-group[open]>summary::before{transform:rotate(90deg)}.floor-group>summary:focus-visible{outline:3px solid #0f6cbd;outline-offset:3px}.floor-heading{display:flex;align-items:center;gap:14px;font-size:18px;font-weight:600}.floor-code{display:inline-block;background:white;border:1px solid #cfdeec;border-radius:5px;padding:4px 10px;font-size:14px;min-width:45px;text-align:center}.floor-count{margin-left:auto;font-size:13px;color:#526579;white-space:nowrap}.floor-group>.cards{margin-top:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.floor-group .card h2{margin:0 0 12px;font-size:16px}.floor-group .card p{font-size:12px;color:#68717c;margin-bottom:0}@media(max-width:760px){.floor-heading{font-size:15px;gap:8px}.floor-group>summary{padding:12px 10px;gap:8px}.floor-group>.cards{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}.floor-count{font-size:12px}}
/* Status remains understandable without colour through icons and text. */
.status-badge{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:20px;font-size:13px;font-weight:600;line-height:1.4;background:#edf0f4;color:#374151;white-space:nowrap;border:1px solid transparent}
.status-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:17px;font-weight:700}
.status-new{background:#e6f0ff;color:#124c91;border-color:#bdd6f6}.status-in_progress{background:#fff2cf;color:#795300;border-color:#e8cf83}.status-external{background:#eee6fa;color:#60388b;border-color:#d8c2ee}.status-review{background:#dff3f4;color:#125b64;border-color:#add7dc}.status-closed,.status-done{background:#e4f3e8;color:#225e35;border-color:#b5dabf}.status-overdue{background:#fde7e9;color:#a02232;border-color:#efb8c0}.status-open{background:#edf0f4;color:#465365;border-color:#d2d9e2}
.task-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row>.status-badge{justify-self:end}.card .break{overflow-wrap:anywhere}
@media(max-width:760px){.row>.status-badge{justify-self:start}.task-meta{gap:6px}}

.maintenance-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:18px}.calendar-day{min-height:100px;border:1px solid #dae1e8;border-radius:5px;padding:7px;background:white;min-width:0}.calendar-day.outside{background:#f2f4f6;color:#82909e}.calendar-day.today{border:2px solid #0878c9}.calendar-event{display:block;border-left:3px solid #0b78c8;background:#edf5fd;margin-top:7px;padding:5px;overflow-wrap:anywhere;font-size:12px}.calendar-event strong,.calendar-event span{display:block;margin-top:3px}.calendar-weekday{text-align:center}.calendar-event .status-badge{display:inline-flex;font-size:11px;padding:2px 4px}@media(max-width:850px){.maintenance-calendar{grid-template-columns:1fr}.calendar-weekday,.calendar-day.outside{display:none}.calendar-day{min-height:35px}.calendar-day:not(:has(.calendar-event)){display:none}}
.upload-drop{padding:24px;border:2px dashed #88afcf;border-radius:12px;background:#eff7fd;text-align:center;cursor:pointer;margin:12px 0}.upload-drop.drag-over{background:#d3eaff;border-color:#066bb8}.upload-preview img{max-width:100%;max-height:240px;border-radius:10px}progress{width:100%;height:20px}
