:root{--nav:#121418;--blue:#1262d6;--line:#dbe3ec;--muted:#66758a;--text:#122033;--bg:#f4f6fa;--panel:#fff}
body.themeDark{--nav:#071625;--blue:#4c8dff;--line:#2d4057;--muted:#9fb0c5;--text:#eaf2ff;--bg:#0b1420;--panel:#101e2d;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
button,input,select,textarea{font:inherit}
button{cursor:pointer;border:0;background:#fff;color:var(--text)}
.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.loginPage{min-height:100vh;display:grid;grid-template-columns:1.2fr 430px;background:linear-gradient(90deg,#07111de8 0%,#07111db8 48%,#07111d66 100%),url("/login-backdrop.jpg") center/cover no-repeat;color:#fff}
.loginBrand{display:flex;flex-direction:column;justify-content:center;padding:8vw;text-shadow:0 2px 18px #000c}
.loginBrand img{width:360px;max-width:78%;height:auto;object-fit:contain;margin-bottom:26px}
.loginBrand h1{font-size:48px;margin:0 0 10px}
.loginBrand p{font-size:20px;color:#d7e4f4;max-width:620px}
.loginCard{align-self:center;margin-right:7vw;background:#fffffff0;color:var(--text);border:1px solid #ffffff8a;border-radius:18px;padding:24px 32px 32px;box-shadow:0 24px 70px #0009;backdrop-filter:blur(12px)}
.loginProductLogo{display:block;width:min(240px,84%);height:auto;object-fit:contain;margin:2px auto 14px}
.loginCard h2{margin:0 0 18px}.loginCard label{display:block;font-weight:800;margin:14px 0 8px}
.loginCard input,.form input,.form select,.form textarea{width:100%;border:1px solid #d4deea;border-radius:8px;padding:11px;background:#fff}
.loginCard button,.form button,.pageHead button,.actions button{border-radius:8px;background:var(--blue);color:#fff;padding:10px 14px;font-weight:800}
.loginCard button{width:100%;margin-top:18px}.loginCard small{display:block;color:var(--muted);margin-top:12px}.error{background:#fee2e2;color:#991b1b;padding:10px;border-radius:8px}
.loginCard .notice{background:#e8f1fd;color:#1c4f8f;border:1px solid #c4dcf7;padding:10px;border-radius:8px;font-size:12.5px;font-weight:600}
.loginCard button.msLoginBtn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:4px 0 0;background:#fff;color:#1f2b3c;border:1px solid #c7d4e4;box-shadow:0 1px 2px #0b1f350f;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.loginCard button.msLoginBtn:hover{background:#f2f7ff;border-color:#8fb2dd;transform:translateY(-1px)}
.loginCard button.msLoginBtn svg{flex:0 0 auto}
.loginDivider{display:flex;align-items:center;gap:10px;margin:16px 0 2px;color:#8194a8;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.loginDivider::before,.loginDivider::after{content:'';flex:1;height:1px;background:#d8e2ee}
.loginLinks{margin-top:12px;text-align:center}
.loginLinks a{color:#2563ab;font-size:12.5px;font-weight:700;text-decoration:none}
.loginLinks a:hover{text-decoration:underline}
.mobileTop{display:none}
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.side{background:linear-gradient(180deg,#17191d 0%,#111316 58%,#0b0d10 100%);color:#f4f7fb;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid #ffffff14;box-shadow:8px 0 24px #0b1f3510}
.brand{height:76px;flex:0 0 76px;background:transparent;border-bottom:1px solid #ffffff14;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden}
.brand img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
.sideNav{padding:18px 16px 10px;display:flex;flex-direction:column;gap:4px;overflow:auto;min-height:0}
.sideGroup{display:flex;flex-direction:column;gap:3px}
.sideGroup+.sideGroup{margin-top:10px}
.sideGroup small{padding:13px 0 6px;color:#a9b1bc;text-transform:uppercase;font-size:10px;font-weight:950;letter-spacing:.08em}
.sideNav button{min-height:40px;border-radius:8px;background:transparent;color:#f2f6fb;display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left;font-size:14px;font-weight:750;letter-spacing:0;white-space:normal}
.sideNav button:hover{background:#ffffff12}
.sideNav button.active{background:#ffffff14;box-shadow:inset 3px 0 0 #ef3d58;color:#fff}
.sideNav button span{line-height:1.15}
.sideSubNav{display:grid;gap:4px;margin:2px 0 6px 30px;padding-left:9px;border-left:1px solid #ffffff24}
.sideNav button.sideSubItem{min-height:34px;border-radius:8px;color:#dbe6f3;font-size:12px;padding:0 10px;gap:9px}
.sideNav button.sideSubItem .ico{width:15px;height:15px}
.sideNav button.sideSubItem.active{background:#ffffff12;box-shadow:inset 3px 0 0 #ef3d58;color:#fff}
.sideActions{padding:10px 16px 14px;display:grid;gap:8px}.sideActions button{width:100%;min-height:40px;border-radius:8px;background:#ffffff10;color:#fff;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:0 12px;font-size:14px;font-weight:850;border:1px solid #ffffff18}.sideActions button:hover{background:#ffffff1c}.sideActions button.active{background:#ffffff14;box-shadow:inset 3px 0 0 #ef3d58;color:#fff}
.sideFoot{margin-top:auto;padding:16px 18px 18px;text-align:center}.sideFoot img{display:block;width:126px;max-width:100%;height:auto;margin:0 auto;object-fit:contain}
.main{min-width:0}.top{height:62px;background:#f9fbfe;border-bottom:1px solid #d9e2ec;display:grid;grid-template-columns:max-content minmax(0,1fr) auto;align-items:center}
.topGreeting{font-size:18px;padding-left:26px}.weatherMini{display:flex;align-items:center;gap:10px;font-size:16px;border-left:1px solid #e0e6ef;padding-left:22px}
.weatherIcon{display:block;object-fit:contain;flex:none}.weatherIcon.mini{width:30px;height:30px}.weatherIcon.big{width:54px;height:54px}.weatherIcon.tiny{width:22px;height:22px}
.sun{width:22px;height:22px;border-radius:50%;display:inline-block;background:#ffc12f;box-shadow:0 0 0 5px #ffde7a55;position:relative;flex:none}
.sun:before{content:"";position:absolute;inset:-8px;background:repeating-conic-gradient(from 0deg,#ffc12f 0 9deg,transparent 9deg 30deg);border-radius:50%;z-index:-1}.sun.big{width:36px;height:36px}.sun.tiny{width:14px;height:14px;box-shadow:0 0 0 3px #ffde7a55}
.topTabs{height:100%;display:flex;align-items:center;justify-content:center;gap:8px;border-left:1px solid #e0e6ef}
.topTabs button{height:100%;padding:0 12px;border-bottom:3px solid transparent;background:transparent;display:flex;align-items:center;gap:7px;font-weight:750}
.topTabs button.active{color:#0d62d9;border-bottom-color:#0d62d9}
.topSpacer{min-width:0}
.topRight{height:100%;display:flex;align-items:center;justify-content:flex-end;gap:10px;border-left:1px solid #e0e6ef;padding:0 18px 0 16px;white-space:nowrap;min-width:0}
.headerActionBtn{border:1px solid #d7e1ec;border-radius:8px;background:#fff;padding:7px 10px;color:#334155;font-weight:850;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.headerActionBtn .ico{width:16px;height:16px}
.headerActionBtn.iconOnly{width:36px;justify-content:center;padding:0}
.headerActionBtn.iconOnly span{display:none}
.notif{position:relative;background:transparent;padding:4px}.notif i{position:absolute;right:-1px;top:-5px;background:#dd2c36;color:#fff;border-radius:999px;font-size:10px;padding:1px 5px;font-style:normal}.avatar{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;background:#d9e0eb;color:#344155;font-size:12px}.avatarBtn{border:0;font-weight:900}.avatarBtn:hover{box-shadow:0 0 0 3px #1262d626}.profileMenu{display:none;position:absolute;right:86px;top:54px;background:#fff;border:1px solid #d7e1ec;border-radius:10px;box-shadow:0 14px 38px #0b1f3526;padding:8px;z-index:40;min-width:190px}.profileMenu.open{display:grid;gap:4px}.profileMenu button{text-align:left;border-radius:7px;padding:9px 10px;background:#fff;font-weight:850}.profileMenu button:hover{background:#eef6ff}.chev{font-size:12px;color:var(--muted)}.logoutBtn{border:1px solid #d7e1ec;border-radius:8px;background:#fff;padding:7px 10px;color:#334155;font-weight:850}
.dashboard{padding:18px clamp(18px,2.2vw,28px) 24px;overflow-x:hidden}.kpis{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:16px;margin-bottom:18px}
.kpi{height:110px;background:#fff;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;justify-content:space-between;padding:18px 24px 18px 24px;box-shadow:0 1px 2px #0b1f3508;text-align:left;color:inherit;cursor:pointer;font:inherit}
.kpi:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0b1f3512;border-color:#b8cae0}.kpi:focus-visible{outline:3px solid #1262d633;outline-offset:2px}
.kpi h3{font-size:12px;margin:0 0 8px;font-weight:900;color:#243149}.kpiNums{display:flex;align-items:end;gap:14px}.kpiNums b{font-size:34px;line-height:1}.kpiNums span{font-size:18px;font-weight:900}.kpi p{margin:4px 0 0;color:#526176;font-size:12px}.kpi p small{margin-left:4px}.kpiIcon{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.kpiBadge{width:62px;height:62px;border-radius:14px;display:grid;place-items:center}.kpi.blue .kpiBadge{background:#dce9ff;color:#1262d6}.kpi.green .kpiBadge{color:#15a75b}.kpi.orange .kpiBadge{color:#de8500}.kpi.purple .kpiBadge{color:#8b6bd9}.kpi.red{border-color:#f1d8d8}.kpi.red .kpiBadge{color:#e33b42}
.workArea{display:grid;grid-template-columns:minmax(900px,1fr) 354px;gap:16px;min-width:0}.schedulePanel,.panel,.railCard,.pageHead,.form,.record,table,.empty{background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 1px 2px #0b1f3508}
.panelHead{height:54px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 18px}
.panelHead h2{font-size:15px;margin:0;font-weight:950}.scheduleTools{display:flex;align-items:center;gap:10px}.scheduleTools button,.scheduleTools select{height:34px;border:1px solid var(--line);border-radius:6px;padding:0 12px;background:#fff}.scheduleTools .square{width:34px;padding:0}.scheduleTools .primary{background:#1262d6;color:#fff;border-color:#1262d6;font-weight:850}.scheduleTools strong{padding:0 8px;font-size:13px}
.assetTray{min-height:104px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px 1fr;align-items:start;gap:8px;padding:8px 12px;background:#fbfcff}.assetTray b{display:block;font-size:12px}.assetTray span{display:block;font-size:11px;color:#64748b}.resourceTrayScroll{min-width:0;display:grid;gap:4px}.resourceTrayGroup{display:grid;grid-template-columns:104px minmax(0,1fr);gap:6px;align-items:center}.resourceTrayGroup>span{display:flex;align-items:center;min-height:34px;padding:0 2px;font-size:10px;font-weight:950;color:#1f2e44;white-space:nowrap}.resourceTrayItems{min-width:0;display:flex;gap:6px;overflow:auto;padding-bottom:1px}.assetStickerList,.crewStickerList,.staffStickerList{display:flex;gap:6px;overflow:auto;padding-bottom:1px}.assetSticker{width:78px;height:46px;border:1px solid #d6e0ed;border-radius:6px;background:#fff;display:grid;grid-template-columns:1fr;grid-template-rows:28px 14px;align-items:center;justify-items:center;padding:2px;flex:0 0 auto}.assetSticker img{max-width:70px;max-height:28px;object-fit:contain}.assetSticker span{font-size:9px;color:#26364d;font-weight:900}.crewSticker{min-width:118px;height:40px;border:1px solid #d6e0ed;border-radius:999px;background:#fff;display:grid;place-items:center;flex:0 0 auto;padding:4px 8px}.crewSticker span{font-size:10px;font-weight:900;color:#1f2e44;line-height:1.05;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crewSticker small{font-size:8px;color:#64748b;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staffSticker{width:54px;height:40px;border:1px solid #d6e0ed;border-radius:999px;background:#fff;display:grid;place-items:center;flex:0 0 auto}.staffSticker span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#334155;color:#fff;font-weight:900;font-size:9px}.staffSticker small{font-size:8px;color:#64748b;max-width:46px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assetSticker.selected,.staffSticker.selected,.crewSticker.selected{border-color:#1262d6;box-shadow:0 0 0 2px #1262d626}
.scheduleGrid{display:grid;grid-template-columns:150px repeat(var(--days,10),minmax(96px,1fr));overflow:auto}
.gridLabel,.day{height:48px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:950;color:#2b3548}.gridLabel{justify-content:flex-start;padding-left:20px}.day{border-left:1px solid #e6ebf2;flex-direction:column}.day.today{color:#1262d6}.day small{font-size:10px;margin-top:2px}
.scheduleEmptyState{grid-column:1/-1;min-height:150px;border-bottom:1px solid #e7edf4;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#5d6b80;gap:6px}.scheduleEmptyState b{font-size:15px;color:#1b2737}.scheduleEmptyState span{font-size:12px}
.site{min-height:141px;border-bottom:1px solid #e7edf4;padding:34px 16px 0 24px;position:relative}.site:before{content:"";position:absolute;left:12px;top:24px;width:4px;height:82px;background:var(--site);border-radius:4px}.site b{display:block;font-size:16px}.site span{display:block;font-size:11px;color:#334055;margin-top:5px}.site small{display:block;color:#637185;margin-top:9px}
.slot{min-height:151px;border-left:1px solid #e9eef5;border-bottom:1px solid #e7edf4;padding:12px 6px;background:#fff}.workCard{width:100%;min-height:126px;border-radius:6px;background:var(--bg);border:1px solid color-mix(in srgb,var(--line) 65%,#fff);border-top:4px solid var(--line);padding:7px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;color:#132033;position:relative}.workCard.isNightWork{border-top-color:#334155;background:#f8fafc}
.workCard strong{font-size:11px;line-height:1.15;text-align:center}.workCard .activityLabel{align-self:center;border:1px solid #d6e0ed;border-radius:999px;background:#fff;color:#334155;padding:3px 8px;font-size:10px;font-weight:950}.taskListWindow{border:1px solid #d6e0ed;border-radius:7px;background:#fff;display:grid;gap:4px;padding:6px;max-height:74px;overflow:auto;text-align:left}.taskListWindow b{font-size:9px;color:#64748b;text-transform:uppercase;letter-spacing:.02em}.taskListWindow span{font-size:10px;font-weight:850;line-height:1.2;color:#172033}.workCard em{font-size:9px;font-style:normal;font-weight:950;color:#304259}.workCard.dropReady{outline:3px solid #1262d655;outline-offset:2px}.workCard.hasClash{border-color:#ef4444;background:#fff1f2}.scheduleAssets{display:flex;flex-wrap:wrap;justify-content:center;gap:3px}.scheduleAssets span{width:43px;height:34px;border-radius:4px;background:#dfe8f5;display:grid;grid-template-rows:23px 9px;place-items:center;border:1px solid #d4deea}.scheduleAssets img{max-width:41px;max-height:23px;object-fit:contain}.scheduleAssets .clash{border-color:#ef4444;background:#fee2e2}.clashNote{position:absolute;right:4px;top:4px;background:#ef4444;color:#fff;border-radius:999px;padding:1px 5px;font-size:9px;font-weight:900}.machine{width:82px;height:44px;overflow:visible}.machine path,.machine rect,.machine circle{stroke:#223044;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:#f4b51f}.truckArt path,.truckArt rect{fill:#e9edf2}.skidArt path,.skidArt rect{fill:#f3b526}.chips{display:flex;gap:4px;align-self:flex-start;flex-wrap:wrap}.chips span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#334155;color:#fff;font-size:10px;font-weight:900}.chips span.clash{background:#ef4444;box-shadow:0 0 0 2px #fecaca}.chips .ok{background:#44c967}
.rightRail{display:flex;flex-direction:column;gap:14px}.railCard{padding:12px}.railHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.railHead h3,.railCard h3,.panel h3{font-size:13px;margin:0;font-weight:950}.railHead button{color:#1262d6;background:transparent;font-size:12px}
.alertGroup{border-radius:6px;padding:11px 12px;margin-bottom:9px}.alertGroup h4{margin:0 0 8px;display:flex;align-items:center;gap:8px;font-size:12px}.alertGroup p{margin:0;display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:12px;padding:8px;border-radius:6px}.alertGroup p:nth-of-type(even){background:#ffffff9c}.alertGroup p:nth-of-type(odd){background:#ffffff42}.alertGroup p+p{margin-top:5px}.alertGroup p small{grid-column:1;color:#536276}.alertGroup p span{color:#536276}.alertGroup .alertRowActions{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.alertGroup .alertRowActions button{border:1px solid #fecaca;border-radius:6px;background:#fff;color:#b91c1c;font-size:11px;font-weight:950;padding:6px 8px}.alertGroup .alertRowActions button:disabled{opacity:.62}.alertGroup.red{background:#fff2f2;color:#cc2d32}.alertGroup.amber{background:#fff8ef;color:#d88300}.alertGroup.gold{background:#fff6e6;color:#e59b00}.alertGroup b{color:#172033}
.radioStage{background:transparent!important;border:0!important;box-shadow:none!important;padding:26px 0!important;display:grid;place-items:center}
.radioDevice{width:min(880px,100%);border-radius:18px;background:linear-gradient(180deg,#3a3f47,#23262c 12%,#2b2f36 55%,#191c21);border:1px solid #14161a;box-shadow:0 24px 60px #04101f8f,inset 0 1px 0 #ffffff2b,inset 0 -3px 8px #00000080;padding:14px 18px 12px;color:#cfd6df}
.radioTopBar{display:flex;align-items:center;gap:14px;padding:2px 4px 10px;border-bottom:1px solid #15181d;box-shadow:0 1px 0 #ffffff14}
.radioBrand{font-size:12px;letter-spacing:.14em;color:#aeb6c2;font-weight:600}
.radioBrand b{color:#fff;font-weight:950}
.radioBrand em{font-style:normal;font-size:9px;letter-spacing:.22em;color:#7c8694;margin-left:8px}
.radioLedWrap{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:9px;letter-spacing:.18em;color:#7c8694}
.radioLed{width:9px;height:9px;border-radius:50%;background:#3a4048;box-shadow:inset 0 1px 2px #000}
.radioDevice.isLive .radioLed{background:#4ade80;box-shadow:0 0 8px #4ade80cc,inset 0 1px 1px #ffffff66;animation:radioPulse 1.4s ease-in-out infinite}
.radioPowerBtn{width:26px;height:26px;border-radius:50%;border:2px solid #16181c;background:radial-gradient(circle at 35% 30%,#ff6b6b,#c81e1e 60%,#8f1414);box-shadow:0 2px 5px #000c,inset 0 1px 2px #ffffff70;cursor:pointer}
.radioPowerBtn:active{transform:translateY(1px)}
.radioBody{display:grid;grid-template-columns:180px minmax(0,1fr) 132px;gap:18px;padding:16px 4px 12px;align-items:stretch}
.radioGrille{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;align-content:center;background:linear-gradient(180deg,#22252b,#1a1d22);border:1px solid #101317;border-radius:10px;padding:14px;box-shadow:inset 0 2px 8px #000c}
.radioGrille i{width:7px;height:7px;border-radius:50%;background:#0d0f12;box-shadow:inset 0 1px 2px #000,0 1px 0 #ffffff10}
.radioMain{display:grid;gap:12px;min-width:0}
.radioLcd{background:linear-gradient(180deg,#0f1c10,#152a15 40%,#12240f);border:2px solid #0a0d09;border-radius:8px;box-shadow:inset 0 3px 14px #000d,0 1px 0 #ffffff18;padding:12px 14px;display:grid;gap:6px;font-family:ui-monospace,'Cascadia Mono',Consolas,monospace;color:#9fe870;text-shadow:0 0 6px #6ee75766}
.radioLcdTop{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.12em;color:#7fce5d}
.radioLcd b{font-size:clamp(20px,3.2vw,30px);letter-spacing:.06em;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}
.radioLcd small{font-size:10.5px;letter-spacing:.18em;color:#7fce5d}
.radioSignal{display:inline-flex;align-items:flex-end;gap:3px;height:14px}
.radioSignal i{width:4px;background:#3d5c32;border-radius:1px;height:30%}
.radioSignal i:nth-child(2){height:50%}.radioSignal i:nth-child(3){height:70%}.radioSignal i:nth-child(4){height:85%}.radioSignal i:nth-child(5){height:100%}
.radioDevice.isLive .radioSignal i{background:#9fe870;box-shadow:0 0 5px #6ee757aa;animation:radioSig 1s ease-in-out infinite}
.radioDevice.isLive .radioSignal i:nth-child(2){animation-delay:.15s}
.radioDevice.isLive .radioSignal i:nth-child(3){animation-delay:.3s}
.radioDevice.isLive .radioSignal i:nth-child(4){animation-delay:.45s}
.radioDevice.isLive .radioSignal i:nth-child(5){animation-delay:.6s}
@keyframes radioSig{0%,100%{transform:scaleY(.55)}50%{transform:scaleY(1.05)}}
.radioPresets{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}
.radioPresetBtn{border:1px solid #14161a;border-radius:7px;background:linear-gradient(180deg,#3d434c,#2a2e35 45%,#22252b);box-shadow:0 2px 4px #000a,inset 0 1px 0 #ffffff22;color:#d4dae2;padding:8px 9px;display:grid;gap:2px;text-align:left;cursor:pointer}
.radioPresetBtn b{font-size:9px;letter-spacing:.16em;color:#8b95a3}
.radioPresetBtn span{font-size:12px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.radioPresetBtn:hover{background:linear-gradient(180deg,#474d57,#31353d 45%,#26292f)}
.radioPresetBtn:active{transform:translateY(1px)}
.radioPresetBtn.playing{border-color:#3f7a2e;background:linear-gradient(180deg,#2b4d22,#1f3a19 45%,#182e13);color:#c9f3b1;box-shadow:0 0 0 1px #4ade8055,0 2px 4px #000a,inset 0 1px 0 #ffffff18}
.radioPresetBtn.playing b{color:#8fd674}
.radioSide{display:grid;justify-items:center;align-content:start;gap:8px;background:linear-gradient(180deg,#22252b,#1a1d22);border:1px solid #101317;border-radius:10px;padding:14px 10px;box-shadow:inset 0 2px 8px #000c}
.radioKnob{width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#565d68,#2c3037 55%,#15181c);border:2px solid #0d0f12;box-shadow:0 6px 14px #000c,inset 0 2px 3px #ffffff30,inset 0 -4px 8px #00000090;cursor:pointer;position:relative;transition:transform .25s ease}
.radioKnob i{position:absolute;top:8px;left:50%;width:5px;height:16px;margin-left:-2.5px;border-radius:3px;background:#e2e8f0;box-shadow:0 0 4px #fff8}
.radioSideLabel{font-size:8.5px;letter-spacing:.22em;color:#7c8694}
.radioTuneBtns{display:flex;gap:8px}
.radioTuneBtns button{width:32px;height:24px;border-radius:5px;border:1px solid #14161a;background:linear-gradient(180deg,#3d434c,#22252b);color:#cfd6df;font-size:9px;cursor:pointer;box-shadow:0 2px 4px #000a,inset 0 1px 0 #ffffff22}
.radioTuneBtns button:active{transform:translateY(1px)}
.radioVolFader{width:92px;accent-color:#9fe870;margin-top:6px}
.radioDeviceFoot{display:flex;justify-content:space-between;gap:10px;padding:10px 4px 2px;border-top:1px solid #15181d;box-shadow:0 -1px 0 #ffffff10;font-size:8.5px;letter-spacing:.18em;color:#69727f}
@media(max-width:860px){.radioBody{grid-template-columns:1fr}.radioGrille{display:none}.radioSide{grid-auto-flow:column;justify-content:center;align-items:center}}
.officeRadioCard .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}
.radioStationGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:12px}
.radioStationTile{border:1px solid #dbe6f1;border-radius:10px;background:#f8fbff;padding:14px 12px;display:grid;justify-items:start;gap:4px;text-align:left;cursor:pointer;transition:.15s ease}
.radioStationTile:hover{border-color:#93c5fd;background:#eff6ff}
.radioStationTile .radioTileIcon{color:#1262d6}
.radioStationTile b{font-size:14px;color:#12233d}
.radioStationTile small{color:#64748b}
.radioStationTile em{font-style:normal;font-size:11px;font-weight:900;color:#1262d6;border:1px solid #bfdbfe;border-radius:999px;padding:3px 10px;margin-top:4px;background:#fff}
.radioStationTile.playing{border-color:#16a34a;background:#f0fdf4;box-shadow:0 0 0 3px #16a34a22}
.radioStationTile.playing em{color:#166534;border-color:#86efac;background:#dcfce7}
.officeLaunchGrid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.officeLaunchGrid .staffLaunchTile{padding:24px 20px;border-radius:16px;border-left-width:5px;min-height:118px}
.officeLaunchGrid .staffLaunchIcon{width:72px;height:72px;border-radius:16px}
.officeLaunchGrid .staffLaunchIcon .ico{width:32px;height:32px}
.officeLaunchGrid .staffLaunchText b{font-size:18px}
.officeLaunchGrid .staffLaunchText small{font-size:13px}
.officeLaunchGrid .staffLaunchTile:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0b1f3516;border-color:var(--tone-border)}
.officeLaunchGrid .staffLaunchTile.isPending .staffLaunchIcon{filter:saturate(.4);opacity:.8}
.officeLaunchGrid .staffLaunchTile.isPending .staffLaunchCount{color:#b45309;background:#fff7ed;border-color:#fed7aa}
.mailPage{padding:0;min-height:calc(100vh - 62px)}
.mailWorkspace{min-height:calc(100vh - 62px);padding:16px;display:grid;gap:14px;background:linear-gradient(180deg,#f7f9fc 0%,#edf2f7 100%)}
.mailTopBar{display:grid;grid-template-columns:auto minmax(320px,1fr) auto auto;gap:14px;align-items:center}
.mailAccountChip,.mailSearchWrap,.mailConnectionBadge{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px #0b1f3508}
.mailAccountChip{display:flex;align-items:center;gap:12px;padding:12px 14px;min-width:220px;color:inherit;text-align:left}
.mailAccountAvatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#dbe8ff;color:#1262d6;font-weight:950;flex:none}
.mailAccountText{display:grid;min-width:0}
.mailAccountText b,.mailConnectionBadge b{display:block;font-size:14px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mailAccountText small,.mailConnectionBadge small{display:block;color:#64748b;font-size:11px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mailSearchWrap{display:flex;align-items:center;gap:10px;padding:0 14px;min-height:54px}
.mailSearchWrap input{border:0;outline:0;background:transparent;color:var(--text);width:100%;min-width:0}
.mailTopActions{display:flex;gap:10px;flex-wrap:nowrap;justify-self:end;white-space:nowrap}
.mailTopActions button{border:1px solid var(--line);border-radius:14px;background:#fff;color:#334155;padding:10px 12px;font-weight:850;box-shadow:0 1px 2px #0b1f3508}
.mailTopActions button.primary{background:#1262d6;color:#fff;border-color:#1262d6}
.mailConnectionBadge{display:flex;align-items:center;gap:12px;padding:10px 14px;min-width:180px;justify-self:end}
.mailConnectionLogo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#fbbf24,#ef4444);color:#fff;font-weight:950;flex:none}
.mailConnectionBadge.live .mailConnectionLogo{background:linear-gradient(135deg,#f59e0b,#10b981)}
.mailConnectionBadge.demo .mailConnectionLogo{background:linear-gradient(135deg,#94a3b8,#64748b)}
.mailConnectionBadge.warn .mailConnectionLogo{background:linear-gradient(135deg,#f59e0b,#d97706)}
.mailBanner{margin:0;border-radius:14px;padding:12px 14px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:12px}
.mailBanner.demo{background:#eff6ff;color:#0d62d9;border:1px solid #bfdbfe}
.mailBanner.connect{background:#fff7e6;color:#8a4b00;border:1px solid #f5c76b}
.mailBanner.error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.mailBanner button{margin-left:10px;vertical-align:middle}
.mailMainGrid{display:grid;grid-template-columns:250px minmax(300px,380px) minmax(0,1fr);gap:16px;min-width:0;align-items:start;flex:1}
.mailSidebar,.mailListPane,.mailReaderPane{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px #0b1f3508;min-width:0}
.mailSidebar{padding:14px;display:grid;gap:16px;align-self:start;position:sticky;top:78px}
.mailSection{display:grid;gap:12px}
.mailSectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.mailSectionHead h3{margin:0;font-size:14px;font-weight:950}
.mailSectionAdd{width:28px;height:28px;border-radius:8px;background:#fff;border:1px solid var(--line);color:#66758a;font-weight:950}
.mailFolderButtons{display:grid;gap:8px}
.mailFolderBtn{padding:10px 12px;border:1px solid transparent;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fbff;font-weight:850;color:#152033}
.mailFolderBtn:hover{border-color:#bfdbfe;background:#eef5ff}
.mailFolderBtn .mailFolderLabel{display:flex;align-items:center;gap:10px;min-width:0}
.mailFolderBtn .mailFolderLabel i{font-style:normal;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#e3edff;color:#1262d6;font-size:12px}
.mailFolderBtn.active{background:#eaf2ff;box-shadow:inset 0 0 0 1px #bfdbfe;color:#0d62d9}
.mailFolderBtn.active .mailFolderLabel i{background:#1262d6;color:#fff}
.mailFolderBtn b{min-width:28px;height:24px;border-radius:999px;display:grid;place-items:center;background:#fff;color:#1262d6;font-size:12px;font-weight:950;padding:0 6px}
.mailCategoryButtons{display:grid;gap:8px}
.mailCategoryBtn{padding:10px 12px;border:1px solid #e3eaf2;border-radius:12px;background:#fff;color:#152033;display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:850}
.mailCategoryBtn span{display:flex;align-items:center;gap:10px;min-width:0}
.mailCategoryBtn span i{width:10px;height:10px;border-radius:50%;background:#64748b;display:inline-block;flex:none}
.mailCategoryBtn[data-mail-category="client"] span i{background:#2563eb}
.mailCategoryBtn[data-mail-category="project"] span i{background:#14b8a6}
.mailCategoryBtn[data-mail-category="finance"] span i{background:#f59e0b}
.mailCategoryBtn[data-mail-category="hr"] span i{background:#8b5cf6}
.mailCategoryBtn[data-mail-category="other"] span i{background:#64748b}
.mailCategoryBtn.active{border-color:#bfdbfe;background:#eff6ff;color:#0d62d9;box-shadow:0 0 0 2px #bfdbfe22}
.mailCategoryBtn.active span i{background:#1262d6}
.mailCategoryBtn b{min-width:28px;height:24px;border-radius:999px;display:grid;place-items:center;background:#f8fbff;color:#64748b;font-size:12px;font-weight:950;padding:0 6px}
.mailStorageCard{padding:14px;border:1px solid #e1e8f0;border-radius:14px;background:linear-gradient(180deg,#f8fbff,#eef5ff)}
.mailStorageTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.mailStorageTop span{font-size:14px;font-weight:950}
.mailStorageTop small{font-size:11px;color:#64748b}
.mailStorageBar{margin:12px 0 8px;height:10px;border-radius:999px;background:#dce7f4;overflow:hidden}
.mailStorageBar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1262d6,#4c8dff)}
.mailStorageCard p{margin:0;font-size:12px;color:#516072}
.mailStorageCard a{display:inline-block;margin-top:10px;font-size:12px;font-weight:800;color:#1262d6;text-decoration:none}
.mailListPane{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0}
.mailListTabs{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 0}
.mailFocusedTabs{display:flex;gap:8px}
.mailFocusedTabs button,.mailFilterBtn{border:1px solid #d5dfeb;border-radius:999px;background:#fff;padding:8px 14px;font-weight:850;color:#475569}
.mailFocusedTabs button.active{background:#eff6ff;color:#1262d6;border-color:#bfdbfe}
.mailFilterBtn{display:flex;align-items:center;gap:6px}
.mailListHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px 12px;border-bottom:1px solid #e6edf6}
.mailListHead b{display:block;font-size:16px}
.mailListHead small{display:block;color:#64748b;margin-top:2px}
.mailListHead span{color:#64748b;font-size:12px;font-weight:900}
.mailList{display:grid;gap:8px;padding:12px;overflow:auto;max-height:calc(100vh - 310px)}
.mailMessage{border:1px solid #e1e8f0;border-radius:16px;background:#fff;padding:12px 14px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start;text-align:left;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease}
.mailMessage:hover{border-color:#93c5fd;background:#f8fbff}
.mailMessage.active{border-color:#9ac3ff;background:#eaf3ff;box-shadow:0 0 0 2px #9ac3ff22}
.mailMessage.unread{background:#f8fbff;border-left:4px solid #1262d6}
.mailAvatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:950;font-size:12px;box-shadow:inset 0 1px 0 #ffffff33}
.mailAvatar.large{width:48px;height:48px;font-size:14px}
.mailMessageText{min-width:0;display:grid;gap:3px}
.mailMessageText b{display:flex;justify-content:space-between;gap:10px;font-size:12px;line-height:1.2}
.mailMessageText b span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailMessageText strong{font-size:14px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailMessageText small{display:block;color:#64748b;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailFlags{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-top:1px}
.mailFlags em,.mailFlags i{font-style:normal;font-size:10px;font-weight:950;border-radius:999px;padding:4px 8px;border:1px solid #bfdbfe;background:#eff6ff;color:#1262d9}
.mailFlags i{border-color:#fde68a;background:#fffbeb;color:#a16207}
.mailReaderPane{padding:0;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0}
.mailReaderToolbar{display:flex;align-items:center;gap:8px;padding:14px;border-bottom:1px solid #e6edf6}
.mailToolBtn{width:36px;height:36px;border-radius:10px;border:1px solid #d5dfeb;background:#fff;color:#44546a;font-size:16px;font-weight:900}
.mailReaderToolbarSpacer{flex:1}
.mailReaderCard{padding:14px;display:grid;gap:16px}
.mailReaderHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.mailReaderSubject{display:grid;gap:4px}
.mailReaderSubject h3{margin:0;font-size:26px;line-height:1.08}
.mailReaderSubject small{display:block;color:#64748b;margin-top:4px}
.mailReaderMetaLine{display:flex;align-items:center;gap:14px;color:#64748b;font-size:12px;white-space:nowrap}
.mailReaderSenderRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border:1px solid #e1e8f0;border-radius:16px;background:#f8fbff}
.mailReaderSenderText b{display:block;font-size:15px}
.mailReaderSenderText small{display:block;color:#64748b;margin-top:3px;line-height:1.4}
.mailReaderStamp{font-size:12px;color:#64748b;font-weight:800;white-space:nowrap}
.mailMeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.mailMeta div{border:1px solid #e1e8f0;border-radius:14px;background:#f8fbff;padding:10px}
.mailMeta dt{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:950}
.mailMeta dd{margin:3px 0 0;font-size:12.5px;color:#172033;line-height:1.4;word-break:break-word}
.mailBody{border:1px solid #e1e8f0;border-radius:16px;background:#fff;padding:16px;white-space:pre-wrap;line-height:1.6;color:#172033;min-height:220px}
.mailAttachmentCard{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid #dce4ef;border-radius:16px;background:#fff}
.mailAttachmentCard b{display:block}
.mailAttachmentCard small{color:#64748b;font-size:12px}
.mailReaderActions.footer{justify-content:flex-start;padding-top:0}
.mailReaderActions.footer button{padding:10px 14px;border-radius:12px}
.mailEmptyList,.mailReaderEmpty{background:#fff;border:1px dashed #d7e1ec;border-radius:16px;padding:20px}
.mailComposePanel{width:min(720px,100%)}
.mailComposeForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mailComposeForm .wide{grid-column:1/-1}
.mailComposeForm .actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
.mailComposeForm textarea{min-height:260px}
.mailMovePanel{width:min(460px,100%)}
.mailMoveChoices{display:grid;gap:10px}
.mailMoveChoice{border:1px solid #d5dfeb;background:#fff;border-radius:14px;padding:12px 14px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:850;color:#152033;cursor:pointer}
.mailMoveChoice:hover{border-color:#93c5fd;background:#f8fbff}
.mailMoveChoice.active{border-color:#bfdbfe;background:#eff6ff;color:#1262d6;box-shadow:0 0 0 2px #bfdbfe22}
.mailMoveChoice span{display:flex;align-items:center;gap:10px;min-width:0}
.mailMoveChoice span i{font-style:normal;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#e3edff;color:#1262d6;font-size:12px;flex:none}
.mailMoveChoice b{display:block}
.mailMoveChoice small{display:block;color:#64748b;font-size:11px;font-weight:700;max-width:180px;text-align:right}
@media(max-width:1100px){.mailTopBar{grid-template-columns:1fr}.mailTopActions,.mailConnectionBadge{justify-self:start}.mailMainGrid{grid-template-columns:1fr}.mailSidebar{position:relative;top:auto}.mailList{max-height:none}.mailReaderPane{min-height:620px}}
@media(max-width:820px){.roomMonitor{grid-template-columns:1fr;aspect-ratio:auto}.roomMonitorLeft h2{margin-top:14px}.mailWorkspace{padding:12px}.mailTopBar{gap:10px}.mailSearchWrap{min-height:48px}.mailMainGrid{grid-template-columns:1fr}.mailMeta{grid-template-columns:1fr}.mailReaderHead{flex-direction:column}.mailReaderActions{justify-content:flex-start}.mailReaderSenderRow{grid-template-columns:1fr}.mailReaderStamp{justify-self:start}.mailComposeForm{grid-template-columns:1fr}}
.mailComposePanel{width:min(720px,100%)}
.mailComposeForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mailComposeForm .wide{grid-column:1/-1}
.mailComposeForm .actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}
.mailComposeForm textarea{min-height:260px}
.officeMeetingsWrap{display:grid;gap:14px}
.roomPanelStage{background:transparent;padding:26px 0;display:grid;place-items:center}
.roomMonitor{width:min(940px,100%);aspect-ratio:16/8.4;border-radius:10px;background:#000;border:10px solid #0c0e11;box-shadow:0 22px 50px #04101f99,0 0 0 1px #1f242b;display:grid;grid-template-columns:1fr 1.05fr;overflow:hidden}
.roomMonitorLeft{position:relative;padding:26px 24px;display:flex;flex-direction:column;color:#fff;background:radial-gradient(120% 90% at 20% 108%,#d97706 0%,#b0347c 34%,#6d28d9 62%,#241432 88%),#1a1023}
.roomMonitorLeft .roomClock{font-size:clamp(26px,3.4vw,40px);font-weight:950;line-height:1}
.roomMonitorLeft>small{color:#e6d9f7cc;margin-top:6px;font-size:12px}
.roomMonitorLeft h2{margin:auto 0 12px;font-size:clamp(22px,2.9vw,34px);line-height:1.15;font-weight:950;text-shadow:0 2px 12px #0008}
.roomPickTabs{display:flex;gap:6px;flex-wrap:wrap}
.roomPickTabs button{border:1px solid #ffffff3d;border-radius:999px;background:#ffffff1e;color:#fff;font-size:10.5px;font-weight:900;padding:5px 11px;cursor:pointer;backdrop-filter:blur(4px)}
.roomPickTabs button.active{background:#fff;color:#241432;border-color:#fff}
.roomMonitorRight{background:#101214e6;padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px;min-width:0;border-left:1px solid #ffffff10}
.roomStatusBlock{position:relative;padding:10px 12px 10px 18px;border-radius:10px;background:#ffffff08}
.roomStatusBlock:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:5px;border-radius:4px;background:#4ade80}
.roomMonitor.isBusy .roomStatusBlock:before{background:#ef4444}
.roomStatusBlock h3{margin:0;color:#fff;font-size:clamp(18px,2vw,26px);font-weight:950}
.roomStatusBlock small{color:#9aa7b8;font-size:12px}
.roomReserveRow{display:flex;gap:10px;align-items:center;justify-content:flex-end}
.roomReserveRow select{border:1px solid #2c3742;border-radius:8px;background:#181d23;color:#dbe4ee;padding:8px 10px;font-size:12px}
.roomReserveBtn{border:0;border-radius:9px;background:#16a34a;color:#fff;font-weight:950;font-size:14px;padding:11px 26px;cursor:pointer;box-shadow:0 6px 16px #16a34a55}
.roomReserveBtn:hover{background:#15803d}
.roomAgenda{overflow:auto;display:grid;gap:6px;align-content:start;min-height:0;flex:1;padding-right:2px}
.roomAgendaRow{position:relative;padding:7px 10px 7px 16px;border-radius:8px;background:#ffffff0a;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center}
.roomAgendaRow:before{content:"";position:absolute;left:5px;top:7px;bottom:7px;width:4px;border-radius:4px;background:#a58be8}
.roomAgendaRow.free:before{background:#4ade80}
.roomAgendaRow b{color:#e8edf4;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roomAgendaRow.free b{color:#86efac}
.roomAgendaRow small{grid-column:1;color:#8b98a8;font-size:11px}
.roomAgendaRow a{grid-row:1/3;grid-column:2;border:1px solid #2c9c6a;border-radius:7px;color:#4ade80;font-size:11px;font-weight:900;padding:5px 10px;text-decoration:none}
.officeRoomsBar{display:flex;align-items:center;gap:12px;margin:0 2px}
.officeRoomsBar small{color:#64748b;font-size:12px}
.officeRoomsBar input[type=date]{margin-left:auto;border:1px solid #d4deea;border-radius:8px;padding:7px 9px;background:#fff}
.officeBookCard{border-top:4px solid #0891b2!important}
.officeBookCard .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}
.officeBookGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:12px}
.officeBookGrid label{display:grid;gap:5px;font-size:11px;font-weight:900;color:#475569}
.officeBookGrid label.wide{grid-column:1/-1}
.officeBookGrid input,.officeBookGrid select,.officeBookGrid textarea{width:100%;border:1px solid #d4deea;border-radius:8px;padding:9px;background:#fff;font-size:13px}
.officeBookGrid textarea{resize:vertical}
.officeBookCard .policyCheck{margin-top:10px}
.officeStationModal .stationRow.roomRow{grid-template-columns:200px 1fr auto}
@media(max-width:900px){.officeStationModal .stationRow.roomRow{grid-template-columns:1fr}}
.officeSonosWrap{display:grid;gap:12px}
.sonosTabletStage{background:transparent;padding:26px 0;display:grid;place-items:center}
.sonosTablet{width:min(1040px,100%);border-radius:26px;background:#000;border:14px solid #0a0c0f;box-shadow:0 26px 60px #04101f80,0 0 0 1px #232a32;color:#e7ecf2;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;min-height:520px}
.sonosTabletHead{display:flex;align-items:center;gap:18px;padding:16px 22px;border-bottom:1px solid #ffffff0d}
.sonosTabletHead>b{font-size:16px;letter-spacing:.26em;font-weight:950}
.sonosSearchBox{flex:1;max-width:420px;margin:0 auto;display:flex;align-items:center;gap:8px;border-radius:999px;background:#15181d;color:#7c8694;font-size:12px;padding:8px 14px}
.sonosSearchBox .ico{width:14px;height:14px}
.sonosSearchBox i{font-style:normal}
.sonosHeadGear{color:#7c8694}
.sonosTabletBody{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0;min-height:0}
.sonosTabletMain{padding:18px 22px;overflow:auto;min-width:0}
.sonosTabletMain h5,.sonosSystem h5{margin:0 0 12px;font-size:13px;font-weight:950;color:#fff;letter-spacing:.02em}
.sonosTabletMain h5 em{font-style:normal;font-size:10.5px;color:#7c8694;font-weight:800;margin-left:8px}
.sonosFavGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.sonosFavTile{border:0;border-radius:10px;aspect-ratio:1/1.16;padding:12px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:2px;cursor:pointer;color:#fff;text-align:left;position:relative;overflow:hidden;box-shadow:0 8px 20px #0009}
.sonosFavTile>span{position:absolute;top:10px;left:10px;opacity:.9}
.sonosFavTile b{font-size:13.5px;font-weight:950;text-shadow:0 1px 6px #0008}
.sonosFavTile small{font-size:10.5px;color:#ffffffc9}
.sonosFavTile:hover{transform:translateY(-2px);transition:.12s ease}
.sonosFavTile.fav-0{background:linear-gradient(160deg,#f59e0b,#b0347c)}
.sonosFavTile.fav-1{background:linear-gradient(160deg,#dc2626,#7c2d12)}
.sonosFavTile.fav-2{background:linear-gradient(160deg,#16a34a,#065f46)}
.sonosFavTile.fav-3{background:linear-gradient(160deg,#eab308,#a16207)}
.sonosFavTile.fav-4{background:linear-gradient(160deg,#2563eb,#1e3a8a)}
.sonosFavTile.fav-5{background:linear-gradient(160deg,#7c3aed,#4c1d95)}
.sonosSystem{background:#101318;border-left:1px solid #ffffff0d;padding:18px 16px;border-radius:0 0 0 22px;overflow:auto}
.sonosSysZones{display:grid;gap:10px}
.sonosSysZone{display:grid;grid-template-columns:38px minmax(0,1fr) 26px;gap:10px;align-items:center;border-radius:12px;background:#181d24;padding:10px;border:1px solid transparent}
.sonosSysZone.selected{border-color:#eab30866;background:#1d222b}
.sonosSysIcon{width:38px;height:38px;border-radius:9px;border:0;background:#232a33;color:#aeb8c4;display:grid;place-items:center;cursor:pointer;font-size:13px}
.sonosSysZone.isPlaying .sonosSysIcon{color:#eab308}
.sonosSysMeta{min-width:0}
.sonosSysMeta b{display:block;font-size:12.5px;color:#fff}
.sonosSysMeta small{display:block;font-size:10.5px;color:#7c8694;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sonosSysVolRow{display:flex;align-items:center;gap:8px;margin-top:5px}
.sonosSysVolRow input[type=range]{flex:1;accent-color:#eab308;height:4px}
.sonosSysVol{font-size:11px;color:#aeb8c4;min-width:20px;text-align:right}
.sonosSysSel{width:26px;height:26px;border-radius:50%;border:2px solid #3a434e;background:transparent;color:#eab308;font-size:12px;cursor:pointer;display:grid;place-items:center}
.sonosSysSel.on{border-color:#eab308;background:#eab30822}
.sonosNowBar{display:flex;align-items:center;gap:16px;padding:12px 22px;border-top:1px solid #ffffff0d;background:#0c0f13}
.sonosNowMeta{min-width:0;flex:1}
.sonosNowMeta b{display:block;font-size:13px;color:#fff}
.sonosNowMeta small{display:block;font-size:11px;color:#7c8694;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sonosNowToggle{width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#0c0f13;font-size:15px;cursor:pointer;display:grid;place-items:center}
.sonosNowToggle:disabled{opacity:.4}
.sonosNowVol{display:flex;align-items:center;gap:8px;color:#7c8694;min-width:170px}
.sonosNowVol input[type=range]{flex:1;accent-color:#fff}
.sonosEmpty{color:#7c8694;font-size:12px}
@media(max-width:860px){.sonosTabletBody{grid-template-columns:1fr}.sonosSystem{border-left:0;border-top:1px solid #ffffff0d}}
.sonosLockPanel{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;border-left:5px solid #7c3aed!important}
.sonosLockPanel>span{width:44px;height:44px;border-radius:10px;background:#f5f3ff;color:#6d28d9;display:grid;place-items:center}
.sonosLockPanel b{display:block;font-size:14px;color:#12233d}
.sonosLockPanel small{display:block;color:#64748b;margin-top:3px;line-height:1.45}
@media(max-width:760px){.sonosZone{grid-template-columns:44px 1fr 34px 40px 40px}.sonosZone input[type=range]{grid-column:1/-1;order:9}}
.officeSecurityWrap{display:grid;gap:14px}
.securityPanel{border-top:4px solid #f97316!important}
.securityPanel .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}
.securityBtnGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:12px}
.securityActionBtn{--sec:#64748b;--sec-bg:#f8fafc;border:2px solid var(--sec);border-radius:12px;background:var(--sec-bg);padding:18px 12px;display:grid;justify-items:center;gap:6px;cursor:pointer;transition:.13s ease}
.securityActionBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 22px #0b1f3518}
.securityActionBtn:active:not(:disabled){transform:translateY(0)}
.securityActionBtn .securityActionIcon{width:52px;height:52px;border-radius:12px;background:var(--sec);color:#fff;display:grid;place-items:center}
.securityActionBtn .securityActionIcon .ico{width:26px;height:26px}
.securityActionBtn b{font-size:14px;color:#12233d}
.securityActionBtn small{font-size:10.5px;color:var(--sec);font-weight:900}
.securityActionBtn.tone-green{--sec:#16a34a;--sec-bg:#f0fdf4}
.securityActionBtn.tone-blue{--sec:#1262d6;--sec-bg:#eff6ff}
.securityActionBtn.tone-orange{--sec:#ea580c;--sec-bg:#fff7ed}
.securityActionBtn.tone-red{--sec:#dc2626;--sec-bg:#fef2f2}
.securityActionBtn.tone-purple{--sec:#7c3aed;--sec-bg:#f5f3ff}
.securityActionBtn.tone-slate{--sec:#64748b;--sec-bg:#f8fafc}
.securityActionBtn.locked{opacity:.55;cursor:not-allowed;filter:saturate(.4)}
.officeCctvWrap{display:grid;gap:12px}
.cctvGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.cctvTile{position:relative;margin:0;border-radius:10px;overflow:hidden;background:#0b0f16;border:3px solid #14181f;box-shadow:0 10px 26px #0b1f3533;aspect-ratio:16/9;cursor:pointer;transition:.13s ease}
.cctvTile:hover{transform:translateY(-2px);box-shadow:0 14px 32px #0b1f3550}
.cctvTile img{width:100%;height:100%;object-fit:cover;display:block}
.cctvTile figcaption{position:absolute;top:8px;left:8px;right:8px;display:flex;justify-content:space-between;align-items:center;gap:8px;pointer-events:none}
.cctvName{background:#000000a8;color:#fff;font-size:12px;font-weight:900;border-radius:6px;padding:5px 10px;backdrop-filter:blur(3px)}
.cctvLiveTag{font-size:9px;font-weight:950;letter-spacing:.08em;border-radius:999px;padding:4px 9px;background:#fff7ed;color:#b45309;border:1px solid #fed7aa}
.cctvLiveTag.live{background:#dcfce7;color:#166534;border-color:#86efac}
.cctvTile time{position:absolute;left:8px;bottom:8px;background:#000000a8;color:#dbe6f5;font-size:10.5px;border-radius:5px;padding:4px 8px;pointer-events:none}
.cctvDown{display:none;position:absolute;inset:0;place-items:center;background:#0b0f16f0;color:#fca5a5;font-weight:900;font-size:13px;gap:8px}
.cctvTile.isDown .cctvDown{display:grid}
.cctvFullBackdrop{display:grid;place-items:center}
.cctvFullView{width:min(1100px,94vw);background:#0b0f16;border:3px solid #14181f;border-radius:12px;overflow:hidden;box-shadow:0 30px 70px #000a}
.cctvFullBar{display:flex;align-items:center;gap:12px;padding:10px 14px;color:#fff;background:#121826}
.cctvFullBar b{font-size:14px}
.cctvFullBar span{color:#8b98ab;font-size:11px;flex:1}
.cctvFullBar button{border:1px solid #2c3646;border-radius:7px;background:#1b2434;color:#dbe6f5;padding:7px 12px;cursor:pointer}
.cctvFullView img{width:100%;display:block;max-height:76vh;object-fit:contain;background:#000}
.cctvManagerModal{max-width:920px}
.cctvQuickSetup{display:grid;gap:8px;border:1px solid #bfdbfe;border-left:5px solid #2563eb;border-radius:10px;background:#eff6ff;padding:12px;margin:12px 0 4px}
.cctvQuickSetup>b{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#1d4ed8}
.cctvQuickGrid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:8px}
.cctvQuickGrid input{border:1px solid #bfd3ee;border-radius:8px;padding:9px;background:#fff}
.cctvQuickGrid button{border:0;border-radius:8px;background:#1262d6;color:#fff;font-weight:900;padding:9px 14px;cursor:pointer;white-space:nowrap}
.cctvQuickSetup small{color:#3b5680;line-height:1.4}
@media(max-width:900px){.cctvQuickGrid{grid-template-columns:1fr}}
.stationRow.cctvRow{grid-template-columns:170px 62px 1fr auto;align-items:start}
.cctvChannelInput{text-align:center}
.cctvRowSrc{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px}
.cctvRowSrc input{border:1px solid #d4deea;border-radius:8px;padding:9px;background:#fff}
@media(max-width:900px){.stationRow.cctvRow{grid-template-columns:1fr}.cctvRowSrc{grid-template-columns:1fr}}
.amsecureStage{display:grid;place-items:center;padding:22px 0}
.amsecurePanel{position:relative;width:min(880px,100%);border-radius:34px;background:linear-gradient(180deg,#fdfdfd,#e9ebee 60%,#d9dce1);box-shadow:0 24px 55px #0b1f3540,inset 0 2px 0 #fff,inset 0 -4px 10px #00000022;padding:26px 74px 44px 30px}
.amsecureScreen{border-radius:12px;border:3px solid #14181f;background:radial-gradient(130% 120% at 50% -10%,#274268 0%,#16233c 45%,#0b1226 100%);box-shadow:inset 0 3px 16px #000c;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;min-height:430px;color:#dce6f5}
.amsecureStatusBar{display:grid;place-items:center;padding:7px 10px;background:linear-gradient(180deg,#2fe06b,#0f9c3d);color:#08290f;font-weight:950;font-size:13px;letter-spacing:.04em;text-shadow:0 1px 0 #ffffff66;box-shadow:0 2px 8px #000a}
.amsecureScreen.isArmed .amsecureStatusBar{background:linear-gradient(180deg,#f87171,#b91c1c);color:#fff;text-shadow:0 1px 2px #0008;animation:radioPulse 1.6s ease-in-out infinite}
.amsecureScreenBody{display:grid;grid-template-columns:170px minmax(0,1fr) 170px;gap:14px;align-items:center;padding:16px 16px 6px}
.amsecureTile{border:1px solid #ffffff26;border-radius:10px;background:linear-gradient(180deg,#ffffff17,#ffffff08);box-shadow:inset 0 1px 0 #ffffff30,0 4px 12px #0006;padding:14px 12px;display:grid;justify-items:center;gap:3px;text-align:center}
.amsecureDateTile b{font-size:18px;font-weight:950;color:#fff}
.amsecureDateTile small{color:#9fb2cf;font-size:11px}
.amsecureDateTile .amsecureTime{font-size:24px;margin-top:6px}
.amsecureWeatherTile img{width:54px;height:54px;filter:drop-shadow(0 2px 5px #0008)}
.amsecureWeatherTile>b{font-size:24px;font-weight:950;color:#fff}
.amsecureWeatherTile small{color:#9fb2cf;font-size:11px}
.amsecureHiLo{display:flex;gap:14px;margin-top:4px}
.amsecureHiLo span{display:grid;justify-items:center}
.amsecureHiLo b{font-size:14px;color:#fff}
.amsecureHiLo small{color:#9fb2cf;font-size:9.5px}
.amsecureHub{position:relative;aspect-ratio:1/1;max-width:340px;width:100%;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 50% 38%,#3a4c68 0%,#1c2940 55%,#101a2e 100%);border:2px solid #0a0f1c;box-shadow:inset 0 4px 18px #000c,0 8px 26px #0009,inset 0 -6px 14px #00000080}
.amsecureHub:before{content:"";position:absolute;inset:9%;border-radius:50%;border:1px solid #ffffff1c}
.amsecureHubCenter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#3c5378,#1a2a44 60%,#0d1729);border:2px solid #0a0f1c;box-shadow:0 4px 14px #000b,inset 0 1px 0 #ffffff2e;display:grid;place-items:center;align-content:center;gap:1px;color:#cfe0f7}
.amsecureHubCenter span .ico{width:22px;height:22px;color:#7fb4ff}
.amsecureHubCenter b{font-size:12px;font-weight:950;letter-spacing:.04em;color:#fff}
.amsecureHubCenter small{font-size:8.5px;letter-spacing:.22em;color:#8fa5c6}
.amsecureHubBtn{position:absolute;transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;border:2px solid #0a0f1c;background:radial-gradient(circle at 34% 28%,#43587a,#233450 58%,#141f35);box-shadow:0 6px 14px #000b,inset 0 1px 1px #ffffff38;color:#e7eefb;display:grid;place-items:center;align-content:center;gap:3px;cursor:pointer;transition:.13s ease;padding:6px}
.amsecureHubBtn:hover:not(:disabled){box-shadow:0 6px 18px #000d,inset 0 1px 1px #ffffff38,0 0 0 3px var(--sec,#7fb4ff)55}
.amsecureHubBtn:active:not(:disabled){transform:translate(-50%,-49%)}
.amsecureHubBtn .amsecureHubIcon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--sec,#64748b);box-shadow:0 2px 6px #0009,inset 0 1px 0 #ffffff44;font-size:13px}
.amsecureHubBtn .amsecureHubIcon .ico{width:17px;height:17px}
.amsecureHubBtn b{font-size:9.5px;font-weight:950;line-height:1.15;text-align:center}
.amsecureHubBtn.tone-green{--sec:#16a34a}.amsecureHubBtn.tone-blue{--sec:#2563eb}.amsecureHubBtn.tone-orange{--sec:#ea580c}.amsecureHubBtn.tone-red{--sec:#dc2626}.amsecureHubBtn.tone-purple{--sec:#7c3aed}.amsecureHubBtn.tone-slate{--sec:#64748b}
.amsecureHubBtn.locked{opacity:.5;cursor:not-allowed;filter:saturate(.35)}
.amsecureHubDot{position:absolute;top:9px;right:13px;width:7px;height:7px;border-radius:50%;background:#f59e0b;box-shadow:0 0 5px #f59e0baa}
.amsecureHubDot.live{background:#4ade80;box-shadow:0 0 6px #4ade80cc}
.amsecureDock{display:flex;justify-content:space-between;align-items:center;padding:10px 14px 12px}
.amsecureDock>div{display:flex;gap:8px}
.amsecureDockBtn{width:44px;height:38px;border-radius:8px;border:1px solid #0a0f1c;background:linear-gradient(180deg,#3c4f6e,#1d2c47 60%,#131f36);color:#cfe0f7;display:grid;place-items:center;cursor:pointer;box-shadow:0 3px 8px #0009,inset 0 1px 0 #ffffff30}
.amsecureDockBtn:hover{background:linear-gradient(180deg,#47597a,#243452 60%,#182440)}
.amsecureDockBtn .ico{width:17px;height:17px}
.amsecureDockBtn.danger{background:linear-gradient(180deg,#b91c1c,#7f1212)}
.amsecureLeds{position:absolute;right:26px;top:50%;transform:translateY(-50%);display:grid;gap:20px;justify-items:center}
.amsecureLeds span{display:grid;grid-template-columns:auto auto;gap:7px;align-items:center;color:#5a6472;font-size:13px}
.amsecureLed{width:10px;height:10px;border-radius:50%;background:#b9bfc7;box-shadow:inset 0 1px 2px #0008}
.amsecureLed.green{background:#22c55e;box-shadow:0 0 8px #22c55ecc,inset 0 1px 1px #ffffff88}
.amsecureLed.red{background:#ef4444;box-shadow:0 0 8px #ef4444cc,inset 0 1px 1px #ffffff88;animation:radioPulse 1.4s ease-in-out infinite}
.amsecureBrand{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;gap:7px}
.amsecureBrand img{width:22px;height:22px;object-fit:contain}
.amsecureBrand b{font-size:16px;color:#3f4652;font-weight:600;letter-spacing:-.01em}
.amsecureBrand b span{font-weight:950;color:#1c222b}
@media(max-width:840px){.amsecureScreenBody{grid-template-columns:1fr;justify-items:center}.amsecurePanel{padding:22px 26px 44px}.amsecureLeds{display:none}}
.securityAuditCard{border-top:4px solid #f97316!important}
.securityAuditRows{display:grid;gap:6px;margin-top:8px}
.securityAuditRow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;gap:10px;align-items:center;border:1px solid #eef2f7;border-radius:8px;background:#fbfcfe;padding:8px 10px}
.securityAuditRow b{font-size:12.5px;color:#12233d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.securityAuditRow span{font-size:12px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.securityAuditRow small{color:#64748b;font-size:11px;white-space:nowrap}
.securityAuditRow em{font-style:normal;font-size:10.5px;font-weight:950;border-radius:999px;padding:4px 10px;background:#fff7ed;color:#b45309;border:1px solid #fed7aa}
.securityAuditRow em.ok{background:#dcfce7;color:#166534;border-color:#86efac}
.officeStationModal .stationRow.securityRow{grid-template-columns:1fr;gap:6px;border:1px solid #e2e9f2;border-radius:10px;padding:10px;background:#f8fbff}
.securityRowTop{display:grid;grid-template-columns:1.1fr 1.2fr 100px auto auto;gap:8px;align-items:center}
.securityRowUrl{display:grid;grid-template-columns:1fr 86px;gap:8px}
.securityRowTop input,.securityRowUrl input,.securityRowTop select,.securityRowUrl select{border:1px solid #d4deea;border-radius:8px;padding:9px;background:#fff}
@media(max-width:900px){.securityRowTop{grid-template-columns:1fr}.securityRowUrl{grid-template-columns:1fr}}
.securityRowUrl.isLocked{grid-template-columns:1fr auto;align-items:center;background:#eef2f7;border:1px dashed #c6d2e0;border-radius:8px;padding:8px 10px}
.securityUrlLocked{font-size:12px;color:#475569;font-weight:850}
.securityUrlReplace{border:1px solid #d7e1ec;border-radius:7px;background:#fff;color:#1262d6;font-size:11px;font-weight:900;padding:6px 10px;cursor:pointer}
.securityNotifyBox{display:grid;gap:8px;border:1px solid #cfe0f2;border-radius:10px;background:#f4f9ff;padding:12px;margin:12px 0 4px}
.securityNotifyBox input[type=text],.securityNotifyBox input:not([type=checkbox]){border:1px solid #d4deea;border-radius:8px;padding:9px;background:#fff}
.securityNotifyBox small{color:#64748b;line-height:1.4}
.securitySmsChip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;border-radius:999px;padding:6px 12px;background:#dcfce7;color:#166534;border:1px solid #86efac;white-space:nowrap}
.securitySmsChip .ico{width:13px;height:13px}
.securityActionBtn{position:relative}
.securityLiveChip{position:absolute;top:8px;right:8px;font-style:normal;font-size:9px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px;background:#dcfce7;color:#166534;border:1px solid #86efac}
.securityLiveChip.demo{background:#fff7ed;color:#b45309;border-color:#fed7aa}
.officeComingPanel .railHead p{margin:4px 0 0;color:#64748b;font-size:12.5px}
.officeComingPanel ul{margin:12px 0;padding-left:20px;display:grid;gap:7px;color:#334155;font-size:13px}
.officeSoonTag{font-size:10px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:5px 11px;white-space:nowrap}
#radioDock{position:fixed;right:18px;bottom:18px;z-index:30;display:flex;align-items:center;gap:9px;background:#102033;color:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 14px 34px #0b1f3559}
#radioDock[hidden]{display:none}
#radioDock .radioDockIcon{color:#7fb4ff;display:grid;place-items:center}
#radioDock.isLive .radioDockIcon{color:#4ade80;animation:radioPulse 1.6s ease-in-out infinite}
@keyframes radioPulse{0%,100%{opacity:1}50%{opacity:.55}}
#radioDock .radioDockMeta{display:grid;line-height:1.2;min-width:120px;max-width:190px}
#radioDock .radioDockMeta b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#radioDock .radioDockMeta small{font-size:10px;color:#9fb4cf}
#radioDock button{border:1px solid #2c405c;border-radius:8px;background:#1b3050;color:#fff;width:30px;height:30px;font-size:12px;display:grid;place-items:center;cursor:pointer}
#radioDock button:hover{background:#254066}
#radioDock #radioDockToggle{width:36px;height:36px;font-size:14px;background:#1262d6;border-color:#1262d6}
#radioDock input[type=range]{width:86px;accent-color:#4ea1ff}
#radioDock #radioDockClose{background:transparent;border-color:transparent;color:#9fb4cf;font-size:16px}
.officeStationModal{max-width:760px}
.officeStationModal .stationRows{display:grid;gap:8px;margin:12px 0;max-height:46vh;overflow:auto}
.officeStationModal .stationRow{display:grid;grid-template-columns:180px 1fr 140px auto;gap:8px}
.officeStationModal .stationRow input{border:1px solid #d4deea;border-radius:8px;padding:9px;background:#fff}
@media(max-width:900px){#radioDock{left:12px;right:12px;bottom:12px;justify-content:space-between}#radioDock input[type=range]{width:64px}.officeStationModal .stationRow{grid-template-columns:1fr}}
.scopeNote{display:flex;align-items:center;gap:8px;border:1px solid #bfdbfe;border-left:5px solid #2563eb;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:850;padding:9px 12px;margin:0 0 12px}.scopeNote .ico{width:15px;height:15px;flex:0 0 auto}.scopeNote.override{border-color:#fcd34d;border-left-color:#d97706;background:#fffbeb;color:#92400e}
.railCard.resource .alertGroup{margin:10px 0 0}.alertGroup.annualLeaveFlag{background:#eff6ff;border:1px solid #bfdbfe;border-left:5px solid #2563eb;color:#1d4ed8}.alertGroup.annualLeaveFlag p span{color:#1d4ed8;font-weight:900}.alertGroup.annualLeaveFlag p small{color:#3b5680}.alertGroup.criticalFlash{position:relative;border:2px solid #dc2626;background:#fff1f2!important;box-shadow:0 0 0 3px #ef44442e,0 10px 24px #991b1b24;animation:alertFlash 1.05s ease-in-out infinite}.alertGroup.criticalFlash h4{color:#b91c1c;font-weight:1000}.alertGroup.criticalFlash:before{content:"ACTION REQUIRED";position:absolute;right:9px;top:-9px;border-radius:999px;background:#dc2626;color:#fff;padding:3px 8px;font-size:9px;font-weight:1000;letter-spacing:.04em}@keyframes alertFlash{0%,100%{box-shadow:0 0 0 3px #ef44442e,0 10px 24px #991b1b24}50%{box-shadow:0 0 0 7px #ef444466,0 14px 32px #991b1b4a;filter:saturate(1.25)}}@media(prefers-reduced-motion:reduce){.alertGroup.criticalFlash{animation:none}}
.alertTableActions .alertRowActions{display:flex;gap:6px;flex-wrap:wrap}.alertTableActions .alertRowActions button{border:1px solid #d7e1ec;border-radius:6px;background:#fff;color:#1262d6;font-size:11px;font-weight:900;padding:6px 8px}.alertTableActions .muted{color:#64748b;font-size:12px}
.resourceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.resourceGrid div{background:#f8fbff;border:1px solid #dde7f1;border-radius:6px;padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:3px}.resourceGrid small{grid-column:1/-1;font-weight:850}.resourceGrid b,.resourceGrid strong{font-size:22px}.resourceGrid span{font-size:10px;color:#536276}.liveActualTime{display:grid;justify-items:end;align-items:center;gap:4px}.liveActualTime b{font-size:28px;line-height:1}.liveActualTime span{color:#172033;font-size:20px;font-weight:950;line-height:1.05}.weather small{color:#536276}.weatherMain{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:10px;margin:10px 0}.weatherMain b{font-size:34px}.weatherMain p{margin:0;color:#536276}.weatherMain em{font-style:normal;color:#536276}.weatherForecast{display:grid}.weatherRow{height:31px;border:1px solid #e6ebf2;border-bottom:0;display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:8px;padding:0 10px}.weatherRow b{white-space:nowrap}.weatherRow span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weatherRow:last-child{border-bottom:1px solid #e6ebf2;border-radius:0 0 6px 6px}.weatherRow:first-of-type{border-radius:6px 6px 0 0}
.lower{display:grid;grid-template-columns:300px 1fr;gap:16px;margin-top:14px}.scheduleLower{border-top:1px solid var(--line);margin-top:0;padding:12px;background:#f8fbff;align-items:stretch}.scheduleLower .panel{min-height:176px}.panel{padding:0}.crewRow{height:42px;display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:10px;padding:0 16px}.crewRow i{width:8px;height:8px;background:#39ba5a;border-radius:50%}.crewRow b{display:block;font-size:12px}.crewRow small{display:block;color:#536276;font-size:11px}.faces{display:flex;align-items:center}.faces span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#dce7f5;border:2px solid #fff;margin-left:-5px;font-size:9px;font-weight:900}.faces em{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#ed3b43;color:#fff;font-size:10px;font-style:normal;margin-left:5px}
.staffLiveTrackerPanel{grid-column:1/-1;border-top:4px solid #16a34a;background:#f8fffb!important;padding:12px}.staffLiveTrackerPanel.compact{margin-bottom:14px}.staffLiveTrackerPanel .railHead{margin-bottom:8px}.staffLiveTrackerPanel .railHead small{display:block;color:#64748b;font-size:11px;margin-top:2px}.staffTrackerSummary{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.staffTrackerSummary span{border:1px solid #dbe6f1;border-radius:999px;background:#fff;padding:5px 8px;color:#475569;font-size:11px;font-weight:900}.staffTrackerSummary .working{background:#dcfce7;border-color:#86efac;color:#166534}.staffTrackerSummary .sick{background:#fef3c7;border-color:#fcd34d;color:#92400e}.staffTrackerSummary .missed{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.staffTrackerGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;max-height:288px;overflow:auto}.staffTrackerDot{width:100%;max-width:128px;aspect-ratio:1/1;justify-self:center;border:1px solid #dbe6f1;border-radius:999px;background:#fff;color:#334155;padding:9px 10px;display:grid;grid-template-rows:auto auto auto;place-items:center;text-align:center;gap:2px;box-shadow:0 4px 12px #0b1f3508}.staffTrackerDot b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;color:#172033;font-size:12px;font-weight:1000}.staffTrackerDot span{font-size:11px;font-weight:950;line-height:1.15;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staffTrackerDot small{font-size:10px;color:inherit;opacity:.78;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staffTrackerDot.working{background:#dcfce7;border-color:#22c55e;color:#166534}.staffTrackerDot.working b{background:#16a34a;color:#fff}.staffTrackerDot.sick,.staffTrackerDot.unavailable{background:#fef3c7;border-color:#f59e0b;color:#92400e}.staffTrackerDot.sick b,.staffTrackerDot.unavailable b{background:#f59e0b;color:#122033}.staffTrackerDot.missed{background:#fee2e2;border-color:#ef4444;color:#991b1b;animation:staffMissedFlash 1.05s ease-in-out infinite}.staffTrackerDot.missed b{background:#dc2626;color:#fff}.staffTrackerDot.scheduled{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.staffTrackerDot.scheduled b{background:#1262d6;color:#fff}.staffTrackerDot.finished{background:#f1f5f9;border-color:#cbd5e1;color:#475569}.staffTrackerDot.finished b{background:#64748b;color:#fff}@keyframes staffMissedFlash{0%,100%{box-shadow:0 0 0 2px #ef44442e,0 6px 14px #991b1b22}50%{box-shadow:0 0 0 8px #ef44445c,0 12px 26px #991b1b3b;filter:saturate(1.24)}}@media(prefers-reduced-motion:reduce){.staffTrackerDot.missed{animation:none}}
.staffLiveTrackerPanel{min-height:380px}.staffLiveTrackerPanel.compact{min-height:300px}.staffTrackerGrid{grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px;max-height:520px;align-items:start}.staffTrackerDot{max-width:none;aspect-ratio:auto;justify-self:stretch;min-height:74px;border-radius:10px;padding:10px 12px;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;place-items:center start;text-align:left;gap:3px 10px}.staffTrackerDot b{grid-row:1/3;width:40px;height:40px}.staffTrackerDot span{max-width:none;overflow:visible;text-overflow:clip;white-space:normal;font-size:12px;line-height:1.2}.staffTrackerDot small{max-width:none;overflow:visible;text-overflow:clip;white-space:normal;font-size:10.5px;line-height:1.25}.staffTrackerDot.missed{animation:none}.staffTrackerDot.missed b{animation:staffMissedFlash 1.05s ease-in-out infinite}.staffTrackerDot.working b{animation:staffOnsiteFlash 1.25s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.staffTrackerDot.missed b,.staffTrackerDot.working b{animation:none}}
.assetTiles{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;padding:12px}.assetTiles article,.assetCards article{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;cursor:pointer}.assetTiles article{display:grid;grid-template-rows:132px auto auto auto;min-height:232px}.assetPic{height:132px;background:#dfe8f5;display:grid;place-items:center;padding:14px;overflow:hidden}.assetPic img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.assetTiles h4,.assetCards h4{margin:10px 10px 4px;font-size:13px;display:flex;justify-content:space-between}.assetTiles h4 i,.assetCards h4 i{width:8px;height:8px;border-radius:50%;background:#38c358}.assetTiles h4 i.warn,.assetCards h4 i.warn{background:#f3bd22}.assetTiles p,.assetTiles small,.assetCards p,.assetCards small{display:block;margin:0 10px 8px;color:#536276;font-size:12px}
.assetPage{padding:18px}.assetLibraryLayout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:16px}.assetCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.assetCards article{display:grid;grid-template-rows:170px auto auto auto;min-height:282px}.assetCards .assetPic{height:170px;padding:18px}.assetDetail{position:sticky;top:78px;align-self:start}.assetDetailCard{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 12px 30px #0b1f3514}.assetDetailCard>img{width:100%;height:210px;object-fit:contain;background:#dfe8f5;padding:22px}.assetDetailBody{padding:16px;position:relative}.assetDetailBody h2{margin:0;font-size:28px}.assetDetailBody h3{margin:4px 0 14px;font-size:16px;color:#334155}.assetDetailBody dl{display:grid;grid-template-columns:130px 1fr;gap:8px 12px;margin:0 0 16px}.assetDetailBody dt{font-weight:900;color:#475569}.assetDetailBody dd{margin:0;color:#1f2e44}.closeDetail{position:absolute;right:12px;top:12px;color:#1262d6;background:transparent}.profileTabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 14px}.profileTabs button{border:1px solid #d9e2ec;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;color:#475569;background:#f8fbff}.profileTabs button.active{border-color:#1262d6;background:#eaf3ff;color:#0d62d9}.profilePane{border:1px solid #e3ebf4;border-radius:8px;background:#fbfdff;padding:12px;margin-bottom:12px}.paneHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.paneHead h4{margin:0;font-size:13px}.paneHead button{border-radius:7px;background:#1262d6;color:#fff;padding:7px 10px;font-weight:850}.profileRows{display:grid;gap:8px}.profileRows article{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:9px;display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.profileRows b{display:block;font-size:12px}.profileRows span{display:block;font-size:11px;color:#475569;margin-top:2px}.profileRows small{display:block;color:#64748b;margin-top:2px;line-height:1.35}.profileRows a{color:#1262d6;font-weight:850;text-decoration:none}.primary{background:#1262d6!important;color:#fff!important;border-radius:8px;padding:10px 14px;font-weight:850}
.civil span,.civil.staffAvatar,.civil.legendDot,.chips .civil{background:#155eef!important}.electrical span,.electrical.staffAvatar,.electrical.legendDot,.chips .electrical{background:#7c3aed!important}.projects span,.projects.staffAvatar,.projects.legendDot,.chips .projects{background:#0f766e!important}.administrator span,.administrator.staffAvatar,.administrator.legendDot,.chips .administrator{background:#f59e0b!important;color:#122033!important}.management span,.management.staffAvatar,.management.legendDot,.chips .management{background:#334155!important}.director span,.director.staffAvatar,.director.legendDot,.chips .director{background:#be123c!important}.other span,.other.staffAvatar,.other.legendDot,.chips .other{background:#64748b!important}.staffPage{padding:18px}.staffLayout{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:16px}.staffCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.staffCard{min-height:96px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;padding:12px;display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto auto;gap:3px 10px;align-items:center}.staffCard.active{border-color:#1262d6;box-shadow:0 0 0 2px #1262d61f}.staffAvatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:950;grid-row:1/4}.staffAvatar.big{width:66px;height:66px;font-size:18px}.staffCard b{font-size:14px}.staffCard small{color:#64748b}.staffCard em{font-style:normal;color:#334155;font-size:12px}.staffDetail{position:sticky;top:78px;align-self:start}.staffDetailCard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:0 12px 30px #0b1f3514}.staffProfileHead{display:flex;gap:14px;align-items:center;border-bottom:1px solid #e5edf5;padding-bottom:14px;margin-bottom:14px}.staffProfileHead h2{margin:0;font-size:24px}.staffProfileHead p{margin:4px 0;color:#334155}.staffProfileHead small{color:#64748b}.staffDetailCard dl{display:grid;grid-template-columns:110px 1fr;gap:9px 12px}.staffDetailCard dt{font-weight:900;color:#475569}.staffDetailCard dd{margin:0;color:#1f2e44}.legendDot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:-1px}.detailActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.detailActions button{border-radius:8px;background:#eef4fb;color:#122033;padding:10px 14px;font-weight:850}
.jobsWorkspace{padding:18px;display:grid;grid-template-columns:280px 1fr;gap:16px}.jobsWorkspace.menuCollapsed{grid-template-columns:1fr}.jobsWorkspace.menuCollapsed .jobsList{display:none}.jobsList{padding:12px;align-self:start;position:sticky;top:78px}.jobsList>button{width:100%;text-align:left;border:1px solid #dce5ef;border-radius:8px;background:#fff;margin-bottom:8px;padding:10px;display:grid;gap:3px}.jobsList>button.active{border-color:#1262d6;background:#eff6ff}.jobsList b{font-size:13px}.jobsList span{color:#334155}.jobsList small{color:#64748b}.jobMain{min-width:0}.jobHero{padding:18px;display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.jobHero .backBtn{margin-bottom:10px}.jobHero h2{margin:0;font-size:26px}.jobHero p{margin:5px 0 0;color:#64748b}.jobMeta{text-align:right;display:grid;gap:4px}.jobMeta span{color:#1262d6;font-weight:900}.jobMeta b{font-size:28px}.jobMeta small{color:#64748b}.jobSections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.jobSection{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px}.jobSection.wide{grid-column:1/-1}.miniSchedule{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.miniSchedule>div{min-height:92px;border:1px solid #dde7f1;border-radius:8px;background:#f8fbff;padding:8px}.miniSchedule b{display:block;font-size:11px;margin-bottom:7px}.miniSchedule span{display:block;background:#fff;border-left:3px solid #1262d6;border-radius:5px;padding:6px;font-size:12px;margin-bottom:6px}.miniSchedule small{display:block;color:#64748b;margin-top:2px}.costGrid{display:grid;grid-template-columns:1fr auto;gap:10px}.costGrid span{color:#64748b}.costGrid b{font-size:17px}.jobRows p{display:grid;grid-template-columns:1fr auto;gap:3px 10px;border-bottom:1px solid #edf2f7;padding:8px 0;margin:0}.jobRows p:last-child{border-bottom:0}.jobRows b{font-size:13px}.jobRows span{color:#64748b}.jobRows small{font-weight:900}.jobRows em{font-style:normal;color:#64748b}.poHint{border-top:1px solid #edf2f7;color:#64748b;font-size:12px;line-height:1.35;margin-top:9px;padding-top:9px}.photoCats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.photoCats h4{font-size:12px;margin:0 0 8px}.photoGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.photoGrid div{height:82px;border:1px dashed #c9d6e5;border-radius:8px;background:#f8fbff;display:grid;place-items:center;text-align:center;padding:8px}.photoGrid .ico{width:24px;height:24px;color:#64748b}.photoGrid small{color:#64748b}
.jobsWorkspace{grid-template-columns:300px minmax(0,1fr)}.jobsWorkspace.menuCollapsed .jobsSidebar{display:none}.jobsSidebar{align-self:start;position:sticky;top:78px;display:grid;gap:12px;min-width:0}.jobsSidebar .jobsList{position:static;top:auto}.jobSubnavPanel{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 8px 20px #0b1f3508;overflow:hidden}.jobSubnavHead{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:14px;border-bottom:1px solid #e5edf5;background:#f8fbff}.jobSubnavHead>span{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#1262d6;color:#fff}.jobSubnavHead .ico{width:22px;height:22px}.jobSubnavHead b,.jobSubnavHead small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jobSubnavHead b{font-size:15px;color:#122033}.jobSubnavHead small{color:#64748b;margin-top:2px}.jobSubnavPanel nav{display:grid;padding:10px;gap:4px}.jobSubnavPanel button{min-height:42px;border-radius:8px;background:transparent;color:#334155;display:flex;align-items:center;gap:10px;padding:0 10px;text-align:left;font-weight:900}.jobSubnavPanel button:hover{background:#f1f6fc}.jobSubnavPanel button.active{background:#eff6ff;color:#0d62d9;box-shadow:inset 3px 0 0 #1262d6}.jobSubnavPanel button .ico{width:18px;height:18px;flex:0 0 auto}.jobDashboardStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}.jobDashboardStats .miniStat{padding:12px;min-height:82px}.jobDashboardCards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.jobDashboardCards>div{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:4px;min-width:0}.jobDashboardCards small{color:#64748b;font-weight:900}.jobDashboardCards b{font-size:14px;color:#122033;line-height:1.25;overflow-wrap:anywhere}.jobDashboardCards span{color:#64748b;line-height:1.35;overflow-wrap:anywhere}.jobQuickActionGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.jobQuickActionGrid button{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;color:#172033;text-align:left;padding:12px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:3px 10px;align-items:center;min-height:84px}.jobQuickActionGrid button span{grid-row:1/3;width:34px;height:34px;border-radius:8px;background:#eff6ff;color:#1262d6;display:grid;place-items:center}.jobQuickActionGrid .ico{width:18px;height:18px}.jobQuickActionGrid b{font-size:13px;overflow-wrap:anywhere}.jobQuickActionGrid small{color:#64748b;line-height:1.3}.jobQuickActionsPanel.compact .jobQuickActionGrid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.taskPlannerBlock{border:1px solid #dce5ef;border-radius:8px;background:#f8fbff;padding:12px;display:grid;gap:10px;margin-top:10px}.taskPlannerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.taskPlannerHead b{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#122033}.taskPlannerHead span{font-size:12px;color:#64748b;line-height:1.35;max-width:520px}.taskPlannerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.taskPlannerGrid label{display:grid;gap:5px;font-size:11px;font-weight:900;color:#475569}.taskPlannerGrid input{width:100%;border:1px solid #d4deea;border-radius:8px;padding:9px;background:#fff;color:#172033}.taskPlannerGrid input:disabled{background:#eef3f8;color:#64748b}.taskTemplatesPage{padding:18px clamp(18px,2.2vw,28px) 24px;overflow-x:hidden}.taskTemplatesLayout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.taskTemplatesMain{display:grid;gap:14px;min-width:0}.taskTemplatesRail{display:grid;gap:14px;align-self:start;position:sticky;top:78px}.taskTemplatesRail .record{padding:14px;border-left:5px solid #1262d6}.taskTemplateStats{grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:0}.taskTemplatesTablePanel,.taskTemplatesFuturePanel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 1px 2px #0b1f3508;overflow:hidden}.taskTemplatesTablePanel .railHead,.taskTemplatesFuturePanel .railHead{padding:14px 16px;border-bottom:1px solid #e6edf6;background:linear-gradient(180deg,#fff 0%,#f8fbfe 100%)}.taskTemplatesTablePanel .railHead small,.taskTemplatesFuturePanel .railHead small{display:block;color:#64748b;margin-top:3px;line-height:1.35}.taskTemplatesTablePanel table{border:0}.taskTemplatesTablePanel thead th:last-child,.taskTemplatesTablePanel tbody td:last-child{text-align:right}.taskTemplatesTablePanel td strong{display:block;font-size:13px;color:#122033}.taskTemplatesTablePanel td small{display:block;color:#64748b;line-height:1.35;margin-top:2px;overflow-wrap:anywhere}.taskTemplatesTablePanel .tag,.taskTemplateFutureCard .tag{display:inline-flex;margin:0}.taskTemplatesTablePanel tbody tr.taskTemplateFutureRow td{background:#fcfdff}.taskTemplatesTablePanel tbody tr.taskTemplateActiveRow td:first-child{box-shadow:inset 4px 0 0 #1262d6}.taskTemplatesTablePanel tbody tr.taskTemplateFutureRow td:first-child{box-shadow:inset 4px 0 0 #cbd5e1}.templateActions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.templateActions button,.taskTemplateFutureCard .actions button{padding:7px 9px;font-size:12px}.taskTemplateFutureCard{border:1px solid #dce5ef;border-radius:8px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);padding:12px;display:grid;gap:8px;box-shadow:0 1px 2px #0b1f3508;border-top:4px solid #1262d6}.taskTemplateFutureCard.empty{border-style:dashed;border-top-style:dashed;border-top-color:#cbd5e1}.taskTemplateFutureCard h4{margin:0;font-size:15px;color:#122033;line-height:1.25}.taskTemplateFutureCard p,.taskTemplateFutureCard small{margin:0;color:#64748b;line-height:1.35;overflow-wrap:anywhere}.taskTemplateFutureGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;padding:12px}.taskTemplateHint{border:1px solid #dce5ef;border-radius:8px;background:#fff7ed;color:#9a3412;padding:10px 12px;font-size:12px;line-height:1.4;font-weight:700}.jobSection .railHead>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.poStatusGrid{display:grid;grid-template-columns:1fr auto;gap:5px 10px;border:1px solid #e3ebf4;border-radius:8px;background:#f8fbff;padding:10px;margin-bottom:10px}.poStatusGrid span{color:#64748b;font-size:12px}.poStatusGrid b{font-size:14px}.materialPickList,.claimPickList{display:grid;gap:8px;margin:10px 0}.materialPickList label,.claimPickList label{border:1px solid #dfe7f1;border-radius:8px;background:#f8fbff;padding:10px;display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center}.materialPickList b,.claimPickList b{display:block;font-size:13px}.materialPickList small,.claimPickList small{display:block;color:#64748b;margin-top:2px}.materialPickList strong,.claimPickList strong{font-size:13px}.poBuilder{border-top:1px solid #edf2f7;margin-top:10px;padding-top:10px;display:grid;grid-template-columns:minmax(220px,1.25fr) minmax(200px,1.1fr) 160px minmax(240px,1.1fr) auto;gap:8px;align-items:center}.claimBuilder{border-top:1px solid #edf2f7;margin-top:10px;padding-top:10px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.claimBuilder h4{grid-column:1/-1;margin:0;color:#243149}.poBuilder select,.poBuilder input,.claimBuilder input{border:1px solid #d4deea;border-radius:8px;background:#fff;padding:10px;min-width:0}.searchSelect{display:grid;gap:6px;min-width:0;width:100%}.searchSelectToggle{width:100%;min-height:42px;border:1px solid #d4deea;border-radius:10px;background:#fff;color:#172033;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-weight:800;cursor:pointer}.searchSelectToggle span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.searchSelectToggle i{font-style:normal;color:#64748b;font-weight:900}.searchSelectToggle:focus-visible{outline:3px solid #1262d633;outline-offset:2px}.searchSelectPanel{display:grid;gap:8px;border:1px solid #d4deea;border-radius:12px;background:#fff;box-shadow:0 18px 40px #0b1f3514;padding:10px}.searchSelectPanel[hidden]{display:none}.searchSelectToolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.searchSelectToolbar input{border:1px solid #d4deea;border-radius:8px;background:#fff;padding:9px 10px;min-width:0}.searchSelectToolbar button{border:1px solid #d4deea;border-radius:8px;background:#f8fafc;color:#334155;padding:9px 11px;font-weight:900}.searchSelectList{display:grid;gap:6px;max-height:260px;overflow:auto;padding-right:2px}.searchSelectOption{border:1px solid #dbe5ef;border-radius:10px;background:#fff;color:#172033;padding:10px 11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;text-align:left}.searchSelectOption:hover{border-color:#1262d6;background:#eff6ff}.searchSelectOption.is-selected{border-color:#1262d6;background:#dce9ff}.searchSelectOption span{display:grid;gap:2px;min-width:0}.searchSelectOption b{font-size:13px;line-height:1.2}.searchSelectOption small{font-size:11px;line-height:1.25;color:#64748b}.searchSelectOption em{font-style:normal;font-size:10px;font-weight:950;color:#1262d6;white-space:nowrap;align-self:center}.searchSelectCurrent{background:#f8fbff}.searchSelectEmpty{border:1px dashed #d4deea;border-radius:10px;background:#f8fbff;color:#64748b;padding:10px 11px;font-size:12px}.staffTimeGrid{display:grid;gap:8px}.staffTimeCard{border:1px solid #dfe7f1;border-radius:8px;background:#f8fbff;text-align:left;padding:10px;display:grid;gap:3px}.staffTimeCard b{font-size:13px}.staffTimeCard span{font-weight:950;color:#1262d6}.staffTimeCard small{color:#64748b}.timesheetSummary{display:flex;align-items:center;gap:12px;margin:10px 0 12px}.timesheetSummary b{font-size:22px}.timesheetSummary span{color:#64748b}.staffMonthCalendar{display:grid;grid-template-columns:repeat(7,minmax(72px,1fr));gap:6px}.staffMonthDay{min-height:74px;border:1px solid #dfe7f1;border-radius:8px;background:#fff;padding:7px;display:flex;flex-direction:column;gap:3px}.staffMonthDay.muted{background:#f8fafc;color:#94a3b8}.staffMonthDay strong{font-size:12px}.staffMonthDay span{border-radius:999px;background:#eaf3ff;color:#0d62d9;padding:2px 6px;font-size:11px;font-weight:950;width:max-content}.staffMonthDay small{font-size:10px;color:#64748b}
.loading,.page{padding:18px}.pageHead{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;margin-bottom:14px}.pageHead h2{margin:0}.pageHead div,.actions{display:flex;gap:8px;flex-wrap:wrap}.titleWithBack{display:flex!important;align-items:center;gap:10px;min-width:0}.backBtn{border:1px solid #d7e1ec!important;background:#fff!important;color:#172033!important;border-radius:8px!important;padding:8px 10px!important;font-weight:850!important;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.backBtn .ico{width:16px;height:16px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.record{padding:16px}.tag{display:inline-block;background:#e0f2fe;color:#075985;border-radius:999px;padding:5px 10px;margin:10px 0;font-size:12px;font-weight:900}.dangerBtn{background:#fee2e2!important;color:#991b1b!important}.form{padding:18px;margin-bottom:16px}.formGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.form textarea{margin-top:10px;min-height:80px}.line{display:grid;grid-template-columns:1fr 90px 110px 120px;gap:8px;align-items:center;margin-bottom:8px}.total{text-align:right;font-size:20px;font-weight:900;margin-top:10px}table{width:100%;border-collapse:collapse;overflow:hidden}th,td{text-align:left;padding:12px;border-bottom:1px solid #e2e8f0}th{background:#f8fafc;text-transform:capitalize;font-size:12px;color:#475569}tbody tr:nth-child(even){background:#f8fbff}tbody tr:nth-child(odd){background:#fff}tbody tr:hover{background:#eef6ff}.empty{padding:30px;color:#64748b;text-align:center}
.crewCards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.crewCard{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;gap:10px}.crewCard h3{margin:0;font-size:17px}.crewCard p{margin:4px 0 0;color:#64748b}.crewMembers{display:flex;align-items:center;min-height:42px}.crewMembers .staffAvatar{margin-right:-6px;border:2px solid #fff}.crewMemberNames{font-size:12px;color:#475569;line-height:1.4}.memberBuilder{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;margin:12px 0}.memberBuilder select{width:100%;border:1px solid #d4deea;border-radius:8px;padding:11px;background:#fff}.miniCal{display:grid;grid-template-columns:1fr 1fr;gap:8px}.miniCal label{font-size:11px;font-weight:900;color:#475569}.miniCal input{margin-top:4px}.ticketEditor{border:1px solid #d9e2ec;border-radius:8px;background:#f8fbff;padding:12px;margin:12px 0}.ticketEditor h4,.ticketList h4{margin:0 0 10px}.ticketLine{display:grid;grid-template-columns:1.2fr 170px 1.5fr;gap:8px;margin-bottom:8px}.ticketList{border-top:1px solid #e5edf5;margin-top:12px;padding-top:12px}.ticketList p{display:grid;grid-template-columns:1fr auto;gap:3px 10px;border-bottom:1px solid #edf2f7;margin:0;padding:7px 0}.ticketList p:last-child{border-bottom:0}.ticketList small{grid-column:1/-1;color:#64748b}
.library{border:1px solid #d9e2ec;border-radius:8px;background:#f8fafc;padding:12px;margin:14px 0}.libraryHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.libraryHead h4{margin:0}.libraryHead input{max-width:420px}.librarySearchRow{display:grid;grid-template-columns:minmax(260px,1fr) 160px 86px;gap:8px;flex:1}.librarySearchRow input,.librarySearchRow select{width:100%;max-width:none;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:9px}.libraryCategoryBar{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}.libraryCategoryBar button{border:1px solid #d3deeb;border-radius:999px;background:#fff;color:#334155;padding:7px 10px;font-size:12px;font-weight:900}.libraryCategoryBar button.active{background:#1262d6;color:#fff;border-color:#1262d6}.libraryCategoryBar small{font-size:10px;opacity:.78;margin-left:4px}.libraryMeta{font-size:12px;font-weight:900;color:#64748b;margin:0 0 10px}.libraryGroupRow td{background:#eaf3ff!important;color:#0d62d9;font-weight:950;text-transform:uppercase;font-size:12px}.libraryGroupRow small{margin-left:8px;color:#64748b;text-transform:none}.libRows{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;max-height:290px;overflow:auto}.libItem{background:white;color:#172033;border:1px solid #d9e2ec;border-radius:8px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;text-align:left;padding:10px;font-weight:600}.libItem span{display:flex;flex-direction:column;gap:3px}.libItem small{font-size:11px;color:#64748b}.libItem strong{white-space:nowrap;color:#0d2338}.quoteFlowNotice{border:1px solid #dce7f2;border-left:5px solid #1262d6;border-radius:8px;background:#f8fbff;padding:12px 14px;margin:0 0 14px;display:grid;gap:8px}.quoteFlowNotice p{margin:0;color:#475569;font-weight:800;line-height:1.35}.quoteSourceStrip{display:flex;gap:7px;flex-wrap:wrap}.quoteSourceStrip span{border:1px solid #d5e2f0;border-radius:999px;background:#fff;color:#334155;padding:7px 10px;font-size:11px;font-weight:950;display:inline-flex;align-items:center;gap:6px}.quoteSourceStrip .ico{width:14px;height:14px;color:#1262d6}.quoteBuilderShell{border:1px solid #cfdceb;background:#fff;padding:0;overflow:hidden;box-shadow:0 8px 22px #0b1f3508}.quoteBuilderHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:15px 16px;border-bottom:1px solid #e5edf5;background:#f8fbff}.quoteBuilderHeader h3{margin:0;color:#122033}.quoteBuilderHeader p{margin:4px 0 0;color:#64748b;font-weight:800;line-height:1.35}.quoteBuilderHeaderActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.quoteBuilderHeaderActions button,.quoteSummaryActions button{border-radius:8px;padding:9px 11px;font-size:12px;font-weight:950}.quoteBuilderTop{display:grid;grid-template-columns:160px minmax(220px,1.1fr) minmax(190px,1fr) 150px;gap:10px;padding:14px 16px;border-bottom:1px solid #edf2f7}.quoteBuilderTop label{display:grid;gap:5px;font-size:11px;font-weight:950;color:#475569}.quoteBuilderTop label.wide{grid-column:1/-1}.quoteBuilderTop input,.quoteBuilderTop select,.quoteBuilderTop textarea,.quoteActivityPanel>input{width:100%;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:10px;color:#172033}.quoteBuilderTop textarea{min-height:62px;margin:0}.quoteBuilderShell>.quoteSourceStrip{padding:10px 16px;border-bottom:1px solid #edf2f7;background:#fff}.quoteBuilderWorkspace{display:grid;grid-template-columns:minmax(0,1.55fr) 310px;gap:0;background:#eef4fb}.quoteBuilderWorkspace>section,.quoteBuilderWorkspace>aside{background:#fff;border-right:1px solid #dce7f2;border-bottom:1px solid #dce7f2;padding:12px;min-width:0}.quoteActivityPanel,.quoteLinesPanel,.quoteLibraryPanel,.quoteOutputPanel{display:grid;gap:10px}.quoteActivityPanel .railHead,.quoteLinesPanel .railHead,.quoteOutputPanel .railHead{margin:0}.quoteLivePanel{grid-column:2;grid-row:1 / span 3;border-right:0!important;position:sticky;top:74px;align-self:start}.quoteLibraryPanel{grid-column:1 / -1}.quoteOutputPanel{grid-column:1 / -1}.quoteActivityTable{max-height:340px;overflow:auto;border:1px solid #e3ebf4;border-radius:8px}.quoteActivityTable table{font-size:12px}.quoteActivityTable td strong{display:block;color:#122033}.quoteActivityTable td small{display:block;color:#64748b;line-height:1.25;margin-top:2px}.quoteActivityTable button{border-radius:7px;background:#1262d6;color:#fff;padding:7px 9px;font-size:12px;font-weight:950}.quoteLineHead,.quoteBuilder .quoteLine{display:grid;grid-template-columns:minmax(94px,.7fr) minmax(230px,1.45fr) 72px 70px 92px 96px 104px 96px minmax(118px,.75fr) 44px;gap:8px;align-items:center}.quoteLineHead{color:#64748b;font-size:10px;font-weight:950;text-transform:uppercase;padding:0 0 4px}.quoteBuilder .quoteLine{margin-bottom:8px;border:1px solid #e2eaf3;border-radius:8px;background:#fff;padding:8px}.quoteBuilder .quoteLine.packageLine{border-left:5px solid #1262d6;background:#f8fbff}.quoteBuilder .quoteLine input{width:100%;border:1px solid #d4deea;border-radius:7px;background:#fff;padding:8px;color:#172033;min-width:0}.quoteBuilder .library{background:#f8fbff;border-color:#cbd8e6;margin:0}.quoteBuilder .libraryHead{align-items:start}.quoteBuilder .libRows{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));max-height:390px}.quoteBuilder .libItem{background:#fff!important;color:#172033!important;border:1px solid #d6e0ed!important;border-radius:7px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:72px;padding:9px 10px!important;box-shadow:none;text-align:left}.quoteBuilder .libItem:hover{border-color:#1262d6!important;background:#eff6ff!important}.quoteBuilder .libItem span{min-width:0}.quoteBuilder .libItem b{font-size:12px;color:#0d2338}.quoteBuilder .libItem em{font-style:normal;font-size:12px;color:#172033;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quoteBuilder .libItem small{font-size:10px;line-height:1.25;color:#64748b}.quoteBuilder .libItem strong{font-size:12px;color:#0d2338;white-space:nowrap}.quoteLivePanel h3{margin:0 0 10px}.quoteTotalHero{border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;padding:12px;margin-bottom:10px}.quoteTotalHero span,.quoteTotalHero small{display:block;color:#475569;font-weight:900}.quoteTotalHero b{display:block;font-size:30px;color:#0d62d9;margin:2px 0}.quoteSummaryGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quoteSummaryGrid span,.quoteOutputGrid article{border:1px solid #dce7f2;border-radius:8px;background:#f8fbff;padding:10px;display:grid;gap:2px}.quoteSummaryGrid b,.quoteOutputGrid b{font-size:17px;color:#122033}.quoteSummaryGrid small,.quoteOutputGrid small{color:#64748b;font-size:11px;font-weight:850;line-height:1.25}.quoteSnapshotBadge{border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;color:#166534;padding:9px 10px;margin:10px 0;font-weight:950;display:flex;align-items:center;gap:7px}.quoteSummaryActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quoteOutputGrid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:8px}.quoteOutputRows{display:grid;gap:6px;margin-top:8px}.quoteOutputRows p{display:grid;grid-template-columns:minmax(0,1.4fr) 120px minmax(180px,1fr) auto;gap:8px;align-items:center;border:1px solid #e3ebf4;border-radius:8px;background:#f8fbff;padding:8px;margin:0}.quoteOutputRows b,.quoteOutputRows span,.quoteOutputRows small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quoteOutputRows span{font-size:11px;font-weight:950;color:#0d62d9}.quoteOutputRows small{color:#64748b}.quoteOutputRows em{font-style:normal;font-weight:950}.emptySmall{padding:14px;color:#64748b}.miniBtn{padding:6px 9px}.lineTotals{display:grid;gap:2px;align-content:center}.lineTotals b{font-size:13px}.lineTotals small{font-size:10px;color:#64748b;line-height:1.2}.poBuilderList{border-top:1px solid #edf2f7;margin-top:10px;padding-top:10px}.jobProcurementPanel{display:grid;gap:14px}.procurementSummaryGrid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.procurementSummaryGrid span{border:1px solid #dce8f5;border-radius:8px;background:#f8fbff;padding:10px;display:grid;gap:3px}.procurementSummaryGrid b{font-size:19px;color:#0d2338}.procurementSummaryGrid small{color:#64748b;font-weight:850}.procurementBlock{border:1px solid #e2ebf5;border-radius:8px;background:#fff;padding:12px}.procurementItemRows{display:grid;gap:8px}.procurementItemRows label{border:1px solid #dfe7f1;border-radius:8px;background:#f8fbff;padding:10px;display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;gap:10px;align-items:center}.procurementItemRows label.linked{background:#f1f5f9}.procurementItemRows b{display:block;font-size:13px}.procurementItemRows small{display:block;color:#64748b;margin-top:2px}.procurementItemRows strong{font-size:13px}.procurementItemRows em{font-style:normal;color:#64748b;font-size:12px}.jobPoRegister{display:grid;gap:8px}.jobPoRegister article{border:1px solid #dfe7f1;border-radius:8px;background:#f8fbff;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;align-items:center}.jobPoRegister b{font-size:13px}.jobPoRegister span,.jobPoRegister small{display:block;color:#64748b;margin-top:2px}.jobPoRegister strong{font-size:14px}.jobPoRegister em{font-style:normal;font-weight:900;color:#0d62d9}.jobPoRegister .actions{justify-content:flex-end}.jobProcurementPanel .poBuilder{grid-template-columns:180px minmax(180px,1fr) 160px minmax(220px,1.2fr) auto;border-top:0;margin-top:12px;padding-top:0}.jobProcurementPanel .poBuilder input{width:100%;min-width:0}
.crewStickerList{display:flex;gap:8px;overflow:auto;padding-bottom:2px}.crewSticker{min-width:132px;height:38px;border:1px solid #d6e0ed;border-radius:8px;background:#fff;display:grid;align-content:center;text-align:left;padding:4px 9px;flex:0 0 auto}.crewSticker span{font-size:11px;color:#172033!important;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crewSticker small{font-size:9px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crewSticker.selected{border-color:#1262d6;box-shadow:0 0 0 2px #1262d626}.day{height:58px;gap:2px}.clearDay{font-size:9px;border:1px solid #d9e2ec;border-radius:999px;background:#fff;color:#64748b;padding:1px 6px}.scheduleAssets span{width:48px;min-height:38px;height:auto;grid-template-rows:23px 9px 10px;position:relative}.scheduleAssets button,.chips button,.crewBadges button{border-radius:999px;background:#fff;color:#991b1b;border:1px solid #fecaca;font-size:9px;line-height:1;padding:1px 4px}.crewBadges{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.crewBadges span{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:2px 4px;font-size:9px;font-weight:900;color:#334155;display:flex;gap:3px;align-items:center}.chips span{width:auto;min-width:24px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:2px;padding:0 3px}.cardTools{display:flex;gap:3px;justify-content:center}.cardTools button,.dangerSoft{border:1px solid #fecaca!important;background:#fff1f2!important;color:#991b1b!important;border-radius:6px!important;font-size:10px!important;padding:3px 6px!important;font-weight:900!important}.cardTools button.editSoft,.jobActivityActions button.editSoft{border-color:#bfdbfe!important;background:#eff6ff!important;color:#1262d6!important}
.quoteToolbar{display:flex;gap:10px;margin:0 0 14px}.quoteToolbar input,.quoteToolbar select,.boqPage input{border:1px solid #d4deea;border-radius:8px;padding:10px;background:#fff}.quoteToolbar input{flex:1}.quoteStats{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:14px}.miniStat{display:grid;gap:3px;min-height:84px}.miniStat small{color:#64748b;font-weight:900}.miniStat b{font-size:24px}.miniStat span{color:#64748b}.miniStat.danger{border-color:#fecaca;background:#fff7f7}.stackedActions{align-items:flex-start}.stackedActions button{font-size:12px;padding:7px 9px}.boqPage .jobSection{margin-bottom:14px}.boqPage table input{width:100%;border:1px solid #d4deea;border-radius:6px;padding:7px;background:#fff}
.quoteRegisterPage.quoteBuilderFocused>.quoteFlowNotice,.quoteRegisterPage.quoteBuilderFocused>.quoteStats,.quoteRegisterPage.quoteBuilderFocused>.quoteToolbar,.quoteRegisterPage.quoteBuilderFocused>#quoteRegister{display:none!important}.quoteRegisterPage.quoteBuilderFocused{display:grid;gap:10px}.quoteRegisterPage.quoteBuilderFocused .quoteBuilderWorkspace{grid-template-columns:minmax(0,1.7fr) 300px}.quoteRegisterPage.quoteBuilderFocused .quoteActivityTable{max-height:470px}.quoteRegisterPage.quoteBuilderFocused .quoteBuilder .libRows{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));max-height:560px}.quoteRegisterPage.quoteBuilderFocused .quoteOutputPanel{margin-top:0}
.scheduleRoles{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:4px;margin:3px 0}.scheduleRoles label{display:grid;grid-template-columns:20px 1fr;align-items:center;gap:3px;font-size:9px;font-weight:950;color:#475569}.scheduleRoles select{min-width:0;width:100%;height:22px;border:1px solid #cbd5e1;border-radius:5px;background:#fff;padding:0 3px;font-size:10px;color:#172033}
.scheduleQuickAdd{border-bottom:1px solid var(--line);background:#f8fbff;padding:12px}.scheduleQuickGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.scheduleQuickGrid label{display:grid;gap:5px;font-size:11px;font-weight:950;color:#475569}.scheduleQuickGrid input,.scheduleQuickGrid select,.scheduleQuickAdd>input[type=date]{width:100%;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:9px;color:#172033}.scheduleDatePicker{display:flex;gap:8px;overflow:auto;margin:10px 0}.scheduleDatePicker button{min-width:112px;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:8px;text-align:left}.scheduleDatePicker button.active{border-color:#1262d6;background:#eaf3ff;box-shadow:0 0 0 2px #1262d61a}.scheduleDatePicker b,.scheduleDatePicker small{display:block}.scheduleDatePicker small{color:#64748b;margin-top:3px}
.scheduleQuickGrid .wide,.miniSchedulerFields .wide{grid-column:1/-1}.scheduleDrawingControl{display:grid;gap:6px}.scheduleAttachToggle{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:900;color:#334155}.scheduleDrawingControl select{width:100%;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:9px;color:#172033}.scheduleDrawingWrap{margin:0 0 8px}.scheduleDrawingWrap .drawingOpenBtn{width:100%;justify-content:center}
.calendarWhiteboard{height:calc(100vh - 62px);display:grid;grid-template-rows:auto 1fr;gap:14px}.whiteboardHead{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px}.whiteboardHead h2{margin:0;font-size:28px}.whiteboardHead p{margin:5px 0 0;color:#64748b}.whiteboardTools{display:flex;gap:8px;flex-wrap:wrap}.whiteboardTools button{border:1px solid #d7e1ec;border-radius:8px;padding:9px 12px;background:#fff;font-weight:850;display:inline-flex;align-items:center;gap:6px}.monthGrid{background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));grid-template-rows:34px repeat(6,minmax(104px,1fr));overflow:hidden}.monthDow{background:#f8fafc;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;display:grid;place-items:center;font-size:12px;font-weight:950;color:#475569}.monthCell{border-right:1px solid #e6edf5;border-bottom:1px solid #e6edf5;background:#fff;text-align:left;padding:8px;display:flex;flex-direction:column;gap:6px;min-height:104px;overflow:hidden}.monthCell.outside{background:#f8fafc;color:#94a3b8}.monthCell.today{box-shadow:inset 0 0 0 2px #1262d6;background:#eff6ff}.monthCell strong{font-size:13px}.addHint{font-size:10px;color:#1262d6;font-weight:900;opacity:.65}.placeholderList{display:grid;gap:5px;overflow:auto}.placeholder{background:#fff7ed;border:1px solid #fed7aa;border-left:4px solid #f97316;border-radius:6px;padding:5px 18px 5px 6px;font-size:11px;font-weight:900;color:#172033;position:relative;line-height:1.2}.placeholder small{display:block;color:#64748b;font-weight:700;margin-top:2px}.placeholder i{position:absolute;right:5px;top:5px;width:14px;height:14px;border-radius:50%;background:#fee2e2;color:#991b1b;font-style:normal;display:grid;place-items:center;font-size:10px}
.photoActions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.photoButton{border:1px solid #d7e1ec;border-radius:8px;background:#f8fbff;padding:10px 12px;font-weight:900;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.photoButton input{display:none}.photoPreview,.attachmentPreview{border:1px dashed #cbd5e1;border-radius:8px;background:#f8fbff;min-height:120px;display:grid;place-items:center;gap:8px;text-align:center;padding:10px}.photoPreview img,.attachmentPreview img{max-width:100%;max-height:260px;object-fit:contain;border-radius:6px}.photoPreview span,.attachmentPreview span{font-size:12px;color:#64748b}.attachmentPreview .ico{width:34px;height:34px;color:#64748b}.photoGrid div{overflow:hidden}.photoGrid img{width:100%;height:56px;object-fit:cover;border-radius:5px}
.jobMiniScheduler{display:grid;gap:12px}.miniSchedulerForm{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:12px}.miniSchedulerForm label{display:grid;gap:5px;font-size:11px;font-weight:950;color:#475569}.miniSchedulerForm input,.miniSchedulerForm select{width:100%;border:1px solid #d4deea;border-radius:7px;background:#fff;padding:9px;color:#172033}.miniSchedulerForm button{align-self:end;min-height:38px}.jobMiniCalendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.jobMiniDay{min-height:138px;border:1px solid #dbe6f1;border-radius:8px;background:#fff;padding:9px;display:flex;flex-direction:column;gap:7px}.jobMiniDay>b{font-size:12px;color:#243149}.emptyDay{border:1px dashed #d4deea;border-radius:6px;min-height:54px;display:grid;place-items:center;color:#94a3b8;font-size:12px}.jobActivityChip{border-left:4px solid #1262d6;border-radius:7px;background:#eff6ff;padding:7px 76px 7px 8px;position:relative;display:grid;gap:3px}.jobActivityChip strong{font-size:12px;line-height:1.2}.jobActivityChip small{font-size:10px;color:#526176;line-height:1.25}.jobActivityChip button{position:absolute;right:5px;top:5px;width:17px;height:17px;border-radius:50%;background:#fee2e2;color:#991b1b;font-size:10px;font-weight:900}.jobActivityActions{position:absolute;right:5px;top:5px;display:flex;gap:4px}.jobActivityActions button{position:static;width:auto;height:20px;border-radius:6px;border:1px solid #fecaca;background:#fee2e2;color:#991b1b;padding:2px 6px;font-size:10px;font-weight:900;line-height:1}.jobActivityActions .deleteMini{width:20px;border-radius:50%;padding:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.checkGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin:12px 0}.checkGrid label{border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:9px;font-weight:850;color:#334155}.fieldRecord,.runSheetCard,.controlIssue,.pmTodo{margin-bottom:12px;background:var(--job-bg,#fff)!important;border-left:8px solid var(--job-line,#dbe6f1)!important}.fieldRecord .profileRows article,.runSheetCard .profileRows article,.controlIssue .profileRows article,.pmTodo .profileRows article,.fieldRecord .pmMeta,.runSheetCard .pmMeta,.controlIssue .pmMeta,.pmTodo .pmMeta{background:#ffffffc9}.fieldThumb{width:170px;height:120px;object-fit:cover;border-radius:8px;border:1px solid #dbe6f1;background:#f8fbff}.chipRows{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.chipRows button{border:1px solid #d7e1ec;border-radius:999px;background:#fff;padding:8px 10px;font-weight:900}.chipRows button.done{background:#dcfce7;border-color:#86efac;color:#166534}.profileRows article img{width:64px;height:48px;object-fit:contain;border-radius:8px;border:1px solid #dbe6f1;background:#f8fbff}.controlIssue{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}.controlIssue img{width:120px;height:86px;object-fit:contain;border-radius:8px;border:1px solid #dbe6f1;background:#f8fbff}.pmMeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:10px;margin:10px 0}.miniRow{border:1px solid #edf2f7;border-radius:8px;background:#fff;padding:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0}.tag.danger{background:#fee2e2;color:#991b1b}.livePanel .resourceGrid{margin-bottom:10px}
.actualStaffRows button.done,.runSheetCard .profileRows button.done{background:#dcfce7;border-color:#86efac;color:#166534}.actualStaffRows button.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.actualStaffRows button.warn.done{background:#fee2e2;border-color:#fecaca;color:#991b1b}.actualStaffRows button:disabled{opacity:.48;cursor:not-allowed}.actualStaffRows article{grid-template-columns:1fr auto auto auto auto}.actualStaffRows article.staffException{border-color:#fecaca;background:#fff7f7}
.drawingsPanel{border-top:4px solid #2563eb}.drawingSummary{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;border:1px solid #dbe6f1;border-radius:8px;background:#eff6ff;padding:10px;margin-bottom:10px}.drawingSummary b{grid-row:1/3;font-size:28px;color:#1262d6}.drawingSummary span{font-weight:950;color:#172033}.drawingSummary small{color:#64748b}.drawingRows article{grid-template-columns:auto 1fr auto}.drawingRows article.hasPreview{grid-template-columns:156px minmax(0,1fr) auto;align-items:start}.drawingRows article.supersededDrawing{opacity:.68;background:#f8fafc;border-style:dashed}.drawingRows em{font-style:normal;border-radius:999px;background:#e2e8f0;color:#475569;padding:5px 9px;font-size:12px;font-weight:900}.drawingRows .drawingOpenBtn{border-radius:7px;background:#1262d6;color:#fff;text-decoration:none;padding:7px 10px;font-weight:900}.drawingDocIcon{display:grid;place-items:center;color:#64748b}.drawingPreviewThumb{width:144px;height:96px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;display:grid;grid-template-rows:1fr auto;gap:3px;overflow:hidden;padding:5px;cursor:pointer;text-align:center}.drawingPreviewThumb iframe,.drawingPreviewThumb img{width:100%;height:70px;border:0;border-radius:5px;background:#fff;object-fit:cover;pointer-events:none}.drawingPreviewThumb .ico{width:28px;height:28px;align-self:center;justify-self:center;color:#64748b}.drawingPreviewThumb small{font-size:10px;color:#475569;margin:0;font-weight:900}.drawingRegister{display:grid;gap:14px}.drawingRegister section{border:1px solid #e4edf7;border-radius:8px;background:#fbfdff;padding:12px}.supersededList .drawingOpenBtn{display:none}.drawingUploadForm .formGrid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.drawingReviewBox{border:1px solid #bfdbfe;border-left:5px solid #2563eb;border-radius:8px;background:#eff6ff;padding:12px;margin:12px 0;display:grid;gap:10px}.drawingReviewBox .policyCheck{width:max-content;max-width:100%}.drawingReviewBox textarea{margin:0;min-height:72px}
.supervisorSplit{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(420px,1.35fr);gap:14px;align-items:start}.supervisorSplit>section{min-width:0}.supervisorSplit h3{margin:0 0 10px}.issueBookings{display:grid;gap:7px;margin-top:10px}.issueBooking{border:1px solid #dbe6f1;border-radius:8px;background:#ffffffc9;padding:9px;display:grid;gap:3px}.issueBooking b{font-size:12px}.issueBooking span{font-size:12px;color:#1f2e44;font-weight:850}.issueBooking small{color:#64748b;line-height:1.35}.pmTodo .profileRows article{grid-template-columns:1fr auto auto}.pmTodo select{min-width:140px}.pmTodo .actions{margin-top:10px}@media(max-width:1180px){.quoteBuilderWorkspace{grid-template-columns:1fr}.quoteLivePanel{grid-column:1;grid-row:auto;position:static;border-right:1px solid #dce7f2!important}.quoteBuilderTop{grid-template-columns:repeat(2,minmax(0,1fr))}.quoteOutputGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.supervisorSplit{grid-template-columns:1fr}.pmTodo .profileRows article{grid-template-columns:1fr}.pmTodo select{width:100%}.quoteBuilderHeader{grid-template-columns:1fr}.quoteBuilderHeaderActions{justify-content:flex-start}.quoteLineHead{display:none}.quoteBuilder .quoteLine{grid-template-columns:1fr 1fr}.quoteBuilder .quoteLine input:nth-child(2),.quoteBuilder .quoteLine .lineTotals{grid-column:1/-1}.quoteBuilderTop,.quoteOutputGrid,.quoteSummaryGrid,.quoteOutputRows p{grid-template-columns:1fr}.quoteBuilder .libRows{grid-template-columns:1fr}.quoteLibraryPanel,.quoteOutputPanel{grid-column:1}.quoteSourceStrip{align-items:flex-start}.librarySearchRow{grid-template-columns:1fr}}
.quoteActivityTable button:disabled{background:#e2e8f0;color:#64748b;cursor:not-allowed}.quoteQtyInput{width:76px;border:1px solid #cbd8e6;border-radius:7px;background:#fff;padding:7px 8px;color:#172033;font-weight:900}.scheduleLineTray{border:1px solid #cfe0f2;border-radius:8px;background:#f8fbff;padding:10px;display:grid;gap:8px}.scheduleLineTrayHead{display:flex;align-items:center;justify-content:space-between;gap:10px}.scheduleLineTrayHead b{font-size:11px;text-transform:uppercase;color:#122033}.scheduleLineTrayHead button{border-radius:7px;background:#1262d6;color:#fff;padding:7px 9px;font-size:12px;font-weight:950}.scheduleLineList{display:grid;gap:6px}.scheduleLineList p{margin:0;border:1px solid #dbe6f1;border-radius:7px;background:#fff;padding:7px 34px 7px 9px;position:relative;font-weight:850;color:#172033;line-height:1.25}.scheduleLineList p button{position:absolute;right:6px;top:6px;border-radius:999px;background:#fee2e2;color:#991b1b;width:20px;height:20px;padding:0;font-weight:950}.scheduleLineList small{color:#64748b;font-weight:850}.scheduleMiniLines{display:grid;gap:3px;margin:4px 0}.scheduleMiniLines span{font-size:10px;color:#172033;background:#fff;border:1px solid #dbe6f1;border-radius:5px;padding:3px 5px;line-height:1.15}
#toast{position:fixed;right:18px;bottom:18px;background:#102033;color:#fff;border-radius:10px;padding:12px 14px;font-weight:850;box-shadow:0 12px 30px #0b1f3533;opacity:0;transform:translateY(12px);pointer-events:none;transition:.18s ease;z-index:20}#toast.show{opacity:1;transform:translateY(0)}
#modalHost[hidden]{display:none}.modalBackdrop{position:fixed;inset:0;background:#0b1726a8;display:grid;place-items:center;padding:18px;z-index:80}.modalPanel{width:min(520px,100%);background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 28px 80px #02061766;padding:18px;color:var(--text);max-height:calc(100vh - 36px);overflow:auto}.modalPanel .railHead{margin:-4px 0 14px}.modalPanel label{display:grid;gap:7px;margin:12px 0;font-weight:900;color:#334155}.modalPanel input,.modalPanel select,.modalPanel textarea{width:100%;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:11px}.modalPanel textarea{resize:vertical}.modalPanel .actions{justify-content:flex-end;margin-top:14px}.modalPanel .photoButton{display:inline-flex;width:max-content}.modalPanel .photoButton input{display:none}.uploadModal .formGrid.compact{grid-template-columns:1fr 1fr}.serviceModalTabs{display:flex;gap:8px;margin:4px 0 12px}.serviceModalTabs button{border:1px solid #d4deea;background:#f8fbff;border-radius:999px;padding:8px 12px;font-weight:900}.serviceModalTabs button.active{background:#1262d6;color:#fff;border-color:#1262d6}.serviceTabPane{display:none}.serviceTabPane.active{display:block}.repairerSetup{border:1px solid #dbe5ef;border-radius:8px;background:#f8fbff;padding:10px;margin-top:10px}.secondaryAction{border:1px solid #d4deea;background:#fff;border-radius:8px;padding:10px 12px;font-weight:900}
.formGrid .wide{grid-column:1/-1}.errorText{background:#fee2e2;color:#991b1b;border-radius:8px;padding:10px;margin-top:10px;font-weight:850}.jobConversionModal{width:min(760px,100%)}.scheduleEditModal{width:min(860px,100%)}.scheduleEditModal .formGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.scheduleEditModal .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}

/* Accepted AMTEK quoting/workbook/timeline concept polish */
.quoteRegisterPage.quoteBuilderFocused{padding:18px 22px 26px;background:#f7faff}
.quoteRegisterPage.quoteBuilderFocused .pageHead{border:1px solid #d9e4f1;border-radius:8px;background:#fff;padding:12px 14px;margin-bottom:14px}
.quoteBuilderShell{border-color:#cfdae8;border-radius:8px;box-shadow:0 12px 30px #0b1f350a;background:#fff}
.quoteBuilderHeader{background:#fff;border-bottom:1px solid #e1eaf5;padding:16px 18px}
.quoteBuilderHeader h3{font-size:20px;line-height:1.15}.quoteBuilderHeader p{font-size:12px;color:#536276}
.quoteBuilderHeaderActions button{min-height:34px;border-radius:6px}
.quoteBuilderTop{grid-template-columns:minmax(150px,.7fr) minmax(240px,1.2fr) minmax(240px,1.2fr) 130px;gap:0;border:1px solid #d9e4f1;border-left:0;border-right:0;padding:0;margin:0;background:#fbfdff}
.quoteBuilderTop label{padding:12px 14px;border-right:1px solid #d9e4f1;gap:6px}.quoteBuilderTop label.wide{border-top:1px solid #e8eef6;border-right:0}.quoteBuilderTop input,.quoteBuilderTop select,.quoteBuilderTop textarea{border-color:#cdd9e7;border-radius:6px;min-height:36px}
.quoteKpiStrip{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;padding:14px 16px;background:#f7faff;border-bottom:1px solid #e1eaf5}
.quoteKpiStrip article{border:1px solid #d7e2ee;border-radius:8px;background:#fff;padding:14px 14px 12px;display:grid;grid-template-columns:42px 1fr;gap:3px 12px;align-items:center;min-height:86px}
.quoteKpiStrip .kpiIcon{grid-row:1/4;width:42px;height:42px;border-radius:999px;display:grid;place-items:center;background:#eaf3ff;color:#1262d6}.quoteKpiStrip .kpiIcon.time{background:#ecfdf5;color:#059669}.quoteKpiStrip .kpiIcon.box{background:#f5f3ff;color:#7c3aed}.quoteKpiStrip .kpiIcon.truck{background:#fff7ed;color:#ea580c}.quoteKpiStrip .kpiIcon.margin{background:#f0fdf4;color:#16a34a}
.quoteKpiStrip small,.quoteKpiStrip em{font-size:11px;color:#64748b;font-weight:850}.quoteKpiStrip b{font-size:20px;color:#111827}.quoteKpiStrip em{font-style:normal}
.quoteSourceStatus{display:grid;grid-template-columns:auto repeat(5,minmax(140px,1fr));gap:10px;align-items:center;padding:11px 16px;border-bottom:1px solid #e1eaf5;background:#fff}
.quoteSourceStatus .sourceLabel{color:#475569;font-size:12px;font-weight:950}.quoteSourceStatus article{border:1px solid #dbe5ef;border-radius:8px;background:#fbfdff;padding:9px 11px;display:grid;grid-template-columns:28px 1fr;gap:2px 8px;align-items:center}.quoteSourceStatus article .ico{grid-row:1/3;color:#1262d6}.quoteSourceStatus b{font-size:12px}.quoteSourceStatus small{font-size:10px;color:#64748b}.quoteSourceStatus .connected{background:#ecfdf5;color:#166534;border-color:#bbf7d0}
.quoteBuilderWorkspace{background:#fff;grid-template-columns:minmax(0,1.72fr) 360px}.quoteBuilderWorkspace>section,.quoteBuilderWorkspace>aside{border-color:#dce7f2;padding:14px}
.quoteBuilderTools{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px}.quoteBuilderTools input{width:100%;border:1px solid #d4deea;border-radius:7px;padding:10px}.quoteBuilderTools button{border:1px solid #d4deea;border-radius:7px;background:#fff;color:#172033;padding:0 12px;display:inline-flex;align-items:center;gap:7px;font-weight:900}
.quoteActivityTable{max-height:520px;border-radius:8px}.quoteActivityTable table{font-size:12px}.quoteActivityTable th{height:36px;background:#f8fafc;color:#475569}.quoteActivityTable td{height:45px;vertical-align:middle}.quoteActivityTable input[type=checkbox]{width:16px;height:16px;accent-color:#1262d6}.quoteActivityTable button{min-width:78px}
.quoteLivePanel{top:66px;background:#fbfdff!important}.quoteLivePanel .railHead{margin-bottom:12px}.liveDot{color:#16a34a!important;font-weight:950}.quoteTotalHero b{font-size:34px}.quoteSummaryList{border:1px solid #e0e7ef;border-radius:8px;background:#fff;padding:10px 12px;display:grid;gap:8px}.quoteSummaryList p{display:grid;grid-template-columns:1fr auto;gap:12px;margin:0;font-size:12px}.quoteSummaryList span{color:#475569;font-weight:850}.quoteSummaryList b{font-size:13px}.quoteSummaryList hr{width:100%;border:0;border-top:1px solid #dbe5ef}.quoteSummaryList .total span,.quoteSummaryList .total b{font-size:17px;color:#1262d6;font-weight:1000}.quoteSnapshotBadge{display:grid;grid-template-columns:24px 1fr;align-items:center}.quoteSnapshotBadge small{display:block;color:#92400e;font-weight:800}.quoteSummaryActions{grid-template-columns:1fr 1fr}.quoteSummaryActions button:nth-child(3),.quoteSummaryActions button:nth-child(4){grid-column:1/-1}
.quoteOutputTabs{display:flex;gap:8px;border-bottom:1px solid #dbe5ef;margin-bottom:10px}.quoteOutputTabs button{border:1px solid #dbe5ef;border-bottom:0;border-radius:8px 8px 0 0;background:#f8fafc;color:#172033;padding:10px 14px;font-weight:900;display:inline-flex;align-items:center;gap:7px}.quoteOutputTabs button.active{background:#eff6ff;color:#1262d6;box-shadow:inset 0 -3px 0 #1262d6}.quoteOutputTable{border:1px solid #dbe5ef;border-radius:8px;overflow:hidden;margin-bottom:10px}

.taskTemplatesPage,.boqPage,.jobsWorkspace{background:#f7faff}.taskTemplatesLayout{grid-template-columns:minmax(0,1fr) 300px}.taskTemplateStats .record,.quoteStats .record{border-radius:8px;background:#fff;border:1px solid #d9e4f1;box-shadow:0 8px 18px #0b1f3508}.taskTemplatesTablePanel,.taskTemplatesFuturePanel,.taskTemplatesRail .record{border-radius:8px}.taskTemplatesRail .record{box-shadow:none;border-left:4px solid #1262d6}.taskTemplatesRail .record:nth-child(2){border-left-color:#16a34a}.taskTemplatesRail .record:nth-child(3){border-left-color:#7c3aed}
.materialsLibraryPage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px}.materialsLibraryPage>.pageHead,.materialsLibraryPage>.quoteStats,.materialsLibraryPage>.quoteToolbar,.materialsLibraryPage>#form{grid-column:1/-1}.materialsLibraryPage>.jobSection{grid-column:1}.materialsLibraryMain{grid-column:1;background:#fff;border:1px solid #e1e8f0;border-radius:8px;padding:12px;display:grid;gap:10px;min-width:0;box-shadow:0 8px 18px #0b1f3506}.materialsLibraryTableWrap{overflow:auto;border:1px solid #e1e8f0;border-radius:8px;background:#fff}.materialsLibraryTable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;color:#172033}.materialsLibraryTable th{height:42px;background:#f8fafc;color:#475569;text-align:left;font-size:12px;font-weight:950;border-bottom:1px solid #e1e8f0;padding:0 14px;white-space:nowrap}.materialsLibraryTable th button{border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.materialsLibraryTable th button:hover{color:#1262d6;text-decoration:underline;text-underline-offset:3px}.materialsLibraryTable td{border-bottom:1px solid #edf2f7;padding:12px 14px;vertical-align:top;background:#fff}.materialsLibraryTable tbody tr.libraryItemRow{cursor:pointer}.materialsLibraryTable tbody tr.libraryItemRow:hover td{background:#f8fbff}.materialsLibraryTable tbody tr.libraryItemRow.selected td{background:#eff6ff}.materialsLibraryTable tbody tr.libraryItemRow td:first-child{font-weight:950;color:#122033;white-space:nowrap;width:100px}.materialsLibraryTable tbody tr.libraryItemRow td:nth-child(2) strong{display:block;font-size:13px}.materialsLibraryTable tbody tr.libraryItemRow td:nth-child(2) small{display:block;margin-top:3px;color:#64748b;line-height:1.35;overflow-wrap:anywhere}.materialsLibraryTable tbody tr.libraryItemRow td:last-child{text-align:right;white-space:nowrap}.materialsLibraryTable tbody tr.libraryItemRow td:last-child button{height:32px;padding:0 10px}.materialsLibraryPage .materialsSourceRail{grid-column:2;align-self:start;position:sticky;top:78px;display:grid;gap:12px}.materialsLibraryPage .materialsSourceRail article{border:1px solid #d9e4f1;border-radius:8px;background:#fff;padding:13px;box-shadow:0 8px 18px #0b1f3508}.materialsLibraryPage .materialsSourceRail .sourceCard{position:relative;padding:14px 14px 14px 46px;cursor:pointer}.materialsLibraryPage .materialsSourceRail .sourceCard.active{border-color:#1262d6;box-shadow:0 10px 20px #0b1f350a,inset 4px 0 0 #1262d6}.materialsLibraryPage .materialsSourceRail .railTabs{display:grid;grid-template-columns:1fr 1fr;padding:0;overflow:hidden}.materialsLibraryPage .railTabs button{height:43px;border:0;border-radius:0;background:#fff;color:#475569;margin:0;font-weight:950}.materialsLibraryPage .railTabs button.active{color:#1262d6;box-shadow:inset 0 -3px 0 #1262d6}.materialsLibraryPage .sourceCard>i{position:absolute;left:16px;top:19px;width:16px;height:16px;border-radius:999px;background:#16a34a;box-shadow:inset 0 0 0 5px #dcfce7}.materialsLibraryPage .sourceCard.internal>i{background:#1262d6;box-shadow:inset 0 0 0 5px #dbeafe}.materialsLibraryPage .sourceCard.service>i{background:#7c3aed;box-shadow:inset 0 0 0 5px #ede9fe}.materialsLibraryPage .sourceCard h3{margin:0 0 10px;font-size:15px}.materialsLibraryPage .sourceCard p{gap:8px}.materialsLibraryPage .sourceCard b{font-size:13px}.materialsLibraryPage .sourceCard span{font-size:12px;color:#475569}.materialsLibraryPage .sourceCard small{font-size:12px;color:#94a3b8}.materialsLibraryPage .sourceCard button{width:100%;height:38px;border:1px solid #c9daf0;border-radius:6px;background:#fff;color:#1262d6;font-weight:950;margin-top:6px}.materialsEditorCard{display:grid;gap:10px}.materialsEditorCard .railHead{margin:0}.materialsEditorSummary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.materialsEditorSummary span{border:1px solid #dbe5ef;border-radius:8px;background:#fbfdff;padding:9px 10px;display:grid;gap:2px}.materialsEditorSummary small{font-size:10px;color:#64748b;font-weight:950;text-transform:uppercase}.materialsEditorSummary b{font-size:16px;color:#122033}.materialsEditorSummary em{font-style:normal;font-size:10px;color:#64748b;line-height:1.25;font-weight:850}.materialsEditorHint,.materialsEditorWarning{border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.4;font-weight:850}.materialsEditorHint{border:1px solid #dbe5ef;background:#f8fbff;color:#475569;border-left:4px solid #1262d6}.materialsEditorWarning{border:1px solid #fde68a;background:#fffbeb;color:#92400e;border-left:4px solid #f59e0b}.materialsEditorForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.materialsEditorForm label{display:grid;gap:5px;font-size:11px;font-weight:950;color:#475569}.materialsEditorForm label.wide{grid-column:1/-1}.materialsEditorForm input,.materialsEditorForm textarea{width:100%;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:10px;color:#172033}.materialsEditorForm textarea{resize:vertical;min-height:82px}.materialsEditorActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.materialsEditorActions button{min-height:38px}.materialsEditorActions [data-library-delete]{grid-column:1/-1}.supplierLegend div{display:flex;gap:6px;flex-wrap:wrap}.supplierLegend span{border-radius:999px;background:#eff6ff;color:#1262d6;padding:5px 8px;font-size:11px;font-weight:900}.supplierLegend .green{background:#ecfdf5;color:#047857}.supplierLegend .purple{background:#f5f3ff;color:#7c3aed}.supplierLegend .orange{background:#fff7ed;color:#ea580c}.supplierLegend .teal{background:#ecfeff;color:#0891b2}.supplierLegend .yellow{background:#fefce8;color:#a16207}
.boqPage .jobSection table{font-size:12px}.boqPage .jobSection th{background:#f8fafc;color:#475569;height:36px}.boqPage .jobSection td{height:42px}.boqPage table input{border-color:#d7e1ec;background:#fff}
.boqPage.materialsLibraryPage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px 18px;padding:14px 20px 28px;background:#f7faff;align-content:start}
.materialsLibraryPage .materialsLibraryTop{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,430px) auto 168px;gap:16px;align-items:center}
.materialsSearchBox{height:42px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;display:grid;grid-template-columns:34px 1fr;align-items:center;box-shadow:0 4px 12px #0b1f3508}.materialsSearchBox .ico{width:18px;height:18px;color:#64748b;justify-self:center}.materialsSearchBox input{border:0!important;background:transparent!important;height:40px;padding:0 12px 0 0!important;font-size:13px;font-weight:800;color:#172033;outline:0}
.materialsLibraryTop .primary{height:42px;border-radius:7px;justify-self:end;padding:0 18px;font-weight:950}.materialsExportBtn{height:42px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#172033;font-weight:950;display:flex;align-items:center;justify-content:center;gap:28px;box-shadow:0 3px 10px #0b1f3508}.materialsExportBtn span,.materialsFilterBar span,.pageSizeBtn span{font-size:10px;color:#64748b}
.materialsFilterBar{grid-column:1;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.materialsFilterBar label{height:36px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#64748b;font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:0;display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:8px;padding:0 8px 0 10px;box-shadow:0 2px 8px #0b1f3505}.materialsFilterBar label select{height:28px;border:0;background:transparent;color:#172033;font-size:12px;font-weight:900;outline:0;min-width:0}.materialsFilterBar button{height:36px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#1262d6;font-size:12px;font-weight:950;padding:0 12px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 2px 8px #0b1f3505}.materialsFilterBar button.active{background:#eaf3ff;border-color:#d2e3ff}.materialsFilterBar .sortDirBtn{min-width:54px;color:#172033}.materialsFilterBar .clearBtn{border-color:transparent;background:transparent;color:#64748b;box-shadow:none}
.materialsLibraryMain{grid-column:1;background:#fff;border:1px solid #e1e8f0;border-radius:8px;overflow:hidden;min-width:0}.materialsMockTable{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;color:#172033}.materialsMockTable th{height:44px;background:#f8fafc;color:#475569;text-align:left;font-size:12px;font-weight:950;border-bottom:1px solid #e1e8f0;padding:0 14px}.materialsMockTable th:first-child{width:100px}.materialsMockTable th:nth-child(2){width:38%}.materialsMockTable th:nth-child(3){width:160px}.materialsMockTable th:nth-child(4){width:72px;text-align:center}.materialsMockTable th:nth-child(5){width:142px;text-align:center}.materialsMockTable th:nth-child(6){width:120px}
.materialsMockTable th button{border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.materialsMockTable th button:hover{color:#1262d6;text-decoration:underline;text-underline-offset:3px}
.materialsMockTable td{height:43px;border-bottom:1px solid #edf2f7;padding:0 14px;vertical-align:middle;background:#fff}.materialsMockTable td:first-child{text-align:center;color:#334155}.materialsMockTable td:nth-child(4){text-align:center;color:#334155}.materialsMockTable td:nth-child(5){text-align:center}.materialsMockTable tr:last-child td{border-bottom:0}.materialsMockTable b{font-weight:950}.materialsGroupRow td{height:45px!important;background:#fbfdff!important;border-top:1px solid #eef3f8;border-bottom:1px solid #eef3f8;font-size:15px;color:#172033;text-align:left!important}.materialsGroupRow td i{display:inline-block;width:13px;height:13px;border-radius:999px;background:#1262d6;margin-right:12px;vertical-align:-1px}.materialsGroupRow td span{display:inline-flex;margin-left:16px;border:1px solid #dbe5ef;border-radius:999px;background:#f8fafc;color:#64748b;padding:4px 10px;font-size:11px;font-weight:900}.materialsGroupRow.green td i{background:#22a36b}.materialsGroupRow.purple td i{background:#6554c0}.materialsGroupRow.orange td i{background:#f97316}.materialsGroupRow.teal td i{background:#0891b2}.materialsGroupRow.yellow td i{background:#eab308}
.priceEdit{height:34px;min-width:112px;border:1px solid #d8e2ed;border-radius:7px;background:#fff;color:#172033;font-weight:950;display:inline-flex;align-items:center;justify-content:flex-end;gap:18px;padding:0 10px;box-shadow:inset 0 0 0 1px #f3f6fa}.priceEdit .ico{width:15px;height:15px;color:#94a3b8}
.materialsPagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#fff;color:#64748b;font-size:12px;font-weight:850;border-top:1px solid #edf2f7}.materialsPager{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.materialsPager button,.materialsPager select{height:36px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#334155;font-weight:950}.materialsPager button{min-width:96px;padding:0 14px}.materialsPager button:disabled{opacity:.42}.materialsPager label{height:36px;border:1px solid #dbe5ef;border-radius:7px;background:#fbfdff;color:#64748b;display:flex;align-items:center;gap:7px;padding:0 10px;font-weight:900}.materialsPager input{width:54px;height:26px;border:1px solid #d4deea;border-radius:6px;background:#fff;color:#172033;text-align:center;font-weight:950}.materialsPager select{min-width:112px;padding:0 10px}
.materialsLibraryPage .materialsSourceRail{grid-column:2;grid-row:2/span 2;position:sticky;top:74px;align-self:start;display:grid;gap:10px}.materialsLibraryPage .materialsSourceRail article{border:1px solid #e0e7ef;border-radius:8px;background:#fff;box-shadow:0 8px 18px #0b1f3506;padding:14px}.materialsLibraryPage .materialsSourceRail .railTabs{display:grid;grid-template-columns:1fr 1fr;padding:0;overflow:hidden}.materialsLibraryPage .railTabs button{height:43px;border:0;border-radius:0;background:#fff;color:#475569;margin:0;font-weight:950}.materialsLibraryPage .railTabs button.active{color:#1262d6;box-shadow:inset 0 -3px 0 #1262d6}
.materialsLibraryPage .materialsSourceRail .sourceCard{position:relative;padding:14px 14px 14px 46px}.materialsLibraryPage .sourceCard>i{position:absolute;left:16px;top:19px;width:16px;height:16px;border-radius:999px;background:#16a34a;box-shadow:inset 0 0 0 5px #dcfce7}.materialsLibraryPage .sourceCard.internal>i{background:#1262d6;box-shadow:inset 0 0 0 5px #dbeafe}.materialsLibraryPage .sourceCard.service>i{background:#7c3aed;box-shadow:inset 0 0 0 5px #ede9fe}.materialsLibraryPage .sourceCard h3{margin:0 0 10px;font-size:15px}.materialsLibraryPage .sourceCard p{gap:8px}.materialsLibraryPage .sourceCard b{font-size:13px}.materialsLibraryPage .sourceCard span{font-size:12px;color:#475569}.materialsLibraryPage .sourceCard small{font-size:12px;color:#94a3b8}.materialsLibraryPage .sourceCard button{width:100%;height:38px;border:1px solid #c9daf0;border-radius:6px;background:#fff;color:#1262d6;font-weight:950;margin-top:6px}
.materialsLibraryPage .supplierLegend h3{font-size:13px}.materialsLibraryPage .supplierLegend div{gap:7px}.materialsLibraryPage .supplierLegend span{font-size:11px;padding:5px 8px}.materialsLibraryPage .supplierLegend .blue{background:#eff6ff;color:#1262d6}
.materialsLibraryPage{grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
.materialsLibraryPage>.materialsLibraryTop{grid-column:1/-1}
.materialsLibraryPage>.materialsLibraryMainColumn{grid-column:1;display:grid;gap:14px;min-width:0;align-self:start}
.materialsLibraryPage>.materialsSourceRail{grid-column:2;grid-row:auto;position:sticky;top:74px;align-self:start;display:grid;gap:10px}

.clientTimelinePanel{padding:0!important;overflow:hidden}.clientTimelineHero{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;border-bottom:1px solid #dbe5ef;background:#fff;padding:16px}.clientTimelineHero h3{margin:0;font-size:20px}.clientTimelineHero p{margin:4px 0 0;color:#64748b}.clientTimelineMeta{text-align:right;display:grid;gap:2px}.clientTimelineMeta span{color:#64748b;font-size:11px;font-weight:950;text-transform:uppercase}.clientTimelineMeta b{font-size:16px}.clientTimelineMeta small{color:#64748b}.clientTimelineActions{display:flex;gap:8px;flex-wrap:wrap}.clientTimelineActions button{border:1px solid #bfdbfe;border-radius:7px;background:#fff;color:#1262d6;padding:9px 11px;font-weight:950}.clientTimelineActions .primary{background:#1262d6!important;color:#fff!important}
.clientTimelineBody{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:0}.clientTimelineMain{padding:14px;border-right:1px solid #dbe5ef;min-width:0}.clientTimelineRail{padding:14px;background:#fbfdff;display:grid;gap:12px;align-content:start}.clientTimelineRail article{border:1px solid #dbe5ef;border-radius:8px;background:#fff;padding:12px}.clientTimelineRail h4{margin:0 0 8px;font-size:13px}.clientTimelineRail p{margin:0 0 9px;display:grid;gap:3px}.clientTimelineRail p:last-child{margin-bottom:0}.clientTimelineRail b{font-size:12px}.clientTimelineRail span{font-size:11px;color:#64748b;line-height:1.35}
.clientTimelineToolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.clientTimelineToolbar button{border:1px solid #dbe5ef;border-radius:6px;background:#fff;padding:7px 9px;font-weight:900;color:#334155}.clientTimelineToolbar button.active{background:#eff6ff;border-color:#1262d6;color:#1262d6}.clientTimelineToolbar span{margin-left:auto;color:#64748b;font-size:11px;font-weight:900}
.clientTimelineGrid{border:1px solid #dbe5ef;border-radius:8px;background:#fff;overflow:auto}.timelineHead,.timelineRow{display:grid;grid-template-columns:210px minmax(360px,1fr) 260px;align-items:center}.timelineHead{background:#f8fafc;color:#475569;font-size:11px;font-weight:950;min-height:38px}.timelineHead b,.timelineHead span{padding:0 10px}.timelineTicks{display:grid;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:1px;align-items:center;height:100%;border-left:1px solid #edf2f7;border-right:1px solid #edf2f7}.timelineTicks span{padding:0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timelineRow{min-height:52px;border-top:1px solid #edf2f7}.timelineRow label{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;padding:0 10px}.timelineRow label span{color:#64748b;font-size:11px;font-weight:950}.timelineRow input,.timelineRow select{border:1px solid #d4deea;border-radius:6px;background:#fff;padding:7px;min-width:0;font-size:12px}.timelineTrack{height:30px;display:grid;grid-template-columns:repeat(var(--tl-days),minmax(8px,1fr));align-items:center;border-left:1px solid #edf2f7;border-right:1px solid #edf2f7;background:repeating-linear-gradient(90deg,#fff 0,#fff calc(100% / var(--tl-days) - 1px),#edf2f7 calc(100% / var(--tl-days) - 1px),#edf2f7 calc(100% / var(--tl-days)))}
.timelineTrack i{grid-column:var(--tl-start)/span var(--tl-span);height:16px;border-radius:999px;background:#1262d6;display:flex;align-items:center;justify-content:flex-end;padding:0 5px;color:#fff;font-style:normal;box-shadow:0 4px 10px #1262d633}.timelineTrack i.green{background:#16a34a}.timelineTrack i.purple{background:#7c3aed}.timelineTrack i.orange{background:#f97316}.timelineTrack i.teal{background:#0891b2}.timelineTrack i.yellow{background:#eab308;color:#172033}.timelineTrack em{font-style:normal;font-size:10px;font-weight:950}.timelineEdit{display:grid;grid-template-columns:1fr 58px 96px;gap:6px;padding:0 10px}
.clientCrewBoard{border:1px solid #dbe5ef;border-radius:8px;background:#fff;margin-top:14px;padding:12px}.crewTimelineGrid{display:grid;grid-template-columns:140px repeat(auto-fit,minmax(48px,1fr));gap:6px;align-items:center}.crewTimelineGrid>b{font-size:11px;color:#475569}.crewTimelineGrid span{font-size:12px;font-weight:900;color:#172033}.crewTimelineGrid i{height:20px;border-radius:5px;background:#dbeafe;color:#1262d6;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:950}.crewTimelineGrid i.green{background:#dcfce7;color:#15803d}.crewTimelineGrid i.purple{background:#ede9fe;color:#6d28d9}.crewTimelineGrid i.orange{background:#ffedd5;color:#c2410c}
.quoteLineWrap{margin-bottom:8px}.quoteLineWrap>.quoteLine{margin-bottom:0}.componentToggle{height:24px;border:1px solid #bfdbfe;border-radius:6px;background:#fff;color:#1262d6;font-size:10px;font-weight:950;padding:0 7px;margin-top:4px;justify-self:start}.componentToggle.active{background:#1262d6;color:#fff;border-color:#1262d6}.quoteComponentEditor{border:1px solid #bfdbfe;border-top:0;border-radius:0 0 8px 8px;background:#f8fbff;padding:12px;margin:0 0 8px 0;box-shadow:inset 5px 0 0 #1262d6}.quoteComponentEditorHead{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;margin-bottom:10px}.quoteComponentEditorHead h4{margin:0;font-size:14px}.quoteComponentEditorHead p{margin:3px 0 0;color:#64748b;font-size:12px;font-weight:850}.quoteComponentEditorHead>button,.quoteComponentFooter button{border:1px solid #bfdbfe;border-radius:7px;background:#fff;color:#1262d6;padding:8px 10px;font-weight:950}.quoteComponentStats{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:7px}.quoteComponentStats span{border:1px solid #dbeafe;border-radius:7px;background:#fff;padding:7px 9px;display:grid;gap:2px}.quoteComponentStats b{font-size:13px;color:#172033}.quoteComponentStats small{font-size:10px;color:#64748b;font-weight:900;text-transform:uppercase}.quoteComponentTableWrap{overflow:auto;border:1px solid #dbe5ef;border-radius:8px;background:#fff}.quoteComponentTable{width:100%;min-width:1040px;border-collapse:separate;border-spacing:0;font-size:12px}.quoteComponentTable th{height:36px;background:#f8fafc;color:#475569;text-align:left;font-size:10px;font-weight:950;text-transform:uppercase;border-bottom:1px solid #e5edf5;padding:0 8px}.quoteComponentTable td{border-bottom:1px solid #edf2f7;padding:7px 8px;vertical-align:middle}.quoteComponentTable tr:last-child td{border-bottom:0}.quoteComponentTable input,.quoteComponentTable select{width:100%;height:32px;border:1px solid #d4deea;border-radius:6px;background:#fff;color:#172033;padding:0 8px;font-size:12px}.quoteComponentTable td:nth-child(5),.quoteComponentTable td:nth-child(7),.quoteComponentTable td:nth-child(8),.quoteComponentTable td:nth-child(9){width:112px}.quoteComponentTable td:nth-child(9) b,.quoteComponentTable td:nth-child(9) small{display:block}.quoteComponentTable td:nth-child(9) small{color:#64748b;font-size:10px;margin-top:2px}.quoteComponentFooter{display:flex;align-items:center;gap:10px;margin-top:10px}.quoteComponentFooter small{color:#64748b;font-size:12px;font-weight:850}
.activityComponentsPage{padding:18px 22px 26px;background:#f7faff}.activityComponentLayout{display:grid;gap:14px;align-items:start}.componentActivityWorkspace{display:grid;gap:10px}.componentActivityWorkspace .workbookSearch{margin:0}.componentActivityTabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:8px}.componentActivityTab{--tone:#1262d6;--tone-bg:#eff6ff;--tone-border:#93c5fd;border:1px solid #dbe5ef;border-left:4px solid var(--tone);border-radius:8px;background:#fff;text-align:left;padding:10px 12px;display:grid;gap:3px;color:#172033;box-shadow:0 8px 18px #0b1f3506;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease}.componentActivityTab:hover{transform:translateY(-1px);border-color:var(--tone-border);background:var(--tone-bg);box-shadow:0 10px 22px #0b1f350a,inset 0 0 0 1px var(--tone-border)}.componentActivityTab.active{border-color:var(--tone-border);background:linear-gradient(180deg,var(--tone-bg),#fff);box-shadow:0 12px 24px #0b1f350a,inset 4px 0 0 var(--tone-border)}.componentActivityTab b{font-size:12px;line-height:1.2}.componentActivityTab span{font-size:12px;font-weight:950;line-height:1.25}.componentActivityTab small{font-size:11px;color:#64748b}.componentActivityTab.blue{--tone:#1262d6;--tone-bg:#eff6ff;--tone-border:#93c5fd}.componentActivityTab.green{--tone:#16a34a;--tone-bg:#ecfdf5;--tone-border:#86efac}.componentActivityTab.purple{--tone:#7c3aed;--tone-bg:#f5f3ff;--tone-border:#c4b5fd}.componentActivityTab.orange{--tone:#f97316;--tone-bg:#fff7ed;--tone-border:#fdba74}.componentActivityTab.teal{--tone:#0891b2;--tone-bg:#ecfeff;--tone-border:#67e8f9}.componentActivityTab.yellow{--tone:#a16207;--tone-bg:#fefce8;--tone-border:#fde68a}.componentActivityTab.grey{--tone:#64748b;--tone-bg:#f8fafc;--tone-border:#cbd5e1}.componentActivityTabs p{margin:0;color:#64748b;font-size:12px}.componentAssemblyPanel{overflow:hidden;min-width:0;border-top:4px solid #1262d6}.componentAssemblyPanel.blue{border-top-color:#1262d6}.componentAssemblyPanel.green{border-top-color:#16a34a}.componentAssemblyPanel.purple{border-top-color:#7c3aed}.componentAssemblyPanel.orange{border-top-color:#f97316}.componentAssemblyPanel.teal{border-top-color:#0891b2}.componentAssemblyPanel.yellow{border-top-color:#a16207}.componentAssemblyPanel.grey{border-top-color:#64748b}.componentAssemblyHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid #e5edf5;background:#fff}.componentAssemblyHead h3{margin:0;font-size:17px}.componentAssemblyHead p{margin:4px 0 0;color:#64748b;font-size:12px;font-weight:850}.componentAssemblyStats{display:flex;gap:8px;flex-wrap:wrap}.componentAssemblyStats span{min-width:86px;border:1px solid #dbeafe;border-radius:7px;background:#f8fbff;padding:8px 10px;display:grid;gap:2px}.componentAssemblyStats b{font-size:14px}.componentAssemblyStats small{font-size:10px;color:#64748b;text-transform:uppercase;font-weight:950}.componentTableWrap{overflow:auto}.componentAssemblyTable{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;font-size:12px}.componentAssemblyTable th{height:42px;background:#f8fafc;color:#475569;text-align:left;font-size:10px;font-weight:950;text-transform:uppercase;border-bottom:1px solid #e5edf5;padding:0 9px}.componentAssemblyTable td{border-bottom:1px solid #edf2f7;padding:7px 9px;vertical-align:middle}.componentAssemblyTable input,.componentAssemblyTable select{width:100%;height:32px;border:1px solid #d4deea;border-radius:6px;background:#fff;color:#172033;padding:0 8px;font-size:12px}.componentAssemblyTable th:nth-child(1),.componentAssemblyTable td:nth-child(1){width:108px}.componentAssemblyTable th:nth-child(2),.componentAssemblyTable td:nth-child(2){width:132px}.componentAssemblyTable th:nth-child(5),.componentAssemblyTable td:nth-child(5),.componentAssemblyTable th:nth-child(7),.componentAssemblyTable td:nth-child(7),.componentAssemblyTable th:nth-child(9),.componentAssemblyTable td:nth-child(9){width:108px}.componentRowActions{display:flex;gap:6px}.componentRowActions button{height:30px;border:1px solid #bfdbfe;border-radius:6px;background:#fff;color:#1262d6;padding:0 8px;font-size:11px;font-weight:950}.componentRowActions .dangerBtn{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.componentQuoteImpact{border-top:1px solid #e5edf5;padding:14px 16px;background:#fbfdff}.componentQuoteImpact h4{margin:0 0 10px;font-size:13px;color:#122033}.componentQuoteImpactStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.componentQuoteImpactStats span{border:1px solid #dbe5ef;border-radius:8px;background:#fff;padding:10px 12px;display:grid;gap:2px}.componentQuoteImpactStats b{font-size:18px;color:#122033}.componentQuoteImpactStats small{font-size:10px;color:#64748b;font-weight:950;text-transform:uppercase}
@media(max-width:1180px){.quoteKpiStrip,.quoteSourceStatus,.materialsLibraryPage,.clientTimelineBody,.activityComponentLayout{grid-template-columns:1fr}.materialsLibraryPage>*{grid-column:1!important}.materialsSourceRail,.componentActivityRail,.componentImpactRail{position:static}.clientTimelineHero,.quoteComponentEditorHead{grid-template-columns:1fr}.clientTimelineMeta{text-align:left}.timelineHead,.timelineRow{grid-template-columns:180px minmax(300px,1fr)}.timelineHead b:last-child,.timelineEdit{grid-column:1/-1}.clientTimelineRail{border-top:1px solid #dbe5ef}.quoteSourceStatus .sourceLabel{display:none}.quoteComponentStats{grid-template-columns:repeat(2,minmax(92px,1fr))}.componentActivityTabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.quoteKpiStrip{grid-template-columns:1fr}.quoteSourceStatus{grid-template-columns:1fr}.quoteBuilderTools{grid-template-columns:1fr}.materialsLibraryPage .materialsLibraryTop{grid-template-columns:1fr;gap:10px}.materialsLibraryTop .primary,.materialsExportBtn{justify-self:stretch;width:100%}.materialsFilterBar label{grid-template-columns:72px minmax(0,1fr);width:100%}.materialsFilterBar button{flex:1 1 112px;justify-content:center}.materialsLibraryMain{overflow-x:auto}.materialsLibraryTable{min-width:760px}.materialsEditorSummary,.materialsEditorForm,.materialsEditorActions{grid-template-columns:1fr}.materialsPagination{align-items:stretch;flex-direction:column}.materialsPager{justify-content:flex-start}.timelineHead,.timelineRow{grid-template-columns:1fr}.timelineTrack{min-height:34px}.timelineEdit{grid-template-columns:1fr 70px 1fr}.clientTimelineToolbar{flex-wrap:wrap}.clientTimelineToolbar span{margin-left:0;width:100%}.componentActivityTabs{grid-template-columns:1fr}.componentActivityTab{padding:10px}.componentAssemblyHead{grid-template-columns:1fr}.componentAssemblyStats{justify-content:flex-start}}
.auditModal{width:min(900px,100%)}.auditSource{border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:10px 12px;margin-bottom:12px;display:grid;gap:3px}.auditSource b{font-size:13px}.auditSource span{font-size:12px;color:#64748b}.auditSections{display:grid;gap:12px}.auditSection{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:12px}.auditSection h4{margin:0 0 8px;font-size:13px;color:#172033}.auditItem{border-top:1px solid #eef2f7;padding:8px 0}.auditItem:first-of-type{border-top:0}.auditItem label{margin:0;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:10px}.auditItem label span{line-height:1.3}.auditItem label em{color:#dc2626;font-style:normal}.auditItem textarea{margin-top:7px;min-height:42px}.auditItem small{display:block;color:#64748b;line-height:1.35;margin-top:5px}.auditItem.auditBlocker{background:#fff7f7;border-radius:7px;padding:8px}.auditStop{color:#991b1b!important;font-weight:900}.auditInstruction{border:1px solid #fde68a;border-radius:7px;background:#fffbeb;color:#7c2d12;padding:9px 10px;font-weight:850;line-height:1.35}.auditConfirm{display:grid!important;grid-template-columns:auto 1fr;align-items:start;gap:9px;border:1px solid #bbf7d0;border-radius:8px;background:#f0fdf4;padding:10px}.auditConfirm input{width:auto!important;margin-top:2px}.auditSummary{border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:9px 10px;margin:8px 0;display:grid;gap:4px}.auditSummary b{font-size:12px}.auditSummary span,.auditSummary small{font-size:11px;color:#64748b}.auditSummary ul{margin:4px 0 0 18px;padding:0;color:#334155}.profileRows button.warn,.runSheetCard .profileRows button.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.worksPrestartRows article{border-color:#bfdbfe;background:#eff6ff!important}
.auditsPage{padding:18px}.auditToolbar{margin-bottom:8px;flex-wrap:wrap}.auditToolbar select{min-width:150px}.auditToolbarHint{display:block;color:#64748b;line-height:1.35;margin:0 0 14px}.auditLibraryGroup{margin-bottom:18px}.auditLibraryGroup h4{margin:0 0 10px;font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-weight:950}.auditLibraryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.auditTemplate{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;display:grid;grid-template-rows:1fr auto;gap:12px;box-shadow:0 1px 2px #0b1f3508;border-top:4px solid #64748b;transition:transform .12s ease,box-shadow .12s ease}.auditTemplate:hover{transform:translateY(-2px);box-shadow:0 14px 30px #0b1f3518}.auditTemplate.blue{border-top-color:#1262d6}.auditTemplate.orange{border-top-color:#f97316}.auditTemplate.green{border-top-color:#16a34a}.auditTemplate.red{border-top-color:#dc2626}.auditTemplate.purple{border-top-color:#7c3aed}.auditTemplate.teal{border-top-color:#0f766e}.auditTemplate.slate{border-top-color:#64748b}.auditTemplate.imported{background:linear-gradient(180deg,#faf7ff,#fff)}.auditTemplate.imported:hover{border-color:#c9b7f5;box-shadow:0 14px 30px #7c3aed26}.auditTemplate span{display:inline-flex;width:max-content;border-radius:999px;background:#eef6ff;color:#0d62d9;padding:4px 8px;font-size:11px;font-weight:950}.auditTemplate.imported span{background:#f5f3ff;color:#7c3aed}.auditTemplate h3{margin:10px 0 6px;font-size:16px}.auditTemplate p{margin:0 0 8px;color:#334155;line-height:1.35}.auditTemplate small,.auditTemplate em{display:block;color:#64748b;font-size:12px;line-height:1.35}.auditTemplate em{font-style:normal;margin-top:6px;font-weight:850}.auditTemplate button{justify-self:start}.auditRecentPanel{padding:12px}.auditRecentPanel .railHead{margin-bottom:8px}.auditRecentItem{border:1px solid #e2e8f0;border-left:5px solid var(--job-line,#dbe6f1);border-radius:8px;background:var(--job-bg,#fff);padding:10px;margin-top:8px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.auditRecentItem b{display:block;font-size:13px}.auditRecentItem span{display:block;color:#64748b;font-size:12px;margin-top:2px}.auditRecentItem>small{color:#64748b;white-space:nowrap}
.assetTray{min-height:122px;grid-template-columns:166px 1fr;gap:10px;padding:10px 14px}.assetTray b{font-size:13px}.assetTray span{font-size:12px;line-height:1.2}.resourceTrayScroll{gap:8px}.assetStickerList,.staffStickerList,.crewStickerList{gap:10px}.assetSticker{width:108px;height:64px;grid-template-rows:43px 17px;border-radius:7px;padding:3px}.assetSticker img{max-width:96px;max-height:42px}.assetSticker span{font-size:11px}.crewSticker{min-width:150px;height:44px;padding:5px 10px}.crewSticker span{font-size:12px}.crewSticker small{font-size:10px}.staffSticker{width:72px;height:50px}.staffSticker span{width:31px;height:31px;font-size:11px}.staffSticker small{font-size:10px;max-width:66px}
.scheduleGrid{grid-template-columns:170px repeat(var(--days,10),minmax(118px,1fr))}.gridLabel,.day{height:54px;font-size:12px}.site{min-height:162px;padding:40px 18px 0 28px}.site:before{left:14px;top:28px;height:96px}.site b{font-size:17px}.site span{font-size:12px}.slot{min-height:172px;padding:13px 7px}.workCard{min-height:146px;border-radius:7px;border-top-width:5px;padding:9px}.workCard strong{font-size:12px}.workCard .activityLabel{padding:4px 10px;font-size:11px}.taskListWindow{padding:7px;max-height:86px}.taskListWindow b{font-size:10px}.taskListWindow span{font-size:11px}.workCard em{font-size:10px}.scheduleAssets{gap:4px}.scheduleAssets span{width:50px;min-height:39px;height:auto;grid-template-rows:26px 10px 11px}.scheduleAssets img{max-width:48px;max-height:26px}.chips span{min-width:26px;min-height:26px;font-size:11px}
.assetTiles h4,.assetCards h4{align-items:center}.assetTiles h4 i,.assetCards h4 i{width:18px;height:18px;border-radius:50%;border:3px solid #fff;background:#22c55e;box-shadow:0 0 0 2px #22c55e40,0 2px 8px #0f172a26;flex:none}.assetTiles h4 i.online,.assetCards h4 i.online{background:#22c55e}.assetTiles h4 i.warn,.assetCards h4 i.warn{background:#f3bd22;box-shadow:0 0 0 2px #f59e0b55,0 2px 9px #92400e33}.assetTiles h4 i.danger,.assetCards h4 i.danger{background:#ef4444;box-shadow:0 0 0 3px #ef444466,0 0 16px #ef444477}
.scheduleLower .assetTiles{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));align-content:start}.scheduleLower .assetTiles article{min-height:190px;grid-template-rows:102px auto auto auto}.scheduleLower .assetPic{height:102px;padding:12px}.scheduleLower .assetTiles h4{font-size:12px}.scheduleLower .assetTiles p,.scheduleLower .assetTiles small{font-size:11px}
.kpi.blue{background:linear-gradient(135deg,#fff 0%,#eef5ff 100%);border-color:#bfd7ff}.kpi.green{background:linear-gradient(135deg,#fff 0%,#ecfdf5 100%);border-color:#bbf7d0}.kpi.orange{background:linear-gradient(135deg,#fff 0%,#fff7ed 100%);border-color:#fed7aa}.kpi.purple{background:linear-gradient(135deg,#fff 0%,#f3efff 100%);border-color:#ddd6fe}.kpi.red{background:linear-gradient(135deg,#fff 0%,#fff1f2 100%)}
.schedulePanel{border-top:4px solid #1262d6;background:#fbfdff}.schedulePanel .panelHead{background:linear-gradient(90deg,#f8fbff,#fff)}.assetTray{background:#f1f7ff}.scheduleGrid{background:#fff}.day{background:#f8fafc}.site{background:#fff}.slot:nth-child(odd){background:#fcfdff}
.rightRail .railCard{border-left:5px solid #cbd5e1}.rightRail .railCard:nth-child(1){background:#f0f9ff;border-left-color:#0ea5e9}.rightRail .railCard:nth-child(2){background:#fff7ed;border-left-color:#f97316}.rightRail .railCard:nth-child(3){background:#f7fee7;border-left-color:#84cc16}.rightRail .railCard:nth-child(4){background:#f8fafc;border-left-color:#64748b}
.lower .panel:nth-child(1){background:#f7fbff;border-top:4px solid #38bdf8}.lower .panel:nth-child(2){background:#fffefa;border-top:4px solid #f59e0b}.lower .panel:nth-child(3){background:#f8fffb;border-top:4px solid #16a34a}
.assetSticker,.scheduleAssets span,.assetPic,.assetDetailCard>img,.profileRows article img,.controlIssue img{background:#fff}
.assetSticker{grid-template-rows:minmax(0,1fr) 17px;padding:4px;overflow:hidden}
.assetSticker img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center}
.scheduleAssets span{grid-template-rows:30px 10px 11px;padding:2px;overflow:visible}
.scheduleAssets img{display:block;width:100%;height:30px;max-width:none;max-height:none;object-fit:contain;object-position:center}
.assetPic{padding:10px}
.assetPic img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center}
.assetDetailCard>img{object-fit:contain;object-position:center}
.assetTiles article,.assetCards article{background:#fff}
.scheduleLower .assetPic{padding:8px}
.scheduleLower .assetTiles article{grid-template-rows:106px auto auto auto}
.scheduleLower .assetPic{height:106px}
body.mobileView{min-width:0}
.viewToggle{border:1px solid #d7e1ec;border-radius:8px;background:#fff;padding:7px 10px;color:#334155;font-weight:850;display:inline-flex;align-items:center;gap:6px}
.viewToggle.active{background:#1262d6;color:#fff;border-color:#1262d6}
body.mobileView .shell{display:block}
body.mobileView .side{position:sticky;top:0;z-index:30;height:74px;border-radius:0;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:stretch;overflow:hidden}
body.mobileView .brand{height:74px;border-radius:0;padding:6px}
body.mobileView .brand img{width:100%;height:auto;max-width:68px;max-height:62px;object-fit:contain}
body.mobileView .sideActions,body.mobileView .sideFoot{display:none}
body.mobileView .sideNav{height:74px;padding:8px;flex-direction:row;align-items:center;gap:7px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
body.mobileView .sideGroup{display:contents}
body.mobileView .sideGroup small{display:none}
body.mobileView .sideSubNav{display:contents}
body.mobileView .sideNav button{min-width:76px;min-height:56px;padding:5px 8px;justify-content:center;gap:3px;scroll-snap-align:start;border-radius:9px;flex-direction:column}
body.mobileView .sideNav button.sideSubItem{min-width:68px;min-height:56px;padding:5px 8px;font-size:11px}
body.mobileView .sideNav button .ico{width:16px;height:16px}
body.mobileView .sideNav button span{display:-webkit-box;font-size:11px;line-height:1.05;text-align:center;white-space:normal;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
body.mobileView .main{min-width:0}
body.mobileView .top{height:auto;grid-template-columns:1fr;gap:8px;padding:10px 12px}
body.mobileView .topGreeting{font-size:18px;padding-left:0}
body.mobileView .weatherMini,body.mobileView .topTabs,body.mobileView .topRight{border:0;padding-left:0;justify-content:flex-start}
body.mobileView .topTabs{display:none}
body.mobileView .topRight{height:auto;flex-wrap:wrap;gap:8px}
body.mobileView .topRight>span:not(.avatar){max-width:calc(100vw - 170px);overflow:hidden;text-overflow:ellipsis}
body.mobileView .dashboard,.mobileView .assetPage,.mobileView .staffPage,.mobileView .jobsWorkspace,.mobileView .page{padding:10px;max-width:100vw;overflow-x:hidden}
body.mobileView .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.mobileView .kpi{height:auto;min-height:92px;padding:12px}
body.mobileView .kpiNums b{font-size:28px}
body.mobileView .kpiBadge{width:48px;height:48px}
body.mobileView .workArea{display:block}
body.mobileView .rightRail{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
body.mobileView .panelHead{height:auto;min-height:56px;display:grid;grid-template-columns:1fr;gap:10px;padding:12px}
body.mobileView .panelHead h2{font-size:17px;line-height:1.1}
body.mobileView .pageHead{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;padding:12px}
body.mobileView .pageHead h2{font-size:20px;line-height:1.1;overflow-wrap:anywhere}
body.mobileView .titleWithBack{flex:1 1 220px;align-items:flex-start}
body.mobileView .pageHead>button,body.mobileView .pageHead>div:last-child{margin-left:auto}
body.mobileView .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
body.mobileView .miniStat{min-width:0}
body.mobileView .quoteToolbar,body.mobileView .supervisorToolbar{display:grid;grid-template-columns:1fr;gap:8px}
body.mobileView .quoteToolbar input,body.mobileView .quoteToolbar select,body.mobileView .supervisorToolbar input,body.mobileView .supervisorToolbar select{width:100%;min-width:0}
body.mobileView .libraryHead,body.mobileView .librarySearchRow{display:grid;grid-template-columns:1fr;width:100%}
body.mobileView .supervisorToolbar small{grid-column:auto}
body.mobileView .record,body.mobileView .pmTodo,body.mobileView .controlIssue{min-width:0;overflow-wrap:anywhere}
body.mobileView .controlIssue{grid-template-columns:1fr}
body.mobileView .controlIssue img{width:92px;height:66px}
body.mobileView .pmMeta{grid-template-columns:1fr;gap:6px}
body.mobileView .profileRows article,body.mobileView .actualStaffRows article{grid-template-columns:1fr;align-items:stretch}
body.mobileView .profileRows button,body.mobileView .profileRows select,body.mobileView .actualStaffRows button{width:100%}
body.mobileView .accountsShell{grid-template-columns:1fr;gap:10px}
body.mobileView .accountsRail{position:relative;top:auto;max-height:none;padding:10px;border-radius:14px}
body.mobileView .accountsMain{gap:10px}
body.mobileView .accountsMainHead{flex-direction:column;gap:10px;padding:12px 14px;border-radius:14px}
body.mobileView .accountsMainActions{justify-content:flex-start;width:100%}
body.mobileView .accountsStats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
body.mobileView .accountsContent{grid-template-columns:1fr;gap:10px}
body.mobileView .accountsPanel{border-radius:14px}
body.mobileView .accountDrawerPanel{top:8px;right:8px;bottom:8px;width:calc(100vw - 16px);border-radius:16px}
body.mobileView .accountFormShell{gap:12px}
body.mobileView .accountFormHead{padding:12px 12px 10px}
body.mobileView .accountFormHead h3{font-size:16px}
body.mobileView .accountFormBody{gap:12px}
body.mobileView .accountFormFooter{padding:0 12px 12px}
body.mobileView .accountFormEmpty{min-height:180px;padding:18px 12px}
body.mobileView .accountFormGrid{grid-template-columns:1fr}
body.mobileView .accountsRegisterPanel .railHead{flex-direction:column;align-items:stretch}
body.mobileView .accountsSearchWrap{min-width:0;flex:1 1 auto;width:100%}
body.mobileView .accountsMenuItem{grid-template-columns:40px minmax(0,1fr) 16px}
body.mobileView .accountsMenuIcon{width:40px;height:40px}
body.mobileView .accountsTable{min-width:720px}
body.mobileView .auditModal{width:100%;max-height:calc(100vh - 18px);padding:12px}
body.mobileView .auditItem label{grid-template-columns:1fr}
body.mobileView .auditSection{padding:10px}
body.mobileView .auditLibraryGrid{grid-template-columns:1fr}
body.mobileView .auditRecentItem{grid-template-columns:1fr}
body.mobileView .auditRecentItem>small{white-space:normal}
body.mobileView table{display:block;overflow-x:auto}
body.mobileView .siteMapHero,body.mobileView .siteMapStats{display:grid;grid-template-columns:1fr}
body.mobileView .siteMapShell{height:420px}
body.mobileView .siteMapRow{grid-template-columns:1fr}
body.mobileView .siteMapRow strong{justify-self:start}
body.mobileView .liveOpsGrid{grid-template-columns:1fr}
body.mobileView .liveStaffCard,body.mobileView .liveAssetCard{grid-template-columns:1fr}
body.mobileView .liveAssetCard img{width:96px;height:72px}
body.mobileView .scheduleTools{overflow-x:auto;justify-content:flex-start;padding-bottom:2px}
body.mobileView .scheduleTools button,body.mobileView .scheduleTools select{height:42px;min-width:max-content;font-size:14px}
body.mobileView .assetTray{grid-template-columns:1fr;align-items:start;padding:10px;min-height:0;gap:10px}
body.mobileView .resourceTrayGroup{grid-template-columns:1fr;gap:4px}
body.mobileView .resourceTrayGroup>span{min-height:0;padding:0}
body.mobileView .assetTray b{font-size:13px}
body.mobileView .assetTray span{font-size:12px}
body.mobileView .resourceTrayScroll{gap:9px}
body.mobileView .assetStickerList,body.mobileView .staffStickerList,body.mobileView .crewStickerList{gap:9px;padding-bottom:5px}
body.mobileView .assetSticker{width:104px;height:66px;grid-template-rows:minmax(0,1fr) 16px}
body.mobileView .assetSticker img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}
/* Planning whiteboard */
.whiteboardBar{display:grid;grid-template-columns:auto auto auto 54px 130px minmax(220px,1fr) auto;gap:10px;align-items:center;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;margin:12px 0}
.whiteboardBar button,.whiteboardBar input{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 12px;font-weight:800}
.whiteboardBar button.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.whiteboardBar input[type=color]{padding:3px}
.whiteboardBar input[type=range]{padding:0}
.whiteboardBar #boardText{font-weight:600}
.whiteboardBoard{height:calc(100vh - 260px);min-height:560px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}
#whiteboardCanvas{display:block;touch-action:none;cursor:crosshair}
.railActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.alertGroup h4 button{float:right;border:0;background:transparent;color:var(--blue);font-weight:800;padding:0}
/* Staff-focused timesheets */
.timesheetLayout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px;align-items:start}
.timesheetStaffList{display:grid;gap:10px}
.timesheetStaffList button{display:grid;grid-template-columns:48px 1fr auto;grid-template-rows:auto auto;gap:2px 12px;text-align:left;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;min-height:74px}
.timesheetStaffList button.active{border-color:var(--blue);box-shadow:0 0 0 2px #d7e8ff}
.timesheetStaffList .staffAvatar{grid-row:1/3}
.timesheetStaffList b{font-size:16px}
.timesheetStaffList small{color:var(--muted)}
.timesheetStaffList em{grid-column:3;grid-row:1/3;font-style:normal;color:var(--muted);font-weight:800}
.timesheetDetail{padding:16px}
.timesheetRows{display:grid;gap:10px;margin-top:12px}
.timesheetRows article{display:flex;justify-content:space-between;gap:14px;align-items:center;background:#f8fbff;border:1px solid var(--line);border-radius:8px;padding:12px}
.timesheetRows article b{display:block}
.timesheetRows article span,.timesheetRows article small{display:block;color:var(--muted)}
.accountsPage{padding:18px clamp(18px,2.2vw,28px) 24px;overflow-x:hidden}
.accountsShell{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.accountsRail{background:linear-gradient(180deg,#fbfcfe 0%,#f6f8fb 100%);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 1px 2px #0b1f3508;position:sticky;top:12px;max-height:calc(100vh - 96px);overflow:auto}
.accountsRailHeader{padding:6px 6px 14px;border-bottom:1px solid #e6edf6;margin-bottom:12px}
.accountsBrand{display:flex;align-items:center;gap:12px}
.accountsBrand span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(180deg,#19b6a7 0%,#12948b 100%);color:#fff;box-shadow:0 10px 22px #11968e30}
.accountsBrand b{font-size:18px;display:block}
.accountsBrand small{color:var(--muted)}
.accountsMenu{display:grid;gap:10px}
.accountsMenuItem{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:12px;align-items:center;text-align:left;background:#fff;border:1px solid #dfe7f1;border-radius:14px;padding:12px 14px;box-shadow:0 1px 1px #0b1f3508;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;cursor:grab;user-select:none}
.accountsMenuItem:hover{border-color:#b8cae0;box-shadow:0 6px 16px #0b1f3510;transform:translateY(-1px)}
.accountsMenuItem:active{cursor:grabbing}
.accountsMenuItem.dragging{opacity:.55}
.accountsMenuItem.is-drop-target{border-color:#12948b;box-shadow:0 0 0 2px #12a89b22,0 6px 16px #0b1f3510}
.accountsMenuItem.active{border-color:#12948b;box-shadow:0 10px 24px #11968e18,0 0 0 1px #12a89b1a;background:linear-gradient(180deg,#ffffff 0%,#f4fffd 100%)}
.accountsMenuItem b{display:block;font-size:15px;margin-bottom:2px}
.accountsMenuItem small{display:block;color:#6b7788;font-size:12px;line-height:1.2}
.accountsMenuItem em{display:block;margin-top:6px;font-style:normal;color:#11a89e;font-size:12px;font-weight:800;letter-spacing:.01em}
.accountsMenuIcon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#eff6fb;color:#1262d6}
.accountsMenuItem.active .accountsMenuIcon{background:#dff6f3;color:#12948b}
.accountsMenuHandle{display:grid;place-items:center;color:#9aa7b9}
.accountsMenuItem.active .accountsMenuHandle{color:#12948b}
.accountsMain{min-width:0;display:grid;gap:16px}
.accountsMainHead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px;box-shadow:0 1px 2px #0b1f3508}
.accountsMainHead h2{margin:0 0 6px;font-size:22px}
.accountsMainHead p{margin:0 0 4px;color:#2d3a4d;font-weight:700}
.accountsMainHead small{color:var(--muted)}
.accountsMainActions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.accountsStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.accountsContent{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.accountsPanel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 2px #0b1f3508;overflow:hidden}
.accountsPanel .railHead{margin:0;padding:14px 16px;border-bottom:1px solid #e6edf6;background:linear-gradient(180deg,#fff 0%,#f8fbfe 100%)}
.accountsPanel .railHead h3,.accountsPanel .railHead h4{margin:0;font-size:16px}
.accountsPanel .railHead small,.accountsPanel .railHead p{margin:4px 0 0;color:var(--muted)}
.accountDrawerHost{position:fixed;inset:0;z-index:60}
.accountDrawerHost[hidden]{display:none}
.accountDrawerBackdrop{position:absolute;inset:0;border:0;padding:0;background:rgba(11,31,53,.22);backdrop-filter:blur(1px);cursor:default}
.accountDrawerPanel{position:absolute;top:16px;right:16px;bottom:16px;width:min(560px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 60px #0b1f3530;overflow:hidden}
body.accountsDrawerOpen{overflow:hidden}
.accountFormShell{display:grid;gap:14px;height:100%;overflow:auto;background:#fff}
.accountFormHead{position:sticky;top:0;z-index:2;padding:16px 16px 12px;border-bottom:1px solid #e6edf6;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.accountFormHead h3{margin:0;font-size:18px;line-height:1.2}
.accountFormBody{display:grid;gap:14px;padding:0 16px 16px}
.accountFormFooter{position:sticky;bottom:0;z-index:2;display:flex;gap:8px;justify-content:flex-end;padding:12px 16px 16px;border-top:1px solid #e6edf6;background:linear-gradient(180deg,rgba(255,255,255,.82) 0%,#fff 42%)}
.accountFormEmpty{min-height:240px;display:grid;place-items:center;gap:14px;padding:24px 16px}
.accountFormEmpty .ico{width:34px;height:34px;color:#1262d6}
.accountSection{border:1px solid #e3eaf3;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fcfdff 100%);overflow:hidden}
.accountSection .railHead{padding:14px 16px 8px;margin:0}
.accountSection .railHead h4{font-size:15px;margin:0}
.accountSection .railHead p{margin:4px 0 0;color:var(--muted);font-size:12px}
.accountFormGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 16px 16px}
.accountFormGrid .wide{grid-column:1/-1}
.accountFormGrid label{display:grid;gap:5px;font-size:12px;font-weight:850;color:#304056}
.accountFormGrid input,.accountFormGrid select,.accountFormGrid textarea{width:100%;border:1px solid #d4deea;border-radius:10px;padding:10px 11px;background:#fff}
.accountFormGrid textarea{resize:vertical;min-height:84px}
.accountsRegisterPanel .railHead{display:flex;justify-content:space-between;gap:12px;align-items:center}
.accountsSearchWrap{min-width:280px;flex:0 0 280px}
.accountsSearchWrap input{width:100%;height:40px;border:1px solid #d4deea;border-radius:999px;padding:0 14px;background:#fff}
.accountsTableWrap{overflow:auto}
.accountsTable{width:100%;border-collapse:collapse;font-size:13px}
.accountsTable th,.accountsTable td{padding:12px 14px;border-bottom:1px solid #e8edf4;vertical-align:top;text-align:left}
.accountsTable th:first-child,.accountsTable td:first-child{min-width:240px}
.accountsTable thead th{background:#f8fbfe;color:#475569;font-size:12px;font-weight:850;text-transform:none;letter-spacing:0;white-space:nowrap}
.accountsTable thead th.accountSortHead{padding-right:10px}
.accountSortButton{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:inherit;font:inherit;font-weight:850;padding:0;white-space:nowrap}
.accountSortButton:hover{color:#1262d6}
.accountSortIndicator{font-size:11px;line-height:1;color:#94a3b8}
.accountsTable tbody tr:hover{background:#f8fbff}
.accountsTable td small{color:var(--muted)}
.accountsTable td .tag{display:inline-flex}
@media(max-width:900px){
  .whiteboardBar{grid-template-columns:1fr 1fr 1fr;align-items:stretch}
  .whiteboardBar #boardText{grid-column:1/-1}
  .whiteboardBoard{height:70vh;min-height:500px}
  .timesheetLayout{grid-template-columns:1fr}
}
/* Header compaction and final asset image normalization */
.top{grid-template-columns:max-content minmax(0,1fr) auto}
.weatherMini{border-left:0;padding-left:14px}
.topTabs{justify-content:flex-start;gap:2px;min-width:0;overflow:hidden}
.topTabs button{padding:0 8px;gap:5px;font-size:13px;min-width:auto}
.topTabs .ico{width:17px;height:17px}
.topRight{gap:7px;padding:0 10px}
.topRight>span:not(.avatar){max-width:178px;overflow:hidden;text-overflow:ellipsis}
.viewToggle{padding:7px 8px}
.assetCards article{grid-template-rows:168px 30px 32px 28px;min-height:258px}
.assetTiles article{grid-template-rows:118px 28px 34px 24px;min-height:214px}
.assetPic,.assetCards .assetPic,.assetTiles .assetPic{height:auto;min-height:0;aspect-ratio:16/9;padding:10px;background:#fff;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}
.assetPic img,.assetCards .assetPic img,.assetTiles .assetPic img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;display:block}
.assetCards h4,.assetTiles h4{min-height:20px}
.assetCards p,.assetTiles p{min-height:18px}
.scheduleLower .assetTiles article{grid-template-rows:104px 26px 32px 22px;min-height:184px}
.scheduleLower .assetPic{height:auto;aspect-ratio:16/9;padding:10px}
.scheduleLower .assetPic img{width:100%;height:100%;max-width:100%;max-height:100%}
.workCard.isDelayed{background:#fee2e2!important;border:3px solid #dc2626!important;border-top:9px solid #b91c1c!important;box-shadow:0 0 0 4px #ef44444f,0 12px 28px #991b1b40;animation:delayedPulse 1.6s ease-in-out infinite}.workCard.isDelayed:before{content:"DELAYED";position:absolute;right:5px;top:4px;background:#b91c1c;color:#fff;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:1000;letter-spacing:.04em;z-index:2}.workCard.isDelayed .activityLabel{background:#b91c1c;border-color:#7f1d1d;color:#fff;font-weight:1000}.workCard.isDelayed .taskListWindow{background:#fff;border:2px solid #b91c1c;color:#111827}.workCard.isDelayed .taskListWindow b{color:#b91c1c}.workCard.isDelayed .scheduleAssets span{border-color:#dc2626;background:#fff}.workCard.isDelayed .cardTools button{background:#fff!important;border-color:#b91c1c!important;color:#7f1d1d!important}.workCard.isCarryOver:after{content:"CARRY OVER";position:absolute;left:5px;top:4px;border-radius:5px;background:#7f1d1d;color:#fff;font-size:9px;font-weight:1000;padding:3px 6px;z-index:2}.workCard.isDelayed.isCarryOver:before{content:"DELAYED";right:5px;left:auto}@keyframes delayedPulse{0%,100%{box-shadow:0 0 0 4px #ef44444f,0 12px 28px #991b1b40}50%{box-shadow:0 0 0 7px #ef444480,0 16px 34px #991b1b66}}
.workCard.isPlanned{background:#eaf4ff!important;border:2px solid #60a5fa!important;border-top:6px solid #3b82f6!important}.workCard.isPlanned .activityLabel{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.workCard.isInProgress{background:#fef3c7!important;border:3px solid #f59e0b!important;border-top:8px solid #d97706!important;box-shadow:0 0 0 4px #f59e0b38,0 10px 24px #92400e24;animation:progressPulse 1.4s ease-in-out infinite}.workCard.isInProgress .activityLabel{background:#d97706;border-color:#92400e;color:#fff}.workCard.isInProgress .taskListWindow{border:2px solid #f59e0b}.workCard.isComplete{background:#dcfce7!important;border:3px solid #16a34a!important;border-top:8px solid #15803d!important;box-shadow:0 0 0 3px #22c55e30}.workCard.isComplete .activityLabel{background:#15803d;border-color:#166534;color:#fff}.workCard.isComplete .taskListWindow{border:2px solid #16a34a}.workCard.isComplete:before{content:"COMPLETE";position:absolute;right:5px;top:4px;background:#15803d;color:#fff;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:1000;letter-spacing:.04em;z-index:2}@keyframes progressPulse{0%,100%{box-shadow:0 0 0 4px #f59e0b38,0 10px 24px #92400e24}50%{box-shadow:0 0 0 7px #f59e0b66,0 14px 30px #92400e42}}
.fieldRecord.isDelayedRecord{background:#fff1f2!important;border:3px solid #dc2626!important;border-left:10px solid #b91c1c!important;box-shadow:0 0 0 4px #ef44442e,0 12px 28px #991b1b26;position:relative}.fieldRecord.isDelayedRecord:after{content:"DELAYED WORK";position:absolute;right:14px;bottom:14px;background:#b91c1c;color:#fff;border-radius:6px;padding:5px 10px;font-size:11px;font-weight:1000;letter-spacing:.04em}.fieldRecord.isDelayedRecord .railHead h3{color:#7f1d1d}.fieldRecord.isDelayedRecord p{color:#111827}.fieldRecord.isDelayedRecord .tag{background:#b91c1c;color:#fff}
.pmTodo.isDelayedRecord{background:#fff7f7!important;border:2px solid #dc2626!important;border-left:10px solid #b91c1c!important;box-shadow:0 0 0 4px #ef44442e,0 12px 28px #991b1b20}.pmTodo.isDelayedRecord .railHead h3{color:#7f1d1d}.pmOvertimeQueue,.pmGpsAlertQueue{display:grid;gap:10px;margin:0 0 14px}.pmOvertimeQueue>.railHead{border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;padding:10px 12px}.pmGpsAlertQueue>.railHead{border:1px solid #fecaca;border-radius:8px;background:#fff1f2;padding:10px 12px;color:#991b1b}.overtimeCard{border-left-color:#f59e0b!important}.overtimeCard.isDelayedRecord{border-left-color:#b91c1c!important}.gpsAlertCard{border-left-color:#dc2626!important}.gpsAlertInputs{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(260px,1fr);gap:9px;margin:10px 0}.pmOverrideGrid,.pmFollowupGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;margin:10px 0}.pmOverrideGrid label,.pmFollowupGrid label,.pmNote{display:grid;gap:4px;font-size:11px;font-weight:900;color:#475569}.pmOverrideGrid input,.pmOverrideGrid select,.pmFollowupGrid select,.pmFollowupGrid textarea,.pmNote input,.pmNote textarea{width:100%;border:1px solid #d4deea;border-radius:7px;background:#fff;padding:8px;color:#172033}.pmFollowupGrid textarea,.pmNote textarea{resize:vertical;min-height:42px}.pmOverrideActions{display:flex;gap:8px;flex-wrap:wrap}.pmOverrideActions button,.pmOverrideActions a{font-size:12px;padding:8px 10px}.pmOverrideActions a{border-radius:8px;background:#fff;color:#1262d6;border:1px solid #d7e1ec;text-decoration:none;font-weight:900}.pmControlPage .pmTodo h4{margin:12px 0 6px}@media(max-width:900px){.pmOverrideActions button{width:100%}.gpsAlertInputs{grid-template-columns:1fr}}
.worksMarkupGrid{display:grid;grid-template-columns:minmax(420px,1fr) 320px;gap:12px;align-items:start}.worksMarkupCanvas{position:relative;min-height:330px;border:1px solid #bfdbfe;border-radius:8px;background:#eef6ff;overflow:hidden;cursor:crosshair}.worksMarkupCanvas>img,.worksMarkupCanvas>iframe{width:100%;height:420px;border:0;display:block;object-fit:contain;background:#fff}.wmMarkerLayer{position:absolute;inset:0;pointer-events:none}.wmMarker{position:absolute;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:999px;border:3px solid #fff;background:#2563eb;color:#fff;font-weight:1000;box-shadow:0 8px 18px #0f172a40;pointer-events:auto}.wmMarker.complete{background:#16a34a}.wmMarker.progress{background:#d97706}.wmMarker.blocked{background:#dc2626}.worksMarkupSide{display:grid;gap:8px;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:10px}.worksMarkupSide label{display:grid;gap:4px;font-size:11px;font-weight:900;color:#475569}.worksMarkupSide input,.worksMarkupSide select{border:1px solid #d4deea;border-radius:7px;background:#fff;padding:8px;color:#172033;width:100%}.worksMarkupSide p{font-size:12px;color:#475569;line-height:1.35;margin:2px 0 0}.wmItems{display:grid;gap:8px;margin-top:10px}.wmItem{display:grid;grid-template-columns:32px minmax(0,1fr) 140px auto auto auto;gap:8px;align-items:center;border:1px solid #dbe6f1;border-left:6px solid #2563eb;border-radius:8px;background:#fff;padding:8px}.wmItem>span{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-weight:1000}.wmItem.complete{border-left-color:#16a34a;background:#f0fdf4}.wmItem.progress{border-left-color:#d97706;background:#fffbeb}.wmItem.blocked{border-left-color:#dc2626;background:#fff7f7}.wmItem b,.wmItem small{display:block;min-width:0}.wmItem small{color:#64748b;margin-top:2px}.wmItem select{border:1px solid #d4deea;border-radius:7px;padding:7px;background:#fff}.pulseRow{animation:wmPulse 1.1s ease-in-out}@keyframes wmPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 5px #2563eb35}}.crewBuildItems{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-bottom:10px}.crewBuildItem{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;border:1px solid #dbe6f1;border-radius:8px;background:#fff;padding:9px}.crewBuildItem.complete{background:#f0fdf4;border-color:#86efac}.crewBuildItem b,.crewBuildItem small{display:block}.crewBuildItem small{color:#64748b;margin-top:2px}@media(max-width:900px){.worksMarkupGrid{grid-template-columns:1fr}.worksMarkupCanvas>img,.worksMarkupCanvas>iframe{height:300px}.wmItem{grid-template-columns:28px minmax(0,1fr);}.wmItem select,.wmItem button{width:100%}}
.wmToolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:10px 0}.wmToolGroup{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.wmToolbar button{border:1px solid #c9d7e8;background:#fff;color:#143057;border-radius:7px;padding:0;width:36px;height:32px;display:grid;place-items:center;font-size:12px;font-weight:900}.wmToolbar button .ico{width:17px;height:17px}.wmToolbar button.active{background:#1262d6;border-color:#1262d6;color:#fff}.wmToolbar button:disabled{opacity:.45;cursor:not-allowed}.wmToolGroup>span{min-width:50px;text-align:center;font-weight:1000;color:#17304f}.srOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.worksMarkupStage{height:420px;overflow:auto;background:#10243c}.worksMarkupPlan{position:relative;min-width:100%;background:#fff;overflow:hidden}.worksMarkupPlan>img,.worksMarkupPlan>iframe{width:100%;height:100%;border:0;display:block;object-fit:contain;background:#fff;pointer-events:none}.worksMarkupPlan>.emptySmall{height:100%;display:flex;align-items:center;justify-content:center}.wmAnnotationLayer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}.wmSvgPen{fill:none;stroke:#ef4444;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.wmSvgHighlight{fill:none;stroke:#facc15;stroke-width:14;stroke-linecap:round;stroke-linejoin:round;opacity:.5;mix-blend-mode:multiply}.wmSvgLine{stroke:#2563eb;stroke-width:4;stroke-linecap:round}.wmSvgText{font:700 3.2px Arial,sans-serif;fill:#111827;paint-order:stroke;stroke:#fff;stroke-width:.7px;stroke-linejoin:round}.wmMarkerLayer{z-index:3}.wmMarker,.wmItemSticker,.wmItemDragText{cursor:grab}.wmMarker:active,.wmItemSticker:active,.wmItemDragText:active{cursor:grabbing}.wmItemDragText{min-width:0}.worksMarkupCanvas[data-wm-tool="select"]{cursor:default}.worksMarkupCanvas[data-wm-tool="pen"],.worksMarkupCanvas[data-wm-tool="highlight"],.worksMarkupCanvas[data-wm-tool="line"],.worksMarkupCanvas[data-wm-tool="eraser"]{cursor:crosshair}.worksMarkupCanvas[data-wm-tool="text"]{cursor:text}@media(max-width:900px){.worksMarkupStage{height:300px}.wmToolbar{align-items:stretch}.wmToolGroup{width:100%}.wmToolbar button{flex:1}.wmItemDragText{cursor:default}}

.fieldRecordsPage{padding:18px}
.fieldHubIntro,.fieldRegisterPanel{padding:14px}
.fieldHubSourceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.fieldHubSourceCard{border:1px solid #e2ebf5;border-radius:14px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);padding:14px;display:grid;grid-template-rows:1fr auto;gap:12px;box-shadow:0 1px 2px #0b1f3508}
.fieldHubSourceCard h3{margin:0;font-size:16px;color:#122033}
.fieldHubSourceCard p{margin:8px 0 0;color:#475569;line-height:1.45}
.fieldHubSourceCard button{justify-self:start}
.fieldToolbar{display:grid;grid-template-columns:minmax(240px,1.4fr) repeat(5,minmax(150px,1fr));gap:10px;align-items:stretch}
.fieldToolbar input,.fieldToolbar select{width:100%;min-width:0}
.fieldSummaryChips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.fieldSummaryChips span{border:1px solid #d8e3ef;border-radius:999px;background:#f8fbff;padding:6px 10px;color:#475569;font-size:12px;font-weight:900}
.fieldRecordList{display:grid;gap:12px}
.fieldRecordCard{border:1px solid #dfe7f1;border-left:6px solid var(--job-line,#dbe6f1)!important;border-radius:14px;background:var(--job-bg,#fff)!important;box-shadow:0 1px 2px #0b1f3508}
.fieldRecordCard.needsAttention{border-color:#fecaca;background:linear-gradient(180deg,#fff5f5 0%,#fff 100%)!important}
.fieldRecordCard.attentionClosed{border-color:#bfdbfe;background:linear-gradient(180deg,#f5faff 0%,#fff 100%)!important}
.fieldRecordCard.historyRecord{border-color:#dbe6f1;background:linear-gradient(180deg,#fcfdff 0%,#fff 100%)!important}
.fieldRecordCard.liveRecord{border-color:#dbe6f1;background:#fff!important}
.fieldRecordHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.fieldRecordEyebrow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.fieldRecordEyebrow span{display:inline-flex;align-items:center;border-radius:999px;background:#eff6ff;color:#0d62d9;padding:4px 8px;font-size:11px;font-weight:950}
.fieldRecordHead h3{margin:0;font-size:18px;color:#122033}
.fieldRecordTypeLine{margin:4px 0 0;color:#0d62d9;font-size:11px;font-weight:1000;letter-spacing:.05em;text-transform:uppercase}
.fieldRecordSummary{margin:10px 0 0;color:#334155;line-height:1.45}
.fieldRecordStatusStack{display:grid;justify-items:end;gap:8px}
.fieldAlertChip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:950}
.fieldAlertChip.danger{background:#fee2e2;color:#991b1b}
.fieldAlertChip.good{background:#dcfce7;color:#166534}
.fieldAlertChip.neutral{background:#eef2f7;color:#475569}
.fieldRecordMetaGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.fieldRecordMetaGrid article{border:1px solid #e3ebf4;border-radius:10px;background:#fff;padding:10px}
.fieldRecordMetaGrid span{display:block;font-size:11px;font-weight:950;color:#64748b;letter-spacing:.04em;text-transform:uppercase}
.fieldRecordMetaGrid b{display:block;margin-top:4px;font-size:13px;color:#122033}
.fieldRecordMetaGrid small{display:block;margin-top:4px;color:#64748b;line-height:1.35}
.fieldAuditSummary{margin-top:12px}
.fieldRecordMedia{margin-top:12px}
.fieldRecordMedia .fieldThumb{width:min(100%,240px);height:150px}
.fieldRecordFooter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid #e8edf4}
.fieldRecordHistory{color:#475569;font-size:12px;font-weight:900;line-height:1.4}
.fieldInlineHint{display:block;margin-top:10px;color:#475569;font-size:12px;line-height:1.35}
.fieldRecordsPage .inlineFieldEdit{
  margin:-4px 0 18px 22px;
  border:2px solid #2563eb;
  border-left:8px solid #2563eb;
  background:#eef6ff;
  box-shadow:0 14px 30px #1d4ed81c;
  position:relative;
}
.fieldRecordsPage .inlineFieldEdit:before{
  content:"";
  position:absolute;
  top:-10px;
  left:28px;
  width:18px;
  height:18px;
  background:#eef6ff;
  border-left:2px solid #2563eb;
  border-top:2px solid #2563eb;
  transform:rotate(45deg);
}
.fieldRecordsPage .inlineFieldEdit h3{
  color:#0f3f86;
}
.fieldRecordsPage .inlineFieldEdit textarea{
  min-height:90px;
}
@media(max-width:1100px){
  .fieldToolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fieldRecordHead{grid-template-columns:1fr}
  .fieldRecordStatusStack{justify-items:start}
  .fieldRecordMetaGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fieldRecordFooter{display:grid}
}
@media(max-width:820px){
  .fieldHubSourceGrid,.fieldToolbar,.fieldRecordMetaGrid{grid-template-columns:1fr}
}
.supervisorToolbar{grid-template-columns:minmax(210px,auto) minmax(130px,auto) minmax(260px,1fr);align-items:center}.supervisorToolbar small{grid-column:1/-1;color:#475569;font-weight:750}.controlIssue.isUrgentIssue{background:#fff1f2!important;border:2px solid #ef4444!important;border-left:8px solid #b91c1c!important}.controlIssue.isUrgentIssue h3{color:#7f1d1d}
.siteMapHero{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:14px}.siteMapHero h3{margin:0;font-size:24px}.siteMapHero p{margin:4px 0 0;color:#536276}.siteMapStats{display:flex;gap:10px}.siteMapStats span{background:#f8fbff;border:1px solid var(--line);border-radius:8px;padding:10px 14px;min-width:120px}.siteMapStats b{display:block;font-size:22px}.siteMapShell{position:relative;height:520px;background:#d9eadc;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.siteMarkerLayer{position:absolute;inset:0;pointer-events:none}.siteMarker{position:absolute;transform:translate(-50%,-100%);display:grid;gap:4px;justify-items:center;border:0;background:transparent;color:#0f2a44;font-weight:950;pointer-events:auto;cursor:pointer;z-index:5}.siteMarker span{width:22px;height:22px;border-radius:50% 50% 50% 0;background:#64748b;border:3px solid #fff;box-shadow:0 4px 12px #0b1f3540;transform:rotate(-45deg)}.siteMarker.active span{background:#16a34a}.siteMarker b{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 8px;box-shadow:0 3px 10px #0b1f351f;white-space:nowrap}.localSiteMap{position:absolute;inset:0;overflow:hidden;background:linear-gradient(135deg,#cfe6d2,#eef7e8 35%,#d8ead4);background-size:100% 100%}.localSiteMap:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff55 1px,transparent 1px),linear-gradient(90deg,#ffffff55 1px,transparent 1px);background-size:64px 64px;opacity:.55}.mapWater{position:absolute;background:#9fd1f0;border:2px solid #7ebadf;box-shadow:inset 0 0 30px #ffffff70}.mapWater.bay{right:-6%;top:16%;width:36%;height:72%;border-radius:55% 0 0 45%;transform:rotate(-9deg)}.mapWater.geelongBay{left:10%;bottom:8%;width:20%;height:24%;border-radius:45% 55% 50% 40%;transform:rotate(-18deg)}.mapRoad{position:absolute;height:8px;background:#ffffff;border:2px solid #b7c7d8;border-radius:999px;box-shadow:0 2px 8px #0b1f3518;transform-origin:left center}.mapRoad.freeway{height:12px;border-color:#f59e0b;background:#fff7ed}.mapRoad.arterial{height:7px;border-color:#94a3b8;background:#fff}.mapRoad.westGate{left:19%;top:55%;width:57%;transform:rotate(-16deg)}.mapRoad.ringRoad{left:34%;top:33%;width:34%;transform:rotate(36deg)}.mapRoad.princess{left:14%;top:64%;width:40%;transform:rotate(12deg)}.mapRoad.cityLink{left:51%;top:27%;width:28%;transform:rotate(76deg)}.mapRoad.eastLink{left:63%;top:41%;width:32%;transform:rotate(51deg)}.mapLabel{position:absolute;z-index:2;background:#ffffffd9;border:1px solid #cbd5e1;border-radius:999px;padding:5px 9px;color:#334155;font-weight:900;font-size:12px;box-shadow:0 3px 12px #0b1f3515}.mapLabel.melbourne{left:57%;top:38%}.mapLabel.cbd{left:55%;top:45%;font-size:10px}.mapLabel.laverton{left:35%;top:54%}.mapLabel.geelong{left:18%;top:70%}.mapLabel.frankston{left:73%;top:74%}.siteMapList{display:grid;gap:8px;margin-top:14px}.siteMapRow{display:grid;grid-template-columns:1.2fr 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;text-align:left;color:#172033}.siteMapRow:nth-child(even){background:#f8fbff}.siteMapRow.active{border-left:6px solid #16a34a}.siteMapRow small{display:block;color:#536276}.siteMapRow strong{justify-self:end}
.profilePrefs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.profilePrefs .record{padding:16px}.profilePrefs label{display:block;margin:10px 0;font-weight:850}.profilePrefs select,.profilePrefs input[type=text]{width:100%;border:1px solid #d7e1ec;border-radius:8px;padding:10px;background:#fff}
body.themeDark .top,body.themeDark .panel,body.themeDark .railCard,body.themeDark .pageHead,body.themeDark .schedulePanel,body.themeDark .record,body.themeDark table,body.themeDark .empty,body.themeDark .assetTray,body.themeDark .day,body.themeDark .site,body.themeDark .slot,body.themeDark .scheduleEmptyState{background:var(--panel);border-color:var(--line);color:var(--text)}body.themeDark button,body.themeDark select,body.themeDark input,body.themeDark textarea,body.themeDark .profileMenu{background:#0f2031;color:var(--text);border-color:var(--line)}body.themeDark .brand{background:transparent}body.themeDark .profileMenu button:hover{background:#173452}
@media(max-width:1280px){.top{grid-template-columns:max-content minmax(0,1fr) auto}.topTabs button{padding:0 7px;font-size:12px}.topRight>span:not(.avatar){max-width:145px}}
body.mobileView .crewSticker{min-width:142px;height:46px}
body.mobileView .staffSticker{width:68px;height:52px}
body.mobileView .scheduleGrid{grid-template-columns:136px repeat(var(--days,10),minmax(156px,172px));overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}
body.mobileView .gridLabel,body.mobileView .day{height:52px;font-size:11px;position:sticky;top:0;z-index:2;background:#fff}
body.mobileView .gridLabel{left:0;z-index:4;padding-left:12px}
body.mobileView .site{position:sticky;left:0;z-index:3;background:#fff;min-height:166px;padding:38px 12px 0 22px}
body.mobileView .site b{font-size:15px}
body.mobileView .slot{min-height:166px;padding:10px 6px}
body.mobileView .workCard{min-height:142px;padding:8px}
body.mobileView .taskListWindow{max-height:70px}
body.mobileView .lower{grid-template-columns:1fr;gap:10px}
body.mobileView .assetTiles{grid-template-columns:repeat(2,minmax(0,1fr))}
body.mobileView .assetCards,body.mobileView .staffCards,.mobileView .cards{grid-template-columns:1fr}
body.mobileView .assetLibraryLayout,body.mobileView .assetProfileGrid,body.mobileView .staffLayout,body.mobileView .jobsWorkspace,body.mobileView .jobSections{grid-template-columns:1fr}
body.mobileView .assetProfileHero{grid-template-columns:1fr;align-items:start}
body.mobileView .assetHeroActions{justify-content:flex-start}
body.mobileView .assetImageGrid{grid-template-columns:1fr 1fr}
body.mobileView .assetDetail,body.mobileView .staffDetail,body.mobileView .jobsList{position:static}
body.mobileView .jobHero{display:block}
body.mobileView .jobMeta{text-align:left;margin-top:10px}
body.mobileView .poBuilder,body.mobileView .claimBuilder,body.mobileView .ticketLine,body.mobileView .line{grid-template-columns:1fr}
body.mobileView .miniSchedule,body.mobileView .staffMonthCalendar{grid-template-columns:repeat(2,minmax(0,1fr))}
body.mobileView .quoteStats{grid-template-columns:repeat(2,minmax(0,1fr))}
body.mobileView .monthGrid{grid-template-columns:repeat(7,minmax(96px,1fr));overflow:auto}
body.mobileView .taskTemplatesLayout{grid-template-columns:1fr}
body.mobileView .taskTemplatesRail{position:static}
body.mobileView .taskTemplatesFutureGrid{grid-template-columns:1fr}
body.mobileView .taskPlannerGrid{grid-template-columns:1fr 1fr}
@media(max-width:1280px){.top{grid-template-columns:max-content minmax(0,1fr) auto}.topTabs{justify-content:flex-start;overflow-x:auto;min-width:0}.topTabs button{min-width:max-content;padding:0 14px}.topTabs button span{display:inline;font-size:12px;white-space:nowrap}.dashboard{padding:18px 22px 24px}.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpi{height:auto;min-height:104px}.workArea{grid-template-columns:1fr}.schedulePanel{overflow:hidden}.rightRail{display:grid;grid-template-columns:repeat(3,1fr)}.lower{grid-template-columns:1fr}.assetTiles{grid-template-columns:repeat(3,1fr)}.assetLibraryLayout,.assetProfileGrid,.staffLayout{grid-template-columns:1fr}.assetDetail,.staffDetail{position:static}.jobsWorkspace{grid-template-columns:1fr}.jobsList{position:static}.jobSections{grid-template-columns:1fr}.photoCats{grid-template-columns:1fr}}
@media(min-width:821px) and (max-width:1100px){.shell{grid-template-columns:104px 1fr}.brand{height:82px;flex-basis:82px;padding:7px}.brand img{width:78px;height:auto;max-height:68px;object-fit:contain}.sideFoot img{width:78px;max-height:68px}.sideNav{padding:14px 12px;gap:8px}.sideNav button{justify-content:center;padding:0;min-height:42px}.sideNav button span,.sideActions button span{display:none}.sideSubNav{display:contents}.sideActions{padding:8px 12px 12px}.sideActions button{justify-content:center;padding:0}}
@media(max-width:820px){.shell{display:block}.side{position:relative;height:auto;border-radius:0}.sideNav{flex-direction:row;overflow:auto}.sideNav button span{display:inline}.sideFoot{display:none}.top{height:auto;grid-template-columns:1fr;padding:10px;gap:8px}.topGreeting,.weatherMini,.topTabs,.topRight{border:0;padding-left:0;justify-content:flex-start}.dashboard{padding:12px}.kpis{grid-template-columns:1fr}.assetTray{grid-template-columns:1fr}.scheduleGrid{grid-template-columns:140px repeat(var(--days,10),118px)}.rightRail{grid-template-columns:1fr}.assetTiles{grid-template-columns:1fr 1fr}.assetCards,.staffCards{grid-template-columns:1fr}.lower{grid-template-columns:1fr}.miniSchedule{grid-template-columns:1fr 1fr}.jobHero{display:block}.jobMeta{text-align:left;margin-top:10px}.poBuilder,.claimBuilder{grid-template-columns:1fr}.staffMonthCalendar{grid-template-columns:repeat(2,1fr)}.loginPage{grid-template-columns:1fr}.loginCard{margin:20px}.loginBrand{padding:40px}.loginProductLogo{width:min(190px,78%);margin-top:-4px}}

/* Supplier-grouped Auto BOM PO builder */
.poBuilderTools{align-items:center}
.poBuilderTools span{color:#64748b;font-size:12px;font-weight:850}
.poSupplierGroups{display:grid;gap:10px}
.poSupplierGroup{border:1px solid #d7e4f2;border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 6px 16px #0b1f3508}
.poSupplierGroup.has-selection{border-color:#b9d6ff;background:#fbfdff}
.poSupplierGroup.is-empty{opacity:.68}
.poSupplierGroupHead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;background:linear-gradient(90deg,#eff6ff,#fff);border-bottom:1px solid #e3edf8}
.poSupplierGroupHead b{display:block;color:#0d2338;font-size:14px}
.poSupplierGroupHead small,.poSupplierGroupHead em{display:inline-block;color:#64748b;font-size:11px;font-style:normal;font-weight:900;margin-right:8px}
.poSupplierGroupActions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.poSupplierGroupActions button{border:1px solid #cbdcf2;border-radius:8px;background:#fff;color:#1262d6;padding:7px 10px;font-size:12px;font-weight:950}
.poSupplierItems{margin:0;padding:10px;background:#f8fbff}
.poSupplierItems label{background:#fff}
@media(max-width:700px){.poSupplierGroupHead{grid-template-columns:1fr}.poSupplierGroupActions{justify-content:flex-start}}

.assetLibraryLayout,.staffLayout{grid-template-columns:minmax(0,1fr)}
.assetLibrary,.staffCards{min-width:0}
.assetGroupHeader,.staffGroupHeader{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:900;color:#122033}
.assetGroupHeader:first-child,.staffGroupHeader:first-child{margin-top:0}
.assetGroupHeader h3,.staffGroupHeader h3{margin:0;font-size:14px;display:flex;align-items:center;gap:8px}
.assetGroupHeader span,.staffGroupHeader>span{font-size:11px;color:#64748b;background:transparent!important}
.assetGroupHeader.hcv{border-left:5px solid #2563eb;background:#eff6ff}
.assetGroupHeader.lcv{border-left:5px solid #0f766e;background:#ecfdf5}
.assetGroupHeader.trailers{border-left:5px solid #d97706;background:#fff7ed}
.assetGroupHeader.plant{border-left:5px solid #7c3aed;background:#f5f3ff}
.assetGroupHeader.other{border-left:5px solid #64748b;background:#f8fafc}
.inlineDetail{grid-column:1/-1;cursor:default!important;display:block!important;grid-template-rows:none!important;min-height:0!important;border:0!important;background:transparent!important;overflow:visible!important}
.assetInlineDetail .assetDetailCard,.staffInlineDetail .staffDetailCard{border:2px solid #1262d6;background:#fff;box-shadow:0 12px 30px #0b1f351f}
.assetInlineDetail .assetDetailCard{display:grid;grid-template-columns:320px minmax(0,1fr)}
.assetInlineDetail .assetDetailCard>img{height:100%;min-height:230px}
.assetInlineDetail .assetDetailBody,.staffInlineDetail .staffDetailCard{background:linear-gradient(180deg,#fff,#f8fbff)}
.assetCards article.realAssetTile{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.assetCards article.realAssetTile:hover,.staffCard:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0b1f3512}
.assetCards article.realAssetTile.active,.staffCard.active{box-shadow:0 0 0 2px #1262d630,0 12px 26px #0b1f3516}
.assetProfilePage{padding:18px}
.assetProfileHero{display:grid;grid-template-columns:auto 128px minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:12px}
.assetProfileHero>img{width:128px;height:82px;object-fit:contain;background:#fff;border:1px solid #e4edf7;border-radius:6px;padding:6px}
.assetProfileHero h1{margin:0;font-size:32px;line-height:1}.assetProfileHero h2{margin:4px 0;font-size:18px;color:#26364d}.assetProfileHero p{margin:0;color:#536276;font-weight:800}
.assetHeroActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.assetState{border-radius:999px;padding:8px 11px;background:#e7f8ef;color:#166534;font-weight:900;font-size:12px}.assetState.warn{background:#fff7d6;color:#92400e}.assetState.danger{background:#ffe4e6;color:#b91c1c}
.assetProfileTabs{display:flex;gap:6px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:12px}.assetProfileTabs button{border:1px solid #d8e3ef;border-radius:999px;background:#f8fbff;padding:8px 12px;font-weight:900;color:#475569}.assetProfileTabs button.active{background:#e7f0ff;border-color:#1262d6;color:#1262d6}
.assetProfileGrid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px}.assetSideStack{display:grid;gap:12px;align-self:start}.assetProfilePanel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:14px;box-shadow:0 8px 20px #0b1f3508}.assetProfilePanel h3{margin:0 0 12px;font-size:16px}.assetProfileMain{display:grid;gap:12px}.assetMetricStrip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e4edf7;border-radius:8px;overflow:hidden;margin-bottom:12px}.assetMetricStrip div{padding:14px;background:#fbfdff;border-right:1px solid #e4edf7}.assetMetricStrip div:last-child{border-right:0}.assetMetricStrip b{display:block;font-size:24px}.assetMetricStrip span{display:block;color:#536276;font-weight:800}.assetMetricStrip .danger{background:#fff1f2;color:#b91c1c}.assetNotice{background:#eef3fb;border:1px solid #dce6f3;border-radius:8px;padding:12px;color:#475569}.readingCard{border:1px solid #e4edf7;border-radius:8px;padding:14px;background:#fbfdff}.readingCard b{display:block;font-size:22px}.readingCard span,.readingCard small{display:block;color:#536276;margin-top:3px}.assetImageGrid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.assetImageGrid.compact{grid-template-columns:repeat(4,1fr)}.assetImageGrid figure{margin:0;border:1px solid #e4edf7;background:#fff;border-radius:6px;overflow:hidden}.assetImageGrid img{width:100%;height:116px;object-fit:contain;display:block;background:#fff}.assetImageGrid figcaption{padding:6px 8px;color:#536276;font-weight:800;font-size:11px}.assetDocumentRows{display:grid;gap:8px}.assetDocumentRows article{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid #e4edf7;border-radius:8px;background:#fbfdff;padding:10px}.assetDocumentRows svg{width:20px;height:20px}.assetDocumentRows b,.assetActivityList b{display:block}.assetDocumentRows small,.assetActivityList small,.assetActivityList span{display:block;color:#536276;margin-top:3px}.assetActivityList{display:grid;gap:8px}.assetActivityList article{border:1px solid #e4edf7;border-radius:8px;background:#fbfdff;padding:10px}.assetMiniMap,.assetGpsMap{height:150px;width:100%;border:1px solid #d7e2f0;border-radius:8px;background:linear-gradient(135deg,#eaf4ff,#d8eadc);position:relative;overflow:hidden;margin-bottom:10px}.assetGpsMap{display:block;background:#eef4fb}.assetMiniMap:before{content:"";position:absolute;left:-20%;right:-20%;top:48%;height:22px;background:#c7d7e8;transform:rotate(-12deg);box-shadow:0 34px 0 #bcd0e3}.assetMiniMap span{position:absolute;left:56%;top:45%;width:18px;height:18px;background:#7c3aed;border:4px solid #fff;border-radius:50%;box-shadow:0 3px 10px #0b1f3533}.assetLocationPanel .paneHead{align-items:start}.gpsLivePill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:950;border:1px solid #d8e3ef;background:#f8fbff;color:#475569}.gpsLivePill.live{background:#ecfdf5;border-color:#bbf7d0;color:#15803d}.gpsLivePill.recent{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.gpsLivePill.stale{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.assetLocationActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.assetLocationActions button,.assetLocationActions a{border:1px solid #d8e3ef;border-radius:7px;background:#f8fbff;color:#1262d6;padding:7px 9px;font-weight:900;font-size:11px;text-decoration:none}.assetLocationActions button:disabled{opacity:.58;cursor:wait}.assetTelemetryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.assetTelemetryGrid span{border:1px solid #e4edf7;border-radius:7px;background:#fbfdff;padding:8px}.assetTelemetryGrid span.wide{grid-column:1/-1}.assetTelemetryGrid b{display:block;font-size:12px;line-height:1.2;overflow-wrap:anywhere}.assetTelemetryGrid small{display:block;color:#64748b;font-size:10px;margin-top:2px}
.realAssetTile.hcv{border-left:4px solid #2563eb}
.realAssetTile.lcv{border-left:4px solid #0f766e}
.realAssetTile.trailer{border-left:4px solid #d97706}
.realAssetTile.plant{border-left:4px solid #7c3aed}
.realAssetTile.other{border-left:4px solid #64748b}
.staffGroupHeader.civil{border-left:5px solid #155eef;background:#eff6ff}
.staffGroupHeader.electrical{border-left:5px solid #7c3aed;background:#f5f3ff}
.staffGroupHeader.projects{border-left:5px solid #0f766e;background:#ecfdf5}
.staffGroupHeader.management{border-left:5px solid #334155;background:#f8fafc}
.staffGroupHeader.administrator{border-left:5px solid #f59e0b;background:#fffbeb}
.staffGroupHeader.director{border-left:5px solid #be123c;background:#fff1f2}
.staffGroupHeader.other{border-left:5px solid #64748b;background:#f8fafc}
.staffCard.civil{background:linear-gradient(90deg,#eff6ff,#fff);border-left:4px solid #155eef}
.staffCard.electrical{background:linear-gradient(90deg,#f5f3ff,#fff);border-left:4px solid #7c3aed}
.staffCard.projects{background:linear-gradient(90deg,#ecfdf5,#fff);border-left:4px solid #0f766e}
.staffCard.management{background:linear-gradient(90deg,#f8fafc,#fff);border-left:4px solid #334155}
.staffCard.administrator{background:linear-gradient(90deg,#fffbeb,#fff);border-left:4px solid #f59e0b}
.staffCard.director{background:linear-gradient(90deg,#fff1f2,#fff);border-left:4px solid #be123c}
.staffCard.other{background:linear-gradient(90deg,#f8fafc,#fff);border-left:4px solid #64748b}
.staffProfilePage{padding:18px}
.staffProfileHero{display:grid;grid-template-columns:auto 96px minmax(0,1fr) auto;gap:18px;align-items:center;min-height:190px;border:1px solid var(--line);border-radius:8px;padding:20px 22px;margin-bottom:12px;background:linear-gradient(110deg,#e6e4ff 0%,#d9f0ff 52%,#f0f7df 100%);box-shadow:0 8px 24px #0b1f3508}
.staffProfileHero .backBtn{
  align-self:start;
  justify-self:start;
  margin:0;
}
.staffProfileHero .staffAvatar.hero{width:112px;height:112px;font-size:23px;background:#ecffe8!important;color:#475569!important;border:1px solid #fff;box-shadow:0 8px 24px #0b1f3512}
.staffProfileHero h1{margin:0;font-size:30px;line-height:1.05;color:#122033}.staffProfileHero p{margin:5px 0;color:#334155;font-weight:900}.staffProfileHero small{color:#475569}.staffHeroActions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.staffHeroActions .tag{border-radius:999px;background:#e7f8ef;color:#166534;padding:8px 12px;font-weight:950;font-size:12px}.staffHeroActions button{border:1px solid #cbd8e6;background:#fff;border-radius:8px;padding:9px 12px;color:#4f46e5;font-weight:900;display:inline-flex;gap:7px;align-items:center}
.staffProfileHero button span{background:transparent!important;color:inherit!important}
.staffLiveBadge{position:relative;display:inline-flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:1px;min-width:88px;max-width:220px;border:1px solid #cbd8e6;border-radius:999px;padding:7px 12px;background:#eff6ff!important;color:#1d4ed8!important;font-style:normal;font-weight:950;line-height:1.05;box-shadow:0 6px 16px #0b1f3510}.staffLiveBadge b{font-size:12px;color:inherit;white-space:nowrap}.staffLiveBadge small{font-size:10px;color:inherit!important;opacity:.78;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staffLiveBadge.available{background:#e0f2fe!important;border-color:#7dd3fc;color:#075985!important}.staffLiveBadge.onsite{padding-left:24px;background:#dcfce7!important;border-color:#22c55e;color:#166534!important;box-shadow:0 0 0 3px #22c55e33,0 10px 22px #16653422;animation:staffOnsiteFlash 1.1s ease-in-out infinite}.staffLiveBadge.onsite:before{content:"";width:7px;height:7px;border-radius:999px;background:#16a34a;box-shadow:0 0 0 3px #22c55e2e;position:absolute;left:10px;top:50%;transform:translateY(-50%)}.staffLiveBadge.outofhours{background:#f1f5f9!important;border-color:#cbd5e1;color:#475569!important}.staffLiveBadge.sick{background:#fee2e2!important;border-color:#fca5a5;color:#991b1b!important}.staffLiveBadge.unavailable{background:#fff7ed!important;border-color:#fdba74;color:#9a3412!important}.staffHeroActions .staffLiveBadge{border-radius:12px;min-width:132px;padding:10px 13px}.staffHeroActions .staffLiveBadge.onsite{padding-left:28px}.staffCard .staffLiveBadge{grid-column:2;justify-self:start;min-width:0;max-width:100%;padding:5px 8px;margin-top:3px}.staffCard .staffLiveBadge.onsite{padding-left:20px}.staffCard .staffLiveBadge.onsite:before{left:8px}.staffCard .staffLiveBadge b{font-size:11px}.staffCard .staffLiveBadge small{display:none}.staffProfilePanel dd .staffLiveBadge{border-radius:9px;min-width:130px}.staffProfilePanel dd .staffLiveBadge small{white-space:normal;max-width:340px}@keyframes staffOnsiteFlash{0%,100%{box-shadow:0 0 0 3px #22c55e33,0 10px 22px #16653422}50%{box-shadow:0 0 0 7px #22c55e61,0 14px 28px #16653438;filter:saturate(1.25)}}@media(prefers-reduced-motion:reduce){.staffLiveBadge.onsite{animation:none}}
.staffLiveBadge.sick{background:#fef3c7!important;border-color:#f59e0b;color:#92400e!important}.staffLiveBadge.scheduled{background:#eff6ff!important;border-color:#93c5fd;color:#1d4ed8!important}.staffLiveBadge.missed{padding-left:24px;background:#fee2e2!important;border-color:#ef4444;color:#991b1b!important;box-shadow:0 0 0 3px #ef44442e,0 10px 22px #991b1b24;animation:staffMissedFlash 1.05s ease-in-out infinite}.staffLiveBadge.missed:before{content:"";width:7px;height:7px;border-radius:999px;background:#dc2626;box-shadow:0 0 0 3px #ef44442e;position:absolute;left:10px;top:50%;transform:translateY(-50%)}.staffCard .staffLiveBadge.missed{padding-left:20px}.staffCard .staffLiveBadge.missed:before{left:8px}@media(prefers-reduced-motion:reduce){.staffLiveBadge.missed{animation:none}}
.staffProfileTabs{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:12px}.staffProfileTabs button{border:1px solid #d8e3ef;border-radius:999px;background:#f8fbff;padding:8px 12px;font-weight:900;color:#475569}.staffProfileTabs button.active{background:#ebe9ff;border-color:#7c3aed;color:#4f46e5}
.staffProfileGrid{display:grid;grid-template-columns:minmax(260px,36%) minmax(0,1fr);gap:16px}.staffSideStack,.staffProfileMain{display:grid;gap:14px;align-self:start}.staffProfilePanel{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:0 8px 20px #0b1f3508}.staffProfilePanel.wide{min-height:0}.staffProfilePanel .paneHead{align-items:flex-start}.staffProfilePanel .paneHead p{margin:4px 0 0;color:#64748b;font-weight:700}.staffProfilePanel h3{margin:0;font-size:17px}.staffProfilePanel dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px 14px;margin:0}.staffProfilePanel dt{font-weight:900;color:#475569}.staffProfilePanel dd{margin:0;color:#122033;overflow-wrap:anywhere}.profileSearch{width:100%;border:1px solid #cbd8e6;border-radius:8px;padding:11px 12px;margin:2px 0 12px;background:#fff}.profileTabs.small{margin:4px 0 14px}.profileTabs.small button{padding:7px 10px}
.membershipRow{display:flex;gap:8px;align-items:center;margin-top:12px}.membershipRow .legendDot{width:26px;height:26px;display:inline-grid;place-items:center}
.credentialList{display:grid;border:1px solid #e0e8f2;border-radius:8px;overflow:hidden;background:#fff}.credentialRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:14px;border-bottom:1px solid #e6edf5}.credentialRow:nth-child(even){background:#f8fbff}.credentialRow:last-child{border-bottom:0}.credentialRow small{display:block;text-transform:uppercase;letter-spacing:.05em;color:#4f46e5;font-size:10px;font-weight:950;margin-bottom:4px}.credentialRow b{display:block;font-size:15px}.credentialRow span{display:block;color:#64748b;margin-top:4px}.credentialRow em{font-style:normal;border-radius:999px;background:#d8fae7;color:#047857;padding:5px 8px;font-size:11px;font-weight:950}.credentialRow button,.credentialRow a{background:transparent;color:#4f46e5;font-weight:950;padding:5px;text-decoration:none}
.activityMini{border:1px solid #e5edf5;border-radius:8px;background:#fbfdff;padding:11px}.activityMini b,.activityMini span,.activityMini small{display:block}.activityMini span,.activityMini small{color:#64748b;margin-top:3px}
.staffLeaveOverview{margin:0 0 16px}.staffLeavePanel>.paneHead,.staffLeaveOverview>.paneHead{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.leaveActions{display:flex;align-items:center;justify-content:flex-start;gap:7px;flex-wrap:wrap;min-width:0}.leaveActions button{border:1px solid #d7e1ec;border-radius:8px;background:#fff;color:#334155;padding:8px 10px;font-weight:900;display:inline-flex;align-items:center;gap:6px;max-width:100%}.leaveActions .primary{background:#1262d6!important;border-color:#1262d6;color:#fff!important}.leaveStats{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:10px 0 14px}.leaveStats .miniStat{padding:12px;min-height:82px}.leaveStats .miniStat b{font-size:25px}.leaveOverviewGrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.leaveCalendarShell{border:1px solid #dfe7f1;border-radius:8px;overflow:hidden;background:#fff}.leaveCalendarHeader{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid #dfe7f1}.leaveCalendarHeader b{min-height:34px;display:grid;place-items:center;color:#475569;font-size:11px;text-transform:uppercase}.leaveCalendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.leaveDay{min-height:112px;border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:8px;background:#fff;min-width:0}.leaveDay:nth-child(7n){border-right:0}.leaveDay.muted{background:#f8fafc;color:#94a3b8}.leaveDay.today{box-shadow:inset 0 0 0 2px #1262d6;background:#f5faff}.leaveDay>strong{display:block;font-size:12px;margin-bottom:6px}.leaveDayEvents{display:grid;gap:4px;min-width:0}.leaveDayEvents em{font-style:normal;color:#64748b;font-size:11px;font-weight:900}.leaveChip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px;align-items:center;border:1px solid #cbd5e1;border-left-width:4px;border-radius:6px;padding:4px 5px;background:#f8fafc;color:#172033;min-width:0}.leaveChip b,.leaveChip small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.leaveChip b{font-size:10px}.leaveChip small{font-size:9px;color:#475569}.leaveChip.annual{border-left-color:#2563eb;background:#eff6ff}.leaveChip.sick{border-left-color:#dc2626;background:#fff1f2}.leaveChip.personal{border-left-color:#0f766e;background:#ecfdf5}.leaveChip.rdo{border-left-color:#a16207;background:#fefce8}.leaveChip.other{border-left-color:#64748b}.leaveChip.work{border-left-color:#64748b;background:#f8fafc;color:#475569}.leaveChip.application,.leaveChip.tentative{border-style:dashed}.leaveChip.declined,.leaveChip.cancelled{opacity:.55;text-decoration:line-through}.leaveApprovalQueue{border:1px solid #dfe7f1;border-radius:8px;background:#fff;padding:12px;display:grid;gap:9px}.leaveApprovalQueue h3{margin:0;font-size:15px}.leaveApprovalQueue article{border:1px solid #e5edf5;border-radius:8px;padding:10px;display:grid;gap:9px;background:#fbfdff}.leaveApprovalQueue b,.leaveApprovalQueue span,.leaveApprovalQueue small{display:block}.leaveApprovalQueue span,.leaveApprovalQueue small{color:#64748b}.leaveApprovalQueue .actions,.leaveHistoryRow .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.leaveApprovalQueue button,.leaveHistoryRow button{border-radius:7px;background:#1262d6;color:#fff;padding:7px 9px;font-size:12px;font-weight:900}.staffLeavePanel .leaveCalendarShell{margin-top:8px}.staffLeavePanel.compact .leaveDay{min-height:88px}.leaveHistoryHead{margin-top:16px}.leaveHistory{display:grid;gap:8px}.leaveHistoryRow{border:1px solid #e1e9f2;border-radius:8px;background:#fff;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.leaveHistoryRow:nth-child(even){background:#f8fbff}.leaveHistoryRow b,.leaveHistoryRow span,.leaveHistoryRow small{display:block}.leaveHistoryRow span,.leaveHistoryRow small{color:#64748b}.leaveHistoryRow strong{font-size:18px}.leaveHistoryRow.approved{border-left:5px solid #16a34a}.leaveHistoryRow.application,.leaveHistoryRow.tentative{border-left:5px solid #f59e0b}.leaveHistoryRow.declined,.leaveHistoryRow.cancelled{border-left:5px solid #94a3b8;opacity:.76}.leaveModal label{display:grid;gap:6px;font-weight:900;color:#334155}.leaveModal textarea,.leaveModal select,.leaveModal input{border:1px solid #d4deea;border-radius:8px;padding:10px;background:#fff;color:#122033}
.hrPage{padding:18px}.hrOverviewPanel{margin-bottom:14px}.hrSummaryStrip{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:10px 0 14px}.hrSummaryStrip .miniStat{padding:12px;min-height:82px}.hrStaffGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}.hrStaffCard{border:1px solid var(--line);border-radius:8px;background:#fff;padding:13px;display:grid;gap:12px;box-shadow:0 8px 20px #0b1f3508}.hrStaffCardHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.hrStaffCardHead b,.hrStaffCardHead small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hrStaffCardHead small{color:#64748b;margin-top:2px}.hrStaffCardHead em{font-style:normal;border:1px solid #d8e3ef;border-radius:999px;background:#f8fbff;color:#475569;padding:5px 8px;font-size:11px;font-weight:900;white-space:nowrap}.hrDocPreview{display:grid;gap:7px}.hrDocPreview>div{border:1px solid #e4edf7;border-radius:8px;background:#fbfdff;padding:9px}.hrDocPreview b,.hrDocPreview span{display:block}.hrDocPreview b{font-size:12px}.hrDocPreview span{color:#64748b;font-size:11px;margin-top:2px}.hrDocumentPanel .profileRows article{border-left:5px solid #1262d6}.hrStaffCard .actions{justify-content:flex-end}.hrStaffCard button{border-radius:7px;background:#1262d6;color:#fff;padding:8px 10px;font-size:12px;font-weight:900}
.hrPolicyPanel{margin-bottom:14px}.hrPolicyGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;max-height:260px;overflow:auto}.hrPolicyGrid a{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;padding:10px;text-decoration:none;color:#172033;display:grid;gap:4px}.hrPolicyGrid b{font-size:12px}.hrPolicyGrid span{font-size:11px;color:#64748b}.hrPolicyMiniList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:170px;overflow:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fbfdff;padding:8px;margin-top:10px}.hrPolicyMiniList span{font-size:11px;color:#334155;background:#fff;border:1px solid #e7eef7;border-radius:6px;padding:6px}
.hrWorkflowTemplates{margin-bottom:14px}.hrTemplateGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hrTemplateGrid article{border:1px solid #dce7f3;border-radius:8px;background:linear-gradient(180deg,#fbfdff,#f7fbff);padding:14px}.hrTemplateGrid h4{margin:0 0 10px;color:#122033;font-size:16px}.hrTemplateGrid ol{margin:0;padding-left:18px;display:grid;gap:8px}.hrTemplateGrid li{color:#334155}.hrTemplateGrid li b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#1262d6}.hrTemplateGrid li span{font-weight:800}.hrBuilderPanel{margin-bottom:14px}.hrBuilderPanel .actions{display:flex;gap:8px;flex-wrap:wrap}.hrBuilderPanel button,.hrBuilderForm button,.hrBuilderAside button{border-radius:7px;background:#1262d6;color:#fff;padding:8px 10px;font-size:12px;font-weight:900}.hrBuilderGrid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:14px;align-items:start}.hrBuilderForm,.hrBuilderAside{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;padding:14px;box-shadow:0 8px 20px #0b1f3508}.hrBuilderForm{display:grid;gap:12px}.hrBuilderForm label{display:grid;gap:6px;font-weight:900;color:#334155}.hrBuilderForm input,.hrBuilderForm select,.hrBuilderForm textarea{border:1px solid #d4deea;border-radius:8px;padding:10px;background:#fff;color:#122033}.hrBuilderAside{display:grid;gap:12px}.hrBuilderSteps{display:grid;gap:10px}.hrBuilderSteps article{border:1px solid #dfe8f2;border-radius:8px;background:#fff;padding:12px;display:grid;gap:4px}.hrBuilderSteps b{color:#122033}.hrBuilderSteps span{color:#64748b;font-size:12px;line-height:1.45}.hrWorkflowBoard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.hrWorkflowLane{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px;display:grid;gap:10px;align-self:start;box-shadow:0 8px 20px #0b1f3508}.hrWorkflowLane>.paneHead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.hrWorkflowLane h3,.hrWorkflowPanel h4{margin:0;color:#122033}.hrWorkflowLane button,.hrWorkflowPanel button,.hrRegisterPanel button{border-radius:7px;background:#1262d6;color:#fff;padding:8px 10px;font-size:12px;font-weight:900}.hrWorkflowCard{border:1px solid #dfe9f5;border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:10px}.hrWorkflowHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.hrWorkflowHead b,.hrWorkflowHead small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hrWorkflowHead small{color:#64748b;margin-top:2px}.hrWorkflowHead em{font-style:normal;border-radius:999px;background:#eef6ff;color:#155eef;padding:5px 8px;font-size:11px;font-weight:950}.hrProgress{height:8px;background:#e7eef7;border-radius:999px;overflow:hidden}.hrProgress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1262d6,#18a058)}.hrDocMeter{border-top:1px solid #e5edf5;padding-top:8px}.hrDocMeter>b{display:block;margin-bottom:6px;font-size:12px;color:#334155}.hrWorkflowRows{display:grid;gap:8px;margin:10px 0 16px}.hrWorkflowRows article{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px;align-items:center;border:1px solid #e3ecf5;border-left:5px solid #94a3b8;border-radius:8px;background:#fff;padding:10px}.hrWorkflowRows.compact article{background:#fbfdff}.hrWorkflowRows article.complete{border-left-color:#16a34a;background:#f0fdf4}.hrWorkflowRows article.active{border-left-color:#1262d6;background:#eff6ff}.hrWorkflowRows article.danger{border-left-color:#dc2626;background:#fff1f2}.hrWorkflowRows small,.hrWorkflowRows span{display:block;color:#64748b}.hrWorkflowRows b{display:block;color:#122033}.hrWorkflowRows select{width:100%;border:1px solid #cbd8e6;border-radius:8px;background:#fff;padding:9px;font-weight:850}.hrWorkflowPanel>.paneHead{margin-bottom:10px}.hrWorkflowPanel h4{margin:14px 0 8px}.hrModalNotice{border:1px solid #dfe8f2;border-radius:8px;background:#f8fbff;padding:12px}.hrModalNotice b,.hrModalNotice span{display:block}.hrModalNotice span{color:#64748b;margin-top:3px}.hrWorkflowModal{width:min(720px,100%)}.hrWorkflowModal .formGrid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.noticeSmall{border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e3a8a;padding:10px;font-size:12px;font-weight:850;line-height:1.45}.hrIssueModal .noticeSmall{margin-top:8px}
.hrRecoveryPanel{border:1px solid #d7e4f1;border-radius:8px;background:#f8fbff;padding:10px;display:grid;gap:9px}.hrRecoveryPanel.compact{background:#fff}.hrRecoveryGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hrRecoveryGrid>div{border:1px solid #e4edf7;border-radius:7px;background:#fff;padding:8px;min-width:0}.hrRecoveryGrid small,.hrRecoveryGrid span{display:block;color:#64748b;font-size:11px}.hrRecoveryGrid b{display:inline-block;margin-top:2px;font-size:12px;color:#122033}.hrRecoveryGrid a{display:block;margin-top:4px;color:#1262d6;font-size:11px;font-weight:900;text-decoration:none}.hrStatusPill{border-radius:999px;padding:4px 8px}.hrStatusPill.ready{background:#dcfce7;color:#166534}.hrStatusPill.failed{background:#fee2e2;color:#991b1b}.hrStatusPill.pending{background:#fff7ed;color:#9a3412}.hrStatusPill.issued{background:#e0f2fe;color:#075985}.hrStatusPill.neutral{background:#eef2f7;color:#475569}.hrRecoveryLink{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #dfe8f2;border-radius:7px;background:#fff;padding:7px}.hrRecoveryLink code{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1f2e44;font-size:11px}.hrRecoveryLink button,.hrRecoveryActions button{display:inline-flex;align-items:center;gap:6px;border-radius:7px;background:#1262d6;color:#fff;padding:7px 9px;font-size:12px;font-weight:900}.hrRecoveryLink .ico,.hrRecoveryActions .ico{width:15px;height:15px}.hrRecoveryLink.emptyLink{grid-template-columns:1fr;color:#64748b;font-size:12px}.hrRecoveryActions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.hrRecoveryActions small{color:#9a3412;font-size:11px;font-weight:850;min-width:0;overflow-wrap:anywhere}.hrRecoveryActions button{background:#0f766e}
.hrWorkspace{display:grid;grid-template-columns:270px minmax(0,1fr);gap:14px;align-items:start}.hrSubnavPanel{position:sticky;top:78px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 8px 20px #0b1f3508;overflow:hidden}.hrSubnavHead{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:14px;border-bottom:1px solid #e5edf5;background:#f8fbff}.hrSubnavHead>span{width:42px;height:42px;border-radius:8px;display:grid;place-items:center;background:#1262d6;color:#fff}.hrSubnavHead .ico{width:22px;height:22px}.hrSubnavHead b,.hrSubnavHead small{display:block}.hrSubnavHead b{font-size:15px;color:#122033}.hrSubnavHead small{color:#64748b;margin-top:2px}.hrSubnavPanel nav{display:grid;padding:10px;gap:4px}.hrSubnavPanel button{min-height:42px;border-radius:8px;background:transparent;color:#334155;display:flex;align-items:center;gap:10px;padding:0 10px;text-align:left;font-weight:900}.hrSubnavPanel button:hover{background:#f1f6fc}.hrSubnavPanel button.active{background:#eff6ff;color:#0d62d9;box-shadow:inset 3px 0 0 #1262d6}.hrSubnavPanel button .ico{width:18px;height:18px;flex:0 0 auto}.hrWorkspaceMain{display:grid;gap:14px;min-width:0}.hrDocumentLibraryGrid,.hrPackGrid,.hrRequestGrid{display:grid;gap:10px}.hrDocumentLibraryGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.hrDocumentLibraryGrid article,.hrRequestGrid article{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:10px}.hrDocumentLibraryGrid small,.hrDocumentLibraryGrid span,.hrRequestGrid small,.hrRequestGrid span{display:block;color:#64748b;line-height:1.35;overflow-wrap:anywhere}.hrDocumentLibraryGrid b,.hrRequestGrid b{display:block;color:#122033;margin:3px 0}.hrDocumentLibraryGrid .actions,.hrRequestGrid .actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.hrDocumentLibraryGrid button,.hrDocumentLibraryGrid a,.hrRequestGrid button,.hrRequestGrid a{border-radius:7px;background:#1262d6;color:#fff;padding:7px 9px;font-size:12px;font-weight:900;text-decoration:none}.hrPackGrid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.hrPackGrid article{border:1px solid #dce7f3;border-radius:8px;background:linear-gradient(180deg,#fff,#f8fbff);padding:14px;display:grid;gap:8px}.hrPackGrid h4{margin:0;color:#122033;font-size:17px}.hrPackGrid small,.hrPackGrid p{margin:0;color:#64748b;line-height:1.35}.hrPackGrid button{justify-self:start;border-radius:7px;background:#1262d6;color:#fff;padding:8px 10px;font-size:12px;font-weight:900}.hrRequestGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.hrRequestGrid h4{margin:0 0 8px;color:#122033}.hrRequestsPanel .hrRecoveryPanel{margin-top:8px}
.hrLibraryFilter{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e2eaf3;border-radius:8px;background:#fff;padding:12px;margin:12px 0 16px}.hrLibraryFilter label{display:flex;align-items:center;gap:10px;margin:0;font-weight:850;color:#334155}.hrLibraryFilter select{min-width:250px;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:10px;color:#122033}.hrLibraryFilter span{color:#64748b;font-weight:900}.hrLibraryFilterMeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.hrLibrarySections{display:grid;gap:14px}.hrLibraryCategory{border:1px solid #e1e9f2;border-radius:8px;background:#fff;box-shadow:0 8px 20px #0b1f3508;overflow:hidden}.hrLibraryCategoryHead{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f6faff;border-bottom:1px solid #e5edf5;padding:14px 16px}.hrLibraryCategoryHead h4{margin:0;color:#122033;font-size:16px}.hrLibraryCategoryHead>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.hrLibraryCategoryHead span{color:#475569;font-size:12px;font-weight:900}.hrLibraryCategoryHead button{border-radius:7px;background:#1262d6;color:#fff;padding:7px 10px;font-size:12px;font-weight:900}.hrLibraryItems{display:grid;gap:8px;padding:12px}.hrLibraryItem{border:1px solid #e3ebf4;border-radius:8px;background:#fbfdff;padding:11px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.hrLibraryItem small,.hrLibraryItem span{display:block;color:#64748b;line-height:1.35;overflow-wrap:anywhere}.hrLibraryItem b{display:block;color:#122033;margin:2px 0}.hrLibraryItem .actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.hrLibraryItem button,.hrLibraryItem a{border-radius:7px;background:#1262d6;color:#fff;padding:7px 9px;font-size:12px;font-weight:900;text-decoration:none}.hrLibraryItem .dangerBtn{background:#fee2e2;color:#991b1b}
body.mobileView .assetInlineDetail .assetDetailCard,.assetInlineDetail .assetDetailCard{max-width:100%}
body.mobileView .assetInlineDetail .assetDetailCard{grid-template-columns:1fr}
body.mobileView .assetInlineDetail .assetDetailCard>img{height:210px;min-height:0}
@media(max-width:820px){.assetInlineDetail .assetDetailCard{grid-template-columns:1fr}.assetInlineDetail .assetDetailCard>img{height:210px;min-height:0}.assetGroupHeader,.staffGroupHeader{position:sticky;top:0;z-index:2}.staffProfileHero,.staffProfileGrid{grid-template-columns:1fr}.staffProfileHero .backBtn{justify-self:start}.staffHeroActions{justify-content:flex-start}.credentialRow{grid-template-columns:1fr auto}}
@media(max-width:820px){.leaveStats,.hrSummaryStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.leaveOverviewGrid{grid-template-columns:1fr}.leaveActions{justify-content:flex-start}.leaveCalendarShell{overflow:auto}.leaveCalendarHeader,.leaveCalendarGrid{min-width:760px}.leaveHistoryRow{grid-template-columns:1fr}.leaveHistoryRow .actions{justify-content:flex-start}.leaveApprovalQueue .actions{justify-content:flex-start}.hrWorkspace,.hrStaffGrid,.hrTemplateGrid,.hrBuilderGrid,.hrWorkflowBoard,.hrRecoveryGrid,.hrRecoveryLink,.hrRequestGrid{grid-template-columns:1fr}.hrSubnavPanel{position:static}.hrSubnavPanel nav{display:flex;overflow-x:auto;padding:8px;scroll-snap-type:x proximity}.hrSubnavPanel button{min-width:136px;scroll-snap-align:start}.hrSubnavHead{grid-template-columns:36px minmax(0,1fr);padding:10px}.hrSubnavHead>span{width:36px;height:36px}.hrDocumentLibraryGrid,.hrPackGrid{grid-template-columns:1fr}.hrStaffCardHead{grid-template-columns:auto minmax(0,1fr)}.hrStaffCardHead em{grid-column:2;justify-self:start}.hrWorkflowRows article{grid-template-columns:1fr}.hrWorkflowModal .formGrid.compact{grid-template-columns:1fr}}
@media(max-width:820px){.hrLibraryFilter,.hrLibraryFilter label,.hrLibraryFilterMeta,.hrLibraryCategoryHead,.hrLibraryItem{display:grid;grid-template-columns:1fr;align-items:stretch}.hrLibraryFilter select{min-width:0;width:100%}.hrLibraryCategoryHead>div,.hrLibraryItem .actions,.hrBuilderPanel .actions{justify-content:flex-start}.hrLibraryItem button,.hrLibraryItem a,.hrBuilderPanel button{width:100%;text-align:center}}
@media(max-width:820px){.sideGroup{display:contents}.sideGroup small{display:none}.assetTray{min-height:132px}.scheduleGrid{grid-template-columns:150px repeat(var(--days,10),128px)}}

/* Final schedule/date, map and planning whiteboard polish */
.schedulePanel .panelHead{height:auto;min-height:64px;padding:10px 14px;gap:12px;align-items:center}
.schedulePanel .panelHead h2{min-width:150px;line-height:1.12}
.scheduleTools{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0}
.scheduleTools .scheduleDateRange{display:grid;gap:1px;min-width:176px;max-width:238px;border:1px solid #d7e1ec;border-radius:8px;background:#f8fbff;padding:6px 10px;line-height:1.12}
.scheduleDateRange small{font-size:9px;text-transform:uppercase;color:#64748b;font-weight:950;letter-spacing:.03em}
.scheduleDateRange b{font-size:13px;white-space:normal;color:#172033}
.siteMapList.locationOnly .siteMapRow{grid-template-columns:1fr}
.siteMapList.locationOnly .siteMapRow b{font-size:15px}
.siteMapList.locationOnly .siteMapRow small{font-size:12px;margin-top:3px}
.sun.cloud{background:#cbd5e1;box-shadow:0 0 0 5px #cbd5e166}.sun.cloud:before{background:linear-gradient(135deg,#f8fafc,#94a3b8);inset:-4px;border-radius:999px}.sun.rain{background:#38bdf8;box-shadow:0 0 0 5px #bae6fd}.sun.rain:before{background:repeating-linear-gradient(120deg,#0ea5e9 0 2px,transparent 2px 6px);border-radius:4px;inset:-8px -4px;transform:translateY(14px)}
.googleMapShell{height:520px;background:#eef4fb;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.googleMapShell iframe{display:block;width:100%;height:100%;border:0}.siteMapRow.selected{box-shadow:0 0 0 3px #1262d61f;border-color:#1262d6}.siteMapRow strong{font-size:12px;color:#536276}
.liveOpsPage .stats{margin-bottom:14px}.liveOpsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.liveStaffCard,.liveAssetCard{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border-left:8px solid var(--job-line,#dbe6f1)!important;background:var(--job-bg,#fff)!important}.liveStaffCard h3,.liveAssetCard h3{margin:0 0 4px;font-size:17px}.liveStaffCard p,.liveAssetCard p{margin:0;color:#334155;font-weight:850}.liveStaffCard small,.liveAssetCard small{display:block;margin-top:4px;color:#536276}.liveAssetCard img{width:76px;height:58px;object-fit:contain;border:1px solid #dbe6f1;border-radius:8px;background:#fff}.liveOpsGrid .empty{grid-column:1/-1}
.calendarWhiteboard{min-height:calc(100vh - 62px);height:auto;display:grid;grid-template-rows:auto auto auto auto;gap:14px}
.whiteboardBar{grid-template-columns:auto auto auto auto 54px 130px minmax(220px,1fr) auto}
.markerSwatches{display:flex;gap:7px;align-items:center}
.markerSwatch{width:30px!important;height:30px!important;border-radius:999px!important;padding:0!important;background:var(--swatch)!important;border:2px solid #fff!important;box-shadow:0 0 0 1px #cbd5e1}
.markerSwatch.active{box-shadow:0 0 0 3px #1262d640!important}
.whiteboardMonthGrid{grid-template-rows:34px repeat(6,minmax(92px,1fr));min-height:620px}
.whiteboardMonthGrid .monthCell{cursor:pointer}
.whiteboardMonthGrid .monthCell:hover{background:#eef6ff}
.whiteboardMonthGrid .monthCell strong{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.whiteboardMonthGrid .monthCell strong span{font-size:11px;color:#64748b;text-transform:uppercase}
.whiteboardMonthGrid .monthCell strong b{font-size:19px;color:#122033}
.whiteboardMonthGrid .monthCell.outside strong b{color:#94a3b8}
.whiteboardBoard{height:620px;min-height:300px}
.whiteboardDayModal{position:fixed;inset:0;background:#0b1f3578;z-index:80;display:grid;place-items:center;padding:18px}
.whiteboardDayModal[hidden]{display:none}
.whiteboardDayPanel{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:12px;border:1px solid #dbe3ec;box-shadow:0 24px 80px #07111d66;padding:18px}
.whiteboardDayHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid #e5edf5;padding-bottom:12px;margin-bottom:12px}
.whiteboardDayHead h3{margin:0;font-size:24px}
.whiteboardDayHead p{margin:4px 0 0;color:#64748b}
.whiteboardDayHead button{border:1px solid #d7e1ec;border-radius:8px;padding:8px 10px;font-weight:900}
.whiteboardDayEntry{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-bottom:12px}
.whiteboardDayEntry input{border:1px solid #d7e1ec;border-radius:8px;padding:10px}
.whiteboardDayEntry button{border-radius:8px;background:#1262d6;color:#fff;padding:10px 14px;font-weight:900}
.whiteboardDayNotes{display:grid;gap:8px}
.whiteboardDayNotes article{border:1px solid #e5edf5;border-left:5px solid #f97316;border-radius:8px;background:#fff7ed;padding:10px;display:grid;grid-template-columns:1fr auto;gap:4px 10px}
.whiteboardDayNotes small{display:block;color:#64748b;margin-top:3px}
.whiteboardDayNotes button{grid-row:1/3;grid-column:2;border-radius:7px;background:#fee2e2;color:#991b1b;padding:7px 9px;font-weight:900}
body.mobileView .scheduleTools .scheduleDateRange{min-width:190px}
body.mobileView .whiteboardBar{grid-template-columns:1fr 1fr;align-items:stretch}
body.mobileView .markerSwatches,body.mobileView .whiteboardBar #boardText,body.mobileView .whiteboardBar #clearBoard{grid-column:1/-1}
body.mobileView .whiteboardMonthGrid{grid-template-columns:repeat(7,minmax(104px,1fr));overflow:auto}
body.mobileView .whiteboardDayEntry{grid-template-columns:1fr}

/* Settings access policy controls */
.settingsCards{align-items:start}
.accessPolicyCard{grid-column:1/-1}
.accessPolicyIntro{color:#475569;margin:6px 0 14px;max-width:940px}
.policyGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.policyCard{border:1px solid #d7e1ec;border-radius:8px;background:#fbfdff;padding:12px;display:grid;gap:12px}
.policyCard.current{border-color:#1262d6;box-shadow:0 0 0 2px #1262d620;background:#eff6ff}
.policyCard header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.policyCard h4{margin:0;font-size:16px;color:#122033}
.policyCard p{margin:4px 0 0;color:#64748b;font-size:12px}
.policyCard header span{border-radius:999px;background:#e8f0fb;color:#123b66;padding:5px 8px;font-size:11px;font-weight:950;white-space:nowrap}
.policySubhead{display:block;margin:0 0 7px;color:#334155;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
.policyModules,.policyActions{display:grid;grid-template-columns:repeat(auto-fit,minmax(126px,1fr));gap:7px}
.policyActions{border-top:1px solid #e5edf5;padding-top:9px}
.policyCheck{display:flex;gap:7px;align-items:center;border:1px solid #dfe8f2;border-radius:7px;background:#fff;padding:8px;font-weight:850;font-size:12px;color:#334155}
.policyCheck input{accent-color:#1262d6}
.policyActionsBar{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.policyActionsBar .dangerSoft{background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}
.auditEmailCard{grid-column:1/-1}
.auditEmailHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.auditEmailHead h3{margin:0}
.auditEmailHead p{margin:4px 0 0;color:#64748b;max-width:760px}
.auditEmailHead span{border-radius:999px;padding:7px 10px;font-size:12px;font-weight:950;white-space:nowrap}
.auditEmailHead .ready{background:#dcfce7;color:#166534}
.auditEmailHead .needsConfig{background:#fff7ed;color:#9a3412}
.auditEmailStatus{border:1px solid #d7e1ec;border-radius:8px;background:#f8fbff;padding:10px 12px;color:#334155;font-weight:850;margin-bottom:12px}
.auditEmailForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.auditEmailForm label:not(.policyCheck){display:grid;gap:5px;color:#334155;font-size:12px;font-weight:900}
.auditEmailForm input,.auditEmailForm textarea{min-width:0;border:1px solid #d7e1ec;border-radius:7px;background:#fff;color:#122033;padding:9px 10px}
.auditEmailForm input[type="checkbox"]{width:auto;min-width:0;padding:0}
.auditEmailForm textarea{resize:vertical}
.auditEmailToggles{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.smsGrid,.smsOpsGrid{display:grid;grid-template-columns:minmax(420px,1.2fr) minmax(320px,.8fr);gap:14px;align-items:start}.smsOpsGrid{margin-top:14px}.smsComposer,.smsSettingsPanel,.smsLogPanel,.smsApprovalPanel,.smsInboxPanel{min-width:0}.smsComposerTools{display:grid;grid-template-columns:220px 1fr;gap:10px;margin-bottom:10px}.smsComposerTools label,.smsMessageBox{display:grid;gap:5px;color:#334155;font-size:12px;font-weight:900}.smsComposerTools input,.smsComposerTools select,.smsMessageBox textarea{border:1px solid #d7e1ec;border-radius:8px;background:#fff;color:#122033;padding:10px}.smsRecipientToolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}.smsRecipientToolbar small{color:#64748b;font-weight:850}.smsRecipientGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;max-height:330px;overflow:auto;border:1px solid #e2e8f0;border-radius:8px;background:#f8fbff;padding:8px;margin-bottom:10px}.smsRecipient{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #e3edf7;border-radius:8px;background:#fff;padding:8px;font-size:12px}.smsRecipient span,.smsRecipient b,.smsRecipient em{min-width:0}.smsRecipient span{display:grid;gap:2px}.smsRecipient b{font-size:12px}.smsRecipient em{font-style:normal;color:#64748b;font-size:11px;font-weight:850;white-space:nowrap}.smsSettingsForm{grid-template-columns:1fr 1fr}.smsQueueRows,.smsLogRows{display:grid;gap:8px}.smsQueueRow{border:1px solid #e2e8f0;border-left:6px solid #1262d6;border-radius:8px;background:#fff;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.65fr) auto;gap:10px;align-items:start}.smsQueueRow.approval{border-left-color:#f59e0b;background:#fffbeb}.smsQueueRow.inbound{border-left-color:#1262d6;background:#f8fbff}.smsQueueRow b,.smsQueueRow span,.smsQueueRow small,.smsQueueRow p{display:block}.smsQueueRow b{font-size:13px;color:#122033}.smsQueueRow span{font-weight:850;color:#334155}.smsQueueRow small{color:#64748b;margin-top:2px}.smsQueueRow p{margin:7px 0 0;color:#334155;font-size:12px;line-height:1.35;overflow-wrap:anywhere;white-space:pre-wrap}.smsQueueRow label{display:grid;gap:5px;color:#334155;font-size:12px;font-weight:900}.smsQueueRow textarea{min-width:0;border:1px solid #d7e1ec;border-radius:8px;background:#fff;color:#122033;padding:9px;resize:vertical}.smsQueueRow .actions{justify-content:flex-end}.smsLogRow{border:1px solid #e2e8f0;border-left:6px solid #94a3b8;border-radius:8px;background:#fff;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.9fr);gap:10px;align-items:start}.smsLogRow.sent,.smsLogRow.dry-run{border-left-color:#16a34a}.smsLogRow.failed{border-left-color:#dc2626;background:#fff7f7}.smsLogRow.pending-configuration{border-left-color:#f59e0b;background:#fffbeb}.smsLogRow.received{border-left-color:#1262d6}.smsLogRow b,.smsLogRow span,.smsLogRow small{display:block}.smsLogRow b{font-size:12px}.smsLogRow span{font-weight:850;color:#172033}.smsLogRow small{color:#64748b;margin-top:2px}.smsLogRow p{margin:0;color:#334155;line-height:1.35;font-size:12px;overflow-wrap:anywhere}
.emailLogRows{display:grid;gap:7px;margin-top:12px}
.emailLogRows>b{font-size:12px;color:#334155;text-transform:uppercase;letter-spacing:.04em}
.emailLogRow{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;border:1px solid #e5edf5;border-left:4px solid #94a3b8;border-radius:8px;background:#fff;padding:9px 10px}
.emailLogRow.sent{border-left-color:#22c55e}
.emailLogRow.failed{border-left-color:#ef4444}
.emailLogRow.pending-configuration{border-left-color:#f59e0b}
.emailLogRow b{font-size:12px;color:#122033}
.emailLogRow span{color:#334155;font-weight:850}
.emailLogRow small{color:#64748b;text-align:right}
.userAccessCard{grid-column:1/-1}
.userAccessHead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.userAccessHead h3{margin:0}
.userAccessHead p{margin:4px 0 0;color:#64748b;max-width:760px}
.userAccessStats{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.userAccessStats span{border:1px solid #d7e1ec;border-radius:8px;background:#f8fbff;padding:8px 10px;font-weight:950;color:#12345a}
.userAccessStats button{min-height:36px}
.userAccessLayout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,.9fr);gap:14px;align-items:start}
.userAccessForm{border:1px solid #d7e1ec;border-radius:8px;padding:14px;background:#f8fbff}
.userAccessForm h4{margin:0 0 10px;color:#122033}
.userFormGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.userFormGrid label{display:grid;gap:5px;color:#334155;font-size:12px;font-weight:900}
.userFormGrid input,.userFormGrid select,.userFormGrid textarea{min-width:0;border:1px solid #d7e1ec;border-radius:7px;background:#fff;color:#122033}
.userFormGrid input,.userFormGrid select{height:38px;padding:0 10px}
.userFormGrid textarea{grid-column:1/-1;min-height:74px;padding:9px 10px;resize:vertical}
.userMailbox{display:block;margin-bottom:4px;color:#516072;font-size:11.5px;font-weight:800;line-height:1.3}
.customAccessSwitch{align-content:center;border:1px solid #d7e1ec;border-radius:7px;background:#fff;padding:9px 10px}
.customAccessSwitch input{accent-color:#1262d6}
.userCustomPanel{margin-top:12px;border:1px solid #d7e1ec;border-radius:8px;background:#fff;padding:12px}
.userCustomPanel.isHidden{display:none}
.userPermissionGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 12px}
.userPermissionGrid.compact{margin-bottom:0}
.userList{display:grid;gap:8px;align-content:start;padding-top:4px}
.userRow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid #d7e1ec;border-left:4px solid var(--userTone,#1262d6);border-radius:8px;background:#fff;padding:10px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.userRow:hover{transform:translateY(-1px);border-color:var(--userTone,#1262d6);box-shadow:0 10px 20px #0b1f3514}
.userRow.editing{border-color:var(--userTone,#1262d6);box-shadow:0 0 0 2px var(--userTone,#1262d6) inset,0 10px 20px #0b1f3512;background:#fffdf7}
.userRow.inactive{opacity:.68}
.userInitial{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--userTone,#1262d6);color:#fff;font-weight:950}
.userMeta b{display:block;color:#122033}
.userMeta>span{display:block;color:#52637a;font-size:12.5px}
.userChips{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.userChips em{font-style:normal;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900;line-height:1}
.chipGroup{background:#eef4fb;color:#14345b;border:1px solid #d7e1ec}
.chipStatus{background:#dcfce7;color:#166534}
.chipStatus.off{background:#e2e8f0;color:#475569}
.chipCustom{background:#f3e8ff;color:#6b21a8}
.chipCurrent{background:#dbeafe;color:#1d4ed8}
.chipEditing{background:#fef3c7;color:#92400e}
.userActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.userActions button,.secondaryBtn{border:1px solid #c7d4e4;border-radius:7px;background:#fff;color:#14345b;padding:7px 10px;font-weight:900;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.userActions button:hover:not(:disabled),.secondaryBtn:hover{background:#eaf2ff;border-color:#7fa6d9;transform:translateY(-1px)}
.userActions button.dangerSoft{color:#b91c1c;border-color:#f0c7c7}
.userActions button.dangerSoft:hover:not(:disabled){background:#fee2e2;border-color:#e79a9a}
.userActions button:disabled{opacity:.45;cursor:not-allowed}
.userAccessForm.isEditing{border-color:#DD9A0C;box-shadow:0 0 0 2px #dd9a0c33}
.userAccessStats button{border:1px solid #c7d4e4;background:#fff;color:#14345b;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.userAccessStats button:hover{background:#eaf2ff;border-color:#7fa6d9;transform:translateY(-1px)}
.secondaryBtn{background:#eef4fb!important;color:#14345b!important}
@media(max-width:900px){
  .userAccessHead,.userAccessLayout{display:grid;grid-template-columns:1fr}
  .auditEmailHead{display:grid}
  .auditEmailForm,.auditEmailToggles{grid-template-columns:1fr}
  .smsGrid,.smsOpsGrid,.smsComposerTools,.smsSettingsForm,.smsQueueRow,.smsLogRow{grid-template-columns:1fr}
  .smsRecipientGrid{max-height:none}
  .emailLogRow{grid-template-columns:1fr}
  .emailLogRow small{text-align:left}
  .userAccessStats{justify-content:flex-start}
  .userFormGrid,.userPermissionGrid{grid-template-columns:1fr}
  .userRow{grid-template-columns:auto 1fr}
  .userActions{grid-column:1/-1;justify-content:flex-start}
}
body.mobileView .worksMarkupPanel{padding:10px;overflow:hidden}
body.mobileView .worksMarkupPanel>.railHead{display:grid;grid-template-columns:1fr;gap:8px;align-items:start}
body.mobileView .worksMarkupPanel>.railHead h3{font-size:15px;line-height:1.15}
body.mobileView .worksMarkupPanel>.railHead>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%}
body.mobileView .worksMarkupPanel>.railHead button{min-height:36px;font-size:12px;white-space:normal}
body.mobileView .worksMarkupPanel .drawingSummary{grid-template-columns:48px minmax(0,1fr);gap:2px 8px;padding:9px;margin-bottom:8px}
body.mobileView .worksMarkupPanel .drawingSummary b{font-size:25px;line-height:1}
body.mobileView .worksMarkupPanel .drawingSummary span{font-size:13px;line-height:1.15}
body.mobileView .worksMarkupPanel .drawingSummary small{font-size:11px;overflow-wrap:anywhere}
body.mobileView .worksMarkupGrid{grid-template-columns:minmax(0,1fr);gap:10px}
body.mobileView .worksMarkupCanvas{min-height:0;border-radius:8px;overflow:hidden}
body.mobileView .worksMarkupStage{min-height:320px;max-height:calc(100vh - 220px);-webkit-overflow-scrolling:touch}
body.mobileView .worksMarkupPlan{min-width:100%}
body.mobileView .wmToolbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:7px;margin:8px 0;padding:8px;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;position:sticky;top:76px;z-index:12;box-shadow:0 6px 18px #0b1f3510}
body.mobileView .wmToolGroup{width:auto;display:grid;gap:6px;align-items:center}
body.mobileView .wmToolGroup:nth-child(1){grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr))}
body.mobileView .wmToolGroup:nth-child(2){grid-column:1;grid-template-columns:repeat(2,44px)}
body.mobileView .wmToolGroup:nth-child(3){grid-column:2;grid-template-columns:44px minmax(52px,1fr) 44px 44px}
body.mobileView .wmToolbar button{width:100%;height:38px;min-width:0;flex:initial;padding:0}
body.mobileView .wmToolbar button .ico{width:18px;height:18px}
body.mobileView .wmToolGroup>span{min-width:0;font-size:13px;line-height:38px}
body.mobileView .worksMarkupSide{padding:10px;gap:8px}
body.mobileView .worksMarkupSide label{font-size:11px}
body.mobileView .worksMarkupSide input,body.mobileView .worksMarkupSide select{min-height:40px;font-size:14px}
body.mobileView .worksMarkupSide p{font-size:11.5px;line-height:1.35}
body.mobileView .wmItems{gap:9px;margin-top:10px}
body.mobileView .wmItem{grid-template-columns:34px minmax(0,1fr);gap:7px;padding:9px;align-items:center}
body.mobileView .wmItem>span{width:30px;height:30px}
body.mobileView .wmItem b{font-size:13px;line-height:1.2}
body.mobileView .wmItem small{font-size:11px;line-height:1.25;overflow-wrap:anywhere}
body.mobileView .wmItem select{grid-column:1/-1;min-height:38px}
body.mobileView .wmItem button{min-height:36px;width:100%}
body.mobileView .wmItem .dangerBtn{grid-column:1/-1}

/* Mobile drawing markup hardening */
.worksMarkupPlan{display:block;min-width:100%}
.wmSheet{position:relative;width:100%;height:100%;background:#fff;overflow:hidden;box-shadow:0 0 0 1px #dbe6f1}
.wmSheet>img,.wmSheet>iframe{width:100%;height:100%;border:0;display:block;object-fit:fill;background:#fff;pointer-events:none}
.wmSheet>.emptySmall{height:100%;display:flex;align-items:center;justify-content:center}
.wmSheet .wmAnnotationLayer{inset:0;width:100%;height:100%}
.wmSheet .wmMarkerLayer{position:absolute;inset:0;pointer-events:none;z-index:3}
body.mobileView .side{height:64px;grid-template-columns:64px minmax(0,1fr)}
body.mobileView .brand{height:64px;padding:5px}
body.mobileView .brand img{max-width:54px;max-height:52px}
body.mobileView .sideNav{height:64px;padding:6px;gap:6px}
body.mobileView .sideNav button{min-width:66px;min-height:50px;padding:4px 6px;border-radius:8px}
body.mobileView .sideNav button.sideSubItem{min-width:62px;min-height:50px;padding:4px 6px}
body.mobileView .sideNav button .ico{width:15px;height:15px}
body.mobileView .sideNav button span{font-size:10px;line-height:1.05}
body.mobileView .wmToolbar{top:66px}
body.mobileView .worksMarkupStage{background:#eef6ff;min-height:280px}
body.mobileView .worksMarkupPlan{justify-content:flex-start;min-width:100%}
body.mobileView .wmSheet{box-shadow:0 0 0 1px #c7ddf5}
body.mobileView .leaveOverviewGrid{grid-template-columns:1fr}
body.mobileView .leaveCalendarShell{overflow:hidden}
body.mobileView .leaveCalendarHeader,body.mobileView .leaveCalendarGrid{min-width:0!important;grid-template-columns:repeat(7,minmax(0,1fr))}
body.mobileView .leaveCalendarHeader b{min-height:30px;font-size:10px}
body.mobileView .leaveDay{min-height:84px;padding:6px}
body.mobileView .leaveDay>strong{font-size:11px;margin-bottom:4px}
body.mobileView .leaveDayEvents{gap:3px}
body.mobileView .leaveChip{grid-template-columns:1fr;gap:2px;padding:3px 4px;border-left-width:3px}
body.mobileView .leaveChip b{font-size:9px}
body.mobileView .leaveChip small{font-size:8px;white-space:normal;line-height:1.1}
body.mobileView .leaveApprovalQueue{padding:10px}
@media(max-width:420px){
  body.mobileView .worksMarkupPanel>.railHead>div{grid-template-columns:1fr}
  body.mobileView .worksMarkupStage{max-height:calc(100vh - 250px)}
  body.mobileView .leaveDay{min-height:76px;padding:5px 4px}
}
body.mobileView .worksMarkupPanel>.railHead>div{display:flex;justify-content:space-between;gap:8px}
body.mobileView .worksMarkupPanel>.railHead button{min-height:30px;padding:4px 2px}
body.mobileView .wmToolbar{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:6px}
body.mobileView .wmToolGroup{display:flex;width:auto;gap:5px;align-items:center}
body.mobileView .wmToolGroup:nth-child(1){flex:1 1 100%;display:flex;justify-content:space-between}
body.mobileView .wmToolGroup:nth-child(2){flex:0 0 auto}
body.mobileView .wmToolGroup:nth-child(3){flex:1 1 auto;justify-content:flex-end}
body.mobileView .wmToolbar button{width:34px;height:32px;flex:0 0 34px}
body.mobileView .wmToolbar button .ico{width:16px;height:16px}
body.mobileView .wmToolGroup>span{min-width:48px;font-size:12px;line-height:32px}
@media(max-width:480px){
  body.mobileView .wmToolbar{position:static;box-shadow:none}
  body.mobileView .wmToolGroup:nth-child(1){gap:4px}
  body.mobileView .wmToolbar button{width:32px;height:30px;flex-basis:32px}
  body.mobileView .wmToolGroup>span{line-height:30px;min-width:46px}
}

/* Mobile-first operational layout */
body.mobileView .mobileTop{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:center;background:#f8fbff;border-bottom:1px solid #d9e2ec;padding:8px 10px}
body.mobileView .mobileTopClock b,body.mobileView .mobileTopClock span{display:block;text-align:left}
body.mobileView .mobileTopClock b{font-size:24px;line-height:1;color:#122033}
body.mobileView .mobileTopClock span{font-size:13px;font-weight:900;color:#334155}
body.mobileView .mobileWeather{justify-self:end;border:0;padding:0;gap:7px;font-size:15px}
body.mobileView .mobileWeather .weatherIcon{width:26px;height:26px}
body.mobileView .mobileTopActions{grid-column:1/-1;display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:2px}
body.mobileView .mobileTopActions .viewToggle{min-height:34px;padding:6px 9px}
body.mobileView .mobileTopActions .notif{padding:6px;min-width:34px}
body.mobileView .mobileTopActions .headerActionBtn{min-height:34px;padding:6px 9px}
body.mobileView .mobileTopActions .headerActionBtn.iconOnly{width:34px;padding:0}
body.mobileView .mobileTopActions .avatar{flex:0 0 30px}
body.mobileView .mobileAccount{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850;color:#334155}
body.mobileView .mobileTopActions .logoutBtn{padding:7px 9px}
body.mobileView .top{display:none!important}
body.mobileView .side{top:0}
body.mobileView .wmToolbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:6px;margin:7px 0;position:static;box-shadow:none}
body.mobileView .wmToolGroup{display:contents!important;width:auto}
body.mobileView .wmToolbar button{width:100%;height:34px;min-width:0;flex:initial;padding:0}
body.mobileView .wmToolbar button .ico{width:16px;height:16px}
body.mobileView .wmToolGroup>span{height:34px;min-width:0;line-height:1;display:grid;place-items:center;font-size:12px}
body.mobileView .worksMarkupPanel{padding:8px}
body.mobileView .worksMarkupPanel>.railHead{gap:6px}
body.mobileView .worksMarkupPanel>.railHead h3{font-size:16px}
body.mobileView .worksMarkupPanel>.railHead>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
body.mobileView .worksMarkupPanel .drawingSummary{padding:8px}
body.mobileView .worksMarkupStage{min-height:260px;max-height:310px}
body.mobileView .quoteRegisterTable{display:block;overflow:visible;border:0;background:transparent;box-shadow:none}
body.mobileView .quoteRegisterTable thead{display:none}
body.mobileView .quoteRegisterTable tbody{display:grid;gap:10px}
body.mobileView .quoteRegisterTable tr{display:grid;grid-template-columns:1fr;border:1px solid #dbe3ec;border-radius:8px;background:#fff;box-shadow:0 6px 16px #0b1f3508;padding:10px}
body.mobileView .quoteRegisterTable td{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:start;border:0;border-bottom:1px solid #edf2f7;padding:7px 0;min-width:0;white-space:normal}
body.mobileView .quoteRegisterTable td:last-child{border-bottom:0}
body.mobileView .quoteRegisterTable td:before{font-size:11px;font-weight:950;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
body.mobileView .quoteRegisterTable td:nth-child(1):before{content:"Quote"}
body.mobileView .quoteRegisterTable td:nth-child(2):before{content:"Client"}
body.mobileView .quoteRegisterTable td:nth-child(3):before{content:"Status"}
body.mobileView .quoteRegisterTable td:nth-child(4):before{content:"Value"}
body.mobileView .quoteRegisterTable td:nth-child(5):before{content:"Updated"}
body.mobileView .quoteRegisterTable td:nth-child(6):before{content:"Actions"}
body.mobileView .quoteRegisterTable td b,body.mobileView .quoteRegisterTable td small{overflow-wrap:anywhere}
body.mobileView .quoteRegisterTable .stackedActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
body.mobileView .quoteRegisterTable .stackedActions button{width:100%;min-height:34px;padding:7px 8px;font-size:12px}
.assetProfilePanel>.paneHead{align-items:flex-start;flex-wrap:wrap}
.assetProfilePanel>.paneHead h3{line-height:1.2}
.assetActivityList{min-width:0}
.assetActivityList article{
  display:grid;
  gap:4px;
  min-width:0;
  min-height:0;
  background:#fff;
  border:1px solid #dbe6f1;
  color:#122033;
  box-shadow:none;
  overflow:hidden;
}
.assetActivityList b,
.assetActivityList small,
.assetActivityList span{
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  white-space:normal;
}
.assetActivityList b{
  color:#122033;
  font-size:12px;
  line-height:1.25;
}
.assetActivityList small{
  color:#475569;
  font-size:11px;
  line-height:1.3;
  font-weight:800;
}
.assetActivityList span{
  color:#536276;
  font-size:11px;
  line-height:1.35;
}
.assetActivityList.side{
  gap:7px;
  max-height:420px;
  overflow:auto;
  background:#fff;
  border:1px solid #dbe6f1;
  border-radius:8px;
  padding:7px;
  -webkit-overflow-scrolling:touch;
}
.assetActivityList.side article{
  background:linear-gradient(180deg,#fff,#f8fbff);
  padding:10px;
}
body.themeDark .assetProfilePanel,
body.themeDark .assetActivityList article{
  background:#fff;
  border-color:#dbe6f1;
  color:#122033;
}
body.mobileView .assetProfilePage{padding:12px}
body.mobileView .assetProfilePanel{padding:12px}
body.mobileView .assetSideStack{min-width:0;gap:10px}
body.mobileView .assetActivityList.side{
  max-height:none;
  overflow:visible;
  padding:8px;
}
body.mobileView .assetActivityList.side article{padding:12px}
body.mobileView .assetActivityList b{font-size:13px}
body.mobileView .assetActivityList small,
body.mobileView .assetActivityList span{font-size:12px}
body.mobileView .jobsSidebar{position:static}
body.mobileView .jobSubnavPanel nav{display:flex;overflow-x:auto;padding:8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
body.mobileView .jobSubnavPanel button{min-width:138px;scroll-snap-align:start}
body.mobileView .jobSubnavHead{grid-template-columns:36px minmax(0,1fr);padding:10px}
body.mobileView .jobSubnavHead>span{width:36px;height:36px}
body.mobileView .jobDashboardCards,
body.mobileView .jobQuickActionGrid{grid-template-columns:1fr}
body.mobileView .jobQuickActionGrid button{min-height:76px}
@media(max-width:820px){
  .jobsSidebar{position:static}
  .jobSubnavPanel nav{display:flex;overflow-x:auto;padding:8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .jobSubnavPanel button{min-width:138px;scroll-snap-align:start}
  .jobSubnavHead{grid-template-columns:36px minmax(0,1fr);padding:10px}
  .jobSubnavHead>span{width:36px;height:36px}
  .jobDashboardCards,
  .jobQuickActionGrid{grid-template-columns:1fr}
  .jobQuickActionGrid button{min-height:76px}
}
@media(max-width:390px){
  body.mobileView .mobileTopActions{gap:6px}
  body.mobileView .mobileAccount{display:none}
  body.mobileView .quoteRegisterTable .stackedActions{grid-template-columns:1fr}
}

/* Explorer-style job workspace */
.jobsIndexPage{background:#f4f7fb;min-height:calc(100vh - 62px);padding:18px clamp(18px,2.2vw,28px) 24px}
.jobsIndexPage .pageHead{margin-bottom:14px}
.jobsIndexStats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.jobsIndexStats article{min-height:86px;border:1px solid #dbe6f1;border-radius:8px;background:#fff;padding:14px;display:grid;align-content:center;gap:3px;box-shadow:0 6px 18px #0b1f3508}
.jobsIndexStats b{font-size:30px;line-height:1;color:#1262d6}
.jobsIndexStats span{color:#475569;font-size:12px;font-weight:950;text-transform:uppercase}
.jobsIndexGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;align-items:stretch}
.jobsIndexCard{border:1px solid #dbe6f1;border-top:4px solid #1262d6;border-radius:8px;background:#fff;padding:14px;display:grid;gap:12px;min-width:0;box-shadow:0 8px 24px #0b1f3508}.jobsIndexCard.lifecycle-good{border-top-color:#21b66f}.jobsIndexCard.lifecycle-warn{border-top-color:#d97706}.jobsIndexCard.lifecycle-current{border-top-color:#1262d6}.jobsIndexCard.lifecycle-bad{border-top-color:#dc2626}
.jobsIndexCardHead{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center}
.jobsIndexCardHead>span{width:38px;height:38px;border-radius:8px;background:#eff6ff;color:#1262d6;display:grid;place-items:center}
.jobsIndexCardHead .ico{width:19px;height:19px}
.jobsIndexCardHead b,.jobsIndexCardHead small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jobsIndexCardHead b{font-size:14px;color:#122033}
.jobsIndexCardHead small{font-size:11px;color:#64748b;margin-top:2px}
.jobsIndexCard h3{font-size:18px;line-height:1.2;margin:0;color:#122033;overflow-wrap:anywhere}
.jobsIndexCard p{margin:0;color:#64748b;line-height:1.35;overflow-wrap:anywhere}
.jobsIndexMeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.jobsIndexMeta span{border:1px solid #e2eaf3;border-radius:8px;background:#f8fbff;padding:9px;display:grid;gap:2px;min-width:0}
.jobsIndexMeta b{font-size:13px;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jobsIndexMeta small{font-size:11px;color:#64748b;line-height:1.25}
.jobsIndexProgress{height:8px;border-radius:999px;background:#e5edf5;overflow:hidden}
.jobsIndexProgress i{display:block;height:100%;border-radius:999px;background:#21b66f}
.jobsIndexLifecycle{height:18px;border:1px solid #e2eaf3;border-radius:999px;background:#f8fbff;padding:3px;display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.jobsIndexLifecycle span{border-radius:999px;background:#cbd5e1}.jobsIndexLifecycle .done{background:#21b66f}.jobsIndexLifecycle .current{background:#1262d6}.jobsIndexLifecycle .warn{background:#f59e0b}.jobsIndexLifecycle .bad{background:#dc2626}.jobsIndexCardFoot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf2f7;padding-top:12px}
.jobsIndexCardFoot small{min-width:0;color:#64748b;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.jobsIndexCardActions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.jobsIndexCardFoot button{border-radius:8px;background:#1262d6;color:#fff;padding:9px 12px;font-weight:900;white-space:nowrap}.jobsIndexCardFoot .secondaryAction{background:#fff!important;color:#1262d6!important;border:1px solid #bfdbfe;padding:9px 12px}
.jobsWorkspace{grid-template-columns:330px minmax(0,1fr);background:#f4f7fb;min-height:calc(100vh - 72px)}
.jobDetailWorkspace{grid-template-columns:300px minmax(0,1fr)}
.jobsSidebar{gap:10px}
.jobsList.panel,.jobSubnavPanel,.jobHero.panel,.jobExplorerPanel,.jobSection{box-shadow:0 8px 24px #0b1f3508}
.jobsList>button{border-color:#e1e8f1;background:#fff}
.jobsList>button.active{background:#eaf4ff;border-color:#8cbcf4;box-shadow:inset 3px 0 0 #1262d6}
.jobSubnavPanel{max-height:calc(100vh - 390px);overflow:auto}
.jobFolderSidebar .jobSubnavPanel{max-height:calc(100vh - 106px)}
.jobSubnavPanel nav{gap:2px;padding:9px}
.jobSubnavPanel button{position:relative;min-height:31px;border-radius:6px;padding:0 8px 0 calc(8px + (var(--job-folder-level,0) * 16px));font-size:13px;font-weight:850;color:#263548}
.jobSubnavPanel button .ico{width:17px;height:17px;color:#22a7d8;fill:#22a7d8;stroke:none}
.jobSubnavPanel button.hasChildren:after{content:"";width:6px;height:6px;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8;transform:rotate(-45deg);margin-left:auto}
.jobSubnavPanel button.hasChildren.open:after{transform:rotate(45deg)}
.jobSubnavPanel button.active{background:#eaf4ff;color:#1262d6;box-shadow:inset 3px 0 0 #1262d6}
.jobSubnavChildren{display:grid;gap:1px}
.jobHero.panel{border-color:#e2e8f0;background:#fff;margin-bottom:12px}
.jobHero h2{font-size:24px;letter-spacing:0}
.jobHero small{display:block;color:#64748b;margin-top:4px}
.jobExplorerDashboard{grid-column:1/-1;display:grid;grid-template-columns:1.08fr 1fr 1fr;gap:12px;align-items:start}
.jobExplorerStats{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:10px}
.jobExplorerStats .miniStat{background:#fff;border:1px solid #e0e8f1;border-radius:8px;box-shadow:0 6px 18px #0b1f3508}
.jobExplorerPanel{background:#fff;border:1px solid #e0e8f1;border-radius:8px;padding:12px;min-width:0}
.jobExplorerPanel.wide{grid-column:1/-1}
.jobExplorerPanel .railHead h3,.jobSection .railHead h3{font-size:14px;letter-spacing:0;text-transform:none}
.jobDashboardOverviewGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.jobDashboardOverviewCard{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;text-align:left;padding:12px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:3px 10px;align-items:center;min-height:92px;color:#172033}
.jobDashboardOverviewCard>span{grid-row:1/4;width:34px;height:34px;border-radius:8px;background:#eff6ff;color:#1262d6;display:grid;place-items:center}
.jobDashboardOverviewCard .ico{width:18px;height:18px}
.jobDashboardOverviewCard b{font-size:12px;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jobDashboardOverviewCard strong{font-size:18px;color:#122033;line-height:1.15;overflow-wrap:anywhere}
.jobDashboardOverviewCard small{font-size:11px;color:#64748b;line-height:1.3}
.jobDashboardOverviewCard:hover{border-color:#9bc4f4;background:#f3f9ff}
.jobLifecyclePanel{padding-bottom:14px}
.jobLifecycleRail{display:grid;grid-template-columns:repeat(10,minmax(78px,1fr));gap:8px;position:relative;overflow-x:auto;padding:6px 0}
.jobLifecycleRail:before{content:"";position:absolute;left:36px;right:36px;top:24px;height:3px;background:#d9e2ec}
.jobLifecycleRail>div{position:relative;z-index:1;display:grid;justify-items:center;gap:4px;text-align:center;min-width:78px}
.jobLifecycleRail span{width:32px;height:32px;border-radius:999px;background:#cbd5e1;color:#fff;display:grid;place-items:center;border:3px solid #fff;box-shadow:0 0 0 1px #cbd5e1}
.jobLifecycleRail .done span{background:#21b66f;box-shadow:0 0 0 1px #21b66f}
.jobLifecycleRail .current span{background:#1262d6;box-shadow:0 0 0 1px #1262d6}.jobLifecycleRail .warn span{background:#f59e0b;box-shadow:0 0 0 1px #f59e0b}.jobLifecycleRail .bad span{background:#dc2626;box-shadow:0 0 0 1px #dc2626}
.jobLifecycleRail .ico{width:14px;height:14px}
.jobLifecycleRail b{font-size:11px;line-height:1.15;color:#172033}
.jobLifecycleRail small{font-size:10px;color:#64748b}
.jobMapPreview{height:150px;border:1px solid #dbe6f1;border-radius:8px;background:#e9f0f7;position:relative;overflow:hidden;display:grid;align-content:end}
.jobMapPreview img,.jobMapPreview iframe{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;background:#dbe6f1}
.jobMapPreview iframe{filter:saturate(1.04);pointer-events:none}
.jobMapPreview:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0000 36%,#061627a8)}
.jobMapPin{position:absolute;left:50%;top:45%;transform:translate(-50%,-100%);z-index:2;width:32px;height:32px;border-radius:999px;background:#1262d6;color:#fff;display:grid;place-items:center;box-shadow:0 6px 18px #0f172a66;border:3px solid #fff}
.jobMapPin .ico{width:15px;height:15px;fill:#fff;stroke:none}
.jobMapLabel{position:relative;z-index:2;display:grid;gap:3px;margin:10px;max-width:calc(100% - 20px);justify-self:start}
.jobMapLabel b,.jobMapLabel small,.jobMapLabel a{width:max-content;max-width:100%;background:#fffffff0;border:1px solid #dbe6f1;border-radius:6px;padding:4px 7px;box-shadow:0 4px 14px #0f172a1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jobMapLabel b{font-size:13px;color:#122033}.jobMapLabel small{color:#64748b;font-size:11px}.jobMapLabel a{color:#1262d6;font-size:11px;font-weight:950;text-decoration:none}
.jobMapPreview.needsLocation{background:#f8fbff;padding:10px;align-content:stretch}
.jobMapPreview.needsLocation:after{display:none}
.jobMapFallback{border:1px dashed #b9cadc;border-radius:8px;color:#64748b;display:grid;place-items:center;text-align:center;gap:5px;padding:12px}
.jobMapFallback .ico{width:24px;height:24px;color:#1262d6}.jobMapFallback b{color:#122033;font-size:13px}.jobMapFallback small{font-size:11px}
.jobProjectLocationRow{grid-column:1/-1;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.4fr);gap:12px;align-items:stretch;padding:0}
.jobProjectLocationRow .jobDetailsPanel{align-self:stretch}
.jobMapLandscape{min-width:0}
.jobMapLandscape .jobMapPreview{width:100%;height:100%;min-height:250px;border:0;border-radius:2px;box-shadow:0 8px 24px #0b1f3514}
.jobMapLandscape .jobMapLabel{margin:12px}
.jobDetailList,.jobMoneyGrid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;margin:10px 0 0}
.jobDetailList dt,.jobMoneyGrid span{color:#64748b;font-size:12px;font-weight:850}.jobDetailList dd,.jobMoneyGrid b{margin:0;color:#172033;font-weight:950;text-align:right}
.goodText{color:#16a34a!important}.warnText{color:#d97706!important}.blueText{color:#1262d6!important}
.jobProgressRows{display:grid;gap:8px}
.jobProgressRows p{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1.3fr) 42px;gap:8px;align-items:center;margin:0;font-size:12px}
.jobProgressRows b{height:8px;border-radius:999px;background:#e5edf5;overflow:hidden}
.jobProgressRows i{display:block;height:100%;border-radius:999px;background:#22c55e}
.jobProgressRows em{font-style:normal;font-weight:950;color:#475569;text-align:right}
.jobMiniRows,.jobReportRows{display:grid;gap:8px}
.jobMiniRows p,.jobReportRows article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;border:1px solid #edf2f7;border-radius:8px;background:#fbfdff;padding:9px;margin:0}
.jobReportRows article{grid-template-columns:32px minmax(0,1fr) auto;align-items:center}
.jobReportRows article>span{width:32px;height:32px;border-radius:8px;background:#eff6ff;color:#1262d6;display:grid;place-items:center}
.jobMiniRows b,.jobReportRows b{font-size:12px;color:#122033}
.jobMiniRows span,.jobMiniRows small,.jobMiniRows em,.jobReportRows small{font-size:11px;color:#64748b;font-style:normal}
.jobStatusPill{font-style:normal;border-radius:999px;background:#e2e8f0;color:#475569;padding:5px 8px;font-size:11px;font-weight:950}
.jobStatusPill.good{background:#dcfce7;color:#15803d}.jobStatusPill.warn{background:#fef3c7;color:#b45309}.jobStatusPill.bad{background:#fee2e2;color:#b91c1c}.jobStatusPill.current{background:#dbeafe;color:#1d4ed8}.jobLifecycleEditModal{width:min(880px,100%)}.jobLifecycleEditModal .formGrid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.jobLifecycleEditModal .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}.jobLifecyclePanel .railHead>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.jobLifecyclePanel .railHead button{border:1px solid #bfdbfe;border-radius:7px;background:#eff6ff;color:#1262d6;padding:7px 9px;font-weight:900}
.jobDeleteBtn{justify-self:end;width:max-content;border:1px solid #fecaca!important;padding:8px 10px!important}
.jobsIndexCardActions .dangerBtn{border:1px solid #fecaca!important}
.manualJobSetupModal{width:min(1120px,100%)}.manualJobSetupModal .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}.manualJobSetupSection{border:1px solid #dfe8f2;border-radius:8px;background:#fbfdff;padding:12px;margin:12px 0}.manualJobSetupSection h4{margin:0 0 10px;color:#122033}.manualJobBuildRow{display:grid;grid-template-columns:minmax(180px,1.15fr) minmax(240px,1.6fr) repeat(6,minmax(86px,.55fr)) minmax(118px,.75fr) auto;gap:8px;align-items:end;border:1px solid #e4edf7;border-radius:8px;background:#fff;padding:10px;margin-bottom:8px}.manualJobBuildRow label{margin:0;font-size:11px}.manualJobBuildRow label.wide{grid-column:auto}.manualJobBuildTotal{display:grid;gap:2px;align-self:center}.manualJobBuildTotal b{color:#1262d6}.manualJobBuildTotal small{color:#64748b;font-size:10px}.manualJobBuildSummary{display:flex;align-items:center;justify-content:flex-end;gap:10px;border-top:1px solid #e5edf5;padding-top:10px;color:#64748b}.manualJobBuildSummary b{font-size:20px;color:#1262d6}.manualJobBuildSummary span{font-weight:850}
.timesheetSummaryStrip{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin-bottom:12px}
.timesheetSummaryStrip span{border:1px solid #dfe8f2;border-radius:8px;background:#f8fbff;padding:10px;display:grid;gap:2px}
.timesheetSummaryStrip b{font-size:20px;color:#1262d6}
.timesheetSummaryStrip small{color:#64748b;font-size:11px;font-weight:900}
.jobTimesheetsPanel .staffTimeGrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:12px}
.jobTimesheetRows{margin-top:0}
.jobPhotoStrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.jobPhotoStrip div{min-height:88px;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;overflow:hidden;display:grid;grid-template-rows:1fr auto}
.jobPhotoStrip img{width:100%;height:72px;object-fit:cover}
.jobPhotoStrip .ico{align-self:center;justify-self:center;color:#64748b}
.jobPhotoStrip small{padding:5px 6px;color:#64748b;font-size:10px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jobMarkupPreview .worksMarkupStage{height:280px!important;min-height:220px;background:#edf5ff}
.jobMarkupPreview .worksMarkupCanvas{min-height:220px}
.jobMarkupPreview .wmToolbar,.jobMarkupPreview .worksMarkupSide,.jobMarkupPreview .wmItems{display:none}
.jobCommercialGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.jobCommercialGrid label{display:grid;gap:5px;color:#475569;font-size:12px;font-weight:900}
.jobCommercialGrid .wide{grid-column:1/-1}
.jobCommercialGrid input,.jobCommercialGrid select,.jobCommercialGrid textarea{border:1px solid #d4deea;border-radius:8px;background:#fff;color:#172033;padding:9px;width:100%;font:inherit}
.jobCommercialGrid textarea{min-height:82px;resize:vertical}
.siteLocationGrid{border-top:1px solid #edf2f7;margin-top:12px;padding-top:12px}
.folderIntro{color:#64748b;line-height:1.45;margin:0 0 10px}
.defectSummary{display:grid;grid-template-columns:auto 1fr;gap:1px 10px;border:1px solid #dbe6f1;border-radius:8px;background:#f8fbff;padding:10px;margin-bottom:10px}
.defectSummary b{grid-row:1/3;font-size:28px;color:#1262d6}.defectSummary span{font-weight:950;color:#172033}.defectSummary small{color:#64748b}
.jobHoldPanel{display:grid;place-items:center;text-align:center;min-height:260px}
.jobHoldPanel .holdIcon{width:68px;height:68px;border-radius:18px;background:#eaf4ff;color:#22a7d8;display:grid;place-items:center}
.jobHoldPanel .ico{width:36px;height:36px;fill:#22a7d8;stroke:none}.jobHoldPanel p{max-width:520px;color:#64748b}
.procurementPoList{border:1px solid #dde7f1;border-radius:8px;background:#fff;overflow:hidden}
.poListHead{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid #e5edf5}
.poListHead>span{width:30px;height:30px;border-radius:8px;background:#fff4e8;color:#f97316;display:grid;place-items:center}
.poListHead h3{margin:0;font-size:18px}.poListHead small{color:#64748b}
.jobPoTable{width:100%;border-collapse:collapse}.jobPoTable th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#64748b;background:#fbfdff}.jobPoTable td,.jobPoTable th{padding:12px 16px;border-bottom:1px solid #e5edf5;vertical-align:middle}.jobPoTable tbody tr:last-child td{border-bottom:0}.jobPoTable td small{display:block;color:#64748b;margin-top:3px}.jobPoTable .actions{justify-content:flex-end;gap:5px}.jobPoTable .actions button{font-size:11px;padding:6px 8px}
.poStatusChip{display:inline-flex;align-items:center;width:max-content;border-radius:999px;background:#eef2f7;color:#475569;padding:4px 9px;font-size:11px;font-weight:950}.poStatusChip.delivered,.poStatusChip.received,.poStatusChip.closed,.poStatusChip.accepted-by-supplier{background:#dcfce7;color:#15803d}.poStatusChip.acknowledged,.poStatusChip.issued{background:#cffafe;color:#0e7490}.poStatusChip.partial-delivery,.poStatusChip.awaiting-delivery{background:#fef3c7;color:#b45309}.poStatusChip.invoiced{background:#f3e8ff;color:#7e22ce}.poStatusChip.declined-by-supplier{background:#fee2e2;color:#b91c1c}
.poDetailForm{border:1px solid #dce6f1;border-radius:8px;background:#fff;overflow:hidden}.poDetailBar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:4px solid #86efac;background:#fbfdff;padding:8px 10px;text-align:center}.poDetailBar h3{margin:0;font-size:13px}.darkMiniBtn{background:#283142!important;color:#fff!important;border-radius:4px!important;padding:5px 8px!important;font-size:11px!important}
.poDetailGrid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;padding:14px}.poDetailGrid label{display:grid;gap:5px;color:#475569;font-size:11px;font-weight:950}.poDetailGrid label.wide{grid-column:span 2}.poDetailGrid input,.poDetailGrid select,.poDetailGrid textarea,.poJobPicker select{border:1px solid #d4deea;border-radius:6px;background:#fff;padding:8px;width:100%;font:inherit}.poDetailGrid textarea{min-height:58px;resize:vertical}
.poLineEditor{border-top:1px solid #e5edf5}.poLineToolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fafc;padding:9px 12px}.poLineToolbar h4{margin:0}.poLineToolbar div{display:flex;gap:6px;flex-wrap:wrap}.poLineTable input,.poLineTable select{width:100%;border:1px solid #d4deea;border-radius:5px;background:#fff;padding:6px;font-size:12px}.poLineTable th,.poLineTable td{padding:8px;border-bottom:1px solid #edf2f7}.poLineTable th{font-size:10px}.poLineTable td:nth-child(2){min-width:260px}.poLineTable b{font-size:12px;white-space:nowrap}
.poDetailFooter{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(180px,.6fr) minmax(260px,.8fr);gap:12px;padding:12px;background:#f8fafc;border-top:1px solid #e5edf5}.poPrintBox,.poActionBox,.poTotalsBox{border:1px solid #dce6f1;border-radius:8px;background:#fff;padding:10px;display:grid;gap:8px}.poPrintBox select,.poActionBox select{border:1px solid #d4deea;border-radius:6px;padding:7px;background:#fff}.poPrintBox div{display:flex;gap:6px}.poActionBox button{background:#22c55e!important;color:#fff!important}.poTotalsBox{grid-template-columns:1fr auto;align-content:start}.poTotalsBox span{color:#64748b}.poTotalsBox b{text-align:right}.poDetailActions{display:flex;justify-content:center;gap:8px;padding:12px;background:#eef2f7}.poJobPicker{display:grid;gap:5px;margin-bottom:10px;color:#475569;font-weight:950}
.poEmailPrompt{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:#0f172a73;backdrop-filter:blur(2px)}
.poEmailPromptCard{width:min(520px,100%);border:1px solid #dce6f1;border-radius:12px;background:#fff;box-shadow:0 24px 80px #0f172a40;padding:16px;display:grid;gap:12px}
.poEmailPromptCard .railHead{margin:0}.poEmailPromptCard .railHead p{margin:4px 0 0;color:#64748b;font-size:12px}.poEmailPromptCard label{display:grid;gap:6px;color:#475569;font-size:12px;font-weight:950}.poEmailPromptCard input{height:40px;border:1px solid #cbd8e6;border-radius:8px;background:#fff;padding:0 11px;font:inherit;color:#172033}.poEmailPromptCard .actions{justify-content:flex-end}
@media(max-width:1280px){.jobExplorerStats{grid-template-columns:repeat(3,minmax(0,1fr))}.jobExplorerDashboard{grid-template-columns:1fr 1fr}.jobExplorerPanel.wide,.jobLifecyclePanel,.jobMarkupPreviewPanel{grid-column:1/-1}.jobLifecycleRail{grid-template-columns:repeat(10,94px)}.jobProjectLocationRow{grid-template-columns:minmax(300px,.9fr) minmax(360px,1.35fr);gap:12px;padding:0}.jobMapLandscape .jobMapPreview{min-height:224px}.procurementSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.jobProcurementPanel .poBuilder{grid-template-columns:1fr 1fr 150px 1fr auto}}
@media(max-width:900px){.jobsIndexStats{grid-template-columns:repeat(2,minmax(0,1fr))}.jobsIndexGrid{grid-template-columns:1fr}.jobsWorkspace{grid-template-columns:1fr}.jobsSidebar{position:static}.jobSubnavPanel,.jobFolderSidebar .jobSubnavPanel{max-height:none}.jobExplorerDashboard{grid-template-columns:1fr}.jobExplorerStats{grid-template-columns:1fr 1fr}.jobProjectLocationRow{grid-template-columns:1fr;padding:0;gap:12px}.jobMapLandscape .jobMapPreview{height:220px;aspect-ratio:auto}.jobCommercialGrid{grid-template-columns:1fr}.timesheetSummaryStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.jobPhotoStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.jobPoRegister article{grid-template-columns:1fr}.jobPoRegister .actions{justify-content:flex-start}.procurementItemRows label{grid-template-columns:22px minmax(0,1fr) auto}.procurementItemRows em{grid-column:2/-1}.jobProcurementPanel .poBuilder{grid-template-columns:1fr 1fr}.jobPoTable{min-width:820px}.procurementPoList{overflow:auto}.poDetailGrid{grid-template-columns:1fr 1fr}.poDetailGrid label.wide{grid-column:1/-1}.poDetailFooter{grid-template-columns:1fr}.manualJobBuildRow{grid-template-columns:repeat(2,minmax(0,1fr))}.manualJobBuildRow label.wide{grid-column:1/-1}.manualJobBuildTotal{grid-column:1/-1}}
@media(max-width:560px){.jobsIndexStats{grid-template-columns:1fr}.jobsIndexMeta{grid-template-columns:1fr}.jobsIndexCardFoot{display:grid}.jobsIndexCardFoot button{width:100%}.jobExplorerStats{grid-template-columns:1fr}.jobMapLandscape .jobMapPreview{height:180px}.jobProgressRows p{grid-template-columns:1fr}.jobProgressRows em{text-align:left}.timesheetSummaryStrip{grid-template-columns:1fr}.jobPhotoStrip{grid-template-columns:1fr}.jobDetailList,.jobMoneyGrid{grid-template-columns:1fr}.jobDetailList dd,.jobMoneyGrid b{text-align:left}.procurementSummaryGrid,.jobProcurementPanel .poBuilder{grid-template-columns:1fr}.procurementItemRows label{grid-template-columns:22px 1fr}.procurementItemRows strong,.procurementItemRows em{grid-column:2/-1}.poListHead,.poDetailBar{grid-template-columns:1fr;text-align:left}.poDetailGrid{grid-template-columns:1fr}.poLineTable{min-width:780px}.poLineEditor{overflow:auto}.manualJobBuildRow{grid-template-columns:1fr}}

/* Build Tasks / Workbook proposal alignment */
.workbookBuildPage{padding:18px 20px 28px;background:#f7faff;overflow-x:hidden}
.workbookBuildHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid #d9e4f1;border-radius:8px;background:#fff;padding:12px 14px;margin-bottom:14px;box-shadow:0 8px 22px #0b1f3508}
.workbookBuildTitle{display:flex;align-items:center;gap:12px;min-width:0}.workbookBuildTitle h2{margin:0;font-size:22px;color:#111827;line-height:1.1}.workbookBuildTitle p{margin:5px 0 0;color:#536276;font-size:12px;font-weight:800;line-height:1.35}
.workbookBuildActions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.workbookBuildActions button{height:34px;border-radius:6px;padding:0 12px;font-size:12px;font-weight:950}
.workbookKpiStrip{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-bottom:14px}.workbookKpiStrip article{border:1px solid #d8e3ef;border-radius:8px;background:#fff;padding:14px;display:grid;gap:3px;min-height:92px;box-shadow:0 8px 18px #0b1f3508}.workbookKpiStrip small{color:#475569;font-size:11px;font-weight:950}.workbookKpiStrip b{font-size:26px;line-height:1;color:#111827}.workbookKpiStrip span{color:#64748b;font-size:12px;line-height:1.3;font-weight:800}
.workbookBuildLayout{grid-template-columns:minmax(0,1fr) 300px!important;gap:16px}.workbookBuildLayout .taskTemplatesMain{gap:0}.workbookTablePanel{background:#fff;border:1px solid #d9e4f1;border-radius:8px;overflow:auto;box-shadow:0 10px 24px #0b1f3508}.workbookTableHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e5edf5;background:#fff}.workbookTableHead h3{margin:0;font-size:16px;color:#111827}.workbookTableHead small{display:block;margin-top:3px;color:#64748b;font-size:11px;line-height:1.35;font-weight:850}.workbookTableHead button{height:32px;border:1px solid #bfdbfe;border-radius:6px;background:#fff;color:#1262d6;padding:0 10px;font-size:12px;font-weight:950}
.workbookToolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(170px,.32fr) minmax(132px,.24fr);gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid #e5edf5;background:#fbfdff}.workbookToolbar label{min-width:0}.workbookSearch{height:38px;border:1px solid #d6e1ed;border-radius:7px;background:#fff;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center}.workbookSearch .ico{width:16px;height:16px;justify-self:center;color:#64748b}.workbookSearch input{height:36px;border:0;background:transparent;padding:0 10px 0 0;font-size:12px;font-weight:850;color:#172033;outline:0}.workbookToolbar label:not(.workbookSearch){height:38px;border:1px solid #d6e1ed;border-radius:7px;background:#fff;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:0 9px}.workbookToolbar span{color:#64748b;font-size:10px;font-weight:950;text-transform:uppercase}.workbookToolbar select{border:0;background:transparent;color:#172033;min-width:0;font-size:12px;font-weight:900;outline:0}
.workbookTaskTable{width:100%;min-width:820px;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:12px;color:#172033}.workbookTaskTable th{height:38px;background:#f8fafc;color:#475569;text-align:left;text-transform:none;font-size:11px;font-weight:950;border-bottom:1px solid #e1e8f0;padding:0 10px}.workbookTaskTable td{height:46px;border-bottom:1px solid #edf2f7;background:#fff;padding:7px 10px;vertical-align:middle}.workbookTaskTable th:nth-child(1),.workbookTaskTable td:nth-child(1){width:54px;text-align:center}.workbookTaskTable th:nth-child(2),.workbookTaskTable td:nth-child(2){width:58px}.workbookTaskTable th:nth-child(4),.workbookTaskTable td:nth-child(4){width:62px;text-align:center}.workbookTaskTable th:nth-child(5),.workbookTaskTable td:nth-child(5){width:58px;text-align:center}.workbookTaskTable th:nth-child(6),.workbookTaskTable td:nth-child(6){width:70px;text-align:center}.workbookTaskTable th:nth-child(7),.workbookTaskTable td:nth-child(7){width:68px;text-align:center}.workbookTaskTable th:nth-child(8),.workbookTaskTable td:nth-child(8){width:82px;text-align:center}.workbookTaskTable th:nth-child(9),.workbookTaskTable td:nth-child(9){width:118px}.workbookTaskTable th:nth-child(10),.workbookTaskTable td:nth-child(10){width:114px;text-align:right}.workbookTaskTable tbody tr:hover td{background:#fbfdff}.workbookTaskTable b{font-weight:950}.workbookTaskActivity strong{display:block;color:#111827;font-size:12px;line-height:1.2}.workbookTaskActivity small,.workbookTaskTable td small{display:block;color:#64748b;font-size:10px;line-height:1.25;margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.workbookTaskCheck input{width:15px;height:15px;accent-color:#1262d6}.workbookStatusPill{display:inline-flex;align-items:center;justify-content:center;min-width:64px;border-radius:999px;background:#dcfce7;color:#15803d;padding:5px 8px;font-size:10px;font-weight:950}.workbookStatusPill.future{background:#f1f5f9;color:#64748b}.workbookTaskRow.taskTemplateFutureRow td{background:#fcfdff}.workbookTaskRow.taskTemplateActiveRow td:first-child{box-shadow:inset 3px 0 0 #1262d6}
.workbookTaskGroup td{height:42px!important;background:#fbfdff!important;border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7;color:#172033;text-align:left!important}.workbookTaskGroup i{display:inline-block;width:12px;height:12px;border-radius:999px;background:#1262d6;margin-right:10px;vertical-align:-1px}.workbookTaskGroup b{font-size:12px;letter-spacing:.03em}.workbookTaskGroup span{display:inline-flex;margin-left:10px;border:1px solid #dbe5ef;border-radius:999px;background:#fff;color:#64748b;padding:3px 8px;font-size:10px;font-weight:950}.workbookTaskGroup.green i{background:#16a34a}.workbookTaskGroup.purple i{background:#7c3aed}.workbookTaskGroup.orange i{background:#f97316}.workbookTaskGroup.teal i{background:#0891b2}.workbookTaskGroup.yellow i{background:#eab308}.workbookTaskGroup.grey i{background:#94a3b8}.workbookTaskEmpty{height:150px!important;text-align:center!important;color:#64748b!important;background:#fff!important}
.templateActions{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.templateActions button{height:27px;border-radius:5px;border:1px solid #d6e1ed;background:#fff!important;color:#1262d6!important;padding:0 7px;font-size:10px;font-weight:950}.templateActions .dangerBtn{background:#fee2e2!important;border-color:#fecaca!important;color:#b91c1c!important}
.workbookTaskTable th:nth-child(9),.workbookTaskTable td:nth-child(9){width:96px;text-align:left}.workbookTaskTable th:nth-child(10),.workbookTaskTable td:nth-child(10){width:118px;text-align:left}.workbookTaskTable th:nth-child(11),.workbookTaskTable td:nth-child(11){width:114px;text-align:right}.workbookTaskSpec{white-space:nowrap}.taskSpecLink{display:inline-flex;align-items:center;border:1px solid #bfdbfe;border-radius:999px;background:#eff6ff;color:#1262d6!important;padding:4px 8px;font-size:10px;font-weight:950;text-decoration:none}.taskSpecLink:hover{background:#dbeafe}.taskSpecPlain{color:#64748b;font-size:10px;font-weight:900}
.workbookRoadmapRail{position:sticky;top:74px;display:grid;gap:12px}.workbookRoadmapCard,.workbookGrowthCard,.workbookSourceCard{border:1px solid #d9e4f1;border-radius:8px;background:#fff;padding:13px;box-shadow:0 8px 18px #0b1f3508}.workbookRoadmapCard h3,.workbookGrowthCard h3,.workbookSourceCard h3{margin:0 0 10px;font-size:13px;color:#111827}.workbookRoadmapStep{display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;border:1px solid #e3ebf4;border-radius:8px;background:#fbfdff;padding:10px;margin-top:8px}.workbookRoadmapStep span{width:22px;height:22px;border-radius:999px;border:2px solid #bfdbfe;color:#1262d6;display:grid;place-items:center;font-size:11px;font-weight:1000}.workbookRoadmapStep.complete span{background:#16a34a;border-color:#16a34a;color:#fff}.workbookRoadmapStep b{font-size:12px;color:#172033}.workbookRoadmapStep small,.workbookRoadmapStep em{display:block;color:#64748b;font-size:11px;line-height:1.35;margin-top:3px;font-style:normal}.workbookRoadmapStep em{font-weight:900;color:#475569}.workbookGrowthCard .railHead{margin:0 0 8px}.workbookGrowthCard .railHead button{height:28px;border:1px solid #bfdbfe;border-radius:6px;background:#eff6ff;color:#1262d6;padding:0 9px;font-size:11px;font-weight:950}.workbookGrowthList{display:grid;gap:7px}.workbookGrowthList button{height:38px;border:1px dashed #c9d8e8;border-radius:7px;background:#fff;color:#172033;display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;padding:0 9px}.workbookGrowthList span{width:20px;height:20px;border-radius:6px;background:#eff6ff;color:#1262d6;display:grid;place-items:center;font-weight:1000}.workbookGrowthList b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workbookGrowthList small,.workbookMoreSlots,.workbookSourceCard small{color:#64748b;font-size:10px;font-weight:850}.workbookGrowthList p,.workbookSourceCard p{margin:0;color:#64748b;font-size:12px;line-height:1.4;font-weight:800}.workbookSourceCard p{margin-bottom:9px}
@media(max-width:1100px){.workbookBuildLayout{grid-template-columns:1fr!important}.workbookRoadmapRail{position:static;grid-template-columns:repeat(3,minmax(0,1fr))}.workbookSourceCard{grid-column:1/-1}}
@media(max-width:820px){.workbookBuildHeader{grid-template-columns:1fr}.workbookBuildActions{justify-content:flex-start}.workbookKpiStrip{grid-template-columns:repeat(2,minmax(0,1fr))}.workbookToolbar{grid-template-columns:1fr}.workbookRoadmapRail{grid-template-columns:1fr}.workbookTablePanel{overflow:auto}.workbookTaskTable{min-width:900px}}
@media(max-width:560px){.workbookKpiStrip{grid-template-columns:1fr}.workbookBuildTitle{align-items:flex-start}.workbookBuildActions button{flex:1}.workbookTableHead{display:grid}.workbookTableHead button{justify-self:start}}

/* Quote builder drill-down overrides */
.quoteSourceStatus{display:grid;grid-template-columns:auto repeat(5,minmax(0,1fr));gap:10px;align-items:stretch;padding:11px 16px;border-bottom:1px solid #e1eaf5;background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)}
.quoteSourceStatus .sourceLabel{color:#475569;font-size:12px;font-weight:950;display:flex;align-items:center}
.quoteSourceStatus article{border:1px solid #dbe5ef;border-radius:10px;background:#fbfdff;padding:11px 12px;display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:4px 10px;align-items:center;min-height:78px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;cursor:pointer}
.quoteSourceStatus article:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0b1f350a}
.quoteSourceStatus article.active{border-color:#1262d6;box-shadow:0 12px 22px #0b1f350c,inset 3px 0 0 #1262d6;background:#eff6ff}
.quoteSourceStatus article .ico{grid-row:1/4;color:#1262d6;width:18px;height:18px}
.quoteSourceStatus b{font-size:12px;line-height:1.15}
.quoteSourceStatus small{font-size:10px;color:#64748b;display:block;line-height:1.25}
.quoteSourceStatus em{font-style:normal;display:block;font-size:10px;color:#64748b;line-height:1.25;margin-top:2px}
.quoteSourceStatus strong{font-size:18px;color:#122033;white-space:nowrap}
.quoteBuilderWorkspace{display:grid;background:#fff;grid-template-columns:minmax(0,1fr);gap:14px}
.quoteBuilderWorkspace>section,.quoteBuilderWorkspace>aside{border-color:#dce7f2;padding:14px}
.quoteRegisterPage.quoteBuilderFocused .quoteBuilderWorkspace{grid-template-columns:minmax(0,1fr)!important}
.quoteLivePanel{grid-column:1;position:static;align-self:stretch;top:auto;background:linear-gradient(180deg,#f8fbff 0%,#fff 100%)!important;border-left:5px solid #1262d6;box-shadow:0 8px 22px #0b1f3508}
.quoteLivePanel .railHead{margin-bottom:12px}
.liveDot{color:#16a34a!important;font-weight:950}
.quoteSummaryHero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:12px;align-items:stretch}
.quoteSummaryHeroMain{border:1px solid #bfdbfe;border-radius:12px;background:linear-gradient(135deg,#eff6ff 0%,#fff 100%);padding:16px 18px;box-shadow:0 10px 20px #0b1f3508}
.quoteSummaryHeroMain span{display:block;color:#475569;font-weight:950;font-size:12px}
.quoteSummaryHeroMain b{display:block;font-size:34px;line-height:1.04;color:#1262d6;margin:2px 0 4px}
.quoteSummaryHeroMain small{display:block;color:#64748b;font-weight:850;line-height:1.35}
.quoteSummaryHeroAside{display:grid;gap:8px}
.quoteSummaryHeroAside article{border:1px solid #dbe5ef;border-radius:12px;background:#fff;padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;box-shadow:0 8px 18px #0b1f3506}
.quoteSummaryHeroAside small{grid-column:1/-1;font-size:10px;color:#64748b;font-weight:950;text-transform:uppercase;letter-spacing:.03em}
.quoteSummaryHeroAside b{font-size:16px;color:#122033}
.quoteSummaryHeroAside span{grid-column:1/-1;color:#64748b;font-size:11px;line-height:1.25}
.quoteSummaryDetail{border:1px solid #dbe5ef;border-radius:12px;background:#fff;padding:12px;display:grid;gap:12px;box-shadow:0 8px 20px #0b1f3506}
.quoteSummaryDetailHead{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}
.quoteSummaryDetailHead h4{margin:0;font-size:14px;color:#122033}
.quoteSummaryDetailHead small{display:block;margin-top:3px;color:#64748b;font-weight:850;line-height:1.35}
.quoteSummaryDetailStat{min-width:74px;border:1px solid #dbe5ef;border-radius:10px;background:#f8fbff;padding:10px 12px;text-align:center;display:grid;gap:2px}
.quoteSummaryDetailStat b{font-size:20px;line-height:1;color:#1262d6}
.quoteSummaryDetailStat span{font-size:10px;color:#64748b;font-weight:950;text-transform:uppercase;letter-spacing:.03em}
.quoteSummaryDetailList{display:grid;gap:8px;max-height:280px;overflow:auto}
.quoteSummaryDetailRow{border:1px solid #dbe5ef;border-left:4px solid #cbd5e1;border-radius:10px;background:#fbfdff;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:start;box-shadow:0 4px 12px #0b1f3505}
.quoteSummaryDetailRow.work{border-left-color:#1262d6;background:#f8fbff}
.quoteSummaryDetailRow.labour{border-left-color:#16a34a;background:#f0fdf4}
.quoteSummaryDetailRow.materials{border-left-color:#7c3aed;background:#f5f3ff}
.quoteSummaryDetailRow.services{border-left-color:#ea580c;background:#fff7ed}
.quoteSummaryDetailRow.adhoc{border-left-color:#64748b;background:#f8fafc}
.quoteSummaryDetailRow b{display:block;font-size:12px;color:#475569;text-transform:uppercase;letter-spacing:.02em}
.quoteSummaryDetailRow strong{display:block;font-size:13px;color:#122033;line-height:1.25;margin-top:2px}
.quoteSummaryDetailRow small{display:block;color:#64748b;line-height:1.35;margin-top:4px}
.quoteSummaryDetailRow span{font-size:14px;font-weight:950;color:#122033;white-space:nowrap}
.quoteSummaryDetailNote{color:#64748b;font-size:11px;font-weight:850;line-height:1.35}
.quoteSnapshotBadge{display:grid;grid-template-columns:24px 1fr;align-items:center}.quoteSnapshotBadge small{display:block;color:#92400e;font-weight:800}.quoteSummaryActions{grid-template-columns:1fr 1fr}.quoteSummaryActions button:nth-child(3),.quoteSummaryActions button:nth-child(4){grid-column:1/-1}
@media(max-width:1180px){.quoteSourceStatus{grid-template-columns:1fr}.quoteSourceStatus .sourceLabel{display:none}.quoteSourceStatus article{grid-template-columns:26px minmax(0,1fr) auto}.quoteBuilderTop{grid-template-columns:repeat(2,minmax(0,1fr))}.quoteOutputGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.quoteSummaryHero{grid-template-columns:1fr}}
@media(max-width:900px){.quoteSourceStatus{grid-template-columns:1fr}.quoteSourceStatus article{grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto auto}.quoteSourceStatus article strong{grid-column:1/-1;justify-self:start}.quoteBuilderTools{grid-template-columns:1fr}.quoteSummaryHero,.quoteSummaryDetailHead{grid-template-columns:1fr}.quoteSummaryHeroAside article{grid-template-columns:1fr auto}.quoteSummaryDetailRow{grid-template-columns:1fr}.quoteSummaryDetailRow span{justify-self:start}.quoteBuilder .libRows{grid-template-columns:1fr}.quoteLibraryPanel,.quoteOutputPanel{grid-column:1}.quoteSourceStrip{align-items:flex-start}.librarySearchRow{grid-template-columns:1fr}}

.boqPage.materialsLibraryPage{display:grid !important;grid-template-columns:minmax(0,1fr) !important;gap:14px !important;align-content:start}
body.materialsModalOpen{overflow:hidden}
.boqPage.materialsLibraryPage>.pageHead,.boqPage.materialsLibraryPage>.quoteStats,.boqPage.materialsLibraryPage>.quoteToolbar,.boqPage.materialsLibraryPage>#form,.boqPage.materialsLibraryPage>.materialsLibraryTop,.boqPage.materialsLibraryPage>.materialsLibraryMainColumn,.boqPage.materialsLibraryPage>.jobSection{grid-column:1/-1 !important}
.materialsLibraryPage .materialsLibraryMainColumn{display:grid;gap:14px;min-width:0;align-self:start}
.materialsLibraryPage .materialsLibraryMain{width:100%}
.materialsSourceRail{display:none !important}
.materialsEditorBackdrop{z-index:86}
.materialsEditorCardModal{width:min(1040px,100%);max-height:calc(100vh - 36px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 28px 80px #02061766;padding:18px;color:var(--text)}
.materialsEditorCardModal .railHead{margin:0 0 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.materialsEditorCardModal .materialsEditorHeaderActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.materialsEditorCardModal .materialsEditorHeaderActions button{min-height:34px;padding:0 12px;border:1px solid #d4deea;border-radius:8px;background:#fff;color:#334155;font-weight:900}
.materialsEditorCardModal .materialsEditorActions{margin-top:12px}
.materialsEditorCardModal .materialsEditorWarning{margin-top:12px}
@media(max-width:900px){
  .materialsEditorCardModal{width:100%;max-height:calc(100vh - 24px);padding:14px}
  .materialsEditorCardModal .railHead{align-items:stretch;flex-direction:column}
  .materialsEditorCardModal .materialsEditorHeaderActions{justify-content:flex-start}
}

.materialsLibraryTable{table-layout:fixed}
.materialsLibraryTable th:first-child,.materialsLibraryTable td:first-child{width:92px;max-width:92px}
.materialsLibraryTable th:nth-child(2),.materialsLibraryTable td:nth-child(2){width:auto}
.materialsLibraryTable th:nth-child(3),.materialsLibraryTable td:nth-child(3){width:190px}
.materialsLibraryTable th:nth-child(4),.materialsLibraryTable td:nth-child(4){width:96px}
.materialsLibraryTable th:nth-child(5),.materialsLibraryTable td:nth-child(5){width:58px}
.materialsLibraryTable th:nth-child(6),.materialsLibraryTable td:nth-child(6),.materialsLibraryTable th:nth-child(7),.materialsLibraryTable td:nth-child(7){width:84px}
.materialsLibraryTable th:nth-child(8),.materialsLibraryTable td:nth-child(8){width:78px}
.materialsLibraryTable tbody tr.libraryItemRow td:first-child{font-size:12px;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis}
.materialsLibraryTable tbody tr.libraryItemRow td:nth-child(2) strong{font-size:13px;line-height:1.2}
.materialsLibraryTable tbody tr.libraryItemRow td:nth-child(2) small{max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

.taskTemplatesPage .taskTemplatesLayout,.workbookBuildLayout{grid-template-columns:minmax(0,1fr)!important}
.taskTemplatesPage .taskTemplatesRail,.workbookRoadmapRail{display:none!important}
.taskTemplatesPage .taskTemplatesMain{grid-column:1/-1}
/* Drawings register */
.drawingRegisterList{display:grid;gap:10px}
.drawingRegisterItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;align-items:start;padding:12px;border:1px solid #dbe6f1;border-radius:10px;background:#fff}
.drawingRegisterItem .drawingRegisterMain{grid-column:1/-1}
.drawingRegisterMeta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.drawingRegisterActions{display:flex;gap:8px;align-items:center;justify-self:end}
.drawingRegisterMeta .changeSummary{color:#5a6b7f;overflow-wrap:anywhere}
.approvalPill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#e7f6ec;color:#1c7c3f;border:1px solid #bce3c8}
.approveBtn{padding:5px 10px;border:1px solid #1c7c3f;background:#f1faf4;color:#1c7c3f;border-radius:7px;font-size:12px;cursor:pointer}
.historyToggle{padding:5px 10px;border:1px solid #c6d4e3;background:#f4f8fc;color:#23405f;border-radius:7px;font-size:12px;cursor:pointer}
.historyToggle.open{background:#23405f;color:#fff;border-color:#23405f}
.drawingHistory{grid-column:1/-1;display:grid;gap:6px;margin-top:4px;padding:10px;border:1px dashed #cdd9e6;border-radius:8px;background:#f8fbff}
.drawingHistoryRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:13px}
.drawingHistoryRow small{color:#5a6b7f;overflow-wrap:anywhere}
.drawingDropZone{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border:1.5px dashed #b9cadd;border-radius:10px;background:#f7faff;margin:8px 0}
.drawingDropZone.dragover{border-color:#23405f;background:#eaf2fb}
.drawingDropZone .dropHint{color:#6a7b8f;font-size:12px}
.supersedeNotice{margin:8px 0;padding:10px;border:1px solid #f0d49a;border-radius:8px;background:#fff8e8}
.supersedeNotice .policyCheck.warn{color:#8a5a00;font-weight:600}
.drawingUploadForm .fieldLabel{display:grid;gap:4px;font-size:13px;color:#3a4a5d;margin-bottom:8px}
/* Schedule timeline refinements: full width, larger text, duration counter, print-only */
.clientTimelineBody{grid-template-columns:minmax(0,1fr)!important}
.clientTimelineMain{border-right:0!important}
.clientTimelineMeta b{font-size:18px}
.clientTimelineDurationBar{display:flex;flex-wrap:wrap;gap:10px;padding:12px 16px;border-bottom:1px solid #dbe5ef;background:#f8fafc}
.clientTimelineDurationBar .durationStat{border:1px solid #dbe5ef;border-radius:8px;background:#fff;padding:8px 14px;display:grid;gap:2px;min-width:96px}
.clientTimelineDurationBar .durationStat.wide{min-width:190px}
.clientTimelineDurationBar .durationStat b{font-size:22px;color:#0d1b2a;line-height:1.1}
.clientTimelineDurationBar .durationStat span{font-size:10px;font-weight:950;text-transform:uppercase;color:#64748b;letter-spacing:.02em}
.clientTimelineActions .secondary{background:#eef6ff!important;color:#1262d6!important;border-color:#bfdbfe}
.timelineHead{font-size:13px}
.timelineTicks span{font-size:12px;font-weight:900;color:#334155}
.timelineRow{min-height:58px}
.timelineRow{align-items:stretch}
.timelineRow.isDeleted{opacity:.72;background:#f8fafc}
.timelineLabelCell{display:grid;gap:6px;align-items:start;padding:10px 12px}
.timelineLabelTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.timelineLabelTop span{display:inline-flex;align-items:center;min-height:22px;font-size:13px;font-weight:950;color:#475569}
.timelineRowToggle{border:1px solid #dbe5ef;border-radius:999px;background:#fff;padding:5px 9px;color:#1262d6;font-size:11px;font-weight:950;white-space:nowrap}
.timelineLabelCell textarea{width:100%;min-height:56px;resize:vertical;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:9px 10px;font-size:14px;font-weight:800;line-height:1.3;color:#172033}
.timelineLabelCell textarea:disabled{background:#f8fafc;color:#64748b}
.timelineEdit{display:grid;grid-template-columns:minmax(0,1fr) 78px 122px;gap:8px;padding:10px}
.timelineEdit input,.timelineEdit select{font-size:13px;padding:8px;min-width:0}
.timelineTrack{height:30px;display:grid;grid-template-columns:repeat(var(--tl-days),minmax(8px,1fr));align-items:center;border-left:1px solid #edf2f7;border-right:1px solid #edf2f7;background:repeating-linear-gradient(90deg,#fff 0,#fff calc(100% / var(--tl-days) - 1px),#edf2f7 calc(100% / var(--tl-days) - 1px),#edf2f7 calc(100% / var(--tl-days)))}
.timelineTrack i{grid-column:var(--tl-start)/span var(--tl-span);height:16px;border-radius:999px;background:#1262d6;display:flex;align-items:center;justify-content:flex-end;padding:0 5px;color:#fff;font-style:normal;box-shadow:0 4px 10px #1262d633;min-height:0}
.timelineTrack em{font-size:12px}
.timelineRemovedNote,.timelineRemovedHint{color:#64748b;font-size:11px;font-weight:850;line-height:1.35;text-align:center}
@media(min-width:1181px){
  .timelineHead,.timelineRow{grid-template-columns:320px minmax(440px,1fr) 300px}
}
@media print{
  body.printTimelineOnly #app *{visibility:hidden!important}
  body.printTimelineOnly #clientTimelinePanel,body.printTimelineOnly #clientTimelinePanel *{visibility:visible!important}
  body.printTimelineOnly #clientTimelinePanel{position:absolute;left:0;top:0;width:100%;box-shadow:none;border:0}
  body.printTimelineOnly #clientTimelinePanel .clientTimelineActions,body.printTimelineOnly #clientTimelinePanel .timelineEdit{display:none!important}
  body.printTimelineOnly #clientTimelinePanel .clientTimelineHero p,body.printTimelineOnly #clientTimelinePanel .clientCrewBoard small{display:none!important}
  body.printTimelineOnly #clientTimelinePanel input,body.printTimelineOnly #clientTimelinePanel select{border:0!important;background:transparent!important;padding:2px 0!important;-webkit-appearance:none;appearance:none}
  body.printTimelineOnly .clientTimelineGrid{overflow:visible!important}
}
/* Schedule Elements (mini scheduler) layout */
.miniSchedulerForm{grid-template-columns:1fr!important;gap:14px}
.miniSchedulerFields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:start}
.miniSchedulerFields label{display:grid;gap:5px;font-size:11px;font-weight:950;color:#475569}
.miniSchedulerFields input,.miniSchedulerFields select{width:100%;min-height:40px;border:1px solid #d4deea;border-radius:7px;background:#fff;padding:9px;color:#172033}
.miniSchedulerPlanning{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;align-items:start}
.miniSchedulerPlanning .taskPlannerBlock,.miniSchedulerPlanning .scheduleLineTray{margin-top:0}
.miniSchedulerForm>button.primary{justify-self:start;align-self:start;min-height:42px;padding:0 20px}
.activityPickerField{gap:7px}
.activityPickerTrigger{width:100%;min-height:42px;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-weight:900;color:#172033;box-shadow:0 1px 2px #0b1f3506}
.activityPickerTrigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activityPickerTrigger i{font-style:normal;color:#64748b}
.activityPickerSelect[hidden]{display:none!important}
.activityPickerModal .componentLibraryResults article.selected{border-color:#1262d6;background:#eff6ff}
.scheduleDrawingControl{display:grid;gap:10px;padding:12px;border:1px solid #dbe5ef;border-radius:10px;background:#fff}
.scheduleAttachToggle{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;font-size:12px;font-weight:900;color:#334155;line-height:1.35}
.scheduleAttachToggle input{margin-top:2px;width:18px;height:18px}
.scheduleAttachToggle strong{display:block;font-size:12px;color:#172033}
.scheduleAttachToggle small{display:block;font-size:11px;font-weight:800;color:#64748b;margin-top:2px;line-height:1.35}
.scheduleDrawingControl select{width:100%;border:1px solid #d4deea;border-radius:8px;background:#fff;padding:10px;color:#172033}
.scheduleDrawingWrap{margin:0 0 8px}.scheduleDrawingWrap .drawingOpenBtn{width:100%;justify-content:center}
@media(max-width:900px){.miniSchedulerPlanning{grid-template-columns:1fr}}
/* PO delivery location mini map */
.poDeliveryMapWrap{grid-column:1/-1;display:grid;gap:6px}
.poDeliveryMap{width:100%;height:200px;border:1px solid #d4deea;border-radius:8px;background:#eef2f7}
.poMapLink{justify-self:start;font-size:12px;font-weight:900;color:#1262d6;text-decoration:none}
.poMapLink:hover{text-decoration:underline}
/* Project Details card: tidy label/value alignment */
.jobDetailList{grid-template-columns:auto minmax(0,1fr)!important;align-items:baseline;gap:9px 16px}
.jobDetailList dt{white-space:nowrap}
.jobDetailList dd{text-align:left!important;overflow-wrap:anywhere;line-height:1.35}
/* Materials library group header spacing (category vs supplier) */
.materialsLibraryTable .libraryGroupRow b{margin-right:10px}
/* Activity Components: relocate detail cards to a top strip, widen main panel */
.componentInfoStrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-bottom:14px}
.componentInfoStrip article{border:1px solid #dbe5ef;border-radius:8px;background:#fff;box-shadow:0 8px 18px #0b1f3506;padding:14px}
.componentInfoStrip h3{margin:0 0 8px;font-size:13px}
.componentInfoStrip p{margin:0 0 8px;display:grid;gap:3px}
.componentInfoStrip p:last-child{margin-bottom:0}
.componentInfoStrip b{font-size:16px;color:#172033}
.componentInfoStrip span{font-size:12px;color:#64748b;line-height:1.35;font-weight:850}
.componentAssemblyPanel .componentPageActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;border-top:1px solid #e5edf5;background:#fbfdff;padding:12px 16px 16px}
.componentAssemblyPanel .componentPageActions button{height:34px;border-radius:6px;padding:0 12px;font-size:12px;font-weight:950}
.activityComponentLayout{grid-template-columns:minmax(0,1fr)!important}
.componentActivityRail{position:static!important;top:auto!important}
.componentActivityList{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:8px;max-height:212px;overflow-y:auto;padding:2px 2px 4px}
.componentActivityList button{min-width:0!important;padding:8px 10px}
.componentActivityList button b{font-size:11px}
.componentActivityList button span{font-size:11px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.componentActivityList button small{font-size:10px}
.componentActivityList button.componentTab{border-width:1.5px}
.componentActivityList button.blue{border-color:#1262d6}
.componentActivityList button.green{border-color:#16a34a}
.componentActivityList button.purple{border-color:#7c3aed}
.componentActivityList button.orange{border-color:#f97316}
.componentActivityList button.teal{border-color:#0891b2}
.componentActivityList button.yellow{border-color:#d4a017}
.componentActivityList button.grey{border-color:#94a3b8}
.componentActivityList button.componentTab.active{border-color:#1262d6;background:#eff6ff}
/* Quote builder: client picker button + tidy work-package width */
.quoteBuilderTop .quoteClientPickBtn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #d4deea;border-radius:8px;background:#fff!important;padding:10px;color:#172033!important;font:inherit;font-weight:800;cursor:pointer;text-align:left}
.quoteBuilderTop .quoteClientPickBtn:hover{border-color:#1262d6}
.quoteClientPickBtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quoteClientPickBtn i{color:#64748b;font-style:normal;flex:0 0 auto}
.quoteLinesPanel .railHead>div{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
/* Quote live summary: compact hero row, fix snapshot badge, taller activities */
.quoteSummaryHero{grid-template-columns:minmax(200px,1.3fr) repeat(3,minmax(0,1fr))!important;align-items:stretch}
.quoteSummaryHeroMain{padding:12px 14px!important}
.quoteSummaryHeroMain b{font-size:28px!important}
.quoteHeroStat{border:1px solid #dbe5ef;border-radius:12px;background:#fff;padding:11px 12px;display:grid;gap:3px;align-content:start;box-shadow:0 8px 18px #0b1f3506}
.quoteHeroStat small{font-size:10px;color:#64748b;font-weight:950;text-transform:uppercase;letter-spacing:.03em}
.quoteHeroStat b{font-size:15px;color:#122033;line-height:1.15}
.quoteHeroStat span{color:#64748b;font-size:11px;line-height:1.25}
.quoteSnapshotBadge{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px;flex-wrap:wrap}
.quoteSnapshotBadge small{display:inline!important;color:#166534}
.quoteActivityTable{max-height:660px!important}
@media(max-width:900px){.quoteSummaryHero{grid-template-columns:1fr 1fr!important}}
/* HR issue pack: review-before-send panel */
.hrIssueReview{border:1px solid #cfe0f2;border-radius:8px;background:#f8fbff;padding:12px;margin:10px 0}
.hrIssueReview>b{font-size:12px;color:#122033}
.hrReviewGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:8px 0}
.hrReviewGrid>div{border:1px solid #e2eaf3;border-radius:7px;background:#fff;padding:8px 10px;display:grid;gap:2px}
.hrReviewGrid small{font-size:10px;font-weight:950;text-transform:uppercase;color:#64748b}
.hrReviewGrid b{font-size:13px;color:#122033}
.hrReviewLists{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hrReviewLists>div{border:1px solid #e2eaf3;border-radius:7px;background:#fff;padding:8px 10px}
.hrReviewLists small{font-size:10px;font-weight:950;text-transform:uppercase;color:#64748b;display:block;margin-bottom:5px}
.hrReviewLists ul{margin:0;padding-left:16px;display:grid;gap:3px}
.hrReviewLists li{font-size:11px;color:#334155;line-height:1.3}
.hrPackChecks{display:grid;gap:5px;max-height:220px;overflow:auto}
.hrPackChecks label{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;font-size:11px;font-weight:700;color:#334155;margin:0}
.hrPackChecks input[type=checkbox]{width:16px;height:16px;margin-top:1px;accent-color:#1262d6}
.hrPackChecks span{line-height:1.3}
@media(max-width:640px){.hrReviewLists{grid-template-columns:1fr}}
/* Mobile: consistent 2-up compact stat / KPI cards across modules */
@media(max-width:560px){
  .workbookKpiStrip,.quoteKpiStrip,.procurementSummaryGrid,.quoteOutputGrid,.componentInfoStrip{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
  .workbookKpiStrip article,.quoteKpiStrip article{min-height:0!important;padding:11px!important}
  .workbookKpiStrip b,.quoteKpiStrip b{font-size:20px!important;line-height:1.05}
  .quoteKpiStrip{padding:12px!important}
  .workbookKpiStrip span,.quoteKpiStrip em{font-size:11px}
  .componentAssemblyPanel .componentPageActions{justify-content:flex-start}
  .componentAssemblyPanel .componentPageActions button{flex:1 1 150px}
}
.componentAssemblyTable th{text-transform:none;font-size:11.5px}
/* Quote Impact summary beneath the breakdown table */
.componentQuoteImpact{border-top:1px solid #e5edf5;padding:14px 16px;background:#fbfdff}
.componentQuoteImpact h4{margin:0 0 10px;font-size:13px;color:#122033}
.componentQuoteImpactStats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.componentQuoteImpactStats span{border:1px solid #dbe5ef;border-radius:8px;background:#fff;padding:10px 12px;display:grid;gap:2px}
.componentQuoteImpactStats b{font-size:18px;color:#122033}
.componentQuoteImpactStats small{font-size:10px;color:#64748b;font-weight:950;text-transform:uppercase}
.componentLibraryModal{width:min(980px,100%)}.componentLibraryToolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px;gap:10px;margin-bottom:10px}.componentLibraryToolbar label{margin:0;position:relative;display:block}.componentLibraryToolbar label .ico{position:absolute;left:10px;top:11px;width:16px;height:16px;color:#64748b}.componentLibraryToolbar input{padding-left:34px}.componentLibraryResults{display:grid;gap:8px;max-height:520px;overflow:auto;border:1px solid #e3ebf4;border-radius:8px;background:#f8fbff;padding:8px}.componentLibraryResults article{border:1px solid #dfe8f2;border-radius:8px;background:#fff;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:10px;align-items:center}.componentLibraryResults b,.componentLibraryResults strong,.componentLibraryResults small{display:block;min-width:0}.componentLibraryResults b{font-size:12px;color:#0d62d9}.componentLibraryResults strong{font-size:13px;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.componentLibraryResults small{font-size:11px;color:#64748b;line-height:1.25}.componentLibraryResults span{text-align:right}.componentLibraryResults span b{color:#172033}.componentLibraryResults button{border:1px solid #1262d6;border-radius:7px;background:#1262d6;color:#fff;padding:8px 10px;font-weight:950}
/* Assembly breakdown table reads like the materials library table */
.componentAssemblyTable td{padding:9px 12px}
.componentAssemblyTable tbody tr:hover td{background:#f8fbff}
.componentAssemblyTable input,.componentAssemblyTable select{border-color:transparent;background:transparent;transition:border-color .12s,background .12s}
.componentAssemblyTable input:hover,.componentAssemblyTable select:hover,.componentAssemblyTable input:focus,.componentAssemblyTable select:focus{border-color:#d4deea;background:#fff}
.componentAssemblyTable td:nth-child(2) input{font-weight:800;color:#122033}
/* Build Tasks table: rebalance columns, stop actions wrapping, show fuller descriptions */
.workbookTaskTable th:nth-child(4),.workbookTaskTable td:nth-child(4){width:82px}
.workbookTaskTable th:nth-child(5),.workbookTaskTable td:nth-child(5){width:74px}
.workbookTaskTable th:nth-child(6),.workbookTaskTable td:nth-child(6){width:86px}
.workbookTaskTable th:nth-child(7),.workbookTaskTable td:nth-child(7){width:86px}
.workbookTaskTable th:nth-child(8),.workbookTaskTable td:nth-child(8){width:106px}
.workbookTaskTable th:nth-child(9),.workbookTaskTable td:nth-child(9){width:122px}
.workbookTaskTable th:nth-child(10),.workbookTaskTable td:nth-child(10){width:152px}
.workbookTaskTable th:nth-child(11),.workbookTaskTable td:nth-child(11){width:176px;text-align:right}
.templateActions{flex-wrap:nowrap;gap:6px}
.templateActions button{padding:0 10px;height:28px}
.workbookTaskActivity small{-webkit-line-clamp:3}

/* HR launcher dashboard + full-width sub-module view */
.hrPageDashboard .hrSummaryStrip{margin-bottom:16px}
.hrLaunchHead{margin:6px 2px 10px}
.hrLaunchHead h3{margin:0;font-size:18px;color:#122033}
.hrLaunchHead p{margin:4px 0 0;color:#64748b;font-size:13px}
.hrLaunchGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.hrLaunchTile{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:18px;cursor:pointer;box-shadow:0 8px 22px #0b1f350a;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative}
.hrLaunchTile:hover{transform:translateY(-2px);box-shadow:0 14px 32px #0b1f3518;border-color:#1262d6}
.hrLaunchIcon{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(180deg,#1e6fe0,#0d4fbf);color:#fff;flex:0 0 auto}
.hrLaunchIcon .ico{width:28px;height:28px}
.hrLaunchText{min-width:0}
.hrLaunchText b{display:block;font-size:16px;color:#122033}
.hrLaunchText small{display:block;color:#64748b;font-size:12.5px;line-height:1.4;margin-top:3px}
.hrLaunchCount{position:absolute;top:14px;right:14px;background:#eff6ff;color:#0d62d9;border:1px solid #d3e5fb;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900}
.hrModuleView{display:grid;gap:14px}
.hrModuleBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.hrModuleCrumb{display:inline-flex;align-items:center;gap:8px;color:#122033;font-weight:900;font-size:15px}
.hrModuleCrumb .ico{width:18px;height:18px;color:#1262d6}
.hrModuleMain{display:grid;gap:14px;min-width:0}
@media(max-width:560px){.hrLaunchGrid{grid-template-columns:1fr}.hrLaunchIcon{width:48px;height:48px}.hrLaunchIcon .ico{width:24px;height:24px}.hrLaunchCount{position:static;justify-self:start;grid-column:2}}

/* Accounts launcher dashboard + full-width sub-module view */
.accountsShellFull{grid-template-columns:1fr!important}
.accountsPageDashboard .accountsStats{margin-bottom:16px}
.accountsLaunchHead{margin:2px 2px 12px}
.accountsLaunchHead h3{margin:0;font-size:18px;color:#122033}
.accountsLaunchHead p{margin:4px 0 0;color:#64748b;font-size:13px}
.accountsLaunchGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.accountsLaunchTile{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:16px;background:#fff;padding:18px;cursor:pointer;box-shadow:0 8px 22px #0b1f350a;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease;position:relative}
.accountsLaunchTile:hover{transform:translateY(-2px);box-shadow:0 14px 32px #11968e18;border-color:#12948b}
.accountsLaunchTile.dragging{opacity:.55}
.accountsLaunchTile.is-drop-target{border-color:#12948b;box-shadow:0 0 0 2px #12a89b22,0 6px 16px #0b1f3510}
.accountsLaunchIcon{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(180deg,#19b6a7 0%,#12948b 100%);color:#fff;box-shadow:0 10px 22px #11968e30;flex:0 0 auto}
.accountsLaunchIcon .ico{width:28px;height:28px}
.accountsLaunchText{min-width:0}
.accountsLaunchText b{display:block;font-size:16px;color:#122033}
.accountsLaunchText small{display:block;color:#64748b;font-size:12.5px;line-height:1.4;margin-top:3px}
.accountsLaunchCount{position:absolute;top:14px;right:14px;background:#e6fbf7;color:#0f8b81;border:1px solid #bfeee7;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900}
.accountsBackBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.accountsCrumb{display:inline-flex;align-items:center;gap:8px;color:#122033;font-weight:900;font-size:15px}
.accountsCrumb .ico{width:18px;height:18px;color:#12948b}
@media(max-width:560px){.accountsLaunchGrid{grid-template-columns:1fr}.accountsLaunchIcon{width:48px;height:48px}.accountsLaunchIcon .ico{width:24px;height:24px}.accountsLaunchCount{position:static;justify-self:start;grid-column:2}}

/* Job workspace launcher (section selection) + full-width section view */
.jobsWorkspace.jobWorkspaceMenu,.jobsWorkspace.jobWorkspaceSection{grid-template-columns:1fr}
.jobLaunchHead{margin:2px 2px 12px}
.jobLaunchHead h3{margin:0;font-size:18px;color:#122033}
.jobLaunchHead p{margin:4px 0 0;color:#64748b;font-size:13px}
.jobLaunchGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.jobLaunchTile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px;cursor:pointer;box-shadow:0 8px 22px #0b1f350a;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
.jobLaunchTile:hover{border-color:#1262d6;box-shadow:0 14px 32px #0b1f3518;transform:translateY(-2px)}
.jobLaunchIcon{width:50px;height:50px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(180deg,#1e6fe0,#0d4fbf);color:#fff;flex:0 0 auto}
.jobLaunchIcon .ico{width:24px;height:24px}
.jobLaunchText{min-width:0}
.jobLaunchText b{display:block;font-size:15px;color:#122033}
.jobLaunchText small{display:block;color:#64748b;font-size:12px;line-height:1.35;margin-top:3px}
.jobLaunchBadge{position:absolute;top:12px;right:12px;background:#eff6ff;color:#0d62d9;border:1px solid #d3e5fb;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:900}
.jobSectionBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.jobSectionCrumb{display:inline-flex;align-items:center;gap:8px;color:#122033;font-weight:900;font-size:15px}
.jobSectionCrumb .ico{width:18px;height:18px;color:#1262d6}
.jobSubTabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff}
.jobSubTabs button{display:inline-flex;align-items:center;gap:7px;border:1px solid #dbe6f4;border-radius:999px;background:#f6faff;color:#334155;padding:8px 14px;font-size:13px;font-weight:850;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}
.jobSubTabs button:hover{background:#e9f2ff;border-color:#b8cef0}
.jobSubTabs button.active{background:#1262d6;border-color:#1262d6;color:#fff}
.jobSubTabs button .ico{width:15px;height:15px}
@media(max-width:560px){.jobLaunchGrid{grid-template-columns:1fr}.jobLaunchIcon{width:44px;height:44px}.jobLaunchIcon .ico{width:22px;height:22px}.jobSubTabs{overflow-x:auto;flex-wrap:nowrap}.jobSubTabs button{white-space:nowrap}}

/* Module launcher accent colours + consistent hover shading */
/* Accounts (teal) — add a subtle hover tint to match the others */
.accountsLaunchTile:hover{background:#f1fbf9}
/* HR (violet) */
.hrLaunchIcon{background:linear-gradient(180deg,#8b5cf6,#6d28d9);box-shadow:0 10px 22px #6d28d930}
.hrLaunchTile:hover{transform:translateY(-2px);box-shadow:0 14px 32px #6d28d926;border-color:#7c3aed;background:#f7f4ff}
.hrLaunchCount{background:#f3efff;color:#6d28d9;border-color:#e0d4fb}
.hrModuleCrumb .ico{color:#7c3aed}

/* Works markup: full-width drawing with the detail card running horizontally beneath */
.worksMarkupGrid{grid-template-columns:1fr}
.worksMarkupSide{grid-template-columns:repeat(5,minmax(120px,1fr)) auto;gap:10px;align-items:end}
.worksMarkupSide p{grid-column:1/-1;align-self:start}
.worksMarkupSide .wmSideAction span{visibility:hidden}
.worksMarkupSide .wmSideAction .wmSideBtns{display:flex;gap:8px}
.worksMarkupSide .wmSideAction button{height:38px;border-radius:7px;border:1px solid #d4deea;background:#eef4fb;color:#14345b;font-weight:900;font-size:12px;white-space:nowrap;cursor:pointer;padding:0 14px;transition:filter .12s ease,background .12s ease}
.worksMarkupSide .wmSideAction button.primary{background:#1262d6;border-color:#1262d6;color:#fff}
.worksMarkupSide .wmSideAction button:hover{filter:brightness(.97)}
@media(max-width:1024px){.worksMarkupSide{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.worksMarkupSide .wmSideAction{grid-column:1/-1}.worksMarkupSide .wmSideAction .wmSideBtns{justify-content:flex-end}.worksMarkupSide .wmSideAction button{min-width:150px}}
@media(max-width:560px){.worksMarkupSide{grid-template-columns:repeat(2,minmax(0,1fr))}.worksMarkupSide .wmSideAction .wmSideBtns{justify-content:stretch}.worksMarkupSide .wmSideAction button{flex:1;min-width:0}}

/* PDF Cloud module — full-screen overlay */
.pdfCloudOverlay{position:fixed;inset:0;z-index:2000;background:#eef2f7;display:flex;flex-direction:column}
.pdfCloudBar{display:flex;align-items:center;gap:12px;padding:8px 14px;background:#fff;border-bottom:1px solid var(--line);flex:0 0 auto}
.pdfCloudBarLogo{height:24px;display:block}
.pdfCloudDoc{font-size:12px;font-weight:800;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40vw}
.pdfCloudFsBtn{display:inline-flex;align-items:center;gap:6px;border:1px solid #d7e1ec;background:#fff;border-radius:8px;padding:8px 11px;font-weight:800;font-size:12px;cursor:pointer;color:#334155}
.pdfCloudFsBtn:hover{background:#f1f5f9}
.pdfCloudFrame{flex:1 1 auto;width:100%;height:auto;border:0;display:block;background:#eef2f7;min-height:0}
.drawingCardActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pdfCloudOpenBtn{display:inline-flex;align-items:center;gap:6px;border:1px solid #f2b8b8;background:#fef2f2;color:#c81e1e;border-radius:8px;padding:8px 11px;font-weight:800;font-size:12px;cursor:pointer}
.pdfCloudOpenBtn:hover{background:#fee2e2;border-color:#ef4444}
.pdfCloudOpenBtn .ico{width:15px;height:15px}

/* PDF Cloud — open chooser dialog */
.pdfChooseBack{position:fixed;inset:0;z-index:2500;background:#0f172a88;display:grid;place-items:center}
.pdfChooseModal{background:#fff;border-radius:16px;padding:22px;width:min(460px,92vw);box-shadow:0 30px 80px #0009}
.pdfChooseModal h3{margin:0 0 2px;font-size:18px}
.pdfChooseModal>p{margin:0 0 14px;color:#64748b;font-size:13px}
.pdfChooseBtn{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid #dbe7f3;border-radius:12px;background:#fff;padding:14px;margin-bottom:10px;cursor:pointer}
.pdfChooseBtn:hover{border-color:#1262d6;background:#f6faff}
.pdfChooseBtn.primary{border-color:#c8ddfb;background:#eef6ff}
.pdfChooseBtn .ico{width:24px;height:24px;color:#1262d6;flex:0 0 auto}
.pdfChooseBtn b{display:block;font-size:14px;color:#122033}
.pdfChooseBtn small{display:block;color:#64748b;font-size:12px;margin-top:2px}
.pdfChooseActions{display:flex;justify-content:flex-end;margin-top:4px}
.pdfChooseActions button{border:1px solid #d7e1ec;background:#fff;border-radius:8px;padding:8px 14px;font-weight:800;cursor:pointer;color:#334155}

/* Staff credentials — table, row menu, detail overlay */
.credTableWrap{border:1px solid var(--line);border-radius:12px;overflow:visible;background:#fff}
.credTable{width:100%;border-collapse:collapse;overflow:visible}
.credTable th{background:#f8fafc;text-align:left;font-size:12px;font-weight:800;color:#64748b;padding:12px 14px;border-bottom:1px solid #e6edf5}
.credTable td{padding:13px 14px;border-bottom:1px solid #eef2f7;font-size:13.5px;color:#1e293b;vertical-align:middle}
.credTable tr:last-child td{border-bottom:0}
.credTable tbody tr:hover{background:#f8fbff}
.credType{font-weight:800;color:#122033;max-width:340px}
.credBadge{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800;background:#eef2f7;color:#475569}
.credBadge.ok{background:#dcfce7;color:#166534}
.credBadge.bad{background:#fee2e2;color:#991b1b}
.credBadge.warn{background:#fef3c7;color:#92400e}
.credMenuHead{width:44px}
.credMenuCell{position:relative;text-align:right;width:44px}
.credKebab{width:32px;height:32px;border:1px solid transparent;border-radius:8px;background:transparent;color:#64748b;font-size:18px;line-height:1;cursor:pointer}
.credKebab:hover{background:#eef2f8;color:#1e293b}
.credMenu{position:absolute;right:8px;top:40px;z-index:60;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 46px #0b1f3526;padding:6px;display:none}
.credMenu.open{display:block}
.credMenu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:9px 10px;font-weight:700;font-size:13px;color:#334155;cursor:pointer}
.credMenu button:hover{background:#f1f6fc;color:#0d4fbf}
.credMenu svg{width:17px;height:17px;flex:0 0 auto;color:#64748b}
/* detail overlay */
.credDetailBack{position:fixed;inset:0;z-index:2600;background:#0f172a99;display:grid;place-items:center;padding:18px}
.credDetail{width:min(1200px,96vw);height:min(720px,92vh);background:#fff;border-radius:16px;overflow:hidden;display:grid;grid-template-columns:minmax(320px,400px) 1fr;box-shadow:0 40px 100px #0009}
.credDetailSide{border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;overflow:auto}
.credDetailHead{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid #eef2f7}
.credDetailHead h2{margin:0;font-size:19px;color:#122033}
.credDetailHead small{color:#64748b}
.credDetailClose{width:30px;height:30px;border:0;background:transparent;color:#64748b;font-size:16px;cursor:pointer;border-radius:8px}
.credDetailClose:hover{background:#eef2f8}
.credDetailTabs{padding:0 18px;margin-top:10px}
.credDetailBody{padding:14px 18px}
.credDl{display:grid;gap:0;margin:0}
.credDl dt{font-size:11.5px;color:#94a3b8;font-weight:700;margin-top:12px}
.credDl dd{margin:2px 0 0;font-size:14px;color:#122033;font-weight:600}
.credMediaBlock{margin-top:16px}
.credDlLabel{font-size:11.5px;color:#94a3b8;font-weight:700}
.credThumbs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.credThumb{width:66px;height:66px;border:1px solid #dbe7f3;border-radius:10px;overflow:hidden;background:#f8fbff;cursor:pointer;padding:0;display:grid;place-items:center}
.credThumb.active{border-color:#1262d6;box-shadow:0 0 0 2px #1262d633}
.credThumb img{width:100%;height:100%;object-fit:cover}
.credThumb .ico{width:24px;height:24px;color:#64748b}
.credDangerLink{border:0;background:transparent;color:#dc2626;font-weight:800;font-size:13px;cursor:pointer;padding:6px 0;margin-top:6px}
.credActivityRow{border:1px solid #eef2f7;border-radius:8px;padding:10px 12px;margin-bottom:8px}
.credActivityRow b{display:block;font-size:13px}.credActivityRow small{color:#64748b}
.credDetailPreview{position:relative;background:#e9edf3;display:grid;place-items:center;overflow:hidden}
.credPreviewStage{width:100%;height:100%;display:grid;place-items:center;overflow:auto}
.credPreviewStage img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.credPreviewStage iframe{width:100%;height:100%;border:0;background:#fff}
.credNoMedia{color:#64748b;font-weight:700}
.credExpand{position:absolute;top:14px;right:14px;z-index:2;width:36px;height:36px;border:1px solid #cdd9e8;background:#fff;border-radius:9px;font-size:16px;cursor:pointer;color:#334155}
.credExpand:hover{background:#f1f5f9}
/* history modal */
.credHistoryModal{width:min(560px,94vw);max-height:80vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 30px 80px #0009}
.credHistoryHead{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #eef2f7}
.credHistoryHead h3{margin:0}
.credHistoryList{padding:12px 18px}
.credHistoryRow{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #eef2f7;border-radius:10px;padding:11px 13px;margin-bottom:8px}
.credHistoryRow b{display:block;font-size:13px}.credHistoryRow small{color:#64748b}
.credHistoryRow a{border:1px solid #cdd9e8;border-radius:7px;padding:6px 10px;font-weight:800;font-size:12px;color:#14345b;text-decoration:none}
@media(max-width:820px){.credDetail{grid-template-columns:1fr;height:92vh}.credDetailPreview{min-height:280px}.credTable th:nth-child(4),.credTable td:nth-child(4){display:none}}

/* ── Staff notifications tab ── */
.staffNotifPanel{display:grid;gap:16px}
.notifCard{background:#fff;border:1px solid #e6edf5;border-radius:14px;padding:16px 18px;box-shadow:0 1px 2px #0f172a0d}
.notifCard .paneHead{margin-bottom:12px}
.notifCard .paneHead h3{margin:0;font-size:15px}
.notifCard .paneHead p{margin:2px 0 0;color:#64748b;font-size:12.5px}
.notifChannels{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.notifChannel{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e2e9f2;border-radius:12px;padding:12px 14px;background:#f8fafc}
.notifChLabel{display:flex;align-items:center;gap:9px;font-weight:700;font-size:13.5px;color:#1e293b}
.notifChLabel svg{width:19px;height:19px;color:#3b6fb0}
.notifToggle{position:relative;width:40px;height:23px;border-radius:999px;border:none;background:#cbd5e1;cursor:pointer;padding:0;flex:none;transition:background .16s}
.notifToggle span{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:left .16s}
.notifToggle.on{background:#2f8f5b}
.notifToggle.on span{left:19px}
.notifCompose{display:grid;gap:10px}
.notifSeg{display:inline-flex;background:#eef2f7;border-radius:10px;padding:3px;gap:3px;width:max-content}
.notifSeg button{border:none;background:transparent;padding:7px 20px;border-radius:8px;font-weight:700;font-size:13px;color:#556;cursor:pointer}
.notifSeg button.active{background:#fff;color:#14345b;box-shadow:0 1px 3px #0f172a1f}
.notifSubject,.notifText{width:100%;border:1px solid #d5dfeb;border-radius:10px;padding:10px 12px;font:inherit;font-size:13.5px;background:#fff}
.notifText{min-height:96px;resize:vertical}
.notifSubject:focus,.notifText:focus{outline:none;border-color:#3b6fb0;box-shadow:0 0 0 3px #3b6fb022}
.notifComposeMeta{display:flex;align-items:center;justify-content:space-between;gap:12px}
.notifComposeMeta small{color:#64748b;font-size:12.5px}
.notifComposeMeta .primary{display:inline-flex;align-items:center;gap:7px;background:#14345b;color:#fff;border:none;border-radius:10px;padding:9px 18px;font-weight:700;font-size:13px;cursor:pointer}
.notifComposeMeta .primary svg{width:16px;height:16px}
.notifHistory{display:grid;gap:9px}
.notifRow{display:flex;gap:12px;align-items:flex-start;border:1px solid #eaf0f6;border-radius:11px;padding:11px 13px;background:#fbfdff}
.notifChip{flex:none;font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:4px 9px;border-radius:999px}
.notifChip.sms{background:#e3f1e9;color:#1f7a4d}
.notifChip.email{background:#e5eefb;color:#25528c}
.notifRowBody{display:grid;gap:2px;min-width:0}
.notifRowBody b{font-size:13.5px;color:#1e293b}
.notifRowBody span{font-size:12.5px;color:#475569;overflow:hidden;text-overflow:ellipsis}
.notifRowBody small{color:#8194a8;font-size:11.5px}
.notifHistory .emptySmall{color:#7c8ba0;font-size:13px;padding:14px;text-align:center;background:#f8fafc;border-radius:11px}
@media(max-width:820px){.notifChannels{grid-template-columns:1fr}}

/* ── Staff About edit + Password + Membership ── */
.staffAboutCard .aboutEditBtn{display:inline-flex;align-items:center;gap:5px;border:1px solid #d5dfeb;background:#fff;border-radius:8px;padding:5px 11px;font-weight:700;font-size:12px;color:#25528c;cursor:pointer}
.staffAboutCard .aboutEditBtn svg{width:14px;height:14px}
.aboutEdit{display:grid;gap:10px;margin-top:4px}
.aboutEdit[hidden],.aboutView[hidden]{display:none}
.aboutEdit label{display:grid;gap:4px;font-size:11.5px;font-weight:700;color:#475569;text-transform:none}
.aboutEdit input,.aboutEdit select{border:1px solid #d5dfeb;border-radius:9px;padding:8px 10px;font:inherit;font-size:13px;background:#fff;font-weight:500;color:#1e293b}
.aboutEdit input:focus,.aboutEdit select:focus{outline:none;border-color:#3b6fb0;box-shadow:0 0 0 3px #3b6fb022}
.aboutRow2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.aboutActions{display:flex;gap:8px;margin-top:2px}
.aboutActions .primary{background:#14345b;color:#fff;border:none;border-radius:9px;padding:9px 16px;font-weight:700;font-size:13px;cursor:pointer}
.aboutActions button:not(.primary){background:#fff;border:1px solid #d5dfeb;border-radius:9px;padding:9px 16px;font-weight:700;font-size:13px;color:#475569;cursor:pointer}
.staffPasswordCard .pwStatus{display:block;color:#64748b;font-size:12px;margin:-2px 0 8px}
.staffPasswordCard .pwStatus.muted{color:#94a3b8}
.pwRow{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:none;border-top:1px solid #eef2f7;background:transparent;padding:12px 2px;font-weight:600;font-size:13.5px;color:#25528c;cursor:pointer}
.pwRow:first-of-type{border-top:none}
.pwRow svg{width:16px;height:16px;flex:none;color:#94a3b8}
.pwRow:hover{color:#14345b}
.pwRow:hover svg{color:#3b6fb0}
.membershipTabs{margin-bottom:10px}
.membershipRow{display:flex;align-items:center;gap:10px;padding:8px 0}
.membershipRow.site{border-top:1px solid #f1f5f9}
.membershipRow.site:first-child{border-top:none}
.membershipSite{display:grid;gap:1px;min-width:0}
.membershipSite b{font-size:13.5px;color:#1e293b}
.membershipSite small{color:#8194a8;font-size:11.5px}
.membershipBody .emptySmall{color:#7c8ba0;font-size:12.5px;padding:8px 0}

/* ── Staff per-user access & permissions ── */
.staffAccessPanel{background:#fff;border:1px solid #e6edf5;border-radius:14px;padding:18px 20px;margin-bottom:16px;box-shadow:0 10px 30px #0f172a12}
.staffAccessPanel .paneHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.staffAccessPanel .paneHead h3{margin:0;font-size:16px}
.staffAccessPanel .paneHead p{margin:3px 0 0;color:#64748b;font-size:12.5px;max-width:60ch}
.staffAccessPanel .paneHead .ghost{border:1px solid #d5dfeb;background:#fff;border-radius:8px;padding:6px 12px;font-weight:700;font-size:12px;color:#475569;cursor:pointer;flex:none}
.accessGroupRow{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:12px}
.accessGroupRow>label:first-child{display:grid;gap:4px;font-size:11.5px;font-weight:700;color:#475569}
.accessGroupRow select{border:1px solid #d5dfeb;border-radius:9px;padding:8px 12px;font:inherit;font-size:13px;background:#fff;min-width:190px}
.accessCustomSwitch{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:13px;color:#1e293b;cursor:pointer}
.accessHint{background:#f4f8fd;border:1px solid #e2ecf7;border-radius:10px;padding:9px 12px;color:#3a5a80;font-size:12.5px;margin-bottom:14px}
.accessHint small{display:block;color:#7c8ba0;margin-top:2px}
.accessSub{margin:14px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#8194a8}
.accessGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.accessGrid.compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.accessGrid .policyCheck{display:flex;align-items:center;gap:8px;border:1px solid #e6edf5;border-radius:9px;padding:9px 11px;font-size:13px;font-weight:600;color:#334155;background:#fbfdff}
.accessGrid .policyCheck input:disabled{opacity:.5}
.accessGrid .policyCheck:has(input:disabled){opacity:.7;background:#f8fafc}
.accessGrid .policyCheck:has(input:checked){border-color:#bcd3ee;background:#eef5fd}
.accessActions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.accessActions .primary{background:#14345b;color:#fff;border:none;border-radius:9px;padding:9px 18px;font-weight:700;font-size:13px;cursor:pointer}
.accessActions button:not(.primary){background:#fff;border:1px solid #d5dfeb;border-radius:9px;padding:9px 18px;font-weight:700;font-size:13px;color:#475569;cursor:pointer}
.accessActions .dangerSoft{color:#b4443a;border-color:#eccdc9}

/* ── Single-card staff tabs (credentials / notifications / documents / hr / schedule) ── */
.staffProfileGrid.soloTab{grid-template-columns:minmax(0,1fr)}
.staffProfileGrid.soloTab .staffProfileMain{width:100%}
.staffProfileGrid.soloTab .staffProfilePanel,.staffProfileGrid.soloTab .profilePane{width:100%}

/* ── Credential add / request modals ── */
.credAddModal .formGrid.compact{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.credAddModal label,.credRequestModal label{display:grid;gap:4px;font-size:12px;font-weight:700;color:#475569}
.credAddModal select,.credAddModal input,.credAddModal textarea,.credRequestModal input,.credRequestModal textarea{border:1px solid #d5dfeb;border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff;font-weight:500;color:#1e293b}
.credAddModal select:focus,.credAddModal input:focus,.credAddModal textarea:focus,.credRequestModal input:focus,.credRequestModal textarea:focus{outline:none;border-color:#3b6fb0;box-shadow:0 0 0 3px #3b6fb022}
.credRequestModal{display:grid;gap:12px}
.credRequestModal .notifSeg{width:max-content}
.credReqTo{color:#64748b;font-size:12.5px;font-weight:600}
@media(max-width:620px){.credAddModal .formGrid.compact{grid-template-columns:1fr}}

/* ── Activity components: inline (accordion) detail under the clicked tab ── */
.componentActivityTabs>.componentAssemblyInline{grid-column:1/-1;margin:2px 0 10px;border-left:1px solid #dbe5ef;border-right:1px solid #dbe5ef;border-bottom:1px solid #dbe5ef;border-radius:9px;overflow:hidden;background:#fff;box-shadow:0 14px 30px #0b1f350d;animation:componentReveal .18s ease}
@keyframes componentReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.componentAssemblyStats .componentAssemblyClose{margin-left:6px;width:30px;height:30px;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#64748b;font-size:13px;font-weight:800;cursor:pointer;display:grid;place-items:center;align-self:center}
.componentAssemblyStats .componentAssemblyClose:hover{background:#fef2f2;color:#b91c1c;border-color:#fecaca}

/* ── Staff module launcher (matches HR / Accounts) ── */
.staffModulePage{display:grid;gap:14px}
.staffSummaryStrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:6px}
.staffLaunchHead{margin:6px 2px 10px}
.staffLaunchHead h3{margin:0;font-size:18px;color:#122033}
.staffLaunchHead p{margin:4px 0 0;color:#64748b;font-size:13px}
.staffLaunchGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.staffLaunchTile{--tone:#1262d6;--tone-2:#0d4fbf;--tone-bg:#eff6ff;--tone-border:#bcd3ee;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;text-align:left;border:1px solid var(--line);border-left:4px solid var(--tone);border-radius:14px;background:#fff;padding:18px;cursor:pointer;box-shadow:0 8px 22px #0b1f350a;transition:transform .13s ease,box-shadow .13s ease,border-color .13s ease,background .13s ease;position:relative}
.staffLaunchTile:hover{transform:translateY(-2px);box-shadow:0 16px 34px #0b1f3518;border-color:var(--tone-border);background:linear-gradient(180deg,var(--tone-bg),#fff)}
.staffLaunchIcon{width:56px;height:56px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(180deg,var(--tone),var(--tone-2));color:#fff;flex:0 0 auto}
.staffLaunchIcon .ico{width:27px;height:27px}
.staffLaunchText{min-width:0}
.staffLaunchText b{display:block;font-size:16px;color:#122033}
.staffLaunchText small{display:block;color:#64748b;font-size:12.5px;line-height:1.4;margin-top:3px}
.staffLaunchCount{position:absolute;top:14px;right:14px;background:var(--tone-bg);color:var(--tone-2);border:1px solid var(--tone-border);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900}
.staffLaunchTile.blue{--tone:#1262d6;--tone-2:#0d4fbf;--tone-bg:#eff6ff;--tone-border:#bcd3ee}
.staffLaunchTile.green{--tone:#16a34a;--tone-2:#15803d;--tone-bg:#ecfdf5;--tone-border:#a7e3c3}
.staffLaunchTile.purple{--tone:#7c3aed;--tone-2:#6d28d9;--tone-bg:#f5f3ff;--tone-border:#cdbef8}
.staffLaunchTile.orange{--tone:#f97316;--tone-2:#ea580c;--tone-bg:#fff7ed;--tone-border:#fcd0a6}
.staffLaunchTile.teal{--tone:#0891b2;--tone-2:#0e7490;--tone-bg:#ecfeff;--tone-border:#9fe4ef}
.staffLaunchTile.yellow{--tone:#a16207;--tone-2:#854d0e;--tone-bg:#fefce8;--tone-border:#f5e59d}
.staffLaunchTile.slate{--tone:#64748b;--tone-2:#475569;--tone-bg:#f8fafc;--tone-border:#d7e0ea}
.staffModuleView{display:grid;gap:14px}
.staffModuleBar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.staffModuleCrumb{display:inline-flex;align-items:center;gap:8px;color:#122033;font-weight:900;font-size:15px}
.staffModuleCrumb .ico{width:18px;height:18px;color:var(--tone,#1262d6)}
.staffModuleCrumb.blue{--tone:#1262d6}.staffModuleCrumb.green{--tone:#16a34a}.staffModuleCrumb.purple{--tone:#7c3aed}.staffModuleCrumb.orange{--tone:#f97316}.staffModuleCrumb.teal{--tone:#0891b2}.staffModuleCrumb.yellow{--tone:#a16207}.staffModuleCrumb.slate{--tone:#64748b}
.staffModuleMain{display:grid;gap:14px;min-width:0}
/* Credential expiry calendar chips + upcoming list */
.leaveChip.credExpiry.ok{background:#ecfdf5;color:#15803d;border:1px solid #a7e3c3}
.leaveChip.credExpiry.warn{background:#fff7ed;color:#c2410c;border:1px solid #fcd0a6}
.leaveChip.credExpiry.bad{background:#fef2f2;color:#b91c1c;border:1px solid #f6c9c6}
.credExpiryRow{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #eef2f7;border-left:3px solid #cbd5e1;border-radius:9px;padding:9px 11px;margin-bottom:8px;background:#fff}
.credExpiryRow.warn{border-left-color:#f97316}
.credExpiryRow.bad{border-left-color:#dc2626}
.credExpiryRow b{display:block;font-size:13px;color:#1e293b}
.credExpiryRow span{display:block;font-size:12px;color:#475569}
.credExpiryRow small{color:#8194a8;font-size:11.5px}
.credExpiryRow button{border:1px solid #cdd9e8;border-radius:7px;background:#fff;padding:6px 12px;font-weight:800;font-size:12px;color:#14345b;cursor:pointer;flex:none}
/* Placeholder sub-modules */
.staffPlaceholder{display:grid;place-items:center;min-height:320px;text-align:center}
.staffPlaceholderInner{display:grid;justify-items:center;gap:10px;max-width:440px;padding:30px}
.staffPlaceholderIcon{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(180deg,#e2e8f0,#cbd5e1);color:#475569}
.staffPlaceholderIcon .ico{width:32px;height:32px}
.staffPlaceholderInner h3{margin:0;font-size:19px;color:#122033}
.staffPlaceholderInner p{margin:0;color:#64748b;font-size:13.5px;line-height:1.5}
.staffComingSoon{margin-top:4px;background:#eef2f7;color:#475569;border-radius:999px;padding:5px 14px;font-size:12px;font-weight:900;letter-spacing:.03em;text-transform:uppercase}
@media(max-width:560px){.staffLaunchGrid{grid-template-columns:1fr}.staffLaunchIcon{width:48px;height:48px}.staffLaunchIcon .ico{width:24px;height:24px}.staffLaunchCount{position:static;justify-self:start;grid-column:2}}

/* ── Tool & Issuance Builder ── */
.toolIssuancePanel{display:grid;gap:16px}
.toolHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.toolHead h3{margin:0;font-size:17px;color:#122033}
.toolHead p{margin:3px 0 0;color:#64748b;font-size:12.5px;max-width:62ch}
.toolHeadActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.toolSeg{display:inline-flex;background:#eef2f7;border-radius:10px;padding:3px;gap:3px}
.toolSeg button{display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;padding:8px 14px;border-radius:8px;font-weight:800;font-size:13px;color:#556;cursor:pointer}
.toolSeg button svg{width:16px;height:16px}
.toolSeg button.active{background:#fff;color:#14345b;box-shadow:0 1px 3px #0f172a1f}
.toolSeg em{background:#dbe7f6;color:#14345b;border-radius:999px;padding:1px 7px;font-size:10.5px;font-weight:900;font-style:normal}
.toolHeadActions .primary{display:inline-flex;align-items:center;gap:7px;background:#14345b;color:#fff;border:none;border-radius:10px;padding:9px 15px;font-weight:800;font-size:13px;cursor:pointer}
.toolHeadActions .primary svg{width:16px;height:16px}
.toolCatalogLayout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.toolCatGroup{display:flex;align-items:center;gap:8px;margin:12px 2px 8px;font-weight:900;color:#334155;font-size:13px}
.toolCatGroup:first-child{margin-top:0}
.toolCatGroup svg{width:17px;height:17px;color:#3b6fb0}
.toolGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.toolCard{border:1px solid #e6edf5;border-radius:13px;background:#fff;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 6px 16px #0b1f3508}
.toolCardMedia{height:150px;background:#eef2fb;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px}
.toolCardMedia img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.toolCardIcon svg{width:40px;height:40px;color:#8aa2c4}
.toolCardBody{padding:11px 12px 6px;flex:1}
.toolCardBody b{display:block;font-size:13px;color:#1e293b;line-height:1.3}
.toolCardBody small{color:#64748b;font-size:11.5px}
.toolCardActions{display:flex;gap:6px;padding:10px 12px 12px;align-items:center}
.toolCardActions .primary{flex:1;background:#0f172a;color:#fff;border:none;border-radius:9px;padding:9px;font-weight:800;font-size:12.5px;cursor:pointer}
.toolCardActions .dangerSoft{border:1px solid #eccdc9;background:#fff;color:#b4443a;border-radius:9px;width:34px;height:34px;display:grid;place-items:center;cursor:pointer;flex:none}
.toolCardActions .dangerSoft svg{width:15px;height:15px}
.toolCartAside{border:1px solid #e6edf5;border-radius:14px;background:#fff;padding:14px;position:sticky;top:12px;box-shadow:0 8px 22px #0b1f350a}
.toolCartHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.toolCartHead h4{margin:0;display:flex;align-items:center;gap:7px;font-size:14px;color:#122033}
.toolCartHead h4 svg{width:17px;height:17px;color:#3b6fb0}
.toolCartCount{background:#eef5fd;color:#25528c;border:1px solid #cfe0f5;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:900}
.toolCartLines{display:grid;gap:8px;max-height:46vh;overflow:auto}
.toolCartLine{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid #eef2f7;border-radius:10px;padding:7px 8px}
.toolCartLineIco{width:34px;height:34px;border-radius:8px;background:#eef2fb;display:grid;place-items:center;overflow:hidden}
.toolCartLineIco img{max-width:100%;max-height:100%;object-fit:contain}
.toolCartLineIco svg{width:17px;height:17px;color:#8aa2c4}
.toolCartLineBody{min-width:0}
.toolCartLineBody b{display:block;font-size:12px;color:#1e293b;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toolCartLineBody small{color:#8194a8;font-size:10.5px}
.toolQtyStep{display:inline-flex;align-items:center;border:1px solid #d5dfeb;border-radius:8px;overflow:hidden}
.toolQtyStep button{border:none;background:#f4f7fb;width:24px;height:28px;font-size:15px;font-weight:800;color:#334155;cursor:pointer}
.toolQtyStep input{width:34px;height:28px;border:none;text-align:center;font:inherit;font-size:12.5px;font-weight:800}
.toolCartDel{border:none;background:transparent;color:#94a3b8;cursor:pointer;padding:2px}
.toolCartDel svg{width:15px;height:15px}
.toolCartDel:hover{color:#b91c1c}
.toolCartActions{display:flex;gap:8px;margin-top:12px}
.toolCartActions button:not(.primary){flex:none;border:1px solid #d5dfeb;background:#fff;border-radius:9px;padding:9px 12px;font-weight:800;font-size:12.5px;color:#475569;cursor:pointer}
.toolCartActions .primary{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:#14345b;color:#fff;border:none;border-radius:9px;padding:9px;font-weight:800;font-size:13px;cursor:pointer}
.toolCartActions .primary svg{width:15px;height:15px}
/* Register */
.toolRegister{display:grid;gap:10px}
.toolRegRow{display:flex;justify-content:space-between;gap:12px;border:1px solid #e6edf5;border-left:4px solid #94a3b8;border-radius:12px;padding:12px 14px;background:#fff}
.toolRegRow.live{border-left-color:#2f80ed}.toolRegRow.warn{border-left-color:#f97316}.toolRegRow.ok{border-left-color:#16a34a}
.toolRegHead{display:flex;align-items:center;gap:10px}
.toolRegHead b{font-size:14px;color:#1e293b}
.toolRegMain small{display:block;color:#64748b;font-size:12px;margin:3px 0 8px}
.toolRegItems{display:flex;flex-wrap:wrap;gap:5px}
.toolChip{background:#eef2f7;color:#475569;border-radius:7px;padding:3px 8px;font-size:11px;font-weight:700}
.toolChip.returned{background:#ecfdf5;color:#15803d}
.toolChip.more{background:#e5eefb;color:#25528c}
.toolBadge{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:900}
.toolBadge.live{background:#e5eefb;color:#25528c}.toolBadge.warn{background:#fff7ed;color:#c2410c}.toolBadge.ok{background:#ecfdf5;color:#15803d}
.toolRegActions{display:flex;flex-direction:column;gap:6px;justify-content:center;flex:none}
.toolRegActions button{border:1px solid #d5dfeb;background:#fff;border-radius:8px;padding:7px 14px;font-weight:800;font-size:12.5px;color:#475569;cursor:pointer;white-space:nowrap}
.toolRegActions .primary{background:#14345b;color:#fff;border-color:#14345b}
/* Modals */
.toolModal{display:grid;gap:12px;width:min(560px,94vw)}
.toolModal label{display:grid;gap:4px;font-size:12px;font-weight:800;color:#475569}
.toolModal input,.toolModal select,.toolModal textarea{border:1px solid #d5dfeb;border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff;font-weight:500;color:#1e293b}
.toolModal .formGrid.compact{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.toolIssueLines,.toolReturnLines{border:1px solid #e6edf5;border-radius:11px;overflow:hidden}
.toolIssueLinesHead,.toolReturnLinesHead{display:grid;grid-template-columns:minmax(0,1fr) 60px minmax(0,1.2fr);gap:8px;background:#f4f7fb;padding:8px 11px;font-size:10.5px;font-weight:900;text-transform:uppercase;color:#64748b}
.toolIssueLine{display:grid;grid-template-columns:minmax(0,1fr) 60px minmax(0,1.2fr);gap:8px;align-items:center;padding:8px 11px;border-top:1px solid #eef2f7}
.toolIssueLine b{font-size:12.5px;color:#1e293b}.toolIssueLine small{color:#8194a8;font-size:11px}
.toolIssueLine input{border:1px solid #d5dfeb;border-radius:7px;padding:6px 8px;font-size:12.5px}
.toolReturnLinesHead{grid-template-columns:64px minmax(0,1fr) 130px}
.toolReturnLine{display:grid;grid-template-columns:64px minmax(0,1fr) 130px;gap:8px;align-items:center;padding:8px 11px;border-top:1px solid #eef2f7}
.toolReturnLine b{font-size:12.5px;color:#1e293b}.toolReturnLine small{color:#8194a8;font-size:11px}
.toolReturnAll{display:flex;align-items:center;gap:5px;font-size:10px}
.toolSign{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:8px;background:#f4f8fd;border:1px solid #e2ecf7;border-radius:9px;padding:9px 11px;font-size:12.5px;font-weight:700;color:#3a5a80}
.toolSign input{flex:none;margin-top:2px}
.toolModal input[type="checkbox"],.toolReturnModal input[type="checkbox"]{width:17px;height:17px;min-width:17px;flex:none;padding:0;margin:0;-webkit-appearance:auto;appearance:auto;box-shadow:none;accent-color:#2f6fdb}
.toolSign{align-items:center}
.toolModal .actions{display:flex;gap:8px;justify-content:flex-end}
.toolModal .actions .primary{display:inline-flex;align-items:center;gap:7px;background:#14345b;color:#fff;border:none;border-radius:9px;padding:9px 18px;font-weight:800;font-size:13px;cursor:pointer}
.toolModal .actions .primary svg{width:15px;height:15px}
.toolModal .actions button:not(.primary){background:#fff;border:1px solid #d5dfeb;border-radius:9px;padding:9px 16px;font-weight:800;font-size:13px;color:#475569;cursor:pointer}
.toolDetailModal{width:min(620px,95vw);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 30px 80px #0009}
.toolDetailHead{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid #eef2f7}
.toolDetailHead h3{margin:0;font-size:16px}
.toolDetailHead small{color:#64748b;font-size:12px}
.toolDetailHead .toolBadge{margin-left:auto}
.credDetailClose,.toolDetailHead .credDetailClose{border:none;background:#f1f5f9;width:30px;height:30px;border-radius:8px;font-size:16px;cursor:pointer;color:#475569}
.toolDetailBody{padding:16px 18px;display:grid;gap:14px}
.toolDetailTable{width:100%;border-collapse:collapse;font-size:12.5px}
.toolDetailTable th{text-align:left;font-size:10px;text-transform:uppercase;color:#64748b;font-weight:900;padding:6px 8px;border-bottom:1px solid #e5edf5}
.toolDetailTable td{padding:8px;border-bottom:1px solid #eef2f7}
.toolDetailActions{display:flex;gap:8px;justify-content:flex-end;padding:14px 18px;border-top:1px solid #eef2f7}
.toolDetailActions .primary{display:inline-flex;align-items:center;gap:6px;background:#14345b;color:#fff;border:none;border-radius:9px;padding:9px 16px;font-weight:800;font-size:13px;cursor:pointer}
.toolDetailActions .primary svg{width:15px;height:15px}
.toolDetailActions .dangerSoft{background:#fff;border:1px solid #eccdc9;color:#b4443a;border-radius:9px;padding:9px 16px;font-weight:800;font-size:13px;cursor:pointer}
@media(max-width:900px){.toolCatalogLayout{grid-template-columns:1fr}.toolCartAside{position:static}.toolModal .formGrid.compact{grid-template-columns:1fr}}

/* ── Uniform Order Form ── */
.uniformForm{display:grid;gap:14px}
.uniformStaffBar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;align-items:end}
.uniformStaffBar>label{display:grid;gap:4px;font-size:12px;font-weight:800;color:#475569}
.uniformNameRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.uniformNameRow label{display:grid;gap:4px;font-size:12px;font-weight:800;color:#475569}
.uniformStaffBar select,.uniformStaffBar input{border:1px solid #d5dfeb;border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff}
.uniformHint{margin:0;color:#25528c;font-weight:800;font-size:13px}
.uniformGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.uniformCard{position:relative;border:1px solid #e6edf5;border-radius:13px;background:#fff;overflow:hidden;box-shadow:0 6px 16px #0b1f3508;transition:border-color .13s,box-shadow .13s}
.uniformCard.picked{border-color:#2f6fdb;box-shadow:0 8px 22px #2f6fdb1f}
.uniformCheck{position:absolute;top:10px;left:10px;z-index:2;cursor:pointer}
.uniformCheck input{position:absolute;opacity:0;width:22px;height:22px;cursor:pointer}
.uniformCheck span{display:block;width:22px;height:22px;border-radius:6px;border:2px solid #c7d3e2;background:#fff}
.uniformCheck input:checked+span{background:#2f6fdb;border-color:#2f6fdb;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M4 12l5 5L20 6'/%3E%3C/svg%3E");background-size:16px;background-repeat:no-repeat;background-position:center}
.uniformCardMedia{height:160px;background:#eef2fb;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px}
.uniformCardMedia img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
.uniformCardIcon svg{width:40px;height:40px;color:#8aa2c4}
.uniformCardBody{padding:11px 13px 13px}
.uniformCardBody b{display:block;font-size:13.5px;color:#1e293b}
.uniformFree{display:block;color:#2f8f5b;font-weight:800;font-size:11.5px;margin-top:1px}
.uniformNote{margin:6px 0 0;color:#64748b;font-size:11px;line-height:1.4}
.uniformControls{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.uniformControls label{display:grid;gap:3px;font-size:10.5px;font-weight:800;color:#64748b}
.uniformControls select{border:1px solid #d5dfeb;border-radius:8px;padding:6px 8px;font:inherit;font-size:12.5px;background:#fff}
.uniformSubmitBar{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #eef2f7;padding-top:14px}
.uniformSummary{color:#64748b;font-weight:800;font-size:13px}
.uniformSubmitBar .primary{display:inline-flex;align-items:center;gap:7px;background:#0f172a;color:#fff;border:none;border-radius:10px;padding:11px 22px;font-weight:800;font-size:13.5px;cursor:pointer}
.uniformSubmitBar .primary svg{width:16px;height:16px}
@media(max-width:700px){.uniformStaffBar{grid-template-columns:1fr}.uniformSubmitBar{flex-direction:column;align-items:stretch}.uniformSubmitBar .primary{justify-content:center}}

/* ── Reimbursements ── */
.reimbForm{display:grid;gap:14px}
.reimbStaffBar{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.reimbStaffBar label{display:grid;gap:4px;font-size:12px;font-weight:800;color:#475569}
.reimbStaffBar select,.reimbStaffBar input{border:1px solid #d5dfeb;border-radius:9px;padding:9px 11px;font:inherit;font-size:13.5px;background:#fff}
.reimbPendingPill{background:#fff7ed;color:#c2410c;border:1px solid #fcd0a6;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:900}
.reimbLines{border:1px solid #e6edf5;border-radius:12px;overflow:hidden}
.reimbLinesHead,.reimbLine{display:grid;grid-template-columns:140px 150px minmax(0,1fr) 110px 78px 34px;gap:8px;align-items:center}
.reimbLinesHead{background:#f4f7fb;padding:9px 12px;font-size:10px;font-weight:900;text-transform:uppercase;color:#64748b}
.reimbLine{padding:8px 12px;border-top:1px solid #eef2f7}
.reimbLine input,.reimbLine select{border:1px solid #d5dfeb;border-radius:8px;padding:7px 9px;font:inherit;font-size:12.5px;background:#fff;width:100%}
.reimbReceiptCell{display:flex;align-items:center;gap:5px}
.reimbReceiptCell a{color:#2f8f5b;display:inline-flex}
.reimbReceiptCell a svg{width:17px;height:17px}
.reimbReceiptCell button{border:1px solid #cdd9e8;background:#fff;border-radius:7px;padding:5px 8px;font-size:11px;font-weight:800;color:#25528c;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.reimbReceiptCell button svg{width:14px;height:14px}
.reimbLineDel{border:none;background:transparent;color:#94a3b8;font-size:18px;cursor:pointer;line-height:1}
.reimbLineDel:hover{color:#b91c1c}
.reimbAddLine{display:inline-flex;align-items:center;gap:6px;border:1px dashed #cbd8e6;background:#f8fbff;border-radius:10px;padding:10px 14px;font-weight:800;font-size:13px;color:#25528c;cursor:pointer;justify-self:start}
.reimbAddLine svg{width:15px;height:15px}
.reimbSubmitBar{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #eef2f7;padding-top:14px}
.reimbTotal small{display:block;color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase}
.reimbTotal b{font-size:22px;color:#122033}
.reimbSubmitBar .primary{display:inline-flex;align-items:center;gap:7px;background:#14345b;color:#fff;border:none;border-radius:10px;padding:11px 22px;font-weight:800;font-size:13.5px;cursor:pointer}
.reimbSubmitBar .primary svg{width:16px;height:16px}
.reimbAmount{margin-left:auto;font-weight:900;color:#122033;font-size:14px}
.reimbDetailTable .num{text-align:right}
.reimbDetailTable tfoot td{font-weight:900;border-top:2px solid #e5edf5;padding-top:9px}
.reimbDetailNote{margin:0;color:#475569;font-size:13px;background:#f8fafc;border-radius:9px;padding:9px 11px}
.reimbDeclineNote{margin:0;color:#b91c1c;font-size:12.5px;font-weight:700}
@media(max-width:820px){.reimbStaffBar{grid-template-columns:1fr}.reimbLinesHead{display:none}.reimbLine{grid-template-columns:1fr 1fr;gap:7px}.reimbLine [data-rk="description"]{grid-column:1/-1}.reimbSubmitBar{flex-direction:column;align-items:stretch}.reimbSubmitBar .primary{justify-content:center}}

/* ── Quote margin adjuster ── */
#marginKpi{cursor:pointer;transition:box-shadow .12s,border-color .12s;border:1px solid transparent;border-radius:12px}
#marginKpi:hover{box-shadow:0 6px 18px #0b1f3514;border-color:#bcd3ee}
#marginKpi.overridden{background:linear-gradient(180deg,#eef6ff,#fff);border-color:#bcd3ee}
#marginKpi small .ico{width:12px;height:12px;vertical-align:-1px;opacity:.6}
.marginModal{display:grid;gap:14px;width:min(460px,94vw)}
.marginDial{display:flex;align-items:center;justify-content:center;gap:12px}
.mgStep{width:44px;height:44px;border-radius:12px;border:1px solid #d5dfeb;background:#f8fafc;font-size:24px;font-weight:800;color:#25528c;cursor:pointer;line-height:1}
.mgStep:hover{background:#eef5fd;border-color:#bcd3ee}
.mgValue{display:flex;align-items:baseline;gap:4px;border:2px solid #14345b;border-radius:12px;padding:6px 14px;min-width:130px;justify-content:center}
.mgValue input{border:none;outline:none;font-size:32px;font-weight:900;color:#122033;width:96px;text-align:right;padding:0;background:transparent}
.mgValue span{font-size:20px;font-weight:800;color:#64748b}
.marginSlider{width:100%;accent-color:#14345b}
.marginPresets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mgPreset{display:grid;gap:1px;border:1px solid #d5dfeb;border-radius:10px;background:#fff;padding:8px 4px;font-weight:800;font-size:12px;color:#334155;cursor:pointer}
.mgPreset small{color:#64748b;font-weight:700}
.mgPreset:hover{border-color:#bcd3ee;background:#f8fbff}
.marginPreview{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;background:#f4f8fd;border:1px solid #e2ecf7;border-radius:12px;padding:12px}
.marginPreview div{display:grid;gap:2px}
.marginPreview small{font-size:10.5px;font-weight:800;text-transform:uppercase;color:#64748b}
.marginPreview b{font-size:15px;color:#122033}
.marginPreview .mgBig{font-size:20px;color:#0d4fbf}
.marginWarn{border-radius:9px;padding:9px 11px;font-size:12.5px;font-weight:700}
.marginWarn.low{background:#fff7ed;color:#c2410c;border:1px solid #fcd0a6}
.marginWarn.loss{background:#fef2f2;color:#b91c1c;border:1px solid #f6c9c6}
.marginModal .actions{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.marginModal .actions .secondaryAction{background:#fff;border:1px solid #d5dfeb;border-radius:9px;padding:9px 14px;font-weight:800;font-size:12.5px;color:#475569;cursor:pointer}
.marginModal .actions .primary{background:#14345b;color:#fff;border:none;border-radius:9px;padding:9px 20px;font-weight:800;font-size:13.5px;cursor:pointer}

.reimbApproverHint{color:#8194a8;font-size:11px;font-weight:600;margin-top:2px}

/* ── Add staff modal ── */
.addStaffModal .formGrid.compact.asNameRow{grid-template-columns:1fr 1fr}
@media(max-width:620px){.addStaffModal .formGrid.compact.asNameRow{grid-template-columns:1fr}}

/* ── Quote register: state-aware actions + status chips ── */
.qStatusChip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:900;letter-spacing:.01em;border:1px solid transparent}
.qStatusChip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.qStatusChip.draft{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.qStatusChip.open{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.qStatusChip.sent{background:#eff6ff;color:#1d4ed8;border-color:#dbeafe}
.qStatusChip.accepted{background:#ecfdf5;color:#15803d;border-color:#bbf7d0}
.qStatusChip.awarded{background:#ecfdf5;color:#0f766e;border-color:#99f6e4}
.qStatusChip.rejected{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.quoteActions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:340px;margin-left:auto}
.quoteActions .qaBtn{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.quoteActions .qaBtn:hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.quoteActions .qaBtn.qaPrimary{background:#14345b;border-color:#14345b;color:#fff}
.quoteActions .qaBtn.qaPrimary:hover{background:#0d2a4d;color:#fff}
.quoteActions .qaBtn.qaAccept{background:#fff;border-color:#bbf7d0;color:#15803d}
.quoteActions .qaBtn.qaAccept:hover{background:#ecfdf5;border-color:#86efac;color:#166534}
.quoteActions .qaBtn.qaDangerGhost{background:#fff;border-color:#fecaca;color:#b91c1c}
.quoteActions .qaBtn.qaDangerGhost:hover{background:#fef2f2}
.quoteActions .qaBtn.qaDanger{background:transparent;border-color:transparent;color:#b91c1c;text-decoration:underline;text-underline-offset:3px;padding:7px 6px}
.quoteActions .qaBtn.qaDanger:hover{background:#fef2f2;border-color:#fecaca;text-decoration:none}
body.mobileView .quoteActions{justify-content:flex-start;margin-left:0}

/* ── HR Onboard Pack Builder ── */
.hrBuilderSub{margin:14px 0 8px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#2C3948;border-bottom:2px solid #DD9A0C;padding-bottom:4px;display:inline-block}
.hrBuilderForm .hrBuilderSub:first-child{margin-top:0}
.obDocChecks{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px;margin:4px 0 12px}
.obDocChk,.hrBuilderForm label.obDocChk{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;font-size:12.5px;cursor:pointer;font-weight:700}
.obDocChk:hover{background:#eef2f7}
.obDocChk.locked{opacity:.85}
.obDocChk.disabledDoc{opacity:.4;pointer-events:none}
.obDocChk input{flex:none;width:15px;height:15px;accent-color:#DD9A0C}
.obDocChk span{min-width:0}
.obWho{flex:none;margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.3px;padding:1px 7px;border-radius:20px;font-style:normal}
.obWho.emp{background:#E7F0FB;color:#2C63A6}
.obWho.new{background:#FBEFD8;color:#96660A}
.obWho.both{background:#E4F4EA;color:#1F7A42}
/* preview overlay */
.obpBack{align-items:flex-start;overflow:auto;padding:22px}
.obpModal{width:min(900px,96vw);max-height:92vh;display:flex;flex-direction:column;background:#EAEEF3;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px #0009}
.obpModalBar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#101317;padding:12px 18px;border-bottom:3px solid #DD9A0C;flex:none}
.obpModalBar h3{margin:0;color:#fff;font-size:15px}
.obpModalBar small{color:#AEB6C0;font-size:12px}
.obpModalActions{display:flex;align-items:center;gap:8px}
.obpModalActions button,.obpDocxLink{border:1px solid #3a434e;background:transparent;color:#cfd5dd;border-radius:8px;padding:8px 14px;font-weight:700;font-size:12.5px;cursor:pointer;text-decoration:none}
.obpModalActions button:hover,.obpDocxLink:hover{color:#fff;border-color:#586675}
.obpModalActions .primary{background:#DD9A0C;border-color:#DD9A0C;color:#1a1300}
.obpModalActions .primary:hover{background:#eaa71b;color:#1a1300}
.obpModalActions .obpClose{border:none;font-size:18px;padding:6px 10px}
.obpScroll{overflow:auto;padding:22px}
.obpScroll .obpPage{background:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(16,19,23,.06),0 8px 24px rgba(16,19,23,.12);margin:0 auto 20px;padding:38px 42px;max-width:780px;font-size:13px;line-height:1.5;color:#20242B}
@media(max-width:700px){.obpScroll .obpPage{padding:20px}.obpModalActions{flex-wrap:wrap}}

/* ── Onboard Builder popup ── */
.obBuilderModal{width:min(860px,96vw);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px #0009}
.obBuilderScroll{overflow:auto;padding:18px 20px}
.obBuilderScroll .hrBuilderForm{display:grid;gap:8px}
.aboutHeadBtns{display:flex;gap:6px}

/* ── HR pending starters + action tiles ── */
.hrActionTile{border-left:4px solid #DD9A0C}
.hrActionTile .hrLaunchIcon{background:linear-gradient(180deg,#DD9A0C,#B87F08)}
.hrPendingPanel{margin-top:16px}
.hrPendingList{display:grid;gap:8px}
.hrPendingRow{display:flex;align-items:center;gap:12px;border:1px solid #e6edf5;border-left:4px solid #DD9A0C;border-radius:11px;padding:11px 14px;background:#fff}
.hrPendingRow.draft{border-left-color:#94a3b8}
.hrPendingRow.returned{border-left-color:#16a34a}
.hrRegisterPanel .qaBtn,.hrStaffCard .qaBtn{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.hrRegisterPanel .qaBtn:hover,.hrStaffCard .qaBtn:hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.hrRegisterPanel .qaBtn.qaPrimary,.hrStaffCard .qaBtn.qaPrimary{background:#14345b;border-color:#14345b;color:#fff}
.hrRegisterPanel .qaBtn.qaPrimary:hover,.hrStaffCard .qaBtn.qaPrimary:hover{background:#0d2a4d;border-color:#0d2a4d;color:#fff}
.hrStaffCard{transition:transform .12s,box-shadow .12s,border-color .12s,background .12s}
.hrStaffCard:hover{transform:translateY(-2px);box-shadow:0 14px 32px #6d28d926;border-color:#7c3aed;background:#f7f4ff}

/* ── Crews module refresh: toned cards + hover highlight ── */
.crewCard{--tone:#1262d6;--tone-bg:#eff6ff;--tone-border:#bcd3ee;border-left:4px solid var(--tone);transition:transform .12s,box-shadow .12s,border-color .12s,background .12s}
.crewCard:hover{transform:translateY(-2px);box-shadow:0 14px 32px #0b1f3518;border-color:var(--tone);background:var(--tone-bg)}
.crewTone-civil{--tone:#155eef;--tone-bg:#eff6ff;--tone-border:#bcd3ee}
.crewTone-electrical{--tone:#7c3aed;--tone-bg:#f5f3ff;--tone-border:#cdbef8}
.crewTone-projects{--tone:#0f766e;--tone-bg:#ecfeff;--tone-border:#9fe4ef}
.crewTone-administrator{--tone:#b45309;--tone-bg:#fff7ed;--tone-border:#fcd0a6}
.crewTone-management{--tone:#334155;--tone-bg:#f8fafc;--tone-border:#d7e0ea}
.crewTone-director{--tone:#be123c;--tone-bg:#fff1f2;--tone-border:#f5b8c4}
.crewTone-other{--tone:#64748b;--tone-bg:#f8fafc;--tone-border:#d7e0ea}
.crewTone-combined{--tone:#4338ca;--tone-bg:#eef2ff;--tone-border:#c7d2fe}
.crewTone-combined .crewIcon{background:linear-gradient(135deg,#155eef,#7c3aed)}
.crewCardHead{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}
.crewCardHead h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crewIcon{width:42px;height:42px;border-radius:11px;background:var(--tone);color:#fff;display:grid;place-items:center;flex:none}
.crewIcon .ico{width:20px;height:20px}
.crewTypeChip{font-style:normal;border-radius:999px;background:#fff;border:1px solid var(--tone-border);color:var(--tone);padding:5px 9px;font-size:11px;font-weight:900;white-space:nowrap}
.crewCard .actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.crewCard .qaBtn{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.crewCard .qaBtn:hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.crewCard .qaBtn.qaPrimary{background:#14345b;border-color:#14345b;color:#fff}
.crewCard .qaBtn.qaPrimary:hover{background:#0d2a4d;border-color:#0d2a4d;color:#fff}
.crewCard .qaBtn.qaDanger{background:transparent;border-color:transparent;color:#b91c1c;text-decoration:underline;text-underline-offset:3px}
.crewCard .qaBtn.qaDanger:hover{background:#fef2f2;border-color:#fecaca;text-decoration:none}
.assetTiles article,.assetCards article{--tone:#1262d6;--tone-bg:#f6faff;transition:transform .12s,box-shadow .12s,border-color .12s,background .12s}
.realAssetTile.hcv{--tone:#2563eb;--tone-bg:#eff6ff}
.realAssetTile.lcv{--tone:#0f766e;--tone-bg:#ecfdf5}
.realAssetTile.trailer{--tone:#d97706;--tone-bg:#fff7ed}
.realAssetTile.plant{--tone:#7c3aed;--tone-bg:#f5f3ff}
.realAssetTile.other{--tone:#64748b;--tone-bg:#f8fafc}
.assetTiles article:hover,.assetCards article:hover{transform:translateY(-2px);box-shadow:0 14px 32px #0b1f3518;border-color:var(--tone);background:var(--tone-bg)}
/* page-head actions: consistent updated button look across all modules */
.pageHead>div>button:not(.backBtn),.pageHead>div>a{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:9px 13px;font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.pageHead>div>button:not(.backBtn):hover,.pageHead>div>a:hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.pageHead>div>button:first-child:not(.backBtn),.pageHead>div>button.primary{background:#14345b!important;border-color:#14345b!important;color:#fff!important}
.pageHead>div>button:first-child:not(.backBtn):hover,.pageHead>div>button.primary:hover{background:#0d2a4d!important;border-color:#0d2a4d!important}
.pageHead>div>select{border:1px solid #d5dfeb;border-radius:8px;background:#fff;color:#475569;padding:9px 11px;font-size:12.5px;font-weight:800}
body.themeDark .pageHead>div>button:not(.backBtn),body.themeDark .pageHead>div>select{background:#0f2031;color:var(--text);border-color:var(--line)}
.workbookBuildActions button{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:9px 13px;font-size:12.5px;font-weight:800;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.workbookBuildActions button:hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.workbookBuildActions button.primary{background:#14345b!important;border-color:#14345b!important;color:#fff!important}
.workbookBuildActions button.primary:hover{background:#0d2a4d!important;border-color:#0d2a4d!important}

/* ── Manual job setup modal (builder look) ── */
.obBuilderModal.manualJobModal{width:min(1180px,97vw)}
.manualAddBar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.manualAddWrap{position:relative}
.manualAddBar .qaBtn{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.manualAddBar .qaBtn:hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.manualAddBar .qaBtn.qaPrimary{background:#14345b;border-color:#14345b;color:#fff}
.manualAddBar .qaBtn.qaPrimary:hover{background:#0d2a4d;border-color:#0d2a4d}
.manualPickPanel{position:absolute;top:calc(100% + 8px);left:0;width:min(440px,84vw);background:#fff;border:1px solid #d5dfeb;border-radius:10px;box-shadow:0 18px 44px #0b1f3529;z-index:40;padding:10px;display:grid;gap:8px}
.manualPickPanel[hidden]{display:none}
.manualPickPanel>input{border:1px solid #d4deea;border-radius:8px;padding:9px 11px;width:100%;font:inherit}
.manualPickList{display:grid;gap:4px;max-height:250px;overflow:auto}
.manualPickList button{text-align:left;border:1px solid #e2e8f0;background:#fff!important;color:#1e293b!important;border-radius:8px;padding:8px 10px;cursor:pointer}
.manualPickList button:hover{border-color:#1262d6;background:#f6faff!important}
.manualPickList b{display:block;font-size:12px;color:#1e293b}
.manualPickList small{display:block;color:#8194a8;font-size:11px;margin-top:1px}
.manualJobBuildRow.activityRow{grid-template-columns:auto minmax(200px,1.5fr) minmax(76px,.5fr) minmax(64px,.4fr) repeat(3,minmax(88px,.55fr)) minmax(120px,.75fr) auto}
.manualBuildTag{display:grid;gap:3px;align-self:center;justify-items:center}
.manualBuildTag em{font-style:normal;background:#eff6ff;color:#155eef;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:900}
.manualBuildTag b{font-size:11px;color:#475569}
.manualBuildStat{display:grid;gap:2px;align-self:center}
.manualBuildStat b{font-size:13px;color:#122033}
.manualBuildStat small{color:#64748b;font-size:10px}
.manualJobModal .manualJobBuildRow{margin-bottom:0;grid-template-columns:minmax(135px,1fr) minmax(175px,1.4fr) repeat(6,minmax(70px,.5fr)) minmax(98px,.65fr) auto;gap:6px}
.manualJobModal .manualJobBuildRow.activityRow{grid-template-columns:auto minmax(175px,1.4fr) minmax(68px,.45fr) minmax(58px,.4fr) repeat(3,minmax(78px,.5fr)) minmax(108px,.7fr) auto;gap:6px}
.manualJobModal .manualJobBuildRow .dangerBtn{padding:8px 9px;font-size:11px}
.manualJobModal #manualJobBuildRows{display:grid;gap:8px}
@media(max-width:900px){.manualJobBuildRow.activityRow{grid-template-columns:repeat(2,minmax(0,1fr))}.manualJobBuildRow.activityRow label.wide,.manualJobBuildRow.activityRow .manualJobBuildTotal{grid-column:1/-1}}

/* ── Top bar: home left, compact weather + clock on the right ── */
.topHomeBtn{margin-left:16px;width:38px;height:38px;border:1px solid #d7e1ec;border-radius:10px;background:#fff;color:#122033;display:grid;place-items:center;cursor:pointer;flex:none;transition:border-color .12s,color .12s,background .12s}
.topHomeBtn:hover{border-color:#1262d6;color:#1262d6;background:#f6faff}
.topHomeBtn .ico{width:18px;height:18px}
.topWeather{display:flex;align-items:center;gap:8px;white-space:nowrap}
.topWeather img{width:30px;height:30px;flex:none}
.topWeather>div{display:grid;gap:1px;line-height:1.1}
.topWeather b{font-size:13.5px;color:#122033}
.topWeather small{font-size:11px;font-weight:800;color:#64748b;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.topClock{display:grid;justify-items:end;gap:1px;white-space:nowrap;line-height:1.1;margin-right:4px}
.topClock b{font-size:14.5px;color:#122033;font-variant-numeric:tabular-nums}
.topClock span{font-size:12px;font-weight:800;color:#475569}
body.themeDark .topClock b,body.themeDark .topWeather b{color:var(--text)}
body.themeDark .topClock span,body.themeDark .topWeather small{color:var(--text)}
@media(max-width:1180px){.topWeather small{display:none}}

/* ── Main dash: stand-out hover highlights ── */
.kpi{--kpiTone:#1262d6;--kpiBg:#dbeafe;transition:transform .13s,box-shadow .13s,border-color .13s,background .13s}
.kpi.blue{--kpiTone:#1262d6;--kpiBg:#dbeafe}
.kpi.green{--kpiTone:#16a34a;--kpiBg:#dcfce7}
.kpi.orange{--kpiTone:#f97316;--kpiBg:#ffedd5}
.kpi.purple{--kpiTone:#7c3aed;--kpiBg:#ede9fe}
.kpi.red{--kpiTone:#dc2626;--kpiBg:#fee2e2}
.kpi:hover{transform:translateY(-3px);border-color:var(--kpiTone);background:linear-gradient(135deg,#fff 0%,var(--kpiBg) 100%);box-shadow:0 16px 32px #0b1f351c,inset 0 0 0 1px var(--kpiTone)}
.dashboard .rightRail .railCard,.dashboard .lower .panel{transition:border-color .13s,box-shadow .13s}
.dashboard .rightRail .railCard:hover,.dashboard .lower .panel:hover{border-color:#9db9dd;box-shadow:0 12px 26px #0b1f3516}
.crewRow{transition:background .12s,box-shadow .12s}
.crewRow:hover{background:#f0f6ff;box-shadow:inset 3px 0 0 #1262d6}
.assetSticker,.crewSticker,.staffSticker{transition:transform .12s,border-color .12s,box-shadow .12s,background .12s}
.assetSticker:hover,.crewSticker:hover{transform:translateY(-2px);border-color:#1262d6;background:#f0f6ff;box-shadow:0 8px 18px #0b1f351a}
.staffSticker:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0b1f3526,0 0 0 2px #ffffffcc}
.slot{transition:background .12s,box-shadow .12s}
.slot:hover{background:#f6faff;box-shadow:inset 0 0 0 1px #bcd3ee}

/* ── App-wide hover emphasis: profile tabs, module bars, top bar ── */
.staffProfileTabs button{transition:background .12s,border-color .12s,color .12s,transform .12s,box-shadow .12s}
.staffProfileTabs button:hover{border-color:#7c3aed;background:#f3efff;color:#4f46e5;transform:translateY(-1px);box-shadow:0 6px 14px #6d28d91f}
.profileTabs button{transition:background .12s,border-color .12s,color .12s,box-shadow .12s}
.profileTabs button:hover{border-color:#1262d6;background:#eaf3ff;color:#0d62d9;box-shadow:0 4px 10px #0b1f3514}
.backBtn{transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
.backBtn:hover{border-color:#1262d6!important;color:#1262d6!important;background:#f6faff!important;box-shadow:0 6px 14px #0b1f3514}
.viewToggle,.headerActionBtn,.logoutBtn,.notif,.avatarBtn{transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
.viewToggle:hover,.headerActionBtn:hover,.logoutBtn:hover{border-color:#1262d6;color:#1262d6;background:#f6faff;box-shadow:0 6px 14px #0b1f3514}
.notif:hover{color:#1262d6;background:#eaf3ff;border-radius:8px}
.profileMenu button{transition:background .12s,color .12s}
.profileMenu button:hover{background:#eaf3ff;color:#0d62d9}
.sideNav button{transition:background .12s,box-shadow .12s}
.sideNav button:hover{background:#ffffff1f;box-shadow:inset 3px 0 0 #DD9A0C}
.sideActions button{transition:background .12s,box-shadow .12s}
.sideActions button:hover{background:#ffffff1f;box-shadow:inset 3px 0 0 #DD9A0C}
.hrSubnavPanel button{transition:background .12s,box-shadow .12s,color .12s}
.hrSubnavPanel button:hover{background:#eaf3ff;box-shadow:inset 3px 0 0 #1262d6;color:#0d62d9}
.hrLaunchTile,.staffLaunchTile{cursor:pointer}
.hrStaffCard,.crewCard,.assetTiles article,.assetCards article{cursor:pointer}
.profileRows article{transition:border-color .12s,background .12s,box-shadow .12s}
.profileRows article:hover{border-color:#9db9dd;background:#f8fbff;box-shadow:0 6px 14px #0b1f350e}
.hrPendingRow{transition:border-color .12s,box-shadow .12s,background .12s}
.hrPendingRow:hover{box-shadow:0 10px 22px #0b1f3514;background:#fdfefe}
.hrLibraryItem{transition:border-color .12s,background .12s}
.hrLibraryItem:hover{border-color:#9db9dd;background:#f8fbff}
.staffTrackerDot{transition:transform .12s,border-color .12s,background .12s,box-shadow .12s;cursor:pointer}
.staffTrackerDot:hover{transform:translateY(-2px);border-color:#1262d6;background:#f0f6ff;box-shadow:0 10px 22px #0b1f351a}
/* headroom so lifted items don't clip inside their scroll containers */
.assetStickerList,.crewStickerList,.staffStickerList,.resourceTrayItems{padding-top:4px}
.staffTrackerGrid{padding:4px 3px 2px}

/* ── Jobs module: colour-toned tiles + lifecycle-toned card hover ── */
.jobLaunchTile{--tone:#1262d6;--tone-2:#0d4fbf;--tone-bg:#eff6ff;--tone-border:#bcd3ee;border-left:4px solid var(--tone)}
.jobLaunchTile.tone-blue{--tone:#1262d6;--tone-2:#0d4fbf;--tone-bg:#eff6ff;--tone-border:#bcd3ee}
.jobLaunchTile.tone-green{--tone:#16a34a;--tone-2:#15803d;--tone-bg:#ecfdf5;--tone-border:#a7e3c3}
.jobLaunchTile.tone-purple{--tone:#7c3aed;--tone-2:#6d28d9;--tone-bg:#f5f3ff;--tone-border:#cdbef8}
.jobLaunchTile.tone-orange{--tone:#f97316;--tone-2:#ea580c;--tone-bg:#fff7ed;--tone-border:#fcd0a6}
.jobLaunchTile.tone-teal{--tone:#0891b2;--tone-2:#0e7490;--tone-bg:#ecfeff;--tone-border:#9fe4ef}
.jobLaunchTile.tone-yellow{--tone:#a16207;--tone-2:#854d0e;--tone-bg:#fefce8;--tone-border:#f5e59d}
.jobLaunchTile.tone-red{--tone:#dc2626;--tone-2:#b91c1c;--tone-bg:#fff1f2;--tone-border:#f5b8c4}
.jobLaunchTile.tone-slate{--tone:#64748b;--tone-2:#475569;--tone-bg:#f8fafc;--tone-border:#d7e0ea}
.jobLaunchTile .jobLaunchIcon{background:linear-gradient(180deg,var(--tone),var(--tone-2));box-shadow:none}
.jobLaunchTile:hover{transform:translateY(-2px);box-shadow:0 16px 34px #0b1f3518;border-color:var(--tone-border);border-left-color:var(--tone);background:linear-gradient(180deg,var(--tone-bg),#fff)}
.jobsIndexCard{--tone:#1262d6;--tone-bg:#f0f6ff;transition:transform .13s,box-shadow .13s,border-color .13s,background .13s;cursor:pointer}
.jobsIndexCard.lifecycle-good{--tone:#21b66f;--tone-bg:#ecfdf5}
.jobsIndexCard.lifecycle-warn{--tone:#d97706;--tone-bg:#fff7ed}
.jobsIndexCard.lifecycle-current{--tone:#1262d6;--tone-bg:#f0f6ff}
.jobsIndexCard.lifecycle-bad{--tone:#dc2626;--tone-bg:#fff1f2}
.jobsIndexCard.lifecycle-neutral{--tone:#64748b;--tone-bg:#f8fafc}
.jobsIndexCard:hover{transform:translateY(-2px);border-color:var(--tone);box-shadow:0 16px 32px #0b1f351c;background:linear-gradient(180deg,var(--tone-bg),#fff 55%)}
/* plant & machinery stickers coloured by asset group (matches the assets module) */
.assetSticker{--tone:#1262d6;--tone-bg:#f0f6ff}
.assetSticker.grp-hcv{--tone:#2563eb;--tone-bg:#eff6ff}
.assetSticker.grp-lcv{--tone:#0f766e;--tone-bg:#ecfdf5}
.assetSticker.grp-trailer{--tone:#d97706;--tone-bg:#fff7ed}
.assetSticker.grp-plant{--tone:#7c3aed;--tone-bg:#f5f3ff}
.assetSticker.grp-other{--tone:#64748b;--tone-bg:#f8fafc}
.assetSticker[class*="grp-"]{border:1px solid var(--tone)}
.assetSticker[class*="grp-"] span{color:var(--tone)}
.assetSticker:hover{transform:translateY(-2px);border-color:var(--tone);background:var(--tone-bg);box-shadow:0 8px 18px #0b1f351a}
/* crew stickers carry their discipline colours (as per the crews module) */
.crewSticker{--tone:#1262d6;--tone-bg:#f0f6ff}
.crewSticker[class*="crewTone-"]{border:1px solid var(--tone)}
.crewSticker[class*="crewTone-"]>span{color:var(--tone)}
.crewSticker:hover{transform:translateY(-2px);border-color:var(--tone);background:var(--tone-bg);box-shadow:0 8px 18px #0b1f351a}
.crewRow[class*="crewTone-"] i{background:var(--tone,#39ba5a)}
.crewRow[class*="crewTone-"]:hover{background:var(--tone-bg,#f0f6ff);box-shadow:inset 3px 0 0 var(--tone,#1262d6)}
/* schedule toolbar: hover shading + green New Activity */
.scheduleTools button,.scheduleTools select{transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
.scheduleTools button:not(.primary):not(.dangerSoft):hover,.scheduleTools select:hover{border-color:#1262d6;color:#0d62d9;background:#f0f6ff;box-shadow:0 4px 10px #0b1f3512}
.scheduleTools .dangerSoft:hover{border-color:#fca5a5;color:#b91c1c;background:#fef2f2}
.scheduleTools .primary{background:#16a34a!important;border-color:#16a34a!important;color:#fff!important}
.scheduleTools .primary:hover{background:#15803d!important;border-color:#15803d!important;box-shadow:0 6px 14px #16a34a33}
/* schedule cards: planned cards take their site's colour (status colours &
   flashing alerts for delayed / in progress / complete are untouched) */
.workCard.isPlanned{background:var(--bg)!important;border:2px solid var(--line)!important;border-top:6px solid var(--line)!important}
.workCard{transition:transform .12s;cursor:pointer}
.workCard:hover{transform:translateY(-2px)}
.workCard:not(.isDelayed):not(.isInProgress):not(.isComplete):hover{box-shadow:0 12px 26px #0b1f351f,0 0 0 2px color-mix(in srgb,var(--line) 45%,#fff)}
/* ── Staff sub-sections hover shading ── */
.toolCard,.uniformCard{transition:transform .13s,border-color .13s,box-shadow .13s}
.toolCard:hover,.uniformCard:hover{transform:translateY(-2px);border-color:var(--hov,#1262d6);box-shadow:0 14px 30px #0b1f3518}
.toolRegRow{transition:background .12s,box-shadow .12s}
.toolRegRow:hover{background:var(--hov-bg,#f8fbff);box-shadow:0 8px 18px #0b1f3514}
.credExpiryRow{transition:background .12s,box-shadow .12s}
.credExpiryRow:hover{background:var(--hov-bg,#f6faff);box-shadow:0 6px 14px #0b1f3512}
.leaveHistoryRow{transition:border-color .12s,background .12s,box-shadow .12s}
.leaveHistoryRow:hover{border-color:var(--hov-border,#9db9dd);background:var(--hov-bg,#f8fbff);box-shadow:0 6px 14px #0b1f3510}
.leaveApprovalQueue article{transition:border-color .12s,background .12s,box-shadow .12s}
.leaveApprovalQueue article:hover{border-color:var(--hov-border,#9db9dd);background:var(--hov-bg,#f4f9ff);box-shadow:0 8px 18px #0b1f3512}
.leaveDay{transition:background .12s,box-shadow .12s}
.leaveDay:hover{background:var(--hov-bg,#f0f6ff);box-shadow:inset 0 0 0 1px var(--hov-border,#bcd3ee)}
/* ── New Activity quick-add form (main dash) hover shading ── */
.scheduleQuickAdd select,.scheduleQuickAdd input{transition:border-color .12s,box-shadow .12s,background .12s}
.scheduleQuickAdd select:hover,.scheduleQuickAdd input:hover{border-color:#1262d6;background:#fbfdff}
.scheduleQuickAdd select:focus,.scheduleQuickAdd input:focus{border-color:#1262d6;box-shadow:0 0 0 3px #1262d61f;outline:none}
.scheduleQuickAdd button{transition:background .12s,border-color .12s,color .12s,box-shadow .12s,transform .12s}
.scheduleQuickAdd button:not(.primary):not([data-main-date]):hover{border-color:#1262d6;color:#0d62d9;background:#f0f6ff}
.scheduleQuickAdd button.primary:hover{background:#0d4fbf!important;border-color:#0d4fbf!important;box-shadow:0 6px 14px #1262d633}
.scheduleDatePicker{padding-top:4px}
.scheduleDatePicker button:hover{transform:translateY(-1px);border-color:#1262d6!important;background:#f0f6ff!important;box-shadow:0 6px 14px #0b1f3512}
.scheduleDatePicker button.active:hover{background:#e3efff!important}
/* job sub-section bar themed in its tile's colour */
.jobSectionBar{--tone:#1262d6;border-left:4px solid var(--tone);padding-left:12px}
.jobSectionBar.tone-blue{--tone:#1262d6}
.jobSectionBar.tone-green{--tone:#16a34a}
.jobSectionBar.tone-purple{--tone:#7c3aed}
.jobSectionBar.tone-orange{--tone:#f97316}
.jobSectionBar.tone-teal{--tone:#0891b2}
.jobSectionBar.tone-yellow{--tone:#a16207}
.jobSectionBar.tone-red{--tone:#dc2626}
.jobSectionBar.tone-slate{--tone:#64748b}
.jobSectionBar .jobSectionCrumb .ico{color:var(--tone)}
.jobSectionBar .jobSectionCrumb span{color:#122033}
/* settings page sections */
.settingsCards[hidden]{display:none}
.settingsSection[hidden]{display:none}
.settingsSection{display:grid;gap:14px;grid-column:1/-1}
.settingsPage .staffModuleBar{margin-bottom:14px}
.settingsSection .record{border:1px solid #e1e8f0;border-radius:12px;border-top:4px solid var(--tone,#1262d6);box-shadow:0 8px 20px #0b1f3508}
.settingsSection[data-settings-section="users"]{--tone:#7c3aed}
.settingsSection[data-settings-section="policies"]{--tone:#16a34a}
.settingsSection[data-settings-section="email"]{--tone:#1262d6}
.settingsSection[data-settings-section="alerts"]{--tone:#f97316}
.settingsSection[data-settings-section="gps"]{--tone:#0891b2}
.settingsSection[data-settings-section="data"]{--tone:#a16207}
.settingsSection[data-settings-section="maintenance"]{--tone:#64748b}
.settingsSection .record button:not(.dangerSoft):not(.dangerBtn){border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:8px 12px;font-size:12.5px;font-weight:800;cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.settingsSection .record button:not(.dangerSoft):not(.dangerBtn):hover{border-color:#94a3b8;color:#1e293b;background:#f8fafc}
.settingsSection .record .policyActionsBar button:first-child,.settingsSection .record button[type="submit"]{background:#14345b!important;border-color:#14345b!important;color:#fff!important}
.settingsSection .record .policyActionsBar button:first-child:hover,.settingsSection .record button[type="submit"]:hover{background:#0d2a4d!important;border-color:#0d2a4d!important}
.settingsSection .record button.dangerSoft{border:1px solid #fecaca;background:#fff;color:#b91c1c;border-radius:8px;padding:8px 12px;font-size:12.5px;font-weight:800;cursor:pointer}
.settingsSection .record button.dangerSoft:hover{background:#fef2f2}
.mailboxCenterCard .staffSummaryStrip{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.mailboxTableWrap{overflow:auto;border:1px solid #dbe5ef;border-radius:12px;background:#fff}
.mailboxTable{width:100%;border-collapse:collapse;min-width:980px}
.mailboxTable thead th{white-space:nowrap}
.mailboxTable tbody tr.mailboxRow td{vertical-align:top}
.mailboxTable tbody tr.mailboxRow.good td:first-child{box-shadow:inset 4px 0 0 #16a34a}
.mailboxTable tbody tr.mailboxRow.warn td:first-child{box-shadow:inset 4px 0 0 #f59e0b}
.mailboxTable tbody tr.mailboxRow.danger td:first-child{box-shadow:inset 4px 0 0 #dc2626}
.mailboxTable tbody tr.mailboxOrphanHead td{background:#f8fbff;font-weight:950;color:#334155;text-transform:uppercase;letter-spacing:.04em;font-size:11px}
.mailboxAlias{display:block;font-weight:900;color:#122033;overflow-wrap:anywhere}
.mailboxBadge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:950;border:1px solid transparent;white-space:nowrap}
.mailboxBadge.good{background:#ecfdf5;color:#047857;border-color:#bbf7d0}
.mailboxBadge.warn{background:#fffbeb;color:#a16207;border-color:#fde68a}
.mailboxBadge.danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
.mailboxBadge.muted{background:#f8fafc;color:#64748b;border-color:#e2e8f0}
.mailboxScope{display:inline-flex;align-items:center;border:1px solid #d7e1ec;border-radius:999px;background:#f8fbff;color:#334155;padding:3px 7px;margin:0 4px 4px 0;font-size:10.5px;font-weight:800;white-space:nowrap}
.mailboxChip{display:inline-block;margin:6px 0 0;border-radius:999px;background:#f3e8ff;color:#6b21a8;border:1px solid #e9d5ff;padding:3px 8px;font-size:10.5px;font-weight:900;font-style:normal;white-space:nowrap}
.mailboxActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-start}
.mailboxActions button{padding:7px 10px;font-size:12px}
.mailboxActions .secondaryBtn{background:#eef4fb!important;color:#14345b!important}
.mailboxActions .dangerSoft{padding:7px 10px}
.settingsSection[data-settings-section="mailboxes"] .mailboxTable .muted{color:#64748b;font-size:12px}
.settingsSection .auditEmailHead span.ready{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;white-space:nowrap}
.settingsSection .auditEmailHead span.needsConfig{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;white-space:nowrap}
.hrPackTrack{margin:10px 0 14px}
.hrCardTrack{margin:8px 0 2px}
.hrPendingMain{min-width:0;flex:1}
.hrPendingMain b{display:block;font-size:13.5px;color:#1e293b}
.hrPendingMain span{display:block;font-size:12.5px;color:#475569}
.hrPendingMain small{color:#8194a8;font-size:11.5px}
.hrPendingActions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.hrPendingActions .qaBtn{border:1px solid #d5dfeb;background:#fff;color:#475569;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:800;cursor:pointer;text-decoration:none}
.hrPendingActions .qaBtn.qaPrimary{background:#14345b;border-color:#14345b;color:#fff}
.hrPendingActions .qaBtn.qaDanger{background:transparent;border-color:transparent;color:#b91c1c;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.hrPendingRow{flex-wrap:wrap}.hrPendingActions{justify-content:flex-start}}
@media(max-width:900px){.userAccessHead,.userAccessLayout{display:grid;grid-template-columns:1fr}.mailboxTable{min-width:860px}}

/* ── Pack review & prefill modal ── */
.packReviewBack{align-items:stretch;padding:14px}
.packReviewModal{width:min(1200px,97vw);height:94vh;margin:auto;display:flex;flex-direction:column;background:#EAEEF3;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px #0009}
.packReviewBody{flex:1;display:grid;grid-template-columns:250px minmax(0,1fr);min-height:0}
.packReviewTabs{background:#fff;border-right:1px solid #D8DEE6;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:6px}
.packReviewTabs button{text-align:left;border:1px solid #e2e8f0;background:#fff;border-radius:9px;padding:9px 11px;cursor:pointer}
.packReviewTabs button b{display:block;font-size:12px;color:#1e293b;line-height:1.25}
.packReviewTabs button small{display:block;color:#8194a8;font-size:10.5px;margin-top:2px}
.packReviewTabs button.active{border-color:#DD9A0C;background:#FBF4E3;box-shadow:inset 3px 0 0 #DD9A0C}
.packReviewPages{overflow:auto;padding:18px;display:flex;flex-direction:column;align-items:center;gap:16px}
.prPage{position:relative;background:#fff;box-shadow:0 1px 2px rgba(16,19,23,.08),0 8px 24px rgba(16,19,23,.12);border-radius:3px;flex:none}
.prPage canvas{display:block;border-radius:3px}
.prField{position:absolute;border:1.5px solid #DD9A0C88;background:#FFF7E360;border-radius:2px;padding:0 3px;font-family:inherit;color:#101317;box-sizing:border-box;z-index:2}
.prField:focus{outline:none;border-color:#DD9A0C;background:#FFF3D0;box-shadow:0 0 0 3px #DD9A0C33}
select.prField{padding:0}
textarea.prField{resize:none;line-height:1.25;padding-top:2px}
input.prField[type="checkbox"]{accent-color:#DD9A0C;background:transparent;border:1.5px solid #DD9A0C}
.packReviewSign{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#101317;border-top:3px solid #DD9A0C;flex:none;flex-wrap:wrap}
.packReviewSign .prBy{display:flex;align-items:center;gap:8px;color:#cfd5dd;font-size:12.5px;font-weight:700}
.packReviewSign .prBy input{border:1px solid #3a434e;background:#1a2029;color:#fff;border-radius:8px;padding:8px 11px;font:inherit;font-size:13px;min-width:200px}
.packReviewSign .prTick{background:#1a2029;border-color:#3a434e;color:#cfd5dd;flex:1;min-width:280px}
.packReviewSign .prBtns{display:flex;gap:8px}
.packReviewSign button{border:1px solid #3a434e;background:transparent;color:#cfd5dd;border-radius:8px;padding:9px 16px;font-weight:800;font-size:13px;cursor:pointer}
.packReviewSign button.primary{background:#DD9A0C;border-color:#DD9A0C;color:#1a1300}
.packReviewSign button.primary:disabled{opacity:.45;cursor:not-allowed}
.packReviewTabs .prTabRow{display:flex;align-items:stretch;gap:4px}
.packReviewTabs .prTabRow .prTabMain{flex:1;min-width:0}
.packReviewTabs .prTabRow.active .prTabMain{border-color:#DD9A0C;background:#FBF4E3;box-shadow:inset 3px 0 0 #DD9A0C}
.packReviewTabs .prTabDel{flex:none;width:26px;padding:0;border:1px solid #f0d3d3;background:#fff;color:#b91c1c;border-radius:9px;font-size:14px;font-weight:900;line-height:1;cursor:pointer}
.packReviewTabs .prTabDel:hover{background:#b91c1c;border-color:#b91c1c;color:#fff}
.prFlag{position:absolute;z-index:3;pointer-events:none;font-size:10px;font-weight:900;letter-spacing:.02em;line-height:1.4;padding:2px 6px 2px 8px;border-radius:4px 0 0 4px;color:#1a1300;background:#DD9A0C;box-shadow:0 2px 6px rgba(16,19,23,.28);white-space:nowrap;transition:opacity .25s,transform .15s}
.prFlag:after{content:'';position:absolute;left:100%;top:0;border:9px solid transparent;border-right-width:0;border-left-color:#DD9A0C}
.prFlag.sign{background:#E2532F;color:#fff}
.prFlag.sign:after{border-left-color:#E2532F}
.prFlag.active{transform:translateX(-3px) scale(1.08)}
.prFlag.done{opacity:0}
.packReviewSign .prCcWrap{position:relative}
.packReviewSign #prCcBtn em{font-style:normal;color:#DD9A0C;margin-left:3px}
.prCcPanel{position:absolute;bottom:calc(100% + 12px);left:0;width:310px;max-height:290px;overflow:auto;background:#1a2029;border:1px solid #3a434e;border-radius:10px;padding:12px;box-shadow:0 18px 44px #000b;z-index:30;display:grid;gap:7px}
.prCcPanel[hidden]{display:none}
.prCcPanel b{color:#fff;font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding-bottom:5px;border-bottom:1px solid #2a323d}
.prCcPanel label{display:flex;align-items:center;gap:8px;color:#cfd5dd;font-size:12.5px;font-weight:600;cursor:pointer}
.prCcPanel label small{color:#8194a8;margin-left:auto;font-size:11px;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.prCcPanel input{accent-color:#DD9A0C;width:15px;height:15px;flex:none}
.prCcPanel>small{color:#8194a8}
@media(max-width:860px){.packReviewBody{grid-template-columns:1fr}.packReviewTabs{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #D8DEE6}.packReviewTabs .prTabRow{min-width:180px;flex:none}.prCcPanel{left:auto;right:0}}

/* ── Section tone vars + back-button hierarchy ── */
.tone-blue{--hov:#1262d6;--hov-bg:#eff6ff;--hov-border:#bcd3ee}
.tone-green{--hov:#16a34a;--hov-bg:#ecfdf5;--hov-border:#a7e3c3}
.tone-purple{--hov:#7c3aed;--hov-bg:#f5f3ff;--hov-border:#cdbef8}
.tone-orange{--hov:#f97316;--hov-bg:#fff7ed;--hov-border:#fcd0a6}
.tone-teal{--hov:#0891b2;--hov-bg:#ecfeff;--hov-border:#9fe4ef}
.tone-yellow{--hov:#a16207;--hov-bg:#fefce8;--hov-border:#f5e59d}
.tone-red{--hov:#dc2626;--hov-bg:#fff1f2;--hov-border:#f5b8c4}
.tone-slate{--hov:#64748b;--hov-bg:#f8fafc;--hov-border:#d7e0ea}
/* module-exit back: one gold identity across the whole app */
.titleWithBack .backBtn,.staffProfileHero .backBtn,.jobHero .backBtn{border-color:#ecd39a!important;color:#8a5d05!important;background:#fffaf0!important}
.titleWithBack .backBtn .ico,.staffProfileHero .backBtn .ico,.jobHero .backBtn .ico{color:#b47908}
.titleWithBack .backBtn:hover,.staffProfileHero .backBtn:hover,.jobHero .backBtn:hover{border-color:#DD9A0C!important;background:#faedcd!important;color:#7c5203!important;box-shadow:0 6px 14px #dd9a0c2e}
/* in-section back + controls take the section's theme colour */
.staffModuleBar .backBtn,.hrModuleBar .backBtn,.jobSectionBar .backBtn{border-color:var(--hov-border,#d7e1ec)!important;color:var(--hov,#172033)!important;background:#fff!important}
.staffModuleBar .backBtn .ico,.hrModuleBar .backBtn .ico,.jobSectionBar .backBtn .ico{color:var(--hov,#172033)}
.staffModuleBar .backBtn:hover,.hrModuleBar .backBtn:hover,.jobSectionBar .backBtn:hover{border-color:var(--hov,#1262d6)!important;background:var(--hov-bg,#f6faff)!important;color:var(--hov,#1262d6)!important;box-shadow:0 6px 14px #0b1f3514}
.hrModuleView .hrModuleCrumb .ico{color:var(--hov,#1262d6)}
.staffModuleView .qaBtn:not(.qaPrimary):hover,.hrModuleView .qaBtn:not(.qaPrimary):hover{border-color:var(--hov)!important;color:var(--hov)!important;background:var(--hov-bg)!important}
.staffModuleMain button:not(.primary):not(.qaPrimary):not(.qaBtn):not(.dangerBtn):not(.dangerSoft):not([data-remove-manual-build]):hover{border-color:var(--hov);color:var(--hov);background:var(--hov-bg)}
.hrModuleMain button:not(.primary):not(.qaPrimary):not(.qaBtn):not(.dangerBtn):not(.dangerSoft):hover{border-color:var(--hov);color:var(--hov);background:var(--hov-bg)}

/* job sub-sections: buttons follow the section theme */
.jobWorkspaceSection .jobSections .primary,.jobWorkspaceSection .jobSections button.primary{background:var(--hov,#1262d6)!important;border-color:var(--hov,#1262d6)!important;color:#fff!important}
.jobWorkspaceSection .jobSections .primary:hover{filter:brightness(.92);box-shadow:0 6px 14px #0b1f351f}
.jobWorkspaceSection .jobSections button:not(.primary):not(.dangerBtn):not(.dangerSoft):not(.qaPrimary):hover{border-color:var(--hov,#1262d6);color:var(--hov,#0d62d9);background:var(--hov-bg,#f0f6ff)}
.jobSubTabs button.active{background:var(--hov-bg,#eff6ff);border-color:var(--hov,#1262d6);color:var(--hov,#0d62d9);box-shadow:inset 0 -3px 0 var(--hov,#1262d6)}
.jobWorkspaceSection .jobSubTabs button:hover{color:var(--hov,#0d62d9);background:var(--hov-bg,#f0f6ff)}

/* ── Searchable pickers (Supplier / Raised by / clients etc.): fresh pop-out ── */
.searchSelect{position:relative}
button.searchSelectToggle{background:#fff!important;color:#172033!important;border:1px solid #d5dfeb!important;border-radius:10px!important;font-weight:800!important;transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
button.searchSelectToggle:hover{border-color:#1262d6!important;background:#f6faff!important;color:#0d62d9!important;box-shadow:0 4px 10px #0b1f3512}
button.searchSelectToggle i{color:#64748b!important}
.searchSelectPanel{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:min(340px,88vw);z-index:60;box-shadow:0 18px 44px #0b1f3529;border-color:#d5dfeb}
.searchSelectToolbar button{background:#fff!important;color:#475569!important;border:1px solid #d5dfeb!important;border-radius:8px!important;font-weight:800!important;transition:border-color .12s,background .12s,color .12s}
.searchSelectToolbar button:hover{border-color:#1262d6!important;color:#0d62d9!important;background:#f0f6ff!important}
.searchSelectOption{transition:border-color .12s,background .12s}
/* ── PO areas: updated button look + hover ── */
.poRegisterPage .stackedActions button:not(.dangerBtn),.procurementPoList .actions button:not(.dangerBtn),.jobPoDetailHost .actions button:not(.dangerBtn):not(.primary){background:#fff!important;color:#475569!important;border:1px solid #d5dfeb!important;border-radius:8px;font-weight:800;transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
.poRegisterPage .stackedActions button:not(.dangerBtn):hover,.procurementPoList .actions button:not(.dangerBtn):hover,.jobPoDetailHost .actions button:not(.dangerBtn):not(.primary):hover{border-color:#1262d6!important;color:#0d62d9!important;background:#f0f6ff!important;box-shadow:0 4px 10px #0b1f3512}
.poDetailForm .poDetailActions .primary,.poRegisterPage .poDetailActions .primary{background:#14345b!important;border-color:#14345b!important;color:#fff!important;transition:background .12s,box-shadow .12s}
.poDetailForm .poDetailActions .primary:hover,.poRegisterPage .poDetailActions .primary:hover{background:#0d2a4d!important;box-shadow:0 6px 14px #0b1f351f}
.poDetailActions button:not(.primary),.poPrintBox button{background:#fff!important;color:#475569!important;border:1px solid #d5dfeb!important;border-radius:8px;font-weight:800;transition:border-color .12s,background .12s,color .12s}
.poDetailActions button:not(.primary):hover,.poPrintBox button:not(:disabled):hover{border-color:#1262d6!important;color:#0d62d9!important;background:#f0f6ff!important}
.poPrintBox button:disabled{opacity:.5}

.poLineToolbar button:not(.primary){background:#fff!important;color:#475569!important;border:1px solid #d5dfeb!important;border-radius:8px;font-weight:800;transition:border-color .12s,background .12s,color .12s}
.poLineToolbar button:not(.primary):hover{border-color:#1262d6!important;color:#0d62d9!important;background:#f0f6ff!important}
.poLineToolbar button.primary{background:#14345b!important;border-color:#14345b!important;color:#fff!important;transition:background .12s,box-shadow .12s}
.poLineToolbar button.primary:hover{background:#0d2a4d!important;box-shadow:0 6px 14px #0b1f351f}

/* SMS Centre — phone composer */
.phoneStage{display:flex;justify-content:center;padding:8px 0 4px}
.phoneDevice{position:relative;flex:0 0 auto;width:392px;max-width:100%;background:linear-gradient(160deg,#3a3f4a,#15181e 30%,#0b0d11);border-radius:52px;padding:14px 13px 16px;box-shadow:0 30px 60px #0b1f3540,inset 0 0 0 2px #ffffff14}
.phoneNotch{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:104px;height:23px;background:#0b0d11;border-radius:0 0 14px 14px;z-index:3}
.phoneScreen{position:relative;background:linear-gradient(180deg,#f7fafd,#eef3f9);border-radius:40px;overflow:hidden;display:flex;flex-direction:column;height:664px;box-shadow:inset 0 0 0 1px #0b0d1126}
.phoneStatusBar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px 4px;font-size:12.5px;font-weight:900;color:#122033}
.psCarrier{letter-spacing:.14em;font-size:10px;color:#52637a}
.psIcons{display:flex;gap:6px;align-items:center}
.psSig{width:15px;height:10px;background:#122033;clip-path:polygon(0 100%,0 62%,20% 62%,20% 100%,32% 100%,32% 42%,52% 42%,52% 100%,64% 100%,64% 20%,84% 20%,84% 100%,100% 100%,100% 0,96% 0,96% 100%)}
.psBat{width:22px;height:11px;border:1.5px solid #122033aa;border-radius:3.5px;position:relative}
.psBat::before{content:'';position:absolute;right:-4px;top:2.5px;width:2px;height:4px;background:#122033aa;border-radius:0 1px 1px 0}
.psBat::after{content:'';position:absolute;inset:1.5px 25% 1.5px 1.5px;background:#16a34a;border-radius:1.5px}
.phoneBody{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.phoneTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:6px 12px 10px;background:#ffffffe6;border-top:1px solid #dbe4ee;backdrop-filter:blur(8px)}
.phoneTabs button{position:relative;display:grid;justify-items:center;gap:2px;background:none;border:none;color:#7c8aa0;font-size:10.5px;font-weight:900;padding:5px 0 3px;border-radius:12px;transition:color .15s ease,background .15s ease}
.phoneTabs button svg{width:22px;height:22px;fill:currentColor}
.phoneTabs button.on{color:#1262d6}
.phoneTabs button:hover{background:#eaf2ff;color:#1262d6}
.phoneTabBadge{position:absolute;top:1px;right:24%;background:#ef4444;color:#fff;border-radius:999px;font-size:9.5px;min-width:15px;height:15px;display:grid;place-items:center;font-style:normal;padding:0 3px;font-weight:900}
.phoneHomeBar{width:118px;height:5px;border-radius:999px;background:#ffffff59;margin:11px auto 0}
.phoneHead{display:flex;justify-content:space-between;align-items:baseline;padding:10px 18px 8px}
.phoneHead h4{margin:0;font-size:21px;color:#122033;letter-spacing:-.01em}
.phoneHead span{font-size:11px;color:#52637a;font-weight:800}
.phoneSearch{margin:0 14px 8px;border:none;border-radius:11px;background:#e4eaf2;padding:9px 13px;font-size:13px;color:#122033}
.phoneSearch:focus{outline:2px solid #8fb6e8}
.phoneContactList{flex:1;overflow:auto;padding:4px 12px 10px;display:grid;gap:4px;align-content:start}
.phoneContact{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid transparent;border-radius:13px;padding:8px 10px;text-align:left;transition:background .13s ease,border-color .13s ease,transform .13s ease}
.phoneContact:hover{border-color:#bcd2ee;background:#f4f8ff;transform:translateY(-1px)}
.phoneContact.sel{background:#e9f2ff;border-color:#8fb6e8}
.pcAvatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--pcTone,#1262d6);color:#fff;font-weight:950;font-size:12.5px}
.pcMeta{min-width:0}
.pcMeta b{display:block;color:#122033;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcMeta small{color:#64748b;font-size:11.5px}
.pcTick{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #c3d2e4;color:#8aa0ba;font-weight:900;font-size:13px;transition:all .13s ease}
.phoneContact.sel .pcTick{background:#1262d6;border-color:#1262d6;color:#fff}
.phoneCta{margin:8px 14px 12px;border-radius:13px;background:#1262d6;color:#fff;font-weight:900;padding:12px;border:none;font-size:13.5px;transition:background .15s ease,transform .15s ease}
.phoneCta:hover:not(:disabled){background:#0e4faf;transform:translateY(-1px)}
.phoneCta:disabled{background:#b9c9dd;cursor:not-allowed}
.phoneDialDisplay{display:flex;align-items:center;justify-content:center;min-height:58px;font-size:26px;font-weight:800;color:#122033;letter-spacing:.05em;padding:10px 20px 0;word-break:break-all;text-align:center}
.phoneDialDisplay.isEmpty{color:#a5b3c6;font-size:17px;font-weight:700;letter-spacing:0}
.phoneKeypad{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;padding:12px 36px 4px;justify-items:center;align-content:start;flex:1;overflow:auto}
.phoneKey{width:66px;height:66px;border-radius:50%;background:#fff;border:1px solid #e2e9f2;display:grid;place-items:center;align-content:center;box-shadow:0 3px 8px #0b1f350d;transition:background .12s ease,transform .12s ease}
.phoneKey b{font-size:23px;color:#122033;line-height:1;font-weight:700}
.phoneKey small{font-size:8.5px;letter-spacing:.2em;color:#7c8aa0;font-weight:900;min-height:9px}
.phoneKey:hover{background:#eaf2ff}
.phoneKey:active{background:#d8e8ff;transform:scale(.94)}
.phoneKey.isBack b{color:#b91c1c;font-size:19px}
.phoneToRow{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:2px 16px 9px;border-bottom:1px solid #e2e9f2}
.phoneToRow>small{color:#7c8aa0;font-weight:900;font-size:11.5px}
.phoneToHint{color:#a5b3c6;font-size:11.5px;font-style:normal}
.phoneChip{display:inline-flex;align-items:center;gap:5px;background:#e9f2ff;color:#14345b;border-radius:999px;padding:4px 6px 4px 10px;font-weight:800;font-size:11.5px}
.phoneChip button{border:none;background:#c7dcf7;border-radius:50%;width:16px;height:16px;line-height:1;color:#14345b;font-weight:900;font-size:11px;display:grid;place-items:center;padding:0}
.phoneChip button:hover{background:#ef4444;color:#fff}
.phoneTplRow{display:flex;gap:6px;overflow-x:auto;padding:9px 14px;border-bottom:1px solid #eef2f7;flex:0 0 auto}
.phoneTpl{white-space:nowrap;border:1px solid #d3dfec;background:#fff;border-radius:999px;padding:5px 11px;font-size:11px;font-weight:800;color:#33506e;transition:background .13s ease,border-color .13s ease}
.phoneTpl:hover{background:#eaf2ff;border-color:#8fb6e8}
.phoneThread{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.phoneBubble{max-width:80%;border-radius:16px;padding:8px 11px}
.phoneBubble.out{align-self:flex-end;background:#1262d6;color:#fff;border-bottom-right-radius:5px}
.phoneBubble.in{align-self:flex-start;background:#e5eaf1;color:#1c2a3a;border-bottom-left-radius:5px}
.phoneBubble.out.failed{background:#b91c1c}
.phoneBubble.out.dry-run{background:#64748b}
.phoneBubble.out.pending-configuration{background:#b45309}
.phoneBubble p{margin:0;font-size:13px;line-height:1.4;word-break:break-word}
.phoneBubble small{display:block;margin-top:3px;font-size:9.5px;opacity:.72}
.phoneThreadHint{margin:auto;text-align:center;color:#7c8aa0;font-size:12.5px;line-height:1.5;padding:18px;max-width:230px}
.phoneComposeBar{display:flex;gap:8px;align-items:flex-end;padding:8px 10px;background:#ffffffe6;border-top:1px solid #dbe4ee}
.phoneComposeBar textarea{flex:1;border:1px solid #d3dfec;border-radius:19px;background:#fff;padding:9px 14px;font-size:13px;resize:none;max-height:96px;min-height:38px;line-height:1.4}
.phoneComposeBar textarea:focus{outline:2px solid #8fb6e8}
.phoneSend{width:38px;height:38px;border-radius:50%;background:#1262d6;color:#fff;border:none;display:grid;place-items:center;flex:0 0 auto;transition:background .15s ease,transform .15s ease}
.phoneSend:hover:not(:disabled){background:#0e4faf;transform:translateY(-1px)}
.phoneSend:disabled{background:#b9c9dd;cursor:not-allowed}
.phoneSend svg{width:17px;height:17px;fill:#fff}
.phoneBelowBar{justify-content:space-between;align-items:center}
.phoneBelowBar small{color:#64748b;font-weight:800}
@media(max-width:1280px){.phoneScreen{height:620px}}
@media(max-width:820px){.phoneDevice{border-radius:40px}.phoneScreen{border-radius:30px;height:580px}}

/* Phone settings app + 4-tab bar */
.phoneTabs.four{grid-template-columns:repeat(4,1fr)}
.phoneTabBadge.warn{background:#f59e0b}
.smsSideCol{display:grid;gap:14px;align-content:start;min-width:0}
.psOk{color:#15803d;font-weight:900}
.psWarn{color:#b45309;font-weight:900}
.phoneSettings{flex:1;overflow:auto;padding:2px 14px 10px}
.psGroupLabel{font-size:10.5px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;color:#7c8aa0;padding:12px 6px 5px}
.psGroup{background:#fff;border-radius:14px;border:1px solid #e4ebf3;overflow:hidden}
.psRow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid #eef2f7;font-size:13px;color:#122033;font-weight:700}
.psGroup .psRow:last-child{border-bottom:none}
.psRow>span{display:grid;gap:2px}
.psRow>span small{color:#7c8aa0;font-weight:700;font-size:10.5px}
.psValue{color:#52637a;font-weight:800;text-align:right;max-width:58%;word-break:break-word;font-size:11.5px}
.psMissing .psValue{color:#b45309}
.psRow.psCol{flex-direction:column;align-items:stretch}
.psRow.psCol textarea{border:1px solid #dbe4ee;border-radius:9px;background:#f8fafd;padding:8px 10px;font-size:12.5px;resize:vertical;min-height:44px}
.psRow input[type="time"]{border:1px solid #dbe4ee;border-radius:9px;background:#f8fafd;padding:6px 9px;font-size:13px;font-weight:800;color:#122033}
.psUrl{color:#33506e;font-size:10.5px;word-break:break-all;background:#f4f7fb;border-radius:8px;padding:7px 9px;display:block}
.psCopy{margin-top:8px;border:1px solid #c7d4e4;border-radius:9px;background:#fff;color:#14345b;font-weight:900;padding:8px;font-size:12px;transition:background .13s ease,border-color .13s ease}
.psCopy:hover{background:#eaf2ff;border-color:#7fa6d9}
.phoneSwitch{position:relative;flex:0 0 auto;width:44px;height:26px;display:inline-block}
.phoneSwitch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.phoneSwitch i{position:absolute;inset:0;background:#d5dde8;border-radius:999px;transition:background .18s ease}
.phoneSwitch i::after{content:'';position:absolute;top:2.5px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0b1f3533;transition:transform .18s ease}
.phoneSwitch input:checked+i{background:#34c759}
.phoneSwitch input:checked+i::after{transform:translateX(17px)}
.phoneTabBadge[hidden]{display:none}
.mailWorkspace.classic{padding:0;gap:0;background:#f3f4f6}
.mailChrome{display:flex;flex-direction:column;min-width:0}
.mailMenuBar{display:flex;align-items:center;gap:12px;padding:10px 14px 12px;background:#070707;color:#fff;min-width:0}
.mailMenuTabs{display:flex;align-items:center;gap:18px;flex:0 0 auto}
.mailMenuTabs button{border:0;background:transparent;color:rgba(255,255,255,.78);font-size:14px;font-weight:650;padding:4px 0;cursor:pointer}
.mailMenuTabs button.active{color:#fff;box-shadow:inset 0 -3px 0 #9d8bff}
.mailMenuSearch{flex:1 1 auto;display:grid;gap:6px;min-width:0;justify-items:center}
.mailMenuSearch .mailToolbarFind{width:min(760px,100%);flex:0 0 auto}
.mailMenuSearch .mailSearchSummaryBar{width:min(760px,100%)}
.mailMenuStatus{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto;min-width:0}
.mailMenuIdentity{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;color:rgba(255,255,255,.88)}
.mailMenuChip{padding:4px 8px;border-radius:999px;background:#1b2635;color:#d7e3f4;border:1px solid #2d3e57;font-size:10.5px;font-weight:900;line-height:1}
.mailMenuChip.demo,.mailMenuChip.connect{background:#30220f;color:#fbbf24;border-color:#7b5a18}
.mailMenuChip.error{background:#3a1719;color:#fca5a5;border-color:#7f1d1d}
.mailMenuAction{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;border-radius:8px;width:32px;height:32px;display:grid;place-items:center;cursor:pointer}
.mailMenuAction .ico{width:16px;height:16px}
.mailMenuAction:hover{background:rgba(255,255,255,.14)}
.mailMenuAction.primaryAction{background:#1d4ed8;border-color:#1d4ed8}
.mailMenuAction.primaryAction:hover{background:#1340a1}
.mailRibbon{display:flex;align-items:stretch;gap:0;padding:8px 10px 10px;background:#fff;border-bottom:1px solid var(--line);overflow:auto;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.mailRibbonGroup{display:flex;align-items:flex-end;gap:4px;padding:0 12px;border-right:1px solid var(--line);min-height:68px;flex:0 0 auto}
.mailRibbonGroup:last-child{border-right:0}
.mailRibbonButton{display:grid;place-items:center;gap:4px;min-width:72px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font-size:11px;font-weight:800;cursor:pointer;text-align:center}
.mailRibbonButton .ico{width:20px;height:20px}
.mailRibbonButton:hover:not(:disabled){background:#f4f7fb;border-color:#dbe6f1}
body.themeDark .mailRibbonButton:hover:not(:disabled){background:#14263a;border-color:#2d4a6b}
.mailRibbonButton:disabled{opacity:.42}
.mailRibbonButton.primary{background:#eef5ff;border-color:#cfe0ff;color:#0d62d9}
.mailRibbonButton.primary:hover:not(:disabled){background:#dbeafe;border-color:#b6cdf1;color:#0d62d9}
.mailToolbarFind{flex:1 1 200px;min-width:150px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 12px;height:38px;box-shadow:inset 0 1px 1px rgba(0,0,0,.03)}
.mailToolbarFind .ico{width:15px;height:15px;color:var(--muted);flex:0 0 auto}
.mailToolbarFind input{border:0;background:transparent;color:var(--text);width:100%;height:100%;outline:none;font-size:13px}
.mailSaveSearchBtn{border:0;background:#eef5ff;color:#0d62d9;font-weight:900;font-size:11px;border-radius:7px;padding:5px 8px;cursor:pointer;flex:0 0 auto}
.mailSaveSearchBtn:hover{background:#dbeafe}
body.themeDark .mailSaveSearchBtn{background:#14263a;color:#8fc0ff}
body.themeDark .mailSaveSearchBtn:hover{background:#183148}
.mailSearchTools{display:none}
.mailOpToken{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:900;cursor:pointer}
.mailOpToken:hover{border-color:#bfdbfe;background:#eaf2ff;color:#0d62d9}
body.themeDark .mailOpToken:hover{border-color:#2d4a6b;background:#14263a;color:#8fc0ff}
.mailSearchSummaryBar{width:100%;padding:6px 10px;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fbff;color:var(--muted);font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.themeDark .mailSearchSummaryBar{background:#101826;border-color:#2b445f;color:#aebdd0}
.mailTbRight{display:flex;align-items:center;gap:8px;margin-left:auto}
.mailTbAccount{font-size:12px;font-weight:900;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailConnectionDot{width:10px;height:10px;border-radius:50%;background:#16a34a;flex:0 0 auto}
.mailConnectionDot.demo{background:#f59e0b}
.mailConnectionDot.connect{background:#f59e0b}
.mailConnectionDot.error{background:#dc2626}
.mailMailboxStrip{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f2f7fd);box-shadow:0 1px 2px #0b1f3508}
body.themeDark .mailMailboxStrip{background:linear-gradient(180deg,#132030,#101826)}
.mailMailboxStripLeft{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.mailMailboxStripRight{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.mailMailboxIdentity{font-size:12px;font-weight:950;color:var(--text);max-width:min(340px,100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailMailboxChip{padding:4px 8px;border-radius:999px;background:#eef5ff;color:#0d62d9;border:1px solid #cfe0ff;font-size:10.5px;font-weight:900;line-height:1}
body.themeDark .mailMailboxChip{background:#14263a;color:#8fc0ff;border-color:#2d4a6b}
.mailMailboxChip.demo,.mailMailboxChip.connect{background:#fff7ed;color:#d97706;border-color:#fed7aa}
body.themeDark .mailMailboxChip.demo,body.themeDark .mailMailboxChip.connect{background:#2b2212;color:#fbbf24;border-color:#6b5312}
.mailMailboxChip.error{background:#fef2f2;color:#b91c1c;border-color:#fecaca}
body.themeDark .mailMailboxChip.error{background:#35181a;color:#fca5a5;border-color:#7f1d1d}
.mailMailboxMini{font-size:11px;color:var(--muted);font-weight:650;white-space:nowrap}
.mailQuickFilterSection{padding:8px 8px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfbfc}
body.themeDark .mailQuickFilterSection{background:#111a25}
.mailQuickFilterLabel{display:grid;gap:6px}
.mailQuickFilterLabel span{font-size:10px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.mailQuickFilterLabel select{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px 10px;font:inherit;font-size:12.5px;outline:none;appearance:none}
.mailQuickFilterLabel select:focus{border-color:#8fc0ff;box-shadow:0 0 0 3px rgba(13,98,217,.12)}
.mailMainGrid.classic{display:grid;grid-template-columns:280px minmax(420px,520px) minmax(0,1fr);gap:0;align-items:stretch;flex:1;min-width:0;background:#fff}
.mailSidebar.classic{background:#fff;border:0;border-right:1px solid var(--line);border-radius:0;padding:10px 10px 12px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0;align-self:stretch;min-height:0;overflow:auto}
.mailSidebar.classic .mailSectionHead h3{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.mailSidebar.classic .mailSectionHead{margin-bottom:6px}
.mailSavedSearchList{display:grid;gap:6px}
.mailSavedSearchItem{display:flex;align-items:stretch;gap:6px}
.mailSavedSearchApply{flex:1 1 auto;display:grid;gap:2px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer}
.mailSavedSearchApply b{font-size:12px;line-height:1.2}
.mailSavedSearchApply small{font-size:10.5px;color:var(--muted);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailSavedSearchApply:hover{border-color:#bfdbfe;background:#eef5ff;color:#0d62d9}
body.themeDark .mailSavedSearchApply:hover{border-color:#2d4a6b;background:#14263a;color:#8fc0ff}
.mailSavedSearchDelete{flex:0 0 auto;min-width:30px;justify-content:center;padding:0 8px;border-radius:8px}
.mailThreadSearchBar{display:flex;align-items:flex-end;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);margin:10px 0 6px}
.mailThreadSearchBar label{display:grid;gap:4px;flex:1 1 auto;font-size:10px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.mailThreadSearchBar input{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:8px 10px;font-size:13px;outline:none}
.mailThreadSearchBar input:focus{border-color:#8fc0ff;box-shadow:0 0 0 3px rgba(13,98,217,.12)}
.mailThreadSearchBar .secondaryBtn{flex:0 0 auto}
.mailOpsSection{padding:10px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,#f8fbff,#f2f7fd)}
body.themeDark .mailOpsSection{background:linear-gradient(180deg,#142131,#101826)}
.mailOpsSummary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mailOpsStat{display:grid;gap:2px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.mailOpsStat span{font-size:10px;line-height:1.1;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:900}
.mailOpsStat b{font-size:12px;line-height:1.25;word-break:break-word}
.mailOpsChips{display:flex;flex-wrap:wrap;gap:6px}
.mailOpChip{padding:5px 8px;border-radius:999px;background:#eef5ff;color:#0d62d9;border:1px solid #cfe0ff;font-size:10.5px;font-weight:900;line-height:1}
body.themeDark .mailOpChip{background:#14263a;color:#8fc0ff;border-color:#2d4a6b}
.mailOpChip.muted{opacity:.75}
.mailOpsActions{display:flex;flex-wrap:wrap;gap:6px}
.mailOpsActions .mailTbBtn{flex:1 1 120px;justify-content:center;height:34px;padding:0 10px}
.mailOpsActions .mailTbBtn.primaryTb{min-width:0}
.mailFolderBtn.slim{padding:7px 9px;border-radius:8px;font-weight:850;font-size:12.5px;width:100%;background:transparent;border:1px solid transparent;color:var(--text)}
.mailFolderBtn.slim:hover{background:#eef5ff;border-color:#bfdbfe}
body.themeDark .mailFolderBtn.slim:hover{background:#14263a;border-color:#2d4a6b}
.mailFolderBtn.slim .mailFolderLabel i{width:20px;height:20px;border-radius:6px;font-size:11px;background:#e3edff;color:#1262d6}
body.themeDark .mailFolderBtn.slim .mailFolderLabel i{background:#1b3a5e;color:#8fc0ff}
.mailFolderBtn.slim.active{background:#eaf2ff;box-shadow:inset 0 0 0 1px #bfdbfe;color:#0d62d9}
body.themeDark .mailFolderBtn.slim.active{background:#14263a;box-shadow:inset 0 0 0 1px #2d4a6b;color:#8fc0ff}
.mailFolderBtn.slim b{min-width:24px;height:20px;font-size:11px;background:#eaf2ff;color:#1262d6}
.mailSwitchboard{margin-top:auto;border-top:1px solid var(--line);padding-top:8px;display:grid;gap:3px}
.mailSwitchboard button{display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);padding:9px 10px;font-weight:900;font-size:13px;text-align:left}
.mailSwitchboard button .ico{width:17px;height:17px}
.mailSwitchboard button:hover{background:#eef5ff}
body.themeDark .mailSwitchboard button:hover{background:#14263a}
.mailSwitchboard button.active{background:#f6b26b26;color:#b45309;box-shadow:inset 3px 0 0 #f59e0b}
body.themeDark .mailSwitchboard button.active{color:#fbbf24}
.mailListPane.classic{background:#fff;border:0;border-right:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.mailListHead.classic{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fff}
.mailListHead.classic b{font-size:15px}
.mailListHead.classic small{display:block;color:var(--muted);font-size:11px;margin-top:1px}
.mailListHead.classic>span{font-size:11px;color:var(--muted);font-weight:900}
.mailArrange{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--line);background:#fff;font-size:11px;color:var(--muted);font-weight:900}
.mailArrange select{border:0;background:transparent;color:var(--text);font-size:11px;font-weight:900;outline:none}
.mailList.classic{display:block;padding:0;gap:0;overflow:auto;flex:1;min-height:0;max-height:calc(100vh - 250px)}
.mailRow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.mailRow:hover{background:#f8f9fd}
body.themeDark .mailRow:hover{background:#122133}
.mailRow.active{background:#f6f4ff;box-shadow:inset 3px 0 0 #7c6df0}
body.themeDark .mailRow.active{background:#17112a}
.mailRow .mailRowAvatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:950}
.mailRowText{min-width:0;display:grid;gap:1px}
.mailRowText>b{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;font-weight:750}
.mailRow.unread .mailRowText>b{font-weight:1000}
.mailRow.unread .mailRowSubject{font-weight:950;color:var(--blue)}
.mailRowText time{color:var(--muted);font-size:11px;font-weight:850;flex:0 0 auto}
.mailRowFrom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.mailRowSubject{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.mailRowText small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailRowBadges{display:flex;align-items:center;gap:2px}
.mailRowBadges i{font-style:normal;font-size:12px}
.mailRowFlag{border:0;background:transparent;padding:4px;border-radius:6px;color:#c6cfda;display:grid;place-items:center}
.mailRowFlag .ico{width:14px;height:14px}
.mailRowFlag:hover{background:#fde68a55;color:#b45309}
.mailRowFlag.on{color:#dc2626}
.mailRowFlag.on .ico{fill:#dc2626}
.mailRow.flagged{box-shadow:inset -3px 0 0 #dc2626}
.mailReaderPane.classic{background:#fff;border:0;border-radius:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}
.mailReaderCard.classic{display:flex;flex-direction:column;min-height:0;flex:1;padding:0}
.mailReaderBar{padding:14px 16px 10px;border-bottom:1px solid var(--line);background:#fff}
.mailReaderBar h3{margin:0;font-size:19px;line-height:1.25}
.mailReaderBar span{display:block;color:var(--muted);font-weight:900;font-size:12.5px;margin-top:3px}
.mailFollowupBar{background:#fef3c7;color:#92400e;border-bottom:1px solid #fcd34d;padding:7px 16px;font-size:12px;font-weight:950}
body.themeDark .mailFollowupBar{background:#3a2c0d;color:#fbbf24;border-color:#6b5312}
.mailThreadNotice{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #e0e7ff;background:#f7f7ff;color:#4c4fa8;padding:8px 16px;font-size:12px;font-weight:650}
body.themeDark .mailThreadNotice{background:#11263a;color:#8fc0ff;border-color:#23415f}
.mailThreadNotice .miniBtn{flex:0 0 auto}
.mailReaderPane.classic .mailReaderSenderRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.mailReaderPane.classic .mailReaderSenderText b{display:block;font-size:13px}
.mailReaderPane.classic .mailReaderSenderText small{display:block;color:var(--muted);margin-top:2px}
.mailReaderPane.classic .mailReaderStamp{font-size:11px;color:var(--muted);font-weight:900}
.mailReaderPane.classic .mailBody{white-space:pre-wrap;line-height:1.6;padding:16px;font-size:13.5px;overflow:auto;flex:1;min-height:0;border:0;border-radius:0;background:transparent;color:var(--text)}
.mailReaderPane.classic .mailAttachmentCard{margin:0 16px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:10px 12px}
.mailReaderPane.classic .mailReaderActions.footer{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding:10px 16px;background:var(--bg)}
.mailReaderPane.classic .mailReaderActions.footer button{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:8px 12px;font-weight:850;font-size:12.5px}
.mailReaderPane.classic .mailReaderActions.footer button.primary{border-color:transparent}
.mailReaderPane.classic .mailReaderActions.footer button.dangerSoft{color:#b91c1c;border-color:#fecaca;background:#fff1f2;margin-left:auto}
body.themeDark .mailReaderPane.classic .mailReaderActions.footer button.dangerSoft{background:#3a1416;border-color:#7f1d1d;color:#fca5a5}
/* pop-out window: mail fills the whole viewport */
body.mailPopoutBody{overflow:hidden}
.mailPopoutShell{height:100vh;display:flex;flex-direction:column;min-width:0}
.mailPopoutShell #content{flex:1;min-height:0;display:flex;flex-direction:column}
.mailPopoutShell .page.mailPage{flex:1;min-height:0;display:flex;flex-direction:column}
.mailPopoutShell .mailWorkspace.classic{flex:1;min-height:100vh;display:flex;flex-direction:column}
.mailPopoutShell .mailList.classic{max-height:none}
.mailPopoutShell .mailSidebar.classic{position:relative;top:auto}
@media(max-width:1100px){.mailMainGrid.classic{grid-template-columns:200px minmax(0,1fr)}.mailReaderPane.classic{grid-column:1/-1;min-height:480px}.mailSidebar.classic{position:relative;top:auto}}
@media(max-width:820px){.mailMainGrid.classic{grid-template-columns:1fr}.mailToolbar{gap:4px}.mailTbBtn span{display:none}.mailTbBtn.primaryTb span{display:inline}.mailTbAccount{display:none}.mailList.classic{max-height:420px}.mailOpsSummary{grid-template-columns:1fr}.mailOpsActions .mailTbBtn{flex:1 1 100%}.mailSearchTools{font-size:9px}.mailSearchSummaryBar{white-space:normal}.mailSavedSearchItem{align-items:stretch}.mailThreadSearchBar{align-items:stretch;flex-direction:column}.mailThreadSearchBar .secondaryBtn{width:100%}}
/* Mail classic: viewport-locked panes, each scrolls internally */
.mailWorkspace.classic{display:flex;flex-direction:column;height:calc(100vh - 62px);min-height:0;overflow:hidden}
.mailMainGrid.classic{flex:1;min-height:0;align-items:stretch}
.mailSidebar.classic{position:relative;top:auto;min-height:0;overflow:auto}
.mailListPane.classic,.mailReaderPane.classic{min-height:0}
.mailList.classic{max-height:none}
.mailReaderPane.classic .mailBody{overflow-wrap:anywhere;word-break:break-word}
.mailReaderActions.top{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:8px 16px;background:var(--bg)}
.mailReaderActions.top button{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:7px 11px;font-weight:850;font-size:12.5px}
.mailReaderActions.top button.primary{border-color:transparent}
.mailReaderActions.top button.dangerSoft{color:#b91c1c;border-color:#fecaca;background:#fff1f2;margin-left:auto}
body.themeDark .mailReaderActions.top button.dangerSoft{background:#3a1416;border-color:#7f1d1d;color:#fca5a5}
.mailFolderBtn.slim.child{padding-left:30px;font-weight:800;font-size:12px}
.mailFolderBtn.slim.child .mailFolderLabel i{width:14px;height:14px;background:transparent;color:var(--muted);font-size:10px}
.mailFolderExpand{border:0;background:transparent;color:var(--muted);font-size:10.5px;font-weight:900;text-align:left;padding:3px 9px 3px 30px;cursor:pointer;width:100%}
.mailFolderExpand:hover{color:var(--blue)}
.mailPopoutShell .mailWorkspace.classic{height:100vh;min-height:0}
@media(max-width:1100px){.mailWorkspace.classic{height:auto;overflow:visible}.mailList.classic{max-height:480px}.mailReaderPane.classic .mailBody{max-height:60vh}}
.page.mailPage{padding:0;max-width:none;min-height:0}
/* Mail: sidebar scroll + folder definition */
.mailSidebar.classic{align-self:stretch;height:auto}
.mailSidebar.classic .mailFolderButtons{display:grid;gap:0}
.mailSidebar.classic .mailFolderBtn.slim{border-radius:6px;border-bottom:1px solid var(--line)}
.mailSidebar.classic .mailFolderButtons>.mailFolderBtn.slim:last-child{border-bottom:0}
.mailFolderBtn.slim.child{background:linear-gradient(90deg,transparent 14px,var(--line) 14px,var(--line) 15px,transparent 15px);padding-left:30px}
body.themeDark .mailFolderBtn.slim.child{background:linear-gradient(90deg,transparent 14px,#2d4057 14px,#2d4057 15px,transparent 15px)}
.mailFolderBtn.slim.child:hover,.mailFolderBtn.slim.child.active{background-color:#eef5ff}
body.themeDark .mailFolderBtn.slim.child:hover,body.themeDark .mailFolderBtn.slim.child.active{background-color:#14263a}
/* Mail: multi-select */
.mailRow{grid-template-columns:auto 34px minmax(0,1fr) auto}
.mailRowCheck{display:grid;place-items:center;width:20px}
.mailRowCheck input{width:15px;height:15px;accent-color:var(--blue);cursor:pointer}
.mailRow.checked{background:#fef9c3}
body.themeDark .mailRow.checked{background:#2c2a12}
.mailSelectAll{display:grid;place-items:center;margin-right:2px}
.mailSelectAll input{width:14px;height:14px;accent-color:var(--blue);cursor:pointer}
.mailBulkBar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:7px 12px;border-bottom:1px solid #fcd34d;background:#fef3c7;font-size:12px}
body.themeDark .mailBulkBar{background:#3a2c0d;border-color:#6b5312;color:#fbbf24}
.mailBulkBar b{font-size:12px}
.mailBulkBar button{border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);padding:5px 9px;font-weight:850;font-size:11.5px}
.mailBulkBar button.dangerSoft{color:#b91c1c;border-color:#fecaca;background:#fff1f2}
/* Mail: html body + attachments */
.mailBodyFrame{flex:1;min-height:260px;width:100%;border:0;background:#fff}
.mailAttachRow{display:flex;gap:8px;flex-wrap:wrap;padding:10px 16px;border-top:1px solid var(--line);background:var(--bg)}
.mailAttachChip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:6px 10px;font-size:12px}
.mailAttachChip b{font-weight:850;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailAttachChip small{color:var(--muted)}
.mailAttachChip button{border:0;background:transparent;color:var(--blue);font-weight:900;cursor:pointer;padding:2px 4px}
/* Mail: rich compose */
.mailComposePanel.wide{width:min(860px,94vw)}
.mailComposeForm.rich{display:flex;flex-direction:column;gap:8px}
.mailComposeRow{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:8px;align-items:center}
.mailComposeRow>span{font-size:12px;font-weight:900;color:var(--muted);text-align:right}
.mailComposeRow input{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px 10px;width:100%}
.mailCcToggle{border:0;background:transparent;color:var(--blue);font-weight:850;font-size:12px;cursor:pointer}
.mailEditorToolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--bg);padding:6px 8px}
.mailEditorToolbar button{border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);padding:5px 9px;font-weight:850;font-size:12px;cursor:pointer}
.mailEditorToolbar button:hover{background:#eaf2ff;border-color:#bfdbfe}
body.themeDark .mailEditorToolbar button:hover{background:#16283d;border-color:#2d4a6b}
.mailEditorToolbarSpacer{flex:1}
.mailEditor{border:1px solid var(--line);border-radius:0 0 8px 8px;background:var(--panel);color:var(--text);min-height:240px;max-height:44vh;overflow:auto;padding:12px;line-height:1.55;font-size:13.5px;outline:none}
.mailEditor:focus{border-color:var(--blue)}
.mailAttachList{display:flex;gap:8px;flex-wrap:wrap}
/* Job files: SharePoint backend */
.filesBackendChip{display:inline-flex;align-items:center;border:1px solid #bfdbfe;border-radius:999px;background:#eaf2ff;color:#0d62d9;padding:6px 11px;font-size:11.5px;font-weight:900}
.filesBackendChip.warn{border-color:#fcd34d;background:#fef3c7;color:#92400e}
body.themeDark .filesBackendChip{background:#14263a;border-color:#2d4a6b;color:#8fc0ff}
.officeOpenBtn{border:1px solid #bfdbfe;border-radius:7px;background:#eaf2ff;color:#0d62d9;padding:7px 10px;font-weight:850;font-size:12px}
.officeOpenBtn:hover{background:#dbeafe}
body.themeDark .officeOpenBtn{background:#14263a;border-color:#2d4a6b;color:#8fc0ff}
/* App file browser (PDF Cloud open, save-to-job pickers) */
.appFileBrowser{width:min(920px,94vw)}
.afbBody{display:flex;flex-direction:column;gap:10px;min-height:380px}
.afbSearch input{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:10px 12px}
.afbGrid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:10px;min-height:0}
.afbJobs{display:flex;flex-direction:column;gap:4px;max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--bg)}
.afbJob{text-align:left;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);padding:9px 10px;display:grid;gap:2px}
.afbJob b{font-size:12.5px}
.afbJob small{color:var(--muted);font-size:11px}
.afbJob:hover{background:#eef5ff;border-color:#bfdbfe}
body.themeDark .afbJob:hover{background:#14263a;border-color:#2d4a6b}
.afbJob.active{background:#eaf2ff;border-color:#bfdbfe;color:#0d62d9}
body.themeDark .afbJob.active{background:#14263a;border-color:#2d4a6b;color:#8fc0ff}
.afbFiles{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:12px}
.afbFolder h4{display:flex;align-items:center;gap:7px;margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.afbFolder h4 .ico{width:14px;height:14px}
.afbFolder h4 small{color:var(--muted);font-weight:800}
.afbFile{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr);gap:9px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px;margin-bottom:6px}
.afbFile:hover{border-color:#bfdbfe;background:#f4f8fe}
body.themeDark .afbFile:hover{border-color:#2d4a6b;background:#122133}
.afbFile span{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eaf2ff;color:#0d62d9}
body.themeDark .afbFile span{background:#14263a;color:#8fc0ff}
.afbFile b{display:block;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.afbFile small{display:block;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailAttSavePanel{width:min(520px,94vw)}
.mailAttSaveForm{display:flex;flex-direction:column;gap:10px}
.mailAttSaveForm label{display:grid;gap:4px;font-size:12px;font-weight:900;color:var(--muted)}
.mailAttSaveForm input,.mailAttSaveForm select{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px 10px;font-weight:700}
.mailAttachChip [data-mail-att-save]{border:1px solid #bfdbfe;border-radius:6px;background:#eaf2ff;color:#0d62d9;font-weight:850;font-size:11px;padding:4px 7px;cursor:pointer}
body.themeDark .mailAttachChip [data-mail-att-save]{background:#14263a;border-color:#2d4a6b;color:#8fc0ff}
@media(max-width:760px){.afbGrid{grid-template-columns:1fr}.afbJobs{max-height:200px}}
/* app file browser must sit above the PDF Cloud overlay (z-index 2000) */
#modalHost .modalBackdrop{z-index:2400}
/* PDF Cloud pop-out window */
body.pdfPopoutBody{overflow:hidden}
.pdfPopoutShell{height:100vh;display:flex;flex-direction:column;min-width:0}
.pdfPopoutShell #content{flex:1;min-height:0}
.mailLoadMoreBtn{display:block;width:calc(100% - 20px);margin:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--blue);padding:10px;font-weight:900;font-size:12.5px;cursor:pointer}
.mailLoadMoreBtn:hover:not(:disabled){background:#eaf2ff;border-color:#bfdbfe}
body.themeDark .mailLoadMoreBtn:hover:not(:disabled){background:#14263a;border-color:#2d4a6b}
.mailLoadMoreBtn:disabled{opacity:.6}
.mailBodyLoading{padding:6px 16px;font-size:11px;font-weight:900;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--line)}
/* Mail: resizable columns */
.mailMainGrid.classic.resizable{grid-template-columns:var(--mailSideW,290px) 6px var(--mailListW,520px) 6px minmax(0,1fr)}
.mailColHandle{cursor:col-resize;border-radius:3px;position:relative}
.mailColHandle::after{content:'';position:absolute;top:0;bottom:0;left:2px;width:2px;border-radius:2px;background:transparent;transition:background .15s}
.mailColHandle:hover::after{background:var(--blue)}
/* Mail: single-message pop-out window */
body.mailMsgPopoutBody .mailChrome,body.mailMsgPopoutBody .mailSidebar,body.mailMsgPopoutBody .mailListPane,body.mailMsgPopoutBody .mailColHandle{display:none}
body.mailMsgPopoutBody .mailMainGrid.classic.resizable{grid-template-columns:1fr}
.mailMsgPopBtn{position:absolute;top:12px;right:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);padding:6px 8px;cursor:pointer}
.mailMsgPopBtn:hover{color:var(--blue);border-color:#bfdbfe}
.mailReaderBar{position:relative;padding-right:56px}
/* Mail: visual refresh — lighter type, calmer buttons */
.mailToolbar{padding:6px 8px;border-radius:12px}
.mailTbBtn{font-weight:600;font-size:13px;color:#3c4859;border-radius:8px}
body.themeDark .mailTbBtn{color:#c7d4e4}
.mailTbBtn.primaryTb{font-weight:650}
.mailTbAccount{font-weight:600}
.mailSidebar.classic .mailSectionHead h3{font-weight:700;font-size:10.5px;letter-spacing:.07em}
.mailFolderBtn.slim{font-weight:550;font-size:13px;color:#3c4859}
body.themeDark .mailFolderBtn.slim{color:#c7d4e4}
.mailFolderBtn.slim.active{font-weight:650}
.mailFolderBtn.slim b{font-weight:700;font-size:11px}
.mailFolderExpand{font-weight:650}
.mailSwitchboard button{font-weight:600;font-size:12.5px}
.mailSwitchboard button.active{font-weight:700}
.mailListHead.classic b{font-weight:700;font-size:14px}
.mailListHead.classic small{font-weight:500}
.mailListHead.classic>span{font-weight:600}
.mailArrange,.mailArrange select{font-weight:600}
.mailRowText>b{font-weight:500;font-size:12.5px}
.mailRow.unread .mailRowText>b{font-weight:750}
.mailRowSubject{font-weight:450}
.mailRow.unread .mailRowSubject{font-weight:650}
.mailRowText time{font-weight:500}
.mailRowText small{font-weight:400}
.mailReaderBar h3{font-weight:650;font-size:18px}
.mailReaderBar span{font-weight:500}
.mailReaderActions.top button{font-weight:550;font-size:12.5px;padding:6px 11px}
.mailReaderActions.top button.primary{font-weight:650}
.mailReaderPane.classic .mailReaderSenderText b{font-weight:600}
.mailReaderPane.classic .mailReaderSenderText small{font-weight:400}
.mailReaderPane.classic .mailReaderStamp{font-weight:500}
.mailBulkBar,.mailBulkBar b,.mailBulkBar button{font-weight:600}
.mailAttachChip b{font-weight:600}
.mailAttachChip [data-mail-att-save]{font-weight:600}
.mailLoadMoreBtn{font-weight:650}
.mailBanner{font-weight:600}
.mailReaderEmpty{display:grid;place-items:center;gap:12px;min-height:100%;padding:28px;text-align:center;font-size:15px;color:var(--muted);font-weight:700;background:#fff;border:0;border-radius:0}
.mailReaderEmpty::before{content:'✉';display:grid;place-items:center;width:110px;height:110px;border-radius:24px;background:linear-gradient(180deg,#f2f5fb,#e7ebf3);color:#8c94a3;font-size:48px;box-shadow:inset 0 1px 0 #ffffff,0 10px 24px rgba(15,23,42,.08)}
.mailReaderEmpty strong{display:block;font-size:18px;color:var(--text);font-weight:700}
.mailReaderEmpty small{display:block;font-size:13px;font-weight:500}
@media(max-width:1100px){.mailColHandle{display:none}.mailMainGrid.classic.resizable{grid-template-columns:220px minmax(0,1fr)}.mailReaderPane.classic{grid-column:1/-1;min-height:480px}.mailSidebar.classic{position:relative;top:auto}.mailRibbon{flex-wrap:wrap}.mailMenuBar{flex-wrap:wrap}.mailMenuSearch{order:3;flex-basis:100%}}
@media(max-width:820px){.mailMainGrid.classic.resizable{grid-template-columns:1fr}.mailMenuBar{gap:8px}.mailMenuTabs button{font-size:13px}.mailMenuStatus{display:none}.mailRibbon{gap:0}.mailRibbonGroup{min-height:auto;padding:0 8px 6px}.mailRibbonButton{min-width:60px;font-size:10px}.mailRibbonButton .ico{width:18px;height:18px}.mailToolbarFind{height:36px}.mailSearchSummaryBar{white-space:normal}.mailSavedSearchItem{align-items:stretch}.mailThreadSearchBar{align-items:stretch;flex-direction:column}.mailThreadSearchBar .secondaryBtn{width:100%}.mailList.classic{max-height:420px}.mailOpsSummary{grid-template-columns:1fr}.mailOpsActions .mailTbBtn{flex:1 1 100%}.mailSearchTools{display:none}}
/* Mail: conversations, signature, dnd, nav badge */
.mailThreadCount{font-style:normal;min-width:20px;height:18px;border-radius:999px;display:inline-grid;place-items:center;background:#e3edff;color:#1262d6;font-size:10.5px;font-weight:700;padding:0 5px}
body.themeDark .mailThreadCount{background:#1b3a5e;color:#8fc0ff}
.mailThreadStack{border-bottom:1px solid var(--line);padding:8px 16px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.mailThreadStack>small{color:var(--muted);font-weight:600;font-size:10.5px}
.mailThreadCard{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:7px 10px;cursor:pointer}
.mailThreadCard:hover{border-color:#bfdbfe;background:#f4f8fe}
body.themeDark .mailThreadCard:hover{border-color:#2d4a6b;background:#122133}
.mailThreadCard .mailRowAvatar{width:26px;height:26px;font-size:10px}
.mailThreadCardText{min-width:0}
.mailThreadCardText b{display:block;font-weight:600;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailThreadCardText small{display:block;color:var(--muted);font-size:11px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mailThreadCard time{color:var(--muted);font-size:10.5px;font-weight:500;flex:0 0 auto}
.mailComposePanel.dragOver{outline:2px dashed var(--blue);outline-offset:-6px}
.mailSigBackdrop{z-index:2600}
.navUnreadBadge{font-style:normal;margin-left:auto;min-width:20px;height:18px;border-radius:999px;display:inline-grid;place-items:center;background:#dc2626;color:#fff;font-size:10px;font-weight:800;padding:0 5px}
/* amCloud dialogs — replaces native confirm/alert */
.amDialogBack{position:fixed;inset:0;background:#0b1726a8;display:grid;place-items:center;z-index:3000;padding:18px;animation:amDialogIn .12s ease}
@keyframes amDialogIn{from{opacity:0}to{opacity:1}}
.amDialog{width:min(480px,94vw);background:var(--panel,#fff);border:1px solid var(--line,#dbe4ef);border-radius:12px;box-shadow:0 28px 80px #02061766;padding:16px 18px;color:var(--text,#1d2838)}
.amDialogTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.amDialogTitle span{font-weight:950;font-size:15px}
.amDialogX{border:0;background:transparent;color:#1262d6;font-size:12.5px;font-weight:800;cursor:pointer;padding:2px 4px}
.amDialogX:hover{text-decoration:underline}
.amDialogBody{font-size:14px;line-height:1.55;padding:2px 0 4px}
.amDialogFoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.amDialogLogo{height:20px;width:auto;opacity:.5}
.amDialogBtns{display:flex;gap:8px;margin-left:auto}
.amDialogPrimary,.amDialogPlain{min-width:96px;padding:10px 16px;border-radius:8px;font-weight:850;font-size:13px;cursor:pointer}
.amDialogPrimary{border:1px solid #1262d6;background:#1262d6;color:#fff}
.amDialogPrimary:hover{background:#0f56bd}
.amDialogPlain{border:1px solid #c9d5e4;background:#fff;color:#33404f}
.amDialogPlain:hover{background:#f2f6fb}
body.themeDark .amDialog{background:#141b28;border-color:#243349}
body.themeDark .amDialogPlain{border-color:#3d4c60;background:#182338;color:#c9d6e6}

/* Mail search filters */
.mailFilterToggle{border:0;background:transparent;color:var(--muted);font-weight:600;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:6px;flex:0 0 auto}
.mailFilterToggle:hover{color:var(--blue);background:#eaf2ff}
body.themeDark .mailFilterToggle:hover{background:#14263a}
.mailFilterToggle.on{color:var(--blue);font-weight:700}
.mfCheck{display:flex!important;align-items:center;gap:8px;font-weight:600!important;color:var(--text)!important}
.mfCheck input{width:15px;height:15px;accent-color:var(--blue)}

/* filed-email (.eml) in-app viewer */
.emlViewerPanel{width:min(860px,96vw);display:flex;flex-direction:column;max-height:88vh}
.emlMeta{padding:10px 16px;border-bottom:1px solid var(--line,#e2e8f0);font-size:12.5px;line-height:1.55;color:var(--muted,#475569);background:#f8fafc}
body.themeDark .emlMeta{background:#0f1c2c;border-color:#1f3550}
.emlAttachments{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line,#e2e8f0)}
.emlAtt{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--line,#d7dfeb);border-radius:9px;background:#fff;cursor:pointer;font-size:12.5px;font-weight:600;color:var(--text,#172033)}
.emlAtt:hover{border-color:var(--blue,#2563eb);color:var(--blue,#2563eb);background:#f4f8ff}
.emlAtt small{color:var(--muted,#64748b);font-weight:500}
body.themeDark .emlAtt{background:#12233a;border-color:#24405e;color:#dbe7f5}
.emlBodyWrap{flex:1;display:flex;min-height:320px;overflow:auto}
.emlBodyFrame{min-height:420px}
.emlPlainBody{white-space:pre-wrap;padding:16px;font-size:13.5px;line-height:1.6;overflow:auto}

/* branded prompt input (amPrompt) */
.amDialogInput{display:block;width:100%;margin-top:14px;padding:10px 13px;border:1px solid #b9c6d8;border-radius:8px;font:inherit;font-weight:500;font-size:14px;color:#1d2838;background:#fff;box-shadow:inset 0 1px 3px rgba(23,42,70,.08)}
.amDialogInput:focus{outline:none;border-color:#5b3df5;box-shadow:0 0 0 3px rgba(91,61,245,.18)}
body.themeDark .amDialogInput{background:#101b2c;border-color:#2b445f;color:#e3ecf7}

/* while a save is in flight the whole app signals it */
body.amApiBusy, body.amApiBusy button{cursor:progress}

/* mail chrome refinements: brand tab, ribbon captions, favourites, overlap guards */
.mailMenuBrand{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:#fff;padding:4px 10px 4px 2px;white-space:nowrap}
.mailMenuBrand .ico{width:18px;height:18px}
.mailMenuSearch{flex:1;min-width:200px}
.mailMenuStatus{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:8px}
.mailRibbonGroup{display:flex;flex-direction:column;align-items:center;gap:2px}
.mailRibbonGroup>.mailRibbonButton{align-self:auto}
.mailRibbonGroup{flex-direction:row;flex-wrap:wrap;position:relative;padding-bottom:18px!important}
.mailRibbonCaption{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:10px;font-weight:600;color:#8a94a6;letter-spacing:.4px}
.mailFavBtn .mailFavStar{font-style:normal;color:#f2a91e;font-size:12px}
.mailReaderSenderRow>div{min-width:0}
.mailReaderSenderRow>div b,.mailReaderSenderRow>div span,.mailReaderSenderRow>div small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media(max-width:1500px){.mailMainGrid.classic{grid-template-columns:240px minmax(340px,420px) minmax(0,1fr)}}
@media(max-width:1360px){.mailMenuIdentity{display:none}}
@media(max-width:1400px){.mailReaderSenderRow{grid-template-columns:auto minmax(0,1fr)}.mailReaderStamp{grid-column:2;justify-self:start}}

/* compact ribbon + hard overflow guards */
.mailRibbonButton{min-width:58px;padding:5px 8px;font-size:10.5px;gap:3px}
.mailRibbonButton .ico{width:17px;height:17px}
.mailRibbon{flex-wrap:wrap;row-gap:2px;padding-top:4px}
.mailRibbonGroup{padding-bottom:15px!important}
.mailRibbonCaption{font-size:9.5px}
.page.mailPage{max-width:100%;overflow-x:clip}
.mailWorkspace.classic{max-width:100%;overflow-x:hidden}
.mailReaderBar h3{overflow-wrap:anywhere}
.mailSavedSearchModalBlock{padding:10px 16px;border-bottom:1px solid var(--line,#e2e8f0)}
.mailSavedSearchModalBlock>b{display:block;font-size:12px;margin-bottom:6px;color:var(--muted,#64748b)}

/* unified black command bar: ribbon + search + account on one row */
.mailCommandBar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 12px;background:#070707;min-width:0}
.mailChrome.unified{background:#070707}
.mailRibbon.dark{background:transparent;border:0;padding:0;margin:0;flex-wrap:nowrap}
.mailRibbon.dark .mailRibbonGroup{border-right:1px solid rgba(255,255,255,.14);padding:0 8px 15px;margin:0}
.mailRibbon.dark .mailRibbonGroup:last-child{border-right:0}
.mailRibbon.dark .mailRibbonButton{color:#fff}
.mailRibbon.dark .mailRibbonButton:hover:not(:disabled){background:rgba(255,255,255,.14);border-color:transparent}
.mailRibbon.dark .mailRibbonButton:disabled{color:rgba(255,255,255,.38)}
.mailRibbon.dark .mailRibbonCaption{color:rgba(255,255,255,.5)}
.mailCommandBar .mailMenuSearch{flex:1;min-width:220px}
.mailCommandBar .mailMenuStatus{margin-left:auto}
@media(max-width:1500px){.mailCommandBar{gap:8px}.mailCommandBar .mailMenuSearch{min-width:180px}}
@media(max-width:1750px){.mailCommandBar .mailMenuIdentity{display:none}}
@media(max-width:1360px){.mailRibbon.dark{flex-wrap:wrap}}
.mailCommandBar .mailMenuSearch{min-width:0;flex:1 1 260px}
.mailCommandBar .mailToolbarFind{min-width:0;width:100%;max-width:560px;margin-left:auto;margin-right:auto}
.mailCommandBar .mailToolbarFind input{min-width:60px;flex:1 1 auto;width:auto}
/* Job correspondence register — inbox layout */
.jobCorroPanel .railHead{align-items:flex-start;gap:12px;flex-wrap:wrap}
.jobCorroTools{display:flex;gap:8px;flex:1 1 320px;justify-content:flex-end}
.jobCorroTools input,.jobCorroTools select{height:36px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--panel);color:var(--text);font:inherit}
.jobCorroTools input{flex:1 1 200px;max-width:340px}
.jobCorroInbox{display:grid;grid-template-columns:212px minmax(280px,380px) minmax(0,1fr);gap:0;margin-top:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);height:min(66vh,760px)}
.jobCorroFolders{border-right:1px solid var(--line);overflow-y:auto;padding:10px 8px;background:var(--bg);display:flex;flex-direction:column;gap:2px}
.jobCorroFolderCap{font-size:10.5px;font-weight:950;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:4px 10px 8px}
.jobCorroFolders .mailFolderBtn{width:100%}
.jobCorroListPane{border-right:1px solid var(--line);overflow-y:auto;outline:none;min-width:0}
.jobCorroListPane:focus-visible{box-shadow:inset 0 0 0 2px #1262d655}
.jobCorroMailRow{grid-template-columns:38px minmax(0,1fr)}
.jobCorroMailRow .mailRowAvatar svg{width:15px;height:15px}
.jobCorroMailRow.active{background:#eaf1fb;border-left:3px solid #1262d6;padding-left:9px}
body.themeDark .jobCorroMailRow.active{background:#16283d}
.mailRowSnippet{display:block;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jobCorroRowChips{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap}
.jobCorroKindChip{background:#eef2f7;color:#33445c;border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:850;white-space:nowrap}
body.themeDark .jobCorroKindChip{background:#1d2c3e;color:#b7c6da}
.statusChip{border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:850;white-space:nowrap}
.statusChip.good{background:#e6f4ea;color:#177a3d}
.statusChip.warn{background:#fdf3d7;color:#8a6300}
.statusChip.danger{background:#faeae8;color:#a33c33}
.jobCorroReader{display:flex;flex-direction:column;min-width:0;overflow-y:auto}
.jobCorroReaderEmpty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);padding:40px 20px;text-align:center}
.jobCorroReaderEmpty svg{width:34px;height:34px;opacity:.4}
.jobCorroReaderEmpty b{font-size:15px;color:var(--text)}
.jobCorroReadHead{padding:18px 22px 12px;border-bottom:1px solid var(--line)}
.jobCorroReadHead h4{margin:0 0 8px;font-size:17px;font-weight:950}
.jobCorroReadChips{display:flex;gap:6px;margin-bottom:12px}
.jobCorroBodyWrap{flex:1;min-height:0;display:flex;flex-direction:column}
.jobCorroBodyWrap .emlPlainBody{border:0;border-radius:0;max-height:none;flex:1}
.jobCorroBodyFrame{flex:1;width:100%;border:0;min-height:300px;background:#fff}
.jobCorroReader .emlPlainBody{margin:0;padding:18px 22px}
.jobCorroReader .emlHeadList{margin:0}
.emlHeadList{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:13px}
.emlHeadList dt{color:var(--muted);font-weight:850}
.emlHeadList dd{margin:0;word-break:break-word}
.emlPlainBody{white-space:pre-wrap;font:13px/1.5 inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:14px;max-height:50vh;overflow:auto}
@media(max-width:1360px){.jobCorroInbox{grid-template-columns:180px minmax(240px,320px) minmax(0,1fr)}}
@media(max-width:1100px){.jobCorroInbox{grid-template-columns:1fr;height:auto}.jobCorroFolders{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}.jobCorroFolderCap{width:100%}.jobCorroFolders .mailFolderBtn{width:auto}.jobCorroListPane{max-height:44vh;border-right:0;border-bottom:1px solid var(--line)}}
.jobCorroReadChips{align-items:center;flex-wrap:wrap}
.jobCorroOutlookBtn{margin-left:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:#1262d6;font-weight:850;font-size:12px;padding:5px 12px;cursor:pointer}
.jobCorroOutlookBtn:hover{border-color:#1262d6}
/* Faults / Call-outs register */
.faultsHeadActions{display:flex;gap:8px;align-items:center}
.faultsHeadActions button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:8px 14px;font-weight:850;cursor:pointer}
.faultsHeadActions button svg{width:15px;height:15px}
.faultMailboxChip{background:#111827;color:#fff;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:850}
.faultsWrap{display:grid;grid-template-columns:var(--faultSideW,236px) 6px var(--faultListW,360px) 6px minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--panel);height:calc(100vh - 190px);min-height:480px}
.faultColHandle{cursor:col-resize;background:var(--bg);position:relative}
.faultColHandle:hover,.faultColHandle:active{background:#1262d633}
.faultColHandle::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:34px;border-radius:2px;background:var(--line)}
.faultsSide{border-right:1px solid var(--line);overflow-y:auto;padding:12px 8px;background:var(--bg)}
.faultsSide .mailFolderBtn{width:100%}
.faultsListPane{border-right:1px solid var(--line);overflow-y:auto;outline:none;min-width:0}
.faultsListPane:focus-visible{box-shadow:inset 0 0 0 2px #1262d655}
.faultsDetail{overflow-y:auto;display:flex;flex-direction:column;min-width:0}
.faultBodyWrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:0;flex:1;min-height:0}
.faultBodyWrap>.emlPlainBody{margin:0;border:0;border-radius:0;max-height:none;padding:18px 22px;border-right:1px solid var(--line)}
.faultWorkPanel{padding:16px;display:flex;flex-direction:column;gap:14px;background:var(--bg);overflow-y:auto}
.faultActionCap{font-size:11px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.faultActionRow{display:flex;flex-direction:column;gap:8px}
.faultActionRow .qaBtn{width:100%;text-align:center;padding:10px}
.faultConvertBtn{border-color:#111827;color:#111827;font-weight:900}
body.themeDark .faultConvertBtn{border-color:#e8eaee;color:#e8eaee}
.faultNotes{display:flex;flex-direction:column;gap:8px}
.faultNote{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12.5px;display:grid;gap:2px}
.faultNote b{font-size:11.5px}
.faultNote small{color:var(--muted);font-size:10.5px}
.faultNoteAdd{display:flex;gap:6px}
.faultNoteAdd input{flex:1;height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--panel);color:var(--text);font:inherit}
.faultSettingsPanel{max-width:560px}
.faultSetLabel{display:grid;gap:6px;margin:14px 0;font-size:12.5px;font-weight:850}
.faultSetLabel input,.faultSetLabel textarea{border:1px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit;background:var(--panel);color:var(--text)}
@media(max-width:1250px){.faultsWrap{grid-template-columns:200px 6px minmax(260px,330px) 6px minmax(0,1fr)}.faultBodyWrap{grid-template-columns:1fr}.faultWorkPanel{border-top:1px solid var(--line)}}
.faultComms{display:flex;flex-direction:column;gap:8px}
.faultCommsBtns{flex-direction:row}
.faultCommsBtns .qaBtn{flex:1}
.faultCommsCompose{display:flex;flex-direction:column;gap:8px}
.faultCommsCompose textarea{border:1px solid var(--line);border-radius:8px;padding:9px 12px;font:inherit;background:var(--panel);color:var(--text);resize:vertical}
.faultOnCallChip{background:#e6f4ea;color:#177a3d;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:850}
.faultOnCallChip.unset{background:#fdf3d7;color:#8a6300}
.faultOnCallPanel{max-width:600px}
.faultOcList{display:grid;gap:6px;max-height:56vh;overflow-y:auto;margin:14px 0}
.faultOcRow{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px}
.faultOcRow.current{border-color:#177a3d;background:#e6f4ea40;font-weight:850}
.faultOcRow.past{opacity:.55}
.faultOcRow select{height:34px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;padding:0 8px}
/* Council branding + site listings */
.faultCouncilLogo{width:22px;height:22px;border-radius:6px;object-fit:cover;flex:0 0 auto}
.faultLogoAvatar{background:#fff;border:1px solid var(--line);overflow:hidden;padding:0}
.faultLogoAvatar img{width:100%;height:100%;object-fit:cover}
.faultDetailBrand{display:flex;align-items:center;gap:12px}
.faultDetailBrand img{width:44px;height:44px;border-radius:10px;border:1px solid var(--line);object-fit:cover;flex:0 0 auto}
.faultDetailBrand h4{margin:0}
.faultSiteListBar{display:flex;align-items:center;gap:10px;width:100%;border:0;border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--bg),var(--panel));padding:10px 14px;font:inherit;font-weight:850;color:var(--text);cursor:pointer;text-align:left}
.faultSiteListBar img{width:26px;height:26px;border-radius:7px;object-fit:cover}
.faultSiteListBar b{margin-left:auto;background:#1262d6;color:#fff;border-radius:999px;padding:3px 11px;font-size:11.5px}
.faultSiteListBar:hover{background:var(--bg)}
.faultSitesPanel{max-width:720px;width:92vw}
.faultSitesSearch{width:100%;height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;margin:12px 0;background:var(--panel);color:var(--text);font:inherit}
.faultSitesTableWrap{max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.faultSitesTable{width:100%;border-collapse:collapse;font-size:13px}
.faultSitesTable th{position:sticky;top:0;background:var(--bg);text-align:left;padding:9px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line)}
.faultSitesTable td{padding:8px 12px;border-bottom:1px solid var(--line)}
.faultSitesTable tr:last-child td{border-bottom:0}
.faultSetMailboxRow{display:flex;gap:8px}
.faultSetMailboxRow input{flex:1}
.faultSetMailboxRow button{border:1px solid #1262d6;color:#1262d6;background:var(--panel);border-radius:8px;padding:0 16px;font-weight:850;cursor:pointer}
/* ===== Email Centre — rebuilt from scratch, CSS-drawn laptop like the SMS
   Centre's CSS-drawn phone (no image assets, no skeuomorphic Outlook chrome) ===== */
.emailComposer,.emailLogPanel{min-width:0}
.emailComposerFull{padding:10px}
.emailStage{display:flex;justify-content:center;padding:4px 0}
.emailDevice{position:relative;flex:0 0 auto;width:1320px;max-width:100%;background:linear-gradient(160deg,#3a3f4a,#15181e 55%,#0b0d11);border-radius:20px 20px 8px 8px;padding:16px 16px 0;box-shadow:0 30px 60px #0b1f3540,inset 0 0 0 2px #ffffff14}
.emailCam{position:absolute;top:7px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:50%;background:#0b0d11;box-shadow:0 0 0 2px #2b2f38}
.emailScreen{position:relative;background:linear-gradient(180deg,#f7fafd,#eef3f9);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;height:760px;box-shadow:inset 0 0 0 1px #0b0d1126}
.emailBanner{display:block;width:100%;height:auto;flex:0 0 auto;user-select:none;pointer-events:none}
.emailStatusDot{position:absolute;top:14px;right:16px;width:15px;height:15px;border-radius:50%;border:none;padding:0;cursor:pointer;background:#a16207;box-shadow:0 0 0 3px #ffffffcc,0 1px 4px #00000040;z-index:5}
.emailStatusDot.ok{background:#16a34a}
.emailStatusDot.warn{background:#eab308}
.emailStatusDot.err{background:#dc2626;animation:faultChipPulse 1.6s ease-in-out infinite}
.emailScreenBody{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.emailTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:6px 12px 10px;background:#ffffffe6;border-top:1px solid #dbe4ee}
.emailTabs.four{grid-template-columns:repeat(4,1fr)}
.emailTabs button{position:relative;display:grid;justify-items:center;gap:2px;background:none;border:none;color:#7c8aa0;font-size:10.5px;font-weight:900;padding:6px 0 4px;border-radius:12px}
.emailTabs button svg{width:20px;height:20px;fill:currentColor}
.emailTabs button.on{color:#1262d6;background:#eaf2ff}
.emailTabBadge{position:absolute;top:2px;right:calc(50% - 22px);min-width:15px;height:15px;border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:950;display:grid;place-items:center;padding:0 3px}
.emailHomeBar{width:80px;height:14px;margin:6px auto 0}
.emailHomeBar::after{content:'';display:block;width:100%;height:4px;margin-top:8px;border-radius:999px;background:#ffffff40}
.emailPaneHead{display:flex;justify-content:space-between;align-items:baseline;padding:10px 16px 8px}
.emailPaneHead h4{margin:0;font-size:16px;color:#122033;letter-spacing:-.01em}
.emailPaneHead span{font-size:11px;color:#52637a;font-weight:800}
/* Recipients tab */
.emailChipRow{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:0 16px 8px}
.emailChip{display:inline-flex;align-items:center;gap:5px;background:#e9f2ff;color:#14345b;border-radius:999px;padding:4px 6px 4px 10px;font-weight:800;font-size:11px}
.emailChip button{border:none;background:#c7dcf7;border-radius:50%;width:15px;height:15px;line-height:1;color:#14345b;font-weight:900;font-size:10px;display:grid;place-items:center;padding:0}
.emailChip button:hover{background:#ef4444;color:#fff}
.emailChipRow .muted{color:#94a3b8;font-size:11px;font-weight:800}
.emailSearchInput{margin:0 12px 8px;border:1px solid #d3dfec;border-radius:12px;background:#fff;padding:9px 12px;font-size:12.5px}
.emailBulkRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:0 12px 8px}
.emailBulkRow select{border:1px solid #d3dfec;border-radius:10px;background:#fff;padding:7px 9px;font-size:11.5px}
.emailBulkRow button{white-space:nowrap;border:1px solid #d3dfec;background:#fff;border-radius:10px;padding:0 11px;font-size:11px;font-weight:900;color:#33506e}
.emailManualRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;margin:0 12px 10px}
.emailManualRow input{border:1px solid #d3dfec;border-radius:10px;background:#fff;padding:8px 10px;font-size:12px}
.emailManualRow button{white-space:nowrap;border:1px solid #d3dfec;background:#fff;border-radius:10px;padding:0 10px;font-size:11px;font-weight:900;color:#33506e}
.emailPersonList{flex:1;overflow:auto;padding:2px 12px 10px;display:grid;gap:4px;align-content:start}
.emailPerson{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;background:#fff;border:1px solid transparent;border-radius:12px;padding:7px 9px;text-align:left}
.emailPerson:hover{border-color:#bcd2ee;background:#f4f8ff}
.emailPerson.sel{background:#e9f2ff;border-color:#8fb6e8}
.emailPersonAvatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#1262d6;color:#fff;font-weight:950;font-size:11px;flex:0 0 auto}
.emailPersonMeta{display:grid;gap:1px;min-width:0}
.emailPersonMeta b{font-size:12.5px;color:#122033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emailPersonMeta small{font-size:10.5px;color:#64748b;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emailPersonTick{width:22px;height:22px;border-radius:50%;background:#f1f5f9;color:#94a3b8;display:grid;place-items:center;font-weight:950;font-size:12px}
.emailPerson.sel .emailPersonTick{background:#1262d6;color:#fff}
.emailPersonHint{margin:auto;text-align:center;color:#7c8aa0;font-size:12px;line-height:1.5;padding:18px;max-width:230px}
/* Attach tab — tree/file-explorer browser (select only, no edit/move/delete) */
.emailCrumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:0 16px 8px;font-size:11.5px;color:#52637a;font-weight:800}
.emailCrumbs button{border:0;background:none;color:#1262d6;font-weight:900;padding:0}
.emailCrumbs button:hover{text-decoration:underline}
.emailCrumbs span{color:#b7c2d1}
.emailTreeList{flex:1;overflow:auto;padding:2px 12px 4px;display:grid;gap:5px;align-content:start}
.emailFolderTile{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid #e6edf5;border-radius:12px;padding:9px 10px;text-align:left}
.emailFolderTile:hover{border-color:#9ac3ff;background:#f4f8ff}
.emailFolderIcon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(180deg,#eaf2ff,#dbeafe);color:#0d62d9;flex:0 0 auto}
.emailFolderIcon svg{width:16px;height:16px;stroke:currentColor;fill:none}
.emailFolderTile b{font-size:12.5px;color:#122033}
.emailFolderTile small{display:block;color:#64748b;font-size:10.5px;font-weight:800}
.emailFolderCount{background:#eef5ff;color:#0d62d9;border-radius:999px;padding:3px 8px;font-size:10.5px;font-weight:900}
.emailFileRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid #e6edf5;border-radius:12px;padding:8px 10px;text-align:left}
.emailFileRow.sel{border-color:#9ac3ff;background:#eff6ff}
.emailFileRow:hover{border-color:#9ac3ff}
.emailFileIcon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#f1f5f9;color:#64748b;flex:0 0 auto}
.emailFileIcon svg{width:14px;height:14px;stroke:currentColor;fill:none}
.emailFileMeta{display:grid;gap:1px;min-width:0}
.emailFileMeta b{font-size:12px;color:#122033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emailFileMeta small{font-size:10px;color:#64748b;font-weight:800}
.emailFileTick{width:20px;height:20px;border-radius:6px;border:1.5px solid #cbd5e1;display:grid;place-items:center;font-weight:950;font-size:11px;color:#fff}
.emailFileRow.sel .emailFileTick{background:#1262d6;border-color:#1262d6}
.emailAttachFooter{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;background:#ffffffe6;border-top:1px solid #dbe4ee}
.emailAttachFooter small{font-size:11px;color:#52637a;font-weight:850}
.emailAttachFooter button{border:0;background:#1262d6;color:#fff;border-radius:10px;padding:8px 14px;font-weight:900;font-size:11.5px}
/* Compose tab */
.emailComposeBody{flex:1;overflow:auto;padding:2px 16px 12px;display:grid;gap:10px}
.emailSenderRow{display:grid;gap:6px;border:1px solid #e6edf5;border-radius:12px;background:#f8fbff;padding:9px 11px}
.emailSenderRow div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.emailSenderRow b{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:#64748b}
.emailSenderRow span{font-size:12.5px;font-weight:950;color:#122033}
.emailSenderRow select{border:1px solid #d3dfec;border-radius:9px;background:#fff;padding:6px 8px;font-size:12px;font-weight:800}
.emailSenderRow small{font-size:10px;color:#94a3b8}
.emailFieldSm{display:grid;gap:4px;font-weight:900;color:#334155;font-size:11.5px}
.emailFieldSm input{border:1px solid #d3dfec;border-radius:10px;background:#fff;padding:9px 11px;font-size:13px;font:inherit}
.emailFieldSm textarea{border:1px solid #d3dfec;border-radius:12px;background:#fff;padding:10px 11px;font-size:13px;min-height:130px;resize:vertical;font:inherit}
.emailTplRow{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.emailTpl{white-space:nowrap;border:1px solid #d3dfec;background:#fff;border-radius:999px;padding:5px 11px;font-size:10.5px;font-weight:800;color:#33506e}
.emailTpl:hover{background:#eaf2ff;border-color:#8fb6e8}
.emailAttachedRow{display:flex;flex-wrap:wrap;gap:6px}
.emailAttachedPill{display:inline-flex;align-items:center;gap:7px;border:1px solid #cfe0ff;background:#eef5ff;color:#0d62d9;border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:900}
.emailAttachedPill button{border:0;background:transparent;padding:0;color:#0d62d9;font-weight:950}
.emailAttachedRow .emailGhostBtn{border:1px dashed #9ac3ff;background:#fff;color:#0d62d9;border-radius:999px;padding:5px 10px;font-size:10.5px;font-weight:900}
.emailSendBar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 16px;background:#ffffffe6;border-top:1px solid #dbe4ee}
.emailSendBar small{font-size:11px;color:#52637a;font-weight:850}
.emailSendBar .actions{display:flex;gap:7px}
.emailSendBar button{border:1px solid #d6e1ee;background:#fff;color:#334155;border-radius:10px;padding:9px 13px;font-weight:900;font-size:12px}
.emailSendBar button.primary{background:#1262d6;color:#fff;border-color:#1262d6}
.emailSendBar button.primary:disabled{background:#b9c9dd;border-color:#b9c9dd;cursor:not-allowed}
/* log panel — reuse the app's flat card language */
.emailLogRows{display:grid;gap:8px;max-height:420px;overflow:auto}
.emailLogRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border:1px solid #e2e8f0;border-left:6px solid #94a3b8;border-radius:8px;background:#fff;padding:10px;align-items:start}
.emailLogRow.sent{border-left-color:#16a34a}
.emailLogRow.demo{border-left-color:#f59e0b}
.emailLogRow.failed,.emailLogRow.error{border-left-color:#dc2626}
.emailLogRow b{display:block;font-size:12px;color:#122033}
.emailLogRow span{display:block;font-weight:850;color:#334155;font-size:11px}
.emailLogRow small{color:#64748b;font-size:10.5px}
.emailLogRow p{grid-column:1/-1;margin:6px 0 0;color:#334155;font-size:11.5px;line-height:1.35;overflow-wrap:anywhere}
@media(max-width:900px){.emailComposerFull{padding:0}.emailDevice{border-radius:0}}
/* Email Centre Settings tab — mirrors the SMS Centre's inline phone settings
   (.phoneSettings/.psGroup/.psRow) so both comms centres feel identical */
.emailBackLink{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#eef2f7;border:none;color:#334155;font-weight:950;font-size:15px;margin-right:6px;vertical-align:middle;cursor:pointer;line-height:1}
.emailBackLink:hover{background:#dbe4ee}
.commsMailboxRow{gap:6px}
.commsMailboxMeta{display:flex;align-items:center;gap:8px}
.commsMailboxMeta small{color:#7c8aa0;font-weight:700;font-size:10.5px}
.commsMailboxActions{display:flex;gap:6px}
.psCopy.danger{color:#b91c1c;border-color:#f3c9c9}
.psCopy.danger:hover{background:#fef2f2;border-color:#f3a9a9}
.commsAlertActions{display:flex;gap:8px;padding:0 14px 8px}
.commsAlertActions .psCopy{flex:1}
.mailboxRoleChip{background:#111827;color:#fff}
.appOnlyScope{background:#efeafc;color:#4338ca}
body.themeDark .appOnlyScope{background:#232145;color:#a6a1f5}

/* PO editor: workflow-driven status (no manual dropdowns) */
.poStatusReadOnly{display:flex;align-items:center;min-height:38px}
.poActionBox .poWorkflowHint{display:block;color:var(--muted,#64748b);font-size:11px;margin-top:6px;line-height:1.4;max-width:220px}
.poActionBox [data-po-review-current]{display:block;margin-top:4px}

/* PO receival flow + payables */
.poStatusChip.paid{background:#dcfce7;color:#166534}
.poReceivePanel{width:min(780px,96vw)}
.poReceiveTable input[type=number]{width:88px}
.poReceiveTable input:not([type=number]){width:100%;min-width:120px}
.poReceiveMeta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}
.poReceivalProgress{display:block;color:var(--muted,#64748b);font-size:10.5px;font-weight:700;margin-top:2px}
.poStatusChip.short-supply{background:#fee2e2;color:#b91c1c;margin-left:4px}
.poJobChip{display:block;width:max-content;margin:0 0 4px;border-radius:6px;background:#e0ecff;color:#1d4ed8;padding:2px 7px;font-size:10.5px;font-weight:900;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.poJobChip.overhead{background:#f3e8ff;color:#7e22ce}
.poStatusChip.approved{background:#dcfce7;color:#15803d}
.poStatusChip.in-progress{background:#fef3c7;color:#b45309}
.poStatusChip.periodic{background:#e0e7ff;color:#3730a3}
.poStatusChip.overdue{background:#fee2e2;color:#b91c1c}
.poStatusChip.cancelled{background:#f1f5f9;color:#64748b}

/* faults mailbox health chip — green connected / yellow unsynced / red error */
.faultMailboxChip.ok{background:#166534;color:#dcfce7;box-shadow:0 0 0 2px #16653422}
.faultMailboxChip.warn{background:#a16207;color:#fef9c3}
.faultMailboxChip.err{background:#b91c1c;color:#fee2e2;animation:faultChipPulse 1.6s ease-in-out infinite}
@keyframes faultChipPulse{0%,100%{box-shadow:0 0 0 0 #b91c1c55}50%{box-shadow:0 0 0 6px #b91c1c00}}

/* on-call identity carried app-wide */
.onCallDot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px #fff,0 0 6px #22c55e;flex:0 0 auto}
.onCallBadge{display:inline-flex;align-items:center;gap:5px;margin-left:8px;border-radius:999px;background:#dcfce7;color:#166534;padding:2px 9px;font-size:10.5px;font-weight:900;vertical-align:middle}
.staffProfileHero .onCallBadge{background:#16653433;color:#bbf7d0;box-shadow:0 0 0 1px #22c55e66}
.staffCard .onCallBadge{margin-left:6px}
.staffTrackerDot{position:relative}
.staffTrackerDot .onCallBadge{position:absolute;top:6px;right:8px;margin:0;padding:2px 8px;font-size:9.5px;box-shadow:0 1px 4px #16653433}
.staffTrackerDot .onCallBadge .onCallDot{width:7px;height:7px;box-shadow:none}
