:root{--ink:#121734;--muted:#68758a;--line:#e3e8ef;--accent:#FF4E45;--accent-soft:#FFF0EF;--surface:#fff;--canvas:#f5f7fb}
body{background:var(--canvas);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;line-height:1.5}
body>aside{width:248px;padding:28px 16px 16px;background:#1E2850;border:0;color:#dce4ef;overflow:hidden;box-shadow:4px 0 24px #1E285008}
.logo{color:#FF4E45;font-size:32px}.logo span{color:#fff}.sub{color:#9baac0;letter-spacing:1.7px;margin-bottom:24px}
body>aside nav{flex:1;min-height:0;max-height:none;overflow-y:auto;gap:4px;padding-right:3px;scrollbar-width:thin;scrollbar-color:#455268 transparent}
nav button{color:#b8c5d8;border-radius:9px;padding:11px 13px;font-size:13px;line-height:1.4;transition:background .15s,color .15s}
nav button:hover{background:#293462;color:#fff;filter:none}nav button.active{background:#fff;color:#1E2850;box-shadow:0 2px 8px #0001}
#account{margin:18px 0 0;padding:16px 12px 9px;border-color:#354256;flex-shrink:0}#account small{color:#aebbd0}#account button{background:#293462;border-color:#44516a;color:#dce4ef}.local{padding:10px 12px 0;color:#aebbd0;flex-shrink:0}.local small{color:#8797af;margin-bottom:0}
body>main{margin-left:248px;padding:32px clamp(20px,3vw,48px);max-width:1800px}header{margin-bottom:26px;gap:20px}h1{font-size:29px;font-weight:650;letter-spacing:-.8px}h2{font-size:18px;font-weight:650;letter-spacing:-.2px}.eyebrow{color:#7c899c;letter-spacing:1.3px;font-weight:600}#saved{background:#eaf3ef;color:#38624f;padding:7px 12px;border-radius:20px;max-width:300px}
.card,.stat{border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 3px 14px #24324b04}.stat{position:relative;overflow:hidden}.stat:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:#FF4E4566}.stat strong{font-size:32px;letter-spacing:-1px}.cards{gap:20px}.project-card{border-top:1px solid var(--line)}.project-card:hover{border-color:#FFB8B3;box-shadow:0 8px 24px #24324b0a}.muted{color:var(--muted)}
button,a.button{border-radius:9px;padding:10px 15px;font-weight:600;font-size:13px;line-height:1.4;transition:background .15s,box-shadow .15s;flex-shrink:0}button:hover,a.button:hover{filter:none;background:#f4f6fa;border-color:#c8d2df}.primary{background:var(--accent)!important;border-color:var(--accent)!important}.primary:hover{background:#E6443C!important;box-shadow:0 3px 10px #FF4E4520}button:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{border-color:#dbe2ec;border-radius:8px;padding:11px 12px;min-height:42px;line-height:1.4}input:focus,select:focus,textarea:focus{outline:2px solid #FF4E4526;border-color:#FF4E45;outline-offset:1px}button:focus-visible,a:focus-visible{outline:2px solid #FF4E45;outline-offset:3px}input[type=checkbox]{min-height:0}.toolbar{gap:14px;margin:20px 0}.toolbar select{max-width:340px}.row{flex-wrap:wrap}.row>div{min-width:0}.row h2{overflow-wrap:anywhere}
th{background:#f6f8fb;color:#7b879a;font-size:10px;font-weight:650;letter-spacing:.7px}th,td{padding:16px 14px;vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f9fbfd}td{font-size:13px;line-height:1.6}td a{font-weight:600}td select{min-height:36px;padding:7px 10px}td button{padding:7px 11px}table .overdue,tbody tr.overdue{background:#fff5f6}.badge{border-radius:6px;background:#f8edd9;color:#8b692e;font-weight:600}.tag{background:#eef2f7;color:#617088;border-radius:6px}.details{gap:20px}.details strong{overflow-wrap:anywhere}
.notice{border-radius:10px;border-color:#eadfbd;background:#fffdf6}.progress{height:6px;background:#eef1f6}.progress b{background:var(--accent)}dialog{padding:28px;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 90px #15213730}dialog::backdrop{background:#17223580;backdrop-filter:blur(3px)}.dialog-head h2{margin:0}.dialog-actions{border-top:1px solid var(--line);padding-top:20px}.login-card{margin-top:8vh;padding:32px;box-shadow:0 12px 40px #24324b08}.login-card .primary{width:100%}.empty{border-radius:12px;line-height:1.7}
.door-module-head{border-radius:14px;padding:18px 22px;margin-bottom:14px}.door-tracking{border-radius:12px}.door-frame{border:1px solid var(--line);border-radius:14px;height:calc(100vh - 235px);min-height:740px}.search-excerpt{color:var(--muted);font-size:13px;line-height:1.8}.search-result h2{margin-top:7px}.search-filters label{margin-top:8px}#toast{box-shadow:0 8px 30px #12173420;z-index:100}
@media(max-width:1050px){body>aside{width:220px}body>main{margin-left:220px;padding:26px 22px}.details{grid-template-columns:1fr 1fr}}
@media(max-width:850px){body>aside{position:static;width:auto;padding:20px;overflow:visible}.sub{display:none}body>aside nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-height:220px;margin-top:16px}nav button{padding:10px;font-size:12px}body>main{margin-left:0;padding:24px 18px}#account{margin-top:12px;padding:12px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}#account small{margin:0}.local{display:none}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cards{grid-template-columns:1fr}#saved{font-size:11px;max-width:210px}header{align-items:flex-start}.card{padding:20px}.door-frame{min-height:850px}}
@media(max-width:500px){body>aside nav{grid-template-columns:repeat(2,minmax(0,1fr))}.details{grid-template-columns:1fr}h1{font-size:25px}.eyebrow{font-size:9px}.row{align-items:flex-start}.card,.stat{padding:18px}#saved{max-width:140px}.toolbar select{max-width:100%}.dialog-actions{flex-wrap:wrap}}
/* PEM web identity: pem.com primary #FF4E45, secondary #1E2850, text #121734.
   Business card is a raster scan; web values are used rather than sampled print colors. */
.logo{display:flex;align-items:center;gap:12px;padding:0 12px;text-decoration:none;font-style:normal;letter-spacing:0}.logo img{display:block;width:112px;height:auto}.logo span{color:#fff;font-size:20px;font-weight:400;letter-spacing:-.5px}.sub{margin-top:14px}
.primary{color:#121734!important}.primary:hover{color:#121734!important}.stat:before{background:#FF4E45}.progress b{background:#FF4E45}.tag{background:#f0f3fa;color:#1E2850}a,td a{color:#1E2850}a:hover{color:#E6443C}.check input,.task-check{accent-color:#1E2850}.search-focus{outline-color:#FF4E45}#login-error,#user-error,.late{color:#9d2520!important}
nav button.active{background:#FFF0EF;color:#1E2850;box-shadow:inset 3px 0 #FF4E45}.login-card{border-top:3px solid #FF4E45}.logo:focus-visible{outline-color:#FF4E45}.eyebrow{color:#62677a}.stat strong,h1,h2,h3{color:#1E2850}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Collapsible navigation */
body>aside nav{display:flex;flex-direction:column;gap:4px;align-items:stretch}.nav-shortcut{width:100%}.nav-shortcut[data-view="global-search"]{margin-bottom:12px}.nav-group{border-top:1px solid #ffffff16;padding-top:8px;margin-top:5px;flex-shrink:0}.nav-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;color:#aab6d2;font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.9px;cursor:pointer;border-radius:8px;user-select:none}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary:after{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s;flex-shrink:0}.nav-group[open]>summary:after{transform:rotate(45deg)}.nav-group>summary:hover{background:#293462;color:#fff}.nav-group>summary:focus-visible{outline:2px solid #FF4E45;outline-offset:-2px}.nav-group.has-active>summary{color:#fff}.nav-group.has-active:not([open])>summary{box-shadow:inset 3px 0 #FF4E45}.nav-children{display:grid;gap:3px;padding:0 0 8px 8px}.nav-children button{width:100%;font-size:12px;padding:10px 13px}.nav-group:not([open])>.nav-children{display:none}
@media(max-width:850px){body>aside nav{display:flex;max-height:320px}.nav-children{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-group{margin-top:0}.nav-shortcut[data-view="global-search"]{margin-bottom:0}}
.project-filters{flex-wrap:wrap}.project-filters label{margin:0;min-width:200px}.training-banner{background:#fff0d5;color:#664810;border:1px solid #e4c37d;border-radius:10px;padding:12px 16px;margin-bottom:20px;font-size:12px;font-weight:650}
.project-area-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}.project-area-tabs button{background:transparent;border-color:transparent;color:#66738e}.project-area-tabs button:hover{background:#edf0f7}.project-area-tabs button[aria-current=page]{background:#fff0ef;border-color:#ffb8b3;color:#1e2850}

/* Supplied PEMDesk wordmark: retain original white background and proportions. */
.logo{background:#fff;border-radius:9px;padding:10px 12px;display:flex;max-width:216px;box-sizing:border-box}.logo img{width:100%;height:auto;display:block}.logo:focus-visible{outline:3px solid #fff;outline-offset:4px}
