/* SenseCore 360 — generated by tools/build.py. Do not edit; edit the source files listed below. */

/* ===== assets/css/base.css ===== */
.logo-img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 12px #20c9f466)}.hero-master-logo{display:block;width:clamp(120px,18vw,210px);height:auto;margin:0 auto 22px;filter:drop-shadow(0 18px 36px #00bfff33)}.live-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:22px}.data-panel{border:1px solid #ffffff14;border-radius:16px;background:#04182b99;overflow:hidden}.data-panel h4{margin:0;padding:17px 19px;border-bottom:1px solid #ffffff12}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #ffffff0d;font-size:13px}.data-table th{color:#79d9f5;font-size:11px;text-transform:uppercase;letter-spacing:1px}.data-table td{color:#bdd0dd}.empty-state{padding:30px 18px;text-align:center;color:#8fa9bc}.state-pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#20c9f41a;color:#78ddf5;font-size:11px}.state-pill.alert{background:#ff7b8a1f;color:#ffabb5}.loading-state{padding:55px;text-align:center;color:#8fa9bc}@media(max-width:800px){.live-grid{grid-template-columns:1fr}.data-panel{overflow-x:auto}}

:root{--navy:#061a31;--navy2:#0b2d4d;--cyan:#20c9f4;--mint:#52e0bc;--text:#eaf6ff;--muted:#9db6ca;--card:#0b2944;--line:#1c4968;--danger:#ff7b8a}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 80% 10%,#10446b 0,#071d34 34%,#031326 72%);color:var(--text);min-height:100vh}button,input{font:inherit}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;border-bottom:1px solid #ffffff18;background:#04172ae8;position:sticky;top:0;z-index:5;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:.5px}.logo{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,var(--cyan),#1688d5);box-shadow:0 0 28px #20c9f455;font-size:14px}.nav{display:flex;gap:28px}.nav button{background:none;border:0;color:#bcd0df;cursor:pointer}.nav button:hover{color:white}.page{display:none}.page.active{display:block}.hero{max-width:1180px;margin:auto;padding:92px 28px 66px;text-align:center}.eyebrow{color:var(--cyan);letter-spacing:4px;font-size:12px;font-weight:800}.hero h1{font-size:clamp(42px,7vw,76px);line-height:1;margin:20px 0}.hero h1 span{color:var(--mint)}.lead{max-width:820px;margin:0 auto;color:#bfd0dd;font-size:19px;line-height:1.7}.trust{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}.trust span{border:1px solid #45ccef44;border-radius:999px;padding:9px 15px;color:#cce8f5;background:#ffffff08}.section{max-width:1180px;margin:auto;padding:42px 28px 100px}.section h2{text-align:center;font-size:34px;margin:0 0 10px}.section-intro{text-align:center;color:var(--muted);margin-bottom:34px}.platforms{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.platform{padding:28px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#0d3151cc,#071d33e6);box-shadow:0 20px 50px #0004;transition:.25s}.platform:hover{transform:translateY(-6px);border-color:#2fd4f7}.platform-icon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;font-size:26px;background:#20c9f419;margin-bottom:22px}.platform h3{font-size:25px;margin:0}.platform small{color:var(--cyan);font-weight:700}.platform p{color:#abc1d2;line-height:1.6;min-height:76px}.primary{width:100%;border:0;border-radius:12px;padding:13px 18px;color:#031526;background:linear-gradient(90deg,var(--cyan),var(--mint));font-weight:800;cursor:pointer}.login-wrap{min-height:calc(100vh - 74px);display:grid;place-items:center;padding:28px}.login-card{width:min(470px,100%);padding:36px;border:1px solid var(--line);border-radius:24px;background:#071e35f2;box-shadow:0 30px 80px #0007}.back{border:0;background:none;color:var(--cyan);cursor:pointer;padding:0;margin-bottom:25px}.login-card h2{font-size:31px;margin:0 0 8px}.login-card p{color:var(--muted);line-height:1.5}.field{margin:20px 0}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}.field input{width:100%;padding:14px;border-radius:11px;border:1px solid #2b536f;background:#041629;color:white;outline:none}.field input:focus{border-color:var(--cyan)}.error{display:none;color:#ffd4da;background:#ff647522;border:1px solid #ff647555;padding:11px;border-radius:10px;margin:14px 0;font-size:13px}.portal{min-height:calc(100vh - 74px);display:grid;grid-template-columns:250px 1fr}.sidebar{border-right:1px solid #173c58;background:#04182b;padding:28px 18px}.portal-brand{padding:8px 10px 25px;border-bottom:1px solid #173c58;margin-bottom:20px}.portal-brand small{color:var(--cyan)}.menu button{display:flex;align-items:center;gap:10px;width:100%;padding:12px;margin:4px 0;border:0;border-radius:10px;background:none;color:#a9bfd0;text-align:left;cursor:pointer}.menu button.active,.menu button:hover{background:#19bee91c;color:white}.workspace{padding:38px;overflow:auto}.workspace-head{display:flex;align-items:center;justify-content:space-between}.workspace h2{font-size:32px;margin:0}.badge{border:1px solid #39d6c555;color:var(--mint);padding:8px 12px;border-radius:999px;font-size:12px}.module-card{margin-top:28px;border:1px solid var(--line);background:#08233cbb;border-radius:20px;padding:28px;min-height:330px}.module-card h3{font-size:24px;margin-top:0}.module-card p{color:var(--muted);line-height:1.7}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:26px}.tile{padding:20px;border-radius:15px;background:#ffffff08;border:1px solid #ffffff12}.tile strong{display:block;font-size:25px;color:var(--cyan);margin-bottom:5px}.logout{border:1px solid #2e536d;border-radius:10px;padding:9px 13px;background:#ffffff08;color:white;cursor:pointer}@media(max-width:850px){.platforms{grid-template-columns:1fr}.platform p{min-height:auto}.portal{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid #173c58}.menu{display:flex;overflow:auto}.menu button{min-width:175px}.tiles{grid-template-columns:1fr}.workspace{padding:25px 18px}.nav{gap:12px}.topbar{padding:0 18px}}

.showcase-hero{min-height:calc(100vh - 74px);display:flex;align-items:center;justify-content:center;text-align:center;padding:100px 20px;overflow:hidden;position:relative}.showcase-hero:before,.showcase-hero:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(115px);animation:floatBlob 11s ease-in-out infinite}.showcase-hero:before{background:#1f9fff26;left:-180px;top:-150px}.showcase-hero:after{background:#2de6be1f;right:-160px;bottom:-100px;animation-direction:reverse}@keyframes floatBlob{50%{transform:translate(25px,35px)}}.showcase-content{position:relative;z-index:2;max-width:1000px}.hero-badge{display:inline-block;padding:10px 20px;border-radius:50px;border:1px solid #ffffff1f;background:#ffffff0a;color:#71dbff;font-size:.85rem;letter-spacing:3px;margin-bottom:25px}.showcase-hero h1{font-size:clamp(3rem,8vw,7rem);font-weight:800;letter-spacing:-4px;line-height:1;margin:0 0 28px}.gradient-text{background:linear-gradient(90deg,#57c7ff,#50f0c1,#89a5ff);-webkit-background-clip:text;background-clip:text;color:transparent}.showcase-hero p{font-size:clamp(1.1rem,2vw,1.45rem);color:#a7b9cc;max-width:820px;margin:auto;line-height:1.7}.hero-line{width:100px;height:3px;background:linear-gradient(90deg,#46a8ff,#48e5b6);margin:35px auto;border-radius:10px}.showcase-tags{margin-top:30px;display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.showcase-tags span{border:1px solid #ffffff1a;border-radius:30px;padding:8px 15px;color:#b9cadb;background:#ffffff06}.showcase-section{padding:110px 28px;max-width:1236px;margin:auto}.section-title{text-align:center;font-size:clamp(2rem,4vw,3.3rem);font-weight:800;margin:0 0 15px}.section-subtitle{text-align:center;color:#9db0c6;max-width:780px;margin:0 auto 55px;line-height:1.7}.showcase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.showcase-card{position:relative;background:linear-gradient(145deg,#ffffff12,#ffffff05);padding:38px;border-radius:24px;border:1px solid #ffffff17;overflow:hidden;transition:.4s;backdrop-filter:blur(18px)}.showcase-card:hover{transform:translateY(-12px);border-color:#64d7ff73;box-shadow:0 28px 60px #0006}.showcase-card:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;filter:blur(70px);opacity:.22;right:-50px;top:-50px;background:#37a8ff}.showcase-card:nth-child(2):before{background:#47e7b1}.showcase-card:nth-child(3):before{background:#c18cff}.platform-number{color:#4ac6ff;font-size:.75rem;letter-spacing:3px;margin-bottom:25px}.showcase-card h3{font-size:1.45rem;margin:0 0 10px}.platform-type{color:#65d6ff;font-size:.8rem;letter-spacing:1.4px;margin-bottom:18px}.showcase-card p{color:#9fb1c5;line-height:1.75;min-height:142px}.showcase-card .primary{position:relative;z-index:2;margin-top:16px}.foundation-box{background:linear-gradient(145deg,#278fff1c,#2fe2b10f);border-radius:30px;padding:70px;border:1px solid #64c8ff26;position:relative;overflow:hidden}.foundation-box h2{font-size:clamp(2rem,4vw,3rem);margin:0 0 22px}.foundation-box>p{color:#aec0d0;line-height:1.8;max-width:900px;font-size:1.08rem}.foundation-features{margin-top:45px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.foundation-feature{padding:18px;border-radius:15px;background:#ffffff09;border:1px solid #ffffff12;color:#c3d2df}.feature-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#45e3bd;margin-right:10px;box-shadow:0 0 15px #45e3bdcc}.flow-wrapper{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:55px}.flow-step{width:145px;height:145px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #55cdff40;background:radial-gradient(circle,#25a2ff24,#ffffff05);transition:.4s}.flow-step:hover{transform:scale(1.08);box-shadow:0 0 35px #2fc1ff29}.flow-number{font-size:.7rem;letter-spacing:2px;color:#5ad4ff;margin-bottom:8px}.flow-name{font-weight:600;letter-spacing:1px}.flow-arrow{color:#48d8bf;font-size:1.7rem;animation:arrowPulse 1.8s infinite}@keyframes arrowPulse{50%{opacity:1;transform:translateX(6px)}0%,100%{opacity:.35}}.trust-line{text-align:center;border-top:1px solid #ffffff12;padding:35px 15px 50px;color:#8295aa;letter-spacing:2px;font-size:.82rem}.trust-line span{color:#4ccfc2;margin:0 8px}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.reveal.active{opacity:1;transform:none}@media(max-width:950px){.showcase-grid{grid-template-columns:1fr}.showcase-card p{min-height:auto}.foundation-features{grid-template-columns:1fr 1fr}.foundation-box{padding:45px 30px}}@media(max-width:650px){.showcase-hero h1{letter-spacing:-2px}.foundation-features{grid-template-columns:1fr}.flow-wrapper{flex-direction:column}.flow-arrow{transform:rotate(90deg)}}

.platform-logo-img{display:block;width:100%;height:190px;object-fit:contain;margin:0 auto 20px;filter:drop-shadow(0 16px 25px #0008)}.portal-logo{width:82px;height:82px;object-fit:contain;display:block;margin-bottom:12px}.menu-icon{width:23px;text-align:center;font-size:17px}.module-toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:24px;flex-wrap:wrap}.module-action{border:0;border-radius:10px;padding:11px 15px;background:linear-gradient(90deg,var(--cyan),var(--mint));color:#031526;font-weight:800;cursor:pointer}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.status-card{position:relative;overflow:hidden;padding:20px;border:1px solid #ffffff1f;border-radius:18px;background:linear-gradient(145deg,#0a2944cc,#07192dcc);box-shadow:0 16px 35px #0004;transition:transform .35s,box-shadow .35s;animation:dashboardRise .65s both}.status-card:nth-child(2){animation-delay:.08s;--card-glow:#50efc0}.status-card:nth-child(3){animation-delay:.16s;--card-glow:#ff9f43}.status-card:nth-child(4){animation-delay:.24s;--card-glow:#9a7cff}.status-card:before{content:"";position:absolute;right:-35px;bottom:-55px;width:125px;height:125px;border-radius:50%;background:var(--card-glow,#45c8ff);opacity:.15;filter:blur(6px);animation:dashboardGlow 3s ease-in-out infinite}.status-card:hover{transform:translateY(-7px) scale(1.015);box-shadow:0 22px 45px #0007,0 0 28px color-mix(in srgb,var(--card-glow,#45c8ff) 22%,transparent)}.status-card strong{display:block;font-size:30px;background:linear-gradient(90deg,var(--card-glow,#45c8ff),#fff);-webkit-background-clip:text;background-clip:text;color:transparent;margin:7px 0}.status-card small{color:#a9c7dc}.status-card span{color:#d3e2ec;font-size:13px}.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:22px}.feature-item{padding:18px;border:1px solid #ffffff12;background:#051a2d99;border-radius:14px}.feature-item b{display:block;margin-bottom:7px}.feature-item span{color:var(--muted);font-size:14px;line-height:1.5}.module-note{margin-top:22px;padding:14px 16px;border-left:3px solid var(--mint);background:#52e0bc10;color:#b9d2df;border-radius:0 10px 10px 0}@keyframes dashboardRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes dashboardGlow{50%{transform:scale(1.18);opacity:.25}}@media(max-width:900px){.status-grid{grid-template-columns:repeat(2,1fr)}.platform-logo-img{height:160px}}@media(max-width:560px){.status-grid,.feature-list{grid-template-columns:1fr}}

.language-switch{border:1px solid #48d6f05c;border-radius:999px;padding:8px 13px;background:#38c6e30d;color:#76e4f7;cursor:pointer;font-weight:700}.language-switch:hover{background:#48d6f01c}.rtl{direction:rtl}.rtl body{font-family:"Tahoma","Arial",sans-serif}.rtl .brand,.rtl .module-toolbar,.rtl .workspace-head,.rtl .contact-details{flex-direction:row-reverse}.rtl .nav{direction:rtl;flex-direction:row}.rtl .flow-wrapper{direction:rtl}.rtl #contact .section-title .gradient-text{display:none}.rtl .showcase-card,.rtl .foundation-box,.rtl .feature-item,.rtl .data-panel,.rtl .status-card,.rtl .alert-item,.rtl .rule-card,.rtl .contact-card,.rtl .login-card,.rtl .module-card{text-align:right}.rtl .directory-form label,.rtl .inquiry-form label{text-align:right}.rtl .data-table th,.rtl .data-table td{text-align:right}.rtl .alert-item{border-left:1px solid var(--priority);border-right:6px solid var(--priority)}.rtl .module-note{border-left:0;border-right:3px solid var(--mint);border-radius:10px 0 0 10px}.rtl .sidebar{border-right:0;border-left:1px solid #ffffff12}.rtl input,.rtl textarea,.rtl select{direction:rtl;text-align:right}.rtl input[type=email],.rtl input[type=tel]{direction:ltr;text-align:left}

.brand-s{font-size:1.18em;font-weight:900;background:linear-gradient(145deg,#1688d5 15%,#20c9f4 48%,#52e0bc 88%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px #20c9f455}.support-dock button{display:grid;place-items:center}.support-dock svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.whatsapp-fab svg{fill:#fff;stroke:#20b85a}


/* ===== assets/css/dashboard-v13.css ===== */
.dashboard-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}.visual-card{position:relative;min-height:330px;padding:20px;border:1px solid #ffffff18;border-radius:20px;background:linear-gradient(145deg,#092a46dd,#04182be8);box-shadow:0 20px 45px #0004;overflow:hidden}.visual-card.wide{grid-column:1/-1}.visual-card h4{margin:0 0 5px}.visual-card>p{margin:0 0 16px;color:#93aec2;font-size:13px}.chart-wrap{position:relative;height:245px}.live-map{height:470px;border-radius:15px;overflow:hidden;background:#061a31}.map-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:13px;color:#a9c0d0;font-size:12px}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-inline-end:6px}.legend-dot.normal{background:#52e0bc}.legend-dot.alert{background:#ff6475}.legend-dot.heat{background:#ffb347}.live-indicator{display:inline-flex;align-items:center;gap:7px;color:#69e3c0;font-size:12px}.live-indicator:before{content:"";width:8px;height:8px;border-radius:50%;background:#52e0bc;box-shadow:0 0 0 0 #52e0bc88;animation:livePulse 1.8s infinite}@keyframes livePulse{70%{box-shadow:0 0 0 9px #52e0bc00}}@media(max-width:900px){.dashboard-visual-grid{grid-template-columns:1fr}.visual-card.wide{grid-column:auto}.live-map{height:390px}}

.portal{grid-template-columns:270px 1fr}.sidebar{background:linear-gradient(180deg,#03111f,#061a2c);position:sticky;top:74px;height:calc(100vh - 74px);overflow:auto}.workspace{padding:26px;background:radial-gradient(circle at 80% 0,#0d3b5b55,transparent 36%),#020d18}.module-card{padding:0;border:0;background:transparent;box-shadow:none}.command-shell{display:grid;gap:16px}.dashboard-jumpbar{display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:74px;z-index:4;padding:10px;border:1px solid #153b52;border-radius:12px;background:#03121eee;backdrop-filter:blur(12px)}.dashboard-jumpbar a{padding:7px 10px;border-radius:8px;color:#91b4c7;text-decoration:none;font-size:11px}.dashboard-jumpbar a:hover{background:#20c9f417;color:#fff}.dashboard-section{display:grid;gap:14px;padding-top:8px;scroll-margin-top:140px}.dashboard-section-title{display:flex;align-items:end;justify-content:space-between;padding:8px 2px;border-bottom:1px solid #15364a}.dashboard-section-title h3{margin:0;font-size:17px}.dashboard-section-title span{color:#6f91a5;font-size:11px}.command-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:4px 2px}.command-title{display:flex;align-items:center;gap:13px}.command-title h3{margin:0;font-size:20px}.command-title small{display:block;margin-top:4px;color:#7899ad}.live-clock{display:flex;gap:10px;align-items:center;color:#94b4c6;font-size:12px}.kpi-command-grid{display:grid;grid-template-columns:repeat(8,minmax(115px,1fr));gap:10px}.command-kpi{position:relative;min-height:108px;padding:15px;border:1px solid #153b52;border-radius:14px;background:linear-gradient(145deg,#0a263b,#061723);overflow:hidden}.command-kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent,#25c9ef)}.command-kpi small{display:block;min-height:30px;color:#819daf;font-size:10px;text-transform:uppercase;letter-spacing:1px}.command-kpi strong{display:block;margin:4px 0;font-size:24px;color:#eefaff}.command-kpi span{color:#6f93a8;font-size:10px}.command-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.72fr);gap:16px}.command-panel{border:1px solid #153b52;border-radius:16px;background:linear-gradient(160deg,#071d2d,#04131f);overflow:hidden;box-shadow:0 16px 35px #0004}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:15px 17px;border-bottom:1px solid #123447}.panel-head h4{margin:0;font-size:13px;letter-spacing:.8px}.panel-head span{color:#6f93a8;font-size:11px}.command-map{height:520px}.layer-legend{display:flex;gap:11px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid #123447;color:#8cabbc;font-size:10px}.layer-legend i{display:inline-block;width:8px;height:8px;margin-inline-end:5px;border-radius:50%}.risk-list{padding:14px}.risk-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #ffffff0b}.risk-row b{font-size:12px}.risk-row small{display:block;margin-top:4px;color:#7596aa}.risk-value{font-size:20px;font-weight:800}.risk-meter{height:5px;margin-top:7px;border-radius:9px;background:#ffffff0d;overflow:hidden}.risk-meter i{display:block;height:100%;background:var(--risk,#20c9f4)}.alert-compact{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid #ffffff0b}.alert-compact>i{width:8px;height:8px;border-radius:50%;background:var(--risk)}.alert-compact b{display:block;font-size:11px}.alert-compact small{color:#7898aa}.alert-compact button,.subject-row button{padding:6px 9px;border:1px solid #24526b;border-radius:7px;background:#ffffff08;color:#cfefff;cursor:pointer}.command-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px}.mini-chart{height:230px;padding:14px}.subject-search{width:100%;padding:11px 13px;border:1px solid #1b435b;border-radius:9px;background:#041421;color:#eaf8ff}.subject-row{display:grid;grid-template-columns:minmax(160px,1.5fr) repeat(3,minmax(80px,.65fr)) auto;gap:12px;align-items:center;padding:13px 16px;border-bottom:1px solid #ffffff0d;font-size:12px}.subject-row:hover{background:#0b2b3d}.subject-row b{font-size:13px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:7px;background:var(--state,#52e0bc)}.clinical-overlay{position:fixed;inset:0;z-index:60;padding:26px;overflow:auto;background:#010810eF;backdrop-filter:blur(10px)}.clinical-shell{max-width:1250px;margin:auto;border:1px solid #1c526d;border-radius:20px;background:radial-gradient(circle at 75% 0,#123f5e,transparent 34%),#04131f;box-shadow:0 35px 100px #000}.clinical-top{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #15384c}.clinical-top button{border:0;background:none;color:#fff;font-size:27px;cursor:pointer}.clinical-grid{display:grid;grid-template-columns:300px 1fr;gap:18px;padding:20px}.profile-panel{padding:20px;border:1px solid #173d52;border-radius:14px;background:#071c2b}.profile-photo{width:84px;height:84px;display:grid;place-items:center;margin-bottom:14px;border:1px solid #2b6987;border-radius:50%;background:#0b3048;color:#64daf2;font-size:30px}.profile-field{padding:10px 0;border-bottom:1px solid #ffffff0d}.profile-field small{display:block;color:#7092a5}.profile-field b{display:block;margin-top:3px}.clinical-main{display:grid;gap:16px}.vital-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.vital-box{padding:13px;border:1px solid #173d52;border-radius:11px;background:#071c2b}.vital-box small{display:block;color:#7495a8}.vital-box b{display:block;margin-top:6px;font-size:18px}.clinical-chart{height:260px;padding:15px;border:1px solid #173d52;border-radius:14px;background:#061927}.analysis-panel{display:grid;grid-template-columns:1.35fr .65fr;gap:14px}.xai-box,.score-box{padding:18px;border:1px solid #173d52;border-radius:14px;background:#061927}.xai-box h4,.score-box h4{margin:0 0 12px}.clinical-actions{display:flex;gap:9px;flex-wrap:wrap}.clinical-actions button{padding:10px 13px;border:1px solid #2a617c;border-radius:9px;background:#0a2a40;color:#e7f7ff;cursor:pointer}.clinical-actions button:first-child{border:0;background:linear-gradient(90deg,#ff714e,#ff3e68)}.score-ring{width:120px;height:120px;display:grid;place-items:center;margin:auto;border-radius:50%;background:conic-gradient(var(--score-color,#ffb347) calc(var(--score,0)*1%),#173044 0);position:relative}.score-ring:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#061927}.score-ring strong{position:relative;z-index:1;font-size:24px}.ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ops-card{padding:18px;border:1px solid #153b52;border-radius:15px;background:linear-gradient(145deg,#071d2d,#04131f)}.ops-card.wide{grid-column:1/-1}.ops-card h4{margin:0 0 5px}.ops-card>p{color:#7494a8}.ops-chart{height:260px}.forecast-band{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.forecast-item{padding:14px;border-radius:11px;background:#ffffff08}.forecast-item strong{display:block;font-size:23px}.view-tabs{display:flex;gap:8px;flex-wrap:wrap}.view-tabs button{padding:8px 11px;border:1px solid #234d65;border-radius:8px;background:#071d2d;color:#a9c3d2;cursor:pointer}.view-tabs button.active{border-color:#33d4ef;color:#fff;background:#0a3449}.arabic-label{direction:rtl}.rtl .sidebar{border-right:0;border-left:1px solid #173c58}.rtl .command-kpi:before{inset:0 0 0 auto}.rtl .subject-row{text-align:right}@media(max-width:1350px){.kpi-command-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:980px){.command-grid,.clinical-grid,.analysis-panel{grid-template-columns:1fr}.command-bottom,.ops-grid{grid-template-columns:1fr}.ops-card.wide{grid-column:auto}.vital-strip{grid-template-columns:repeat(3,1fr)}.command-map{height:430px}}@media(max-width:720px){.kpi-command-grid{grid-template-columns:repeat(2,1fr)}.workspace{padding:14px}.command-map{height:370px}.subject-row{grid-template-columns:1fr auto}.subject-row span:nth-of-type(n+2){display:none}.vital-strip{grid-template-columns:repeat(2,1fr)}.clinical-overlay{padding:8px}.clinical-grid{padding:12px}.profile-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.profile-photo{grid-column:1/-1}}

.dashboard-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 20px;padding:4px 2px}.dashboard-overview-copy h3{margin:0 0 7px;font-size:25px;letter-spacing:-.5px}.dashboard-overview-copy p{margin:0;color:#91a8c3}.dashboard-overview-actions{display:grid;grid-template-columns:minmax(210px,1fr) 44px 44px auto;gap:10px;align-items:center;min-width:min(620px,58vw)}.dashboard-search{height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #1a3d6b;border-radius:11px;background:#020e22;color:#7f9aba}.dashboard-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#e7f3ff}.dashboard-icon-action,.dashboard-export{height:44px;border:1px solid #1a3d6b;border-radius:11px;background:#06142b;color:#c9dbef;cursor:pointer;position:relative}.dashboard-icon-action:hover{border-color:#6848ef;background:#101d43}.dashboard-icon-action i{position:absolute;right:-5px;top:-8px;min-width:19px;height:19px;display:grid;place-items:center;border-radius:10px;background:#7447e8;color:#fff;font-size:10px;font-style:normal}.dashboard-export{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;border:0;background:linear-gradient(135deg,#6d42e8,#4930c2);color:#fff;font-weight:800;box-shadow:0 10px 28px #5038d43d}.dashboard-updated{grid-column:1/-1;display:flex;justify-content:flex-end;gap:16px;align-items:center;color:#93a8bf;font-size:11px}.dashboard-updated b{display:flex;align-items:center;gap:7px;padding:5px 12px;border-radius:20px;background:#04c89617;color:#42e2b6}.dashboard-updated b i{width:8px;height:8px;border-radius:50%;background:#26dbad;box-shadow:0 0 12px #26dbad}.dashboard-source-banner{position:relative;min-height:94px;padding:18px 20px 18px 94px!important;border-color:#0b5293!important;border-radius:16px!important;background:linear-gradient(110deg,#061a3c,#03182f 58%,#062446)!important;box-shadow:inset 0 0 40px #0066c017,0 14px 36px #0003}.rtl .dashboard-source-banner{padding:18px 94px 18px 20px!important}.dashboard-source-banner>div:first-child{position:relative}.source-device-icon{position:absolute;left:-72px;top:-10px;width:52px;height:58px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#0b355d,#09213e);border:1px solid #175287;color:#55dfff;font-size:28px;box-shadow:inset 0 0 22px #1ed5ff18}.rtl .source-device-icon{left:auto;right:-72px}.dashboard-source-banner strong{font-size:16px}.dashboard-source-banner .source-badge{padding:12px 20px;border:1px solid #087b9b;border-radius:999px;background:linear-gradient(90deg,#063e56,#072567);color:#20d9e9;white-space:nowrap}.dashboard-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;margin-top:16px!important}.dashboard-kpi-card{position:relative;min-height:164px!important;padding:24px 20px 18px 94px!important;border-color:#173b6b!important;border-radius:16px!important;background:radial-gradient(circle at 100% 100%,var(--kpi-glow,#552fe8) 0,transparent 34%),linear-gradient(145deg,#081a43,#06152d)!important;box-shadow:0 14px 32px #0003;overflow:hidden}.rtl .dashboard-kpi-card{padding:24px 94px 18px 20px!important}.dashboard-kpi-card small{font-size:13px;color:#b6c8dc}.dashboard-kpi-card strong{font-size:31px!important;line-height:1;color:var(--kpi-color,#a976ff)!important;margin:15px 0 8px!important}.dashboard-kpi-card span:not(.dashboard-kpi-icon){font-size:12px;color:#bed0e2}.dashboard-kpi-icon{position:absolute;left:18px;top:21px;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--kpi-color) 35%,transparent);background:color-mix(in srgb,var(--kpi-color) 12%,#07152e);color:var(--kpi-color);font-size:26px}.rtl .dashboard-kpi-icon{left:auto;right:18px}.dashboard-kpi-more{position:absolute;right:13px;top:13px;border:0;background:none;color:#93a8c3;font-size:20px;cursor:pointer}.rtl .dashboard-kpi-more{right:auto;left:13px}.dashboard-kpi-spark{position:absolute;right:12px;bottom:8px;width:48%;height:43px;opacity:.95}.rtl .dashboard-kpi-spark{right:auto;left:12px}.kpi-violet{--kpi-color:#ad76ff;--kpi-glow:#44228b}.kpi-mint{--kpi-color:#35e2b8;--kpi-glow:#075f59}.kpi-orange{--kpi-color:#ff8438;--kpi-glow:#713417}.kpi-purple{--kpi-color:#9d6bff;--kpi-glow:#3f2a8e}.dashboard-kpi-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--kpi-color) 50%,#173b6b)!important;box-shadow:0 20px 42px #0005}@media(max-width:1200px){.dashboard-overview-head{display:grid}.dashboard-overview-actions{min-width:0;width:100%}}@media(max-width:900px){.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dashboard-overview-actions{grid-template-columns:1fr 42px 42px auto}}@media(max-width:620px){.dashboard-overview-actions{grid-template-columns:1fr repeat(2,42px)}.dashboard-export{grid-column:1/-1}.dashboard-updated{justify-content:space-between}.dashboard-kpi-grid{grid-template-columns:1fr!important}.dashboard-source-banner{grid-template-columns:1fr!important;padding:82px 18px 18px!important}.rtl .dashboard-source-banner{padding:82px 18px 18px!important}.source-device-icon,.rtl .source-device-icon{left:0;right:auto;top:-66px}.dashboard-source-banner .source-badge{white-space:normal;text-align:center}.dashboard-kpi-card{min-height:150px!important}}

/* Compact live KPI cards. */
.ri-kpi-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;margin:16px 0 0!important}.ri-kpi-card{--ri-accent:#a66bff;--ri-glow:#4b278f;position:relative;min-height:138px!important;padding:21px 22px!important;border:1px solid color-mix(in srgb,var(--ri-accent) 30%,#173b6b)!important;border-radius:16px!important;background:radial-gradient(circle at 100% 115%,color-mix(in srgb,var(--ri-glow) 76%,transparent),transparent 48%),linear-gradient(145deg,#0a2340,#07182e)!important;box-shadow:0 14px 32px #0003;overflow:hidden;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.ri-kpi-card:after{content:"";position:absolute;right:-28px;bottom:-42px;width:126px;height:126px;border-radius:50%;background:var(--ri-accent);filter:blur(34px);opacity:.16;pointer-events:none}.rtl .ri-kpi-card:after{right:auto;left:-28px}.ri-kpi-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--ri-accent) 65%,#173b6b)!important;box-shadow:0 20px 42px #0005}.ri-kpi-label{position:relative;z-index:1;color:#b8cadc;font-size:13px;font-weight:500}.ri-kpi-value{position:relative;z-index:1;margin:13px 0 10px;color:var(--ri-accent);font-size:31px;font-weight:850;line-height:1;letter-spacing:-.7px}.ri-kpi-caption{position:relative;z-index:1;color:#c2d0df;font-size:12px}.ri-kpi-purple{--ri-accent:#a66bff;--ri-glow:#5332a8}.ri-kpi-green{--ri-accent:#42e5ba;--ri-glow:#087568}.ri-kpi-orange{--ri-accent:#ff8a3d;--ri-glow:#8b441c}@media(max-width:900px){.ri-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:620px){.ri-kpi-grid{grid-template-columns:1fr!important}.ri-kpi-card{min-height:124px!important}}

/* Professional portal navigation. */
.sidebar{padding:26px 15px!important;background:radial-gradient(circle at 25% 0,#0b3150 0,transparent 31%),linear-gradient(180deg,#031426,#020d1a 72%)!important;box-shadow:14px 0 38px #0004}.menu{display:grid;gap:7px}.menu button{position:relative;min-height:52px;margin:0!important;padding:7px 12px!important;gap:12px!important;border:1px solid transparent!important;border-radius:13px!important;color:#a9c2d7!important;overflow:hidden;transition:color .2s ease,transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.menu button:before{content:"";position:absolute;inset:8px auto 8px 0;width:3px;border-radius:5px;background:linear-gradient(#45ddff,#7c5cff);opacity:0;transform:scaleY(.35);transition:.2s}.rtl .menu button:before{inset:8px 0 8px auto}.menu button:hover{color:#fff!important;transform:translateX(3px);border-color:#1d4d6c!important;background:linear-gradient(90deg,#0a314bba,#09233aaa)!important}.rtl .menu button:hover{transform:translateX(-3px)}.menu button.active{color:#fff!important;border-color:#236487!important;background:linear-gradient(100deg,#0b4363,#112b58 72%,#3a2267)!important;box-shadow:0 10px 28px #0004,inset 0 1px #69e4ff26}.menu button.active:before{opacity:1;transform:scaleY(1)}.menu-icon{position:relative;z-index:1;flex:0 0 37px;width:37px;height:37px;display:grid;place-items:center;border:1px solid #1d4b68;border-radius:11px;background:linear-gradient(145deg,#0c3048,#071a2c);color:#6fcff0;box-shadow:inset 0 1px #ffffff0d;transition:.2s}.menu-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.menu button:hover .menu-icon,.menu button.active .menu-icon{color:#fff;border-color:#40cff2;background:linear-gradient(145deg,#16a6cf,#6549e8);box-shadow:0 0 20px #25c9f444}.menu-label{position:relative;z-index:1;flex:1;line-height:1.25;font-size:13.5px;font-weight:600}.menu-arrow{position:relative;z-index:1;color:#51748c;font-size:22px;opacity:0;transform:translateX(-5px);transition:.2s}.menu button:hover .menu-arrow,.menu button.active .menu-arrow{opacity:1;transform:translateX(0);color:#8eeaff}.rtl .menu-arrow{transform:rotate(180deg) translateX(-5px)}.rtl .menu button:hover .menu-arrow,.rtl .menu button.active .menu-arrow{transform:rotate(180deg) translateX(0)}@media(max-width:850px){.menu{display:flex;gap:8px}.menu button{min-width:205px}.menu-arrow{display:none}}

/* Live monitoring experience. */
.monitor-shell{display:grid;gap:17px;animation:monitorEnter .55s ease both}.monitor-hero{position:relative;min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:25px 30px;border:1px solid #155776;border-radius:21px;background:radial-gradient(circle at 88% 50%,#0b6f8266,transparent 31%),linear-gradient(115deg,#071b3a,#082746 58%,#072735);box-shadow:0 20px 48px #0004;overflow:hidden}.monitor-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#6fffe70b 49%,transparent 62%);transform:translateX(-100%);animation:monitorSweep 5s infinite}.monitor-hero-copy{position:relative;z-index:1}.monitor-live{display:flex;align-items:center;gap:8px;color:#53e5c0;font-size:11px;font-weight:800;letter-spacing:1.8px}.monitor-live i,.monitor-streaming i{width:8px;height:8px;border-radius:50%;background:#42e5b8;box-shadow:0 0 0 0 #42e5b899;animation:monitorPulse 1.8s infinite}.monitor-hero h3{margin:12px 0 7px;font-size:28px}.monitor-hero p{margin:0;color:#9db9cc}.monitor-signal{position:relative;z-index:1;width:245px;height:86px;display:grid;place-items:center}.monitor-signal>span{position:absolute;width:46px;height:46px;border:1px solid #4fe4dc80;border-radius:50%;animation:signalRing 2.7s infinite}.monitor-signal>span:nth-child(2){animation-delay:.8s}.monitor-signal>span:nth-child(3){animation-delay:1.6s}.monitor-signal svg{width:210px;fill:none;stroke:#58e6f6;stroke-width:2.2;filter:drop-shadow(0 0 7px #30d9ff);stroke-dasharray:180;animation:signalDraw 3.2s linear infinite}.monitor-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.monitor-metric{position:relative;min-height:130px;display:flex;align-items:center;gap:13px;padding:16px;border:1px solid #173d5d;border-radius:16px;background:linear-gradient(145deg,#09243d,#071729);overflow:hidden;box-shadow:0 12px 28px #0003;animation:monitorCardIn .55s ease both;transition:.22s}.monitor-metric:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--metric) 55%,#173d5d);box-shadow:0 18px 36px #0005}.monitor-metric-icon{flex:0 0 45px;width:45px;height:45px;display:grid;place-items:center;border-radius:14px;color:var(--metric);background:color-mix(in srgb,var(--metric) 12%,transparent);border:1px solid color-mix(in srgb,var(--metric) 30%,transparent)}.monitor-metric-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.monitor-metric small,.monitor-metric em{display:block;color:#8da9bc;font-size:10px;font-style:normal}.monitor-metric strong{display:block;margin:7px 0;color:#f3fbff;font-size:21px;white-space:nowrap}.monitor-metric-glow{position:absolute;width:75px;height:75px;right:-25px;bottom:-35px;border-radius:50%;background:var(--metric);filter:blur(25px);opacity:.18}.rtl .monitor-metric-glow{right:auto;left:-25px}.monitor-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:16px}.monitor-panel{border:1px solid #153e5d;border-radius:18px;background:linear-gradient(155deg,#081f35,#051420);box-shadow:0 16px 35px #0003;overflow:hidden;animation:monitorCardIn .6s .12s ease both}.monitor-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 19px;border-bottom:1px solid #123650}.monitor-panel h4{margin:0 0 4px;font-size:14px}.monitor-panel header p{margin:0;color:#7897ab;font-size:11px}.monitor-panel header button{padding:7px 11px;border:1px solid #245777;border-radius:8px;background:#0a2b44;color:#bcecff;cursor:pointer}.monitor-wide{min-height:355px}.monitor-chart{height:285px;padding:14px}.monitor-donut{height:285px;padding:16px}.monitor-streaming{display:flex;align-items:center;gap:7px;color:#47dbb6;font-size:10px}.monitor-feed{padding:5px 17px}.monitor-feed-row{display:grid;grid-template-columns:10px minmax(120px,1fr) auto auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #ffffff0b;animation:monitorCardIn .45s var(--delay) ease both}.monitor-feed-dot{width:8px;height:8px;border-radius:50%;background:#42e5b8;box-shadow:0 0 10px #42e5b8}.monitor-feed-dot.warning{background:#ff7950;box-shadow:0 0 10px #ff7950}.monitor-feed-row b{display:block;font-size:11px}.monitor-feed-row small{display:block;margin-top:3px;color:#6f8da1;font-size:9px}.monitor-feed-row>span{color:#b8ccda;font-size:10px}.monitor-people{grid-column:1/-1}.monitor-person-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:15px}.monitor-person{display:grid;grid-template-columns:40px minmax(0,1fr) auto 15px;gap:10px;align-items:center;padding:12px;border:1px solid #163c58;border-radius:13px;background:#082036;color:#eaf7ff;text-align:left;cursor:pointer;animation:monitorCardIn .48s var(--delay) ease both;transition:.2s}.rtl .monitor-person{text-align:right}.monitor-person:hover{transform:translateY(-3px);border-color:var(--risk);background:#0b2942}.monitor-avatar{width:39px;height:39px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--risk) 17%,#07182a);border:1px solid color-mix(in srgb,var(--risk) 42%,transparent);color:var(--risk);font-weight:850}.monitor-person-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.monitor-person-copy small{display:block;margin-top:4px;color:var(--risk);font-size:9px}.monitor-person-vitals{text-align:center}.monitor-person-vitals b{display:block;font-size:14px}.monitor-person-vitals small{color:#7190a4;font-size:8px}.monitor-chevron{color:#5f849c;font-size:20px}@keyframes monitorEnter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes monitorCardIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes monitorPulse{70%{box-shadow:0 0 0 9px #42e5b800}}@keyframes signalRing{0%{transform:scale(.35);opacity:.8}100%{transform:scale(2.3);opacity:0}}@keyframes signalDraw{to{stroke-dashoffset:-360}}@keyframes monitorSweep{0%,35%{transform:translateX(-100%)}70%,100%{transform:translateX(100%)}}@media(max-width:1400px){.monitor-kpis{grid-template-columns:repeat(3,1fr)}.monitor-person-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.monitor-grid{grid-template-columns:1fr}.monitor-hero{min-height:180px}.monitor-signal{width:180px}.monitor-person-grid{grid-template-columns:1fr}}@media(max-width:620px){.monitor-hero{display:block;padding:22px}.monitor-signal{height:65px;margin:16px auto 0}.monitor-kpis{grid-template-columns:repeat(2,1fr)}.monitor-metric{display:block}.monitor-metric-icon{margin-bottom:9px}.monitor-feed-row{grid-template-columns:10px 1fr auto}.monitor-feed-row>span:last-child{display:none}}@media(prefers-reduced-motion:reduce){.monitor-shell,.monitor-metric,.monitor-panel,.monitor-feed-row,.monitor-person,.monitor-live i,.monitor-streaming i,.monitor-signal>*{animation:none!important}}

/* Shared identity-aware module design system. */
body[data-platform="riayah"]{--identity-primary:#32d5f4;--identity-secondary:#7859f4;--identity-deep:#08284a;--identity-glow:#247dc8}body[data-platform="equisense"]{--identity-primary:#1ebee8;--identity-secondary:#39e3bd;--identity-deep:#082e4d;--identity-glow:#087fba}body[data-platform="camsense"]{--identity-primary:#d9a441;--identity-secondary:#65b85a;--identity-deep:#173c36;--identity-glow:#a46e20}.module-experience{--module-accent:var(--identity-primary);display:grid;gap:18px;animation:moduleExperienceIn .45s ease both}.module-stage{position:relative;min-height:135px;display:flex;align-items:center;gap:20px;padding:22px 26px;border:1px solid color-mix(in srgb,var(--identity-primary) 42%,#183c58);border-radius:20px;background:radial-gradient(circle at 88% 45%,color-mix(in srgb,var(--identity-secondary) 25%,transparent),transparent 29%),linear-gradient(120deg,#07182f,var(--identity-deep));box-shadow:0 18px 42px #0004;overflow:hidden}.module-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#ffffff0b 48%,transparent 60%);transform:translateX(-105%);animation:moduleStageSweep 6s infinite}.module-stage-icon{position:relative;z-index:1;flex:0 0 64px;width:64px;height:64px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--identity-primary) 55%,transparent);border-radius:19px;background:linear-gradient(145deg,color-mix(in srgb,var(--identity-primary) 25%,#082139),color-mix(in srgb,var(--identity-secondary) 18%,#061527));color:#fff;box-shadow:0 0 28px color-mix(in srgb,var(--identity-primary) 25%,transparent)}.module-stage-icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.module-stage>div:nth-child(2){position:relative;z-index:1}.module-stage span{color:var(--identity-primary);font-size:10px;font-weight:850;letter-spacing:2px}.module-stage h3{margin:8px 0 5px!important;font-size:23px!important}.module-stage p{margin:0!important;color:#9eb9cc!important}.module-stage-orbit{position:absolute;right:5%;width:95px;height:95px;border:1px solid color-mix(in srgb,var(--identity-primary) 32%,transparent);border-radius:50%;animation:moduleOrbit 8s linear infinite}.rtl .module-stage-orbit{right:auto;left:5%}.module-stage-orbit:before,.module-stage-orbit:after{content:"";position:absolute;border-radius:50%;background:var(--identity-primary);box-shadow:0 0 15px var(--identity-primary)}.module-stage-orbit:before{width:8px;height:8px;left:8px;top:10px}.module-stage-orbit:after{width:5px;height:5px;right:4px;bottom:23px}.module-experience .module-toolbar,.module-experience .directory-section,.module-experience .feature-item,.module-experience .data-panel,.module-experience .rule-card,.module-experience .alert-item,.module-experience .blueprint-section,.module-experience .registration-section{border-color:color-mix(in srgb,var(--identity-primary) 24%,#173950)!important;background:linear-gradient(145deg,#082038dd,#061624e8)!important;box-shadow:0 12px 30px #0002;transition:transform .2s,border-color .2s}.module-experience .feature-item:hover,.module-experience .rule-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--identity-primary) 60%,#173950)!important}.module-experience .module-action,.module-experience .primary-action{border:0!important;background:linear-gradient(110deg,var(--identity-primary),var(--identity-secondary))!important;color:#041522!important;font-weight:850!important;box-shadow:0 9px 24px color-mix(in srgb,var(--identity-primary) 22%,transparent);transition:transform .2s,box-shadow .2s}.module-experience .module-action:hover,.module-experience .primary-action:hover{transform:translateY(-2px);box-shadow:0 13px 30px color-mix(in srgb,var(--identity-primary) 34%,transparent)}.module-experience input,.module-experience select,.module-experience textarea{border-color:#214b65!important;background:#041523!important;transition:border-color .2s,box-shadow .2s}.module-experience input:focus,.module-experience select:focus,.module-experience textarea:focus{outline:0;border-color:var(--identity-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--identity-primary) 13%,transparent)}.module-experience .data-table th{color:var(--identity-primary);background:color-mix(in srgb,var(--identity-primary) 8%,#061827)}.module-experience .data-table tr{transition:background .18s}.module-experience .data-table tbody tr:hover{background:color-mix(in srgb,var(--identity-primary) 7%,transparent)}.module-experience .status-card strong,.module-experience .tile strong{color:var(--identity-primary)!important}.module-experience .priority-key,.module-experience .state-pill,.module-experience .channel-chip{box-shadow:inset 0 1px #ffffff0e}.rtl .module-stage{text-align:right}@keyframes moduleExperienceIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes moduleStageSweep{0%,45%{transform:translateX(-105%)}80%,100%{transform:translateX(105%)}}@keyframes moduleOrbit{to{transform:rotate(360deg)}}@media(max-width:650px){.module-stage{padding:19px}.module-stage-icon{flex-basis:52px;width:52px;height:52px}.module-stage-orbit{opacity:.45}.module-stage h3{font-size:19px!important}}@media(prefers-reduced-motion:reduce){.module-experience,.module-stage:after,.module-stage-orbit{animation:none!important}}

.module-load-error{min-height:300px;display:flex;align-items:center;justify-content:center;gap:20px;padding:35px;border:1px solid #ff77584d;border-radius:20px;background:radial-gradient(circle at 12% 50%,#ff68431c,transparent 27%),linear-gradient(145deg,#0a1d31,#071522);box-shadow:0 18px 42px #0004}.module-load-error-icon{flex:0 0 64px;width:64px;height:64px;display:grid;place-items:center;border:1px solid #ff77587a;border-radius:50%;background:#ff69421c;color:#ff8b6c;font-size:30px;font-weight:900;box-shadow:0 0 30px #ff684327}.module-load-error span{color:#ff8b6c;font-size:10px;font-weight:850;letter-spacing:2px}.module-load-error h3{margin:8px 0!important}.module-load-error p{max-width:650px;margin:0 0 18px!important;color:#9eb6c8!important}


/* ===== assets/css/modules.css ===== */
.module-visual-overview{position:relative;display:grid;grid-template-columns:minmax(210px,.8fr) 1.8fr;gap:22px;align-items:center;margin:0 0 24px;padding:22px;border:1px solid #58d9f52b;border-radius:22px;background:radial-gradient(circle at 0 0,#1ba9e822,transparent 42%),linear-gradient(135deg,#0b2b48e8,#061a2de8);box-shadow:0 22px 50px #0004;overflow:hidden}.module-visual-overview:after{content:"";position:absolute;inset:auto -60px -95px auto;width:210px;height:210px;border-radius:50%;background:#52e0bc12;filter:blur(5px)}.module-visual-chart{position:relative;height:190px;z-index:1}.module-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;position:relative;z-index:1}.module-insight{min-height:112px;padding:16px;border:1px solid #ffffff14;border-radius:15px;background:#ffffff08;transition:.25s}.module-insight:hover{transform:translateY(-4px);border-color:#52e0bc55}.module-insight b{display:block;margin-bottom:8px;color:#ecfaff}.module-insight span{color:#9eb8ca;font-size:12px;line-height:1.5}.module-progress{height:6px;margin-top:13px;border-radius:20px;background:#ffffff12;overflow:hidden}.module-progress i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#20c9f4,#52e0bc);animation:progressReveal .8s ease both}@keyframes progressReveal{from{width:0!important}}.data-panel,.integration-card,.wrist-card,.model-card,.feature-item,.registration-form,.directory-form,.api-box{transition:transform .25s,border-color .25s,box-shadow .25s}.integration-card:hover,.wrist-card:hover,.model-card:hover,.feature-item:hover{transform:translateY(-3px);border-color:#48d6f044;box-shadow:0 16px 30px #0003}.data-table tbody tr{transition:background .2s}.data-table tbody tr:hover{background:#20c9f40c}.module-action,.secondary-action,.primary{transition:transform .18s,filter .18s,box-shadow .18s}.module-action:hover,.secondary-action:hover,.primary:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 10px 22px #0004}.directory-form input:focus,.directory-form select:focus,.directory-form textarea:focus,.registration-form input:focus,.registration-form select:focus,.registration-form textarea:focus{outline:none;border-color:#20c9f4;box-shadow:0 0 0 3px #20c9f419}@media(max-width:900px){.module-visual-overview{grid-template-columns:1fr}.module-insights{grid-template-columns:1fr}.module-visual-chart{height:165px}}

.integration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.integration-card,.wrist-card{padding:18px;border:1px solid #ffffff18;border-radius:16px;background:#04192c}.integration-card h4,.wrist-card h4{margin:0 0 8px}.integration-card p,.wrist-card p{margin:5px 0;color:#9db6ca}.status-badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#52e0bc18;color:#72e7c8;font-size:11px}.code-preview{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px;padding:14px;border-radius:12px;background:#fff;color:#061a31}.code-preview canvas{width:112px!important;height:112px!important}.code-preview svg{max-width:260px;height:62px}.file-drop{padding:22px;border:1px dashed #49cfee66;border-radius:14px;background:#20c9f40a;text-align:center}.file-drop input{margin-top:12px}.scope-checks{display:flex;gap:12px;flex-wrap:wrap}.scope-checks label{display:flex;align-items:center;gap:6px}.scope-checks input{width:auto}.rtl .integration-card,.rtl .wrist-card{text-align:right}@media(max-width:850px){.integration-grid{grid-template-columns:1fr}}

.lifecycle-centre{margin-top:28px;border-top:1px solid #ffffff18;padding-top:26px}.lifecycle-card{margin:14px 0;padding:18px;border:1px solid var(--priority,#45c8ff);border-radius:16px;background:color-mix(in srgb,var(--priority,#45c8ff) 7%,#04182b)}.lifecycle-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;flex-wrap:wrap}.lifecycle-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.lifecycle-actions button{border:1px solid #3e7594;border-radius:9px;padding:9px 11px;background:#ffffff09;color:#e7f7ff;cursor:pointer}.lifecycle-actions button.resolve{border-color:#52e0bc;color:#70e9ca}.decision-box{margin-top:12px;padding:15px;border-radius:13px;background:#0a2b45;border:1px solid #52e0bc33}.decision-box h5{margin:0 0 8px;color:#73e4c8}.decision-box ul{margin:8px 0;padding-inline-start:20px;color:#c0d5e2}.lifecycle-form{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:14px}.lifecycle-form label{display:grid;gap:6px;color:#aec5d4;font-size:12px}.lifecycle-form input,.lifecycle-form select,.lifecycle-form textarea{padding:10px;border:1px solid #315d78;border-radius:9px;background:#031426;color:#fff}.lifecycle-form textarea,.lifecycle-form .wide{grid-column:1/-1}.timeline-row{padding:8px 0;border-bottom:1px solid #ffffff0e;color:#a9c1d1;font-size:12px}.clinical-warning{color:#ffd98a;font-size:12px}@media(max-width:700px){.lifecycle-form{grid-template-columns:1fr}.lifecycle-form textarea,.lifecycle-form .wide{grid-column:auto}}

.registration-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:22px 0;padding:22px;border:1px solid #ffffff18;border-radius:18px;background:#04182b99}.registration-form label{display:grid;gap:7px;color:#bcd0df;font-size:13px}.registration-form input,.registration-form select,.registration-form textarea,.email-report-form input{width:100%;padding:12px;border:1px solid #28516d;border-radius:10px;background:#06192b;color:#fff}.registration-form .wide{grid-column:1/-1}.registration-form textarea{min-height:80px;resize:vertical}.registration-actions{grid-column:1/-1;display:flex;gap:12px;align-items:center}.registration-message,.email-report-message{color:#67e4c2;font-size:13px}.email-report-form{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:15px}@media(max-width:720px){.registration-form{grid-template-columns:1fr}.registration-form .wide,.registration-actions{grid-column:auto}.email-report-form{grid-template-columns:1fr}}

.directory-tools{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.directory-tools input{flex:1;min-width:220px}.directory-tools input,.directory-form input,.directory-form select,.directory-form textarea{padding:12px;border:1px solid #2b536f;border-radius:10px;background:#041629;color:#fff}.directory-form{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:20px}.directory-form label{display:flex;flex-direction:column;gap:7px;color:#a9bfd0;font-size:12px}.directory-form .wide{grid-column:span 3}.directory-form textarea{min-height:82px;resize:vertical}.secondary-action{border:1px solid #2e6688;border-radius:10px;padding:10px 14px;background:#ffffff08;color:#dff5ff;cursor:pointer}.form-message{grid-column:span 3;min-height:18px;color:var(--mint);font-size:13px}.directory-section{margin-top:24px}.directory-section h4{margin:0 0 12px}.api-box{margin-top:20px;padding:16px;border:1px solid #ffffff16;border-radius:14px;background:#031426}.api-box code{display:block;margin:9px 0;padding:10px;border-radius:8px;background:#0005;color:#75ddf7;overflow:auto}.category-stakeholder{color:#f3ca75}.category-registered_user{color:#62ddf5}.category-end_user{color:#63e2b8}@media(max-width:780px){.directory-form{grid-template-columns:1fr}.directory-form .wide,.form-message{grid-column:span 1}}

.blueprint-banner{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:18px 20px;margin:18px 0;border:1px solid #36cde733;border-radius:16px;background:linear-gradient(120deg,#1bb5dd12,#45e1bd0b)}.blueprint-banner strong{display:block;font-size:17px}.blueprint-banner span{color:#9db6ca;font-size:13px}.source-badge{padding:8px 12px;border-radius:999px;background:#52e0bc18;color:#77e8ca;font-size:12px}.model-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}.model-card{padding:20px;border:1px solid #ffffff17;border-radius:16px;background:#04192c}.model-card h4{margin:5px 0 8px}.model-card p{margin:0;color:#9db6ca;font-size:13px}.model-meta{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0}.model-meta span{padding:5px 9px;border-radius:999px;background:#20c9f417;color:#75ddf7;font-size:11px}.input-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.input-chips span{padding:6px 9px;border:1px solid #ffffff17;border-radius:8px;color:#b9cfdd;background:#ffffff06;font-size:11px}.field-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}.field-group{padding:18px;border:1px solid #ffffff14;border-radius:15px;background:#051a2d}.field-group h4{margin:0 0 10px;color:#71daf5}.readiness{color:#78e4c7!important}.warning-note{border-left-color:#f1c45a!important;background:#f1c45a12!important}.profile-schema{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.profile-schema label{padding:13px;border:1px solid #ffffff12;border-radius:11px;background:#ffffff06;color:#b7cad8;font-size:12px}@media(max-width:800px){.model-grid,.field-groups,.profile-schema{grid-template-columns:1fr}.blueprint-banner{grid-template-columns:1fr}}

.priority-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.priority-key{padding:15px;border-radius:14px;border:1px solid var(--priority);background:color-mix(in srgb,var(--priority) 12%,transparent);box-shadow:0 0 24px color-mix(in srgb,var(--priority) 13%,transparent)}.priority-key strong{color:var(--priority);font-size:20px;display:block}.priority-p1{--priority:#ff4d6d}.priority-p2{--priority:#ff9f43}.priority-p3{--priority:#ffd166}.priority-p4{--priority:#45c8ff}.alert-stack{display:grid;gap:12px;margin-top:18px}.alert-item{border:1px solid var(--priority);border-left:6px solid var(--priority);border-radius:14px;padding:17px;background:color-mix(in srgb,var(--priority) 8%,#04182b);display:grid;grid-template-columns:1fr auto;gap:15px;animation:alertEnter .5s both}.alert-item h4{margin:0 0 7px}.alert-item p{margin:0}.priority-label{color:var(--priority);font-weight:800}.alert-timer{min-width:150px;margin-bottom:10px;padding:9px 11px;border-radius:10px;border:1px solid var(--priority);background:color-mix(in srgb,var(--priority) 13%,#031423);text-align:center;color:var(--priority);font-weight:800;letter-spacing:.6px}.alert-timer.overdue{animation:urgentPulse 1.15s infinite}.channel-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.channel-chip{padding:5px 8px;border-radius:999px;border:1px solid #ffffff1b;color:#b9cfdd;font-size:11px}.rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.rule-card{padding:15px;border-radius:13px;border:1px solid #ffffff17;background:#ffffff06}.rule-card b{color:var(--priority)}.dispatch-state{padding:5px 8px;border-radius:999px;background:#ffd16618;color:#ffd166;font-size:11px}@keyframes alertEnter{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}@keyframes urgentPulse{50%{box-shadow:0 0 25px color-mix(in srgb,var(--priority) 55%,transparent);transform:scale(1.035)}}@media(max-width:850px){.priority-strip,.rule-grid{grid-template-columns:repeat(2,1fr)}.alert-item{grid-template-columns:1fr}}@media(max-width:520px){.priority-strip,.rule-grid{grid-template-columns:1fr}}
.user-admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.user-admin-kpis>div{padding:18px;border:1px solid rgba(80,210,255,.2);border-radius:16px;background:linear-gradient(145deg,rgba(9,42,68,.9),rgba(13,25,55,.85));box-shadow:0 16px 34px rgba(0,0,0,.18)}.user-admin-kpis strong{display:block;font-size:28px;color:#5fe5ff}.user-admin-kpis span{color:#a9c2d5;font-size:13px}.user-admin-panel{margin-top:18px;padding:20px;border:1px solid rgba(80,210,255,.2);border-radius:18px;background:rgba(3,22,38,.72)}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-heading small{letter-spacing:.18em;color:#48d9ff}.panel-heading h4{font-size:21px;margin:5px 0 0}.user-admin-form{margin:0}.permission-matrix{border:1px solid rgba(117,98,255,.25);border-radius:14px;overflow:hidden;background:rgba(5,15,36,.7)}.permission-head{display:flex;justify-content:space-between;gap:18px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.permission-head span{color:#99b3c6;font-size:13px}.permission-scroll{overflow:auto}.permission-matrix table{border-collapse:collapse;width:100%;min-width:720px}.permission-matrix th,.permission-matrix td{padding:10px 12px;text-align:center;border-bottom:1px solid rgba(255,255,255,.06)}.permission-matrix th:first-child,.permission-matrix td:first-child{text-align:left}.permission-matrix input{width:17px;height:17px;accent-color:#5bdbff}.user-form-actions,.user-actions{display:flex;gap:8px;flex-wrap:wrap}.user-search{max-width:300px}.user-table-wrap{overflow:auto}.user-admin-table td:first-child b,.user-admin-table td:first-child small{display:block}.user-admin-table td:first-child small{color:#829fb5;margin-top:4px}.user-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#17334b;color:#b9d3e4;font-size:12px;white-space:nowrap}.user-status-accepted{background:rgba(30,210,150,.13);color:#55edbc}.user-status-pending{background:rgba(255,177,56,.14);color:#ffc366}.user-status-suspended,.user-status-revoked{background:rgba(255,79,101,.14);color:#ff7c8e}.user-action{border:1px solid rgba(89,211,255,.25);background:#092b43;color:#bcecff;border-radius:9px;padding:7px 10px;cursor:pointer}.user-action.invite,.user-action.activate{color:#55edbc}.user-action.suspend{color:#ffc366}.user-action.danger{color:#ff8b9a;border-color:rgba(255,90,110,.25)}.directory-legacy{margin-top:18px;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px}.directory-legacy summary{cursor:pointer;font-weight:700;color:#b9d9eb}.password-setup-overlay{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at top,#0d4260 0,#031525 48%,#020b18 100%)}.password-setup-card{width:min(480px,100%);padding:30px;border:1px solid rgba(78,218,255,.3);border-radius:22px;background:rgba(3,21,39,.96);box-shadow:0 30px 90px rgba(0,0,0,.5)}.password-setup-card h2{font-size:30px;margin:8px 0}.password-setup-card p{color:#9fb9cc;line-height:1.6}.password-setup-card label{display:grid;gap:7px;margin:16px 0}.password-setup-card input{padding:13px;border-radius:10px;border:1px solid #254a62;background:#061829;color:#fff}@media(max-width:900px){.user-admin-kpis{grid-template-columns:repeat(2,1fr)}.panel-heading,.permission-head{align-items:flex-start;flex-direction:column}.user-search{max-width:none;width:100%}}@media(max-width:520px){.user-admin-kpis{grid-template-columns:1fr}}
.forgot-password-link{display:block;margin:2px 0 15px auto;border:0;background:transparent;color:#55dfff;cursor:pointer;text-decoration:underline}.auth-dialog-close{position:absolute;top:14px;right:16px;border:0;background:transparent;color:#bcd2e2;font-size:28px;cursor:pointer}.password-setup-card{position:relative}


/* ===== assets/css/tickets.css ===== */
.ticket-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}.ticket-kpi{padding:17px;border:1px solid color-mix(in srgb,var(--tone) 35%,transparent);border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 12%,#06182b),#06182b);cursor:pointer;transition:.22s}.ticket-kpi:hover{transform:translateY(-3px);box-shadow:0 15px 34px color-mix(in srgb,var(--tone) 18%,transparent)}.ticket-kpi small,.ticket-kpi span{display:block;color:#9fb8ca}.ticket-kpi strong{display:block;margin:5px 0;color:var(--tone);font-size:28px}.ticket-toolbar{display:grid;grid-template-columns:minmax(230px,2fr) repeat(3,minmax(125px,1fr)) auto;gap:10px;margin:18px 0}.ticket-toolbar input,.ticket-toolbar select,.ticket-form input,.ticket-form select,.ticket-form textarea{width:100%;padding:11px 12px;border:1px solid #28536f;border-radius:10px;background:#04182b;color:#eefaff}.ticket-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:16px}.ticket-list,.ticket-detail,.ticket-create{border:1px solid #ffffff17;border-radius:18px;background:#031525b8}.ticket-list{overflow:auto}.ticket-row{display:grid;grid-template-columns:130px minmax(210px,1fr) 70px 110px 150px;gap:12px;align-items:center;width:100%;padding:15px;border:0;border-bottom:1px solid #ffffff0d;background:transparent;color:#dff5ff;text-align:left;cursor:pointer}.ticket-row:hover,.ticket-row.active{background:#2acff40d}.ticket-row b{color:#69ddfa}.ticket-row small{display:block;margin-top:4px;color:#849fb3}.ticket-status,.ticket-priority{display:inline-flex;width:max-content;padding:5px 9px;border-radius:999px;background:#ffffff0c}.ticket-priority{color:var(--priority,#68dff7);border:1px solid var(--priority,#68dff7)}.ticket-detail{min-height:430px;padding:20px}.ticket-detail h3{margin:7px 0}.ticket-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.ticket-meta div{padding:11px;border-radius:10px;background:#ffffff08}.ticket-meta small{display:block;color:#8fa9bb}.ticket-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.ticket-actions button{padding:9px 11px;border:1px solid #2c6687;border-radius:9px;background:#0a2b43;color:#e4f7ff;cursor:pointer}.ticket-actions .danger{color:#ff8293;border-color:#ff566d66}.ticket-form{display:grid;grid-template-columns:1fr 1fr;gap:11px}.ticket-form label{display:grid;gap:6px;color:#a9c1d1;font-size:12px}.ticket-form .wide{grid-column:1/-1}.ticket-create{margin-top:18px;padding:20px}.ticket-dashboard-strip{margin:0 0 18px;padding:15px;border:1px solid #35d6f42c;border-radius:16px;background:linear-gradient(90deg,#19c9f412,#7a57f411)}.ticket-dashboard-strip header{display:flex;justify-content:space-between;align-items:center}.ticket-empty{padding:38px;text-align:center;color:#8ea9bc}.ticket-origin{font-size:11px;color:#72e4c5;text-transform:uppercase;letter-spacing:.12em}@media(max-width:1050px){.ticket-kpis{grid-template-columns:repeat(3,1fr)}.ticket-layout{grid-template-columns:1fr}.ticket-toolbar{grid-template-columns:1fr 1fr}}@media(max-width:650px){.ticket-kpis{grid-template-columns:1fr 1fr}.ticket-toolbar,.ticket-form{grid-template-columns:1fr}.ticket-form .wide{grid-column:auto}.ticket-row{grid-template-columns:1fr 80px}.ticket-row>:nth-child(4),.ticket-row>:nth-child(5){display:none}}

.ticket-page-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 0}.ticket-page-controls button{min-height:44px;padding:8px 14px;cursor:pointer}.ticket-page-controls button:disabled{opacity:.5;cursor:default}

.ticket-all-cases-link,.ticket-all-cases-link:visited{color:#52d6ff;text-decoration:underline;text-underline-offset:3px;font-weight:600}
.ticket-all-cases-link:hover{color:#b9efff}
.ticket-all-cases-link:focus-visible{color:#b9efff;outline:2px solid #52d6ff;outline-offset:4px;border-radius:2px}

button.ticket-kpi{font:inherit;text-align:start;cursor:pointer;color:inherit}
button.ticket-kpi:hover{border-color:var(--tone,#52d6ff)}
button.ticket-kpi:focus-visible,.ticket-page-controls button:focus-visible{outline:2px solid #52d6ff;outline-offset:4px}


/* ===== assets/css/support.css ===== */
.support-dock{position:fixed;right:22px;bottom:22px;z-index:40;display:grid;gap:10px}.support-dock button{width:56px;height:56px;border:0;border-radius:50%;color:#fff;font-weight:900;cursor:pointer;box-shadow:0 12px 30px #0008}.whatsapp-fab{background:#20b85a}.assistant-fab{background:linear-gradient(135deg,#1688d5,#52e0bc)}.assistant-panel{position:fixed;right:22px;bottom:92px;z-index:39;width:min(380px,calc(100vw - 28px));height:520px;display:none;grid-template-rows:auto 1fr auto auto;border:1px solid #3e718f;border-radius:20px;overflow:hidden;background:#061a31;box-shadow:0 28px 80px #000b}.assistant-panel.open{display:grid;animation:assistantOpen .25s ease-out}.assistant-head{display:flex;justify-content:space-between;align-items:center;padding:17px 18px;background:linear-gradient(90deg,#0b2d4d,#0a4960)}.assistant-head small{display:block;color:#82dff3}.assistant-head button{border:0;background:none;color:#fff;font-size:25px;cursor:pointer}.assistant-messages{padding:16px;overflow:auto;display:flex;flex-direction:column;gap:10px}.assistant-message{max-width:86%;padding:11px 13px;border-radius:14px;background:#103451;color:#dceefa;line-height:1.5;font-size:13px;white-space:pre-wrap}.assistant-message.user{align-self:flex-end;background:#1688d5;color:#fff}.assistant-form{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-top:1px solid #ffffff15}.assistant-form input{min-width:0;padding:11px;border:1px solid #315a74;border-radius:10px;background:#031426;color:#fff}.assistant-form button,.assistant-whatsapp{border:0;border-radius:10px;padding:10px 13px;font-weight:800;cursor:pointer}.assistant-form button{background:#52e0bc;color:#04182b}.assistant-whatsapp{margin:0 12px 12px;background:#20b85a;color:#fff}.rtl .support-dock{right:auto;left:22px}.rtl .assistant-panel{right:auto;left:22px}@keyframes assistantOpen{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}


/* ===== assets/css/riayah-assistant-v24.css ===== */
.assistant-panel.riayah-assistant{right:24px;bottom:24px;width:min(440px,calc(100vw - 24px));height:min(720px,calc(100vh - 36px));grid-template-rows:auto auto 1fr auto;border:1px solid #2ed7ef66;border-radius:26px;background:linear-gradient(165deg,#07192d 0%,#082946 58%,#06182a 100%);box-shadow:0 30px 95px #000d,0 0 0 1px #61edff12;overflow:hidden}
.riayah-assistant .assistant-head{position:relative;min-height:138px;padding:18px 18px 16px 142px;background:radial-gradient(circle at 25% 35%,#1d9ed655,transparent 34%),linear-gradient(110deg,#092845,#0a5268);overflow:hidden}
.rtl .riayah-assistant .assistant-head{padding:18px 142px 16px 18px}
.riayah-assistant .assistant-character{position:absolute;left:5px;bottom:-19px;width:145px;height:164px;object-fit:contain;filter:drop-shadow(0 12px 18px #0007);animation:riayahFloat 3.2s ease-in-out infinite}
.rtl .riayah-assistant .assistant-character{left:auto;right:5px}
.riayah-assistant .assistant-identity{position:relative;z-index:1}.riayah-assistant .assistant-identity b{display:block;font-size:1.12rem}.riayah-assistant .assistant-identity small{display:block;color:#91ebfa;margin-top:4px}.riayah-assistant .assistant-live{display:inline-flex;gap:6px;align-items:center;margin-top:10px;padding:5px 9px;border-radius:999px;background:#23d7a21c;color:#71f0ca;font-size:.72rem}.riayah-assistant .assistant-live:before{content:"";width:7px;height:7px;border-radius:50%;background:#42e8b3;box-shadow:0 0 12px #42e8b3}
.riayah-assistant .assistant-close{position:absolute;right:13px;top:11px;z-index:3;width:34px;height:34px;border-radius:50%;background:#00142688!important}.rtl .riayah-assistant .assistant-close{right:auto;left:13px}
.assistant-language-row{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid #ffffff12;background:#05182a}.assistant-language-row button{flex:1;border:1px solid #245a74;border-radius:10px;padding:8px;background:#0a2940;color:#cbe7f3;cursor:pointer}.assistant-language-row button.active{border-color:#48e2f0;background:linear-gradient(120deg,#1188c7,#19b79d);color:white;font-weight:800}
.riayah-assistant .assistant-messages{padding:15px;background-image:radial-gradient(#62dcec12 1px,transparent 1px);background-size:20px 20px}.riayah-assistant .assistant-message{position:relative;max-width:88%;padding:12px 14px;border:1px solid #2a6280;border-radius:6px 16px 16px 16px;background:#0d3553;box-shadow:0 8px 18px #0003}.riayah-assistant .assistant-message.user{border:0;border-radius:16px 6px 16px 16px;background:linear-gradient(120deg,#176ed2,#714cdd)}.rtl .riayah-assistant .assistant-message{border-radius:16px 6px 16px 16px}.rtl .riayah-assistant .assistant-message.user{border-radius:6px 16px 16px 16px}
.assistant-source{display:block;margin-top:8px;color:#81dcea;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.assistant-quick{display:flex;flex-wrap:wrap;gap:7px;margin:3px 0 8px}.assistant-quick button{border:1px solid #2b718e;border-radius:999px;padding:7px 10px;background:#07253d;color:#bfeafb;font-size:.73rem;cursor:pointer}.assistant-quick button:hover{background:#0e5270;transform:translateY(-1px)}
.assistant-profile-form{display:grid;gap:9px}.assistant-profile-form input{padding:10px 11px;border:1px solid #2e607b;border-radius:10px;background:#041629;color:#fff}.assistant-profile-form button{border:0;border-radius:10px;padding:10px;background:linear-gradient(120deg,#27c9ef,#4ee0b2);color:#032136;font-weight:900;cursor:pointer}
.riayah-assistant .assistant-form{padding:12px 14px;background:#06182a}.riayah-assistant .assistant-form input{padding:13px}.riayah-assistant .assistant-form button{padding-inline:17px}.riayah-assistant .assistant-whatsapp{display:none}
.assistant-disclaimer{padding:0 14px 10px;color:#7597aa;font-size:.68rem;text-align:center;background:#06182a}
@keyframes riayahFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(max-width:600px){.assistant-panel.riayah-assistant{inset:8px;width:auto;height:auto;max-height:none;border-radius:20px}.riayah-assistant .assistant-head{min-height:120px;padding-left:124px}.rtl .riayah-assistant .assistant-head{padding-right:124px;padding-left:18px}.riayah-assistant .assistant-character{width:126px;height:145px}}
@media(prefers-reduced-motion:reduce){.riayah-assistant .assistant-character{animation:none}}

/* Individual supplied Rayan portraits: show each complete image. */
.riayah-assistant .assistant-character[data-rayan-platform="camsense"],.riayah-assistant .assistant-character[data-rayan-platform="equisense"],.riayah-assistant .assistant-character[data-rayan-platform="sensecore"]{width:125px;height:174px;object-fit:contain;object-position:center bottom;border-radius:10px;left:8px;bottom:0}
.rtl .riayah-assistant .assistant-character[data-rayan-platform]{left:auto;right:8px}


/* ===== assets/css/contact.css ===== */
.contact-card{max-width:1050px;margin:0 auto;padding:32px;border:1px solid #ffffff1b;border-radius:24px;background:linear-gradient(145deg,#0b2841cc,#061729e8);box-shadow:0 25px 65px #0005;text-align:left}.contact-details{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin:-24px auto 30px}.contact-detail{padding:12px 18px;border:1px solid #44d2ef45;border-radius:999px;background:#3acbeb0c;color:#d8f6ff}.contact-detail a{color:#65def7;text-decoration:none}.inquiry-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.inquiry-form label{display:flex;flex-direction:column;gap:7px;color:#abc3d3;font-size:12px}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{padding:12px;border:1px solid #2c5874;border-radius:10px;background:#031629;color:#fff}.inquiry-form .wide{grid-column:span 3}.inquiry-form textarea{min-height:95px;resize:vertical}.inquiry-form button{justify-self:start}.inquiry-message{grid-column:span 3;min-height:20px;color:#66e6c3;font-size:13px}@media(max-width:800px){.inquiry-form{grid-template-columns:1fr 1fr}.inquiry-form .wide,.inquiry-message{grid-column:span 2}}@media(max-width:560px){.inquiry-form{grid-template-columns:1fr}.inquiry-form .wide,.inquiry-message{grid-column:span 1}.contact-card{padding:22px}}


/* ===== assets/css/navigation-v41.css ===== */
#accountTop{display:none!important}
#menu button{display:flex;align-items:center;gap:11px;text-align:start;padding:9px 12px;min-height:56px}
.module-nav-label{line-height:1.3;font-size:13px;font-weight:600}
.module-orb{display:inline-flex;flex:none;width:42px;height:42px;border-radius:50%;transition:transform .22s ease,filter .22s ease}
.module-orb img{width:100%;height:100%;object-fit:contain}
#menu button:hover .module-orb{transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 0 6px #00caff66)}
#menu button.active .module-orb{filter:drop-shadow(0 0 7px #00d6e555)}
#moduleTitle{display:flex;align-items:center;gap:16px}
#moduleTitle .module-orb{width:68px;height:68px;animation:module-arrive .6s ease-out}
.account-card.account-inline{width:100%!important;max-width:none!important;max-height:none!important;overflow:visible;padding:8px!important;border:0;box-shadow:none;background:transparent}
@keyframes module-arrive{from{opacity:0;transform:scale(.8) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.module-orb,#moduleTitle .module-orb{animation:none!important;transition:none!important}#menu button:hover .module-orb{transform:none}}
@media(max-width:600px){#moduleTitle .module-orb{width:48px;height:48px}#moduleTitle{gap:10px;font-size:22px}}

.module-nav-group{margin-block:12px;padding-block:8px;border-block:1px solid #294657}.module-nav-group-title{padding:6px 12px;color:#c4d8e8;font-size:12px;font-weight:700;line-height:1.5}

#menu .module-nav-group{margin-block:6px;padding:0;border:0}
#menu .module-nav-group-title{display:flex;align-items:center;gap:11px;min-height:56px;padding:9px 12px;color:inherit;cursor:pointer;border-radius:10px;list-style:none}
#menu .module-nav-group-title::-webkit-details-marker{display:none}
#menu .module-nav-group-title:hover,#menu .has-active-module>.module-nav-group-title{background:rgba(32,201,244,.08);color:#9ee3ff}
#menu .module-nav-group-title:focus-visible{outline:2px solid #83e5ff;outline-offset:2px}
#menu .nav-disclosure{width:20px;height:20px;flex:none;margin-inline-start:auto;fill:none;stroke:currentColor;stroke-width:2;transition:transform .15s ease}
#menu details[open]>.module-nav-group-title .nav-disclosure{transform:rotate(180deg)}
#menu .module-nav-children{margin-inline-start:20px;padding-inline-start:7px;border-inline-start:1px solid #36566a}
#menu .module-nav-children .module-orb{width:32px;height:32px}
#menu .module-nav-children button{min-height:48px}
@media(prefers-reduced-motion:reduce){#menu .nav-disclosure{transition:none}}

.module-section-navigation{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-block-end:20px;padding-block-end:14px;border-bottom:1px solid #294657}
.module-section-label{font-size:13px;color:#c4d8e8;margin-inline-end:12px;font-weight:600}
.module-section-navigation a{display:inline-flex;align-items:center;min-height:44px;padding:9px 14px;color:#c4d8e8;border:1px solid #36566a;border-radius:8px;text-decoration:none;font-size:14px}
.module-section-navigation a:hover{background:#103346;color:#fff}.module-section-navigation a[aria-current=page]{background:#103346;border-color:#32c5eb;color:#a5e8ff;font-weight:700}
.module-section-navigation a:focus-visible{outline:2px solid #83e5ff;outline-offset:3px}
@media(max-width:600px){.module-section-label{width:100%;margin:0}.module-section-navigation a{flex:1;justify-content:center;text-align:center}}
@media print{.module-section-navigation{display:none!important}}


/* ===== assets/css/experience-v44.css ===== */
#logoutTop,#accountTop{display:none!important}
.account-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}
.account-edit-grid label{display:grid;gap:8px;font-size:14px}.account-edit-grid input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #286078;border-radius:10px;background:#061d2c;color:#e7f5ff;box-sizing:border-box;font-size:15px}
.account-edit-note,.account-save-message{grid-column:1/-1}.account-edit-grid .primary{min-height:44px;width:auto;padding:10px 22px;font-size:15px}
.account-session-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;border-top:1px solid #286078;padding-top:20px;margin-top:20px}.account-session-actions button{min-height:44px;padding:10px 20px;font-size:15px}
.account-card.account-inline{max-width:1040px!important;margin-inline:auto}.account-fields{font-size:14px}#menu .module-orb{width:36px;height:36px}#menu button{min-height:50px}#moduleTitle .module-orb{width:56px;height:56px}
@media(max-width:640px){.account-edit-grid{grid-template-columns:1fr}.account-session-actions{justify-content:stretch}.account-session-actions button{flex:1}}

.topbar #languageSwitch{display:inline-flex!important;align-items:center;justify-content:center;min-height:40px;flex-shrink:0}


/* ===== assets/css/dashboard-navigation.css ===== */
/* Preserve RIAYAH's existing visual identity; strengthen section navigation. */
body.rh-dashboard-navigation .workspace { min-width: 0; overflow: visible; }
body.rh-dashboard-navigation .dashboard-jumpbar {
  position: sticky;
  top: var(--rh-section-top, 86px);
  z-index: 4;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
  margin: 20px 0 24px;
  background: #071e32;
  border: 1px solid #24516c;
  border-radius: 12px;
  box-shadow: 0 8px 22px #020e1b40;
}
body.rh-dashboard-navigation .dashboard-jumpbar a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #c8e0ef;
  background: transparent;
  font: 600 14px/1.4 Inter, 'Segoe UI', Arial, sans-serif;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
body.rh-dashboard-navigation .dashboard-jumpbar a:hover {
  color: #fff;
  background: #103a54;
  border-color: #35718b;
}
body.rh-dashboard-navigation .dashboard-jumpbar a.is-current {
  color: #effcff;
  background: #123d56;
  border-color: #45ccec;
}
body.rh-dashboard-navigation .dashboard-jumpbar a:focus-visible {
  outline: 3px solid #64dff7;
  outline-offset: 3px;
}
body.rh-dashboard-navigation [id^='dashboard-'][tabindex='-1']:focus {
  outline: none;
}
body.rh-dashboard-navigation [id^='dashboard-'][tabindex='-1']:focus-visible {
  outline: 2px solid #64dff7;
  outline-offset: 6px;
}
@media (max-width: 850px) {
  body.rh-dashboard-navigation .portal { grid-template-columns: minmax(0, 1fr); }
  body.rh-dashboard-navigation .sidebar { position: static; height: auto; width: 100%; overflow: visible; padding: 14px!important; }
  body.rh-dashboard-navigation .portal-brand { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 0 0 12px; margin: 0 0 8px; }
  body.rh-dashboard-navigation .portal-brand .portal-logo { width: 44px; height: 44px; margin: 0; }
  body.rh-dashboard-navigation .portal-brand h3 { margin: 0; font-size: 15px; overflow-wrap: anywhere; }
  body.rh-dashboard-navigation .menu { max-width: 100%; overflow-x: auto; }
  body.rh-dashboard-navigation .menu button { min-width: 165px; }
  body.rh-dashboard-navigation #moduleContent,
  body.rh-dashboard-navigation #moduleContent > * { min-width: 0; max-width: 100%; }
  body.rh-dashboard-navigation .dashboard-visual-grid,
  body.rh-dashboard-navigation .command-grid,
  body.rh-dashboard-navigation .command-bottom { grid-template-columns: minmax(0, 1fr); }
  body.rh-dashboard-navigation .data-panel,
  body.rh-dashboard-navigation .command-panel,
  body.rh-dashboard-navigation .directory-section { min-width: 0; overflow-x: auto; }
  body.rh-dashboard-navigation .topbar { height: auto; min-height: 74px; padding: 10px 14px; flex-wrap: wrap; gap: 8px; }
  body.rh-dashboard-navigation .topbar .brand { flex: 1 1 190px; }
  body.rh-dashboard-navigation .dashboard-section-title { align-items: start; flex-direction: column; gap: 6px; }
}
@media (max-width: 650px) {
  body.rh-dashboard-navigation .dashboard-jumpbar { gap: 4px; }
  body.rh-dashboard-navigation .dashboard-jumpbar a { flex: 1 1 calc(33.333% - 8px); padding: 10px 8px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  body.rh-dashboard-navigation .dashboard-jumpbar a { transition: none; }
}


/* ===== assets/css/dashboard-people-summary.css ===== */
.rh-directory-summary { padding: 24px; border: 1px solid #24516c; border-radius: 16px; background: #071d30; margin: 24px 0; }
.rh-summary-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.rh-summary-heading h3 { margin: 0 0 6px!important; font-size: 22px!important; color: #eaf6ff; }
.rh-summary-heading p { margin: 0!important; font-size: 14px; color: #b9d4e5!important; }
.rh-summary-heading strong { color: #6cdef4; font-variant-numeric: tabular-nums; }
.rh-directory-summary button { min-height: 44px; cursor: pointer; }
.rh-directory-summary button:focus-visible { outline: 3px solid #64dff7; outline-offset: 3px; }
.rh-summary-charts { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 32px; margin-top: 22px; }
.rh-summary-charts article { min-width: 0; }
.rh-summary-charts h4 { color: #d9eaf5; margin: 0 0 12px; font-size: 15px; }
.rh-summary-plot { height: 190px; position: relative; }
.rh-summary-legend { margin: 12px 0 0; }
.rh-summary-legend > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 6px 0; color: #c6ddeb; font-size: 13px; }
.rh-summary-legend dt { display: flex; align-items: center; gap: 8px; }
.rh-summary-legend dt span { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
.rh-summary-legend dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; color: #eaf6ff; }
.module-card .rh-summary-note { color: #adcadd; font-size: 13px; margin: 16px 0 0; }
@media(max-width:650px) { .rh-directory-summary { padding: 18px; } .rh-summary-charts { grid-template-columns: minmax(0,1fr); gap: 20px; } }


/* ===== assets/css/dashboard-alert-summary.css ===== */
.rh-alert-summary{grid-column:1/-1;min-width:0}.rh-alert-summary header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.rh-alert-summary button,.rh-alert-summary input,.rh-alert-summary select{min-height:44px;border:1px solid #285069;border-radius:8px;padding:10px;background:#081f30;color:#e3f3fb}.rh-alert-summary button{cursor:pointer}.rh-alert-summary button:focus-visible,.rh-alert-summary input:focus-visible,.rh-alert-summary select:focus-visible{outline:2px solid #36d8ed;outline-offset:3px}.rh-alert-summary button:disabled{opacity:.45;cursor:default}.rh-alert-stats,.rh-alert-graphs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0}.rh-alert-stats strong{display:block;font-size:30px;color:#47dbeb}.rh-alert-stats button{text-align:start}.rh-alert-bar{display:grid;grid-template-columns:110px 1fr 55px;align-items:center;gap:12px;margin:12px 0}.rh-alert-bar meter{width:100%;height:20px;accent-color:#35cfdf}.rh-alert-bar b{text-align:end}.rh-alert-filters{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.rh-alert-filters label{display:grid;gap:6px;flex:1;min-width:140px}.rh-alert-results{max-height:450px;overflow:auto}.rh-alert-result{width:100%;display:block;text-align:start;margin:8px 0}.rh-alert-result span{display:block;color:#a9c7d6;margin-top:6px}.rh-alert-detail{border-inline-start:3px solid #36d8ed;padding:16px;overflow-wrap:anywhere}.rh-alert-pagination{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:16px}@media(max-width:650px){.rh-alert-graphs{grid-template-columns:1fr}.rh-alert-bar{grid-template-columns:95px 1fr 45px}}

.rh-alert-summary.data-panel{padding:20px;box-sizing:border-box}.rh-alert-summary h4{padding:0;border:0}.rh-alert-bar meter::-webkit-meter-bar{background:#173749;border:0;border-radius:6px}.rh-alert-bar meter::-webkit-meter-optimum-value{background:#38cddd;border-radius:6px}.rh-alert-bar meter::-moz-meter-bar{background:#38cddd}.rh-alert-graphs{padding:12px 0}


/* ===== assets/css/dashboard-profile-summary.css ===== */
.rh-profile-summary.data-panel{grid-column:1/-1;min-width:0;padding:24px;box-sizing:border-box}.rh-profile-summary header{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}.rh-profile-summary h4{padding:0;border:0;margin:0 0 12px}.rh-profile-summary header p{color:#a9c7d6;margin:0}.rh-profile-summary button{min-height:44px}.rh-profile-summary button:focus-visible{outline:2px solid #38d8e9;outline-offset:4px}.rh-profile-total{display:flex;align-items:baseline;gap:14px;margin:24px 0;color:#bcd0df}.rh-profile-total strong{font-size:36px;color:#47dbeb}.rh-profile-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.rh-profile-plot{height:210px;position:relative}.rh-profile-legend{display:grid;gap:8px;margin:16px 0 0}.rh-profile-legend div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #ffffff0c;padding:6px 0}.rh-profile-legend dt{color:#bcd0df}.rh-profile-legend dd{margin:0;font-weight:600;color:#e3f3fb}@media(max-width:650px){.rh-profile-charts{grid-template-columns:1fr}.rh-profile-summary.data-panel{padding:18px}}


/* ===== assets/css/clinical-actions-review.css ===== */
.clinical-review{margin:20px 0;padding:20px;border:1px solid #285069;border-radius:12px;background:#081f30;overflow-wrap:anywhere}.clinical-review button,.clinical-review a,.monitor-explore button{display:inline-block;padding:12px;margin:6px;border:1px solid #285069;border-radius:8px;background:#123447;color:#e3f3fb;min-height:44px}.clinical-review h4:focus{outline:2px solid #38cddd}.clinical-review-map{height:280px;margin:16px 0}.monitor-explore input{width:100%;padding:14px;background:#081f30;color:#e3f3fb;border:1px solid #285069;border-radius:8px}.monitor-summary{display:flex;flex-wrap:wrap;gap:16px}.monitor-summary div{flex:1;min-width:100px;padding:16px;background:#0c2839;border-radius:10px}.monitor-summary strong{display:block;font-size:26px;color:#42d5e4}.monitor-summary meter{width:100%;accent-color:#42d5e4}.monitor-explore summary{padding:16px;cursor:pointer;color:#42d5e4}.monitor-explore .subject-row{min-width:0}


/* ===== assets/css/assistant-voice.css ===== */
#assistantVoiceTools{padding:10px 14px;border-top:1px solid #285069;background:#081f30;color:#c6dce8}#assistantVoiceTools small{display:block;font-size:11px;line-height:1.5}.assistant-voice-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.assistant-voice-buttons button,.assistant-read-aloud{min-height:40px;border:1px solid #34718c;background:#123447;color:#e9faff;border-radius:8px;padding:8px;cursor:pointer}.assistant-voice-buttons label{display:flex;align-items:center;gap:6px;font-size:12px}.assistant-voice-buttons input{width:auto}.assistant-read-aloud{display:block;margin-top:8px;font-size:12px}#assistantMic[aria-pressed=true]{background:#803744}#assistantVoiceStatus{font-size:12px;margin:6px 0}.assistant-voice-buttons button:disabled{opacity:.5;cursor:not-allowed}.assistant-voice-buttons button:focus-visible,.assistant-read-aloud:focus-visible{outline:2px solid #47dbea;outline-offset:2px}

#assistantPanel .assistant-message-input{position:relative;flex:1;min-width:0;display:flex;align-items:center}
#assistantPanel .assistant-message-input #assistantInput{width:100%;box-sizing:border-box;padding-inline-end:50px;min-height:48px}
#assistantPanel .assistant-message-input #assistantMic{position:absolute;inset-inline-end:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-height:40px;padding:8px;margin:0;border:0;border-radius:8px;background:transparent;color:#48d8e8;cursor:pointer}
#assistantPanel .assistant-message-input #assistantMic:hover{background:#ffffff12}
#assistantPanel .assistant-message-input #assistantMic[aria-pressed="true"]{background:#803744;color:#fff}
#assistantPanel .assistant-message-input #assistantMic:focus-visible{outline:2px solid #47dbea;outline-offset:-2px}
#assistantPanel .assistant-message-input #assistantMic:disabled{opacity:.4;cursor:not-allowed}

.assistant-audio-upload{display:block;font-size:12px;margin-top:8px}.assistant-audio-upload input{display:block;max-width:100%;font-size:12px;margin-top:4px}


/* ===== assets/css/alerts-workspace.css ===== */
.aw{color:#dceaf4}.aw header p,.aw small,.aw-guide p{color:#aac2d1}.aw nav,.aw-filters,.aw-pager,.aw-history-pages{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.aw nav{padding:14px 0;border-bottom:1px solid #255267;margin-bottom:24px}.aw button,.aw select,.aw input{font:inherit;color:#dceaf4;background:#0a2637;border:1px solid #34708a;border-radius:7px;padding:10px 14px;min-height:42px}.aw button{cursor:pointer}.aw button:hover,.aw button[aria-current=true]{background:#17495c;border-color:#37d3ee}.aw button:disabled{opacity:.45;cursor:default}.aw :focus-visible{outline:2px solid #37d3ee;outline-offset:3px}.aw-filters{align-items:end;margin:22px 0}.aw-filters label{display:flex;flex-direction:column;gap:7px;min-width:135px}.aw-filters label:first-child{flex:1;min-width:220px}.aw input{width:100%;box-sizing:border-box}.aw-table{overflow:auto;max-width:100%;border-block:1px solid #255267}.aw table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.aw th{text-align:start;color:#47dbef;background:#0c2a3a;padding:13px}.aw td{padding:14px 13px;border-top:1px solid #1c3b4b;vertical-align:top;overflow-wrap:anywhere;max-width:390px}.aw td small{display:block;margin-top:6px;font-size:13px;line-height:1.5}.aw tr:hover{background:#0b2939}.aw-pager,.aw-history-pages{justify-content:flex-end;margin:16px 0}.aw-guide{margin-top:32px;padding-top:20px;border-top:1px solid #255267}.aw h4{font-size:19px;margin-top:24px}.aw details{margin:24px 0;padding-block:16px;border-block:1px solid #255267}.aw summary{cursor:pointer;font-weight:700;padding:6px}.aw-actions{margin:24px 0}.aw-history-body{margin-top:18px}.aw [role=alert]{color:#ffb9bc}@media(max-width:650px){.aw nav button{flex:1}.aw-filters label{flex:1;min-width:130px}.aw-filters label:first-child{min-width:100%}.aw table{min-width:620px}.aw-pager{justify-content:space-between}.aw-actions button{flex:1}.aw h3{font-size:20px}}
/* Keep the workspace inside its grid track; only the data table scrolls. */
.portal:has(.aw) .workspace,.portal:has(.aw) .module-card,.aw,.aw-body{min-width:0}
@media(max-width:650px){.portal:has(.aw){display:block!important}.portal:has(.aw) .sidebar{position:relative!important;width:auto!important;max-width:100%;height:auto!important;max-height:230px;overflow:auto}.portal:has(.aw) .workspace{width:auto!important;margin:0!important;padding:14px!important}.portal:has(.aw) .module-card{padding:14px!important}.aw{width:100%}.aw-table{width:100%}.aw nav{display:grid;grid-template-columns:1fr}.aw-filters label{max-width:100%}}

.aw-deadline{display:inline-block;font-weight:700;white-space:nowrap;color:#aac2d1}.aw-deadline.is-overdue{color:#ffb9bc}.aw-deadline.is-pending{color:#ffe082}.aw-deadline.is-closed{color:#9de9ba}
@media(max-width:650px){.aw-filters label:has(select[name="sort"]){flex-basis:100%;min-width:100%}}


/* ===== assets/css/reports-builder.css ===== */
.rb{color:#dceaf4;min-width:0}.rb p,.rb small{color:#b0c6d4;line-height:1.6}.rb nav,.rb-buttons,.rb-pages,.rb-heading,.rb-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.rb nav{padding:18px 0;border-bottom:1px solid #285265;margin-bottom:24px}.rb button,.rb input,.rb select{font:inherit;padding:10px 13px;min-height:42px;border:1px solid #34708a;border-radius:7px;background:#092637;color:#e3eff6}.rb button{cursor:pointer}.rb button:hover,.rb button[aria-current=true]{background:#164a5d;border-color:#37d3ee}.rb button:disabled{opacity:.45;cursor:default}.rb :focus-visible{outline:2px solid #37d3ee;outline-offset:3px}.rb label{display:flex;flex-direction:column;gap:7px}.rb-filters{align-items:end}.rb-filters label:first-child{flex:1;min-width:240px}.rb input{box-sizing:border-box;max-width:100%}.rb-check{flex-direction:row!important;align-items:center;justify-content:flex-start!important}.rb input[type=checkbox]{min-height:20px;width:20px;accent-color:#19c3de}.rb-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:20px}.rb fieldset{border:1px solid #285265;border-radius:8px;padding:15px;min-width:0}.rb legend{font-weight:700;padding:0 8px}.rb-columns{display:grid;gap:4px;margin-top:12px}.rb-columns[hidden]{display:none}.rb details{margin:24px 0}.rb summary{padding:12px 0;font-weight:700;cursor:pointer}.rb-table{width:100%;overflow:auto;border-block:1px solid #285265}.rb table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.rb th,.rb td{text-align:start;padding:12px;border-bottom:1px solid #203d4d;min-width:90px;max-width:350px;overflow-wrap:anywhere}.rb th{background:#0d2c3d;color:#49d9ed}.rb-pages{justify-content:flex-end;margin:14px 0}.rb h4{font-size:19px;margin-top:26px}.rb-heading{justify-content:space-between}.rb-saved article{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid #285265}.rb-library-search{display:flex;gap:12px;align-items:end;margin:20px 0}.rb [role=alert]{color:#ffb9bc}.portal:has(.rb) .workspace,.portal:has(.rb) .module-card{min-width:0}@media(max-width:650px){.portal:has(.rb){display:block!important}.portal:has(.rb) .sidebar{position:relative!important;width:auto!important;height:auto!important;max-height:230px;overflow:auto}.portal:has(.rb) .workspace{width:auto!important;margin:0!important;padding:14px!important}.portal:has(.rb) .module-card{padding:14px!important}.rb nav{display:grid;grid-template-columns:1fr}.rb-filters label{flex:1;min-width:130px}.rb-filters label:first-child{min-width:100%}.rb-buttons button{flex:1}.rb-field-grid{grid-template-columns:1fr}.rb-saved article{align-items:start;flex-direction:column}}
.rb-print{width:100%;height:650px;border:1px solid #34708a;background:white;margin-top:24px}


/* ===== assets/css/detection-intelligence.css ===== */
.di-graph{height:340px;position:relative;direction:ltr;margin-top:25px}.di-graph>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.di-node{position:absolute;width:14%;min-height:90px;padding:12px 8px;border:1px solid #2a6580;border-radius:12px;background:#0a293c;color:#e3f1fa;cursor:pointer;text-align:center;display:flex;flex-direction:column;gap:7px;align-items:center}.di-node strong{font-size:14px}.di-node small{font-size:11px;color:#b1cbd9}.di-node-symbol{font-size:11px;color:#4adcf0}.di-node[aria-pressed=true],.di-node:hover{border-color:#49d9ed;background:#123f53}.di-node:focus-visible,.di-library :focus-visible{outline:2px solid #49d9ed;outline-offset:4px}.di-wrist{left:0;top:65px}.di-validation{left:17%;top:65px}.di-detection{left:34%;top:10px}.di-prediction{left:34%;top:135px}.di-xai{left:51%;top:65px}.di-risk{left:68%;top:65px}.di-action{left:85%;top:65px}.di-response{left:51%;top:235px;width:33%}.di-stage-info{border-top:1px solid #275369;padding-top:16px}.di-stage-info h4{margin:0 0 8px}.di-stage-info p{color:#b6cbd7;margin:0;line-height:1.6}.di-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px}.di-groups article{padding:18px 0;border-bottom:1px solid #285369}.di-groups h4{margin:0 0 8px;font-size:16px}.di-groups p{color:#b6cbd7;line-height:1.5}.di-library a{color:#54daee;text-decoration:underline;text-underline-offset:4px}.di-explorer{margin-top:26px}.di-explorer header,.di-filters,.di-pages{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.di-filters{justify-content:start;margin:20px 0}.di-filters label{display:flex;flex-direction:column;gap:8px;flex:1}.di-filters input,.di-filters select,.di-library button{background:#0b2a3d;color:#e4f0f6;border:1px solid #34728b;border-radius:7px;padding:11px;font:inherit}.di-library button{cursor:pointer}.di-library button:disabled{opacity:.45;cursor:default}.di-case-list article{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:15px 0;border-bottom:1px solid #20475b}.di-case-list strong{display:block;margin-top:6px}.di-case-list code{color:#b3c8d8}.di-pages{justify-content:flex-end;margin-top:16px}.di-case-detail{border-top:2px solid #39c9e2;padding-top:22px;margin-top:25px}.di-case-detail h5{font-size:14px;color:#58daea;margin-bottom:5px}.di-case-detail p{line-height:1.6;color:#bdd0dc}.di-pipeline,.di-library{min-width:0}@media(max-width:850px){.di-graph{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:15px;direction:inherit}.di-graph>svg{display:none}.di-node{position:static;width:auto;min-height:100px}.di-wrist,.di-validation,.di-xai,.di-risk,.di-action,.di-response{grid-column:1/-1}.di-node:not(.di-response)::after{content:'↓';color:#46d5e9}.di-prediction{grid-column:2;grid-row:3}.di-detection{grid-column:1;grid-row:3}.di-stage-info{margin-top:20px}}@media(max-width:650px){.di-groups{grid-template-columns:1fr}.di-case-list article{align-items:start}.di-filters label{min-width:100%}.portal:has(.di-pipeline){display:block!important}.portal:has(.di-pipeline) .sidebar{position:relative!important;width:auto!important;height:auto!important;max-height:230px;overflow:auto}.portal:has(.di-pipeline) .workspace{min-width:0;width:auto!important;margin:0!important;padding:14px!important}.portal:has(.di-pipeline) .module-card{min-width:0;padding:14px!important}}
.di-loop-graph{height:320px;position:relative;direction:ltr;margin-top:24px}.di-loop-graph svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.di-loop-node{position:absolute;left:calc(var(--col)*25% + 1%);top:calc(var(--row)*190px + 25px);width:19%;min-height:95px;background:#0a293c;border:1px solid #2a6580;border-radius:12px;padding:12px;color:#e4f1f7;display:flex;align-items:center;flex-direction:column;gap:8px;cursor:pointer}.di-loop-node small{color:#4adcf0}.di-loop-node span{font-size:12px;color:#b1cbd9}.di-loop-node[aria-pressed=true],.di-loop-node:hover{border-color:#49d9ed;background:#123f53}.di-loop-node:focus-visible{outline:2px solid #49d9ed;outline-offset:3px}@media(max-width:700px){.di-loop-graph{height:auto;display:grid;grid-template-columns:1fr;gap:12px}.di-loop-graph svg{display:none}.di-loop-node{position:static;width:100%}.di-loop-node:not(:last-child)::after{content:'↓';color:#49d9ed}.di-learning-info{margin-top:20px}.portal:has(.di-learning){display:block!important}.portal:has(.di-learning) .sidebar{position:relative!important;width:auto!important;height:auto!important;max-height:230px;overflow:auto}.portal:has(.di-learning) .workspace{width:auto!important;margin:0!important;padding:14px!important;min-width:0}.portal:has(.di-learning) .module-card{padding:14px!important;min-width:0}}

.prediction-filters{display:flex;gap:16px;flex-wrap:wrap;margin:16px 0}.prediction-filters label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:180px}.prediction-filters input,.prediction-filters select{font:inherit;box-sizing:border-box;width:100%;min-height:44px;padding:10px;color:#dceaf4;background:#0a2637;border:1px solid #34708a;border-radius:7px}.prediction-filters :focus-visible{outline:2px solid #52d6ff;outline-offset:3px}

.xai-evidence{margin:16px 0;border-block:1px solid #255267;padding:8px 0}.xai-evidence summary{cursor:pointer;color:#52d6ff;font-weight:600;padding:12px 4px;min-height:44px;box-sizing:border-box}.xai-evidence summary:hover{color:#b9efff}.xai-evidence summary:focus-visible{outline:2px solid #52d6ff;outline-offset:3px}.xai-evidence[open] summary{margin-bottom:12px}

.di-library [data-browse-all],.di-library [data-browse-all]:visited{color:#52d6ff;text-underline-offset:3px;font-weight:600}.di-library [data-browse-all]:focus-visible{outline:2px solid #52d6ff;outline-offset:4px}

.xai-demo-label{color:#ffe082;font-weight:600;border-bottom:1px solid #255267;padding-bottom:12px}


/* ===== assets/css/profile-management.css ===== */
.rp-manager{margin-top:28px}.rp-search,.rp-pages{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.rp-search label{display:flex;flex-direction:column;gap:7px}.rp-search label:first-child{flex:1;min-width:220px}.rp-manager input,.rp-manager select,.rp-manager button{font:inherit;padding:10px 12px;border:1px solid #34728b;border-radius:7px;background:#0a293b;color:#dfedf5;min-height:42px}.rp-manager button{cursor:pointer}.rp-manager button:disabled{opacity:.45;cursor:default}.rp-manager :focus-visible{outline:2px solid #40d7ee;outline-offset:3px}.rp-table{width:100%;overflow:auto}.rp-table table{width:100%;border-collapse:collapse}.rp-table td,.rp-table th{padding:12px;text-align:start;border-bottom:1px solid #20475b}.rp-table th{color:#47d8ed;background:#0b2b3d}.rp-table td:last-child{white-space:nowrap}.rp-pages{justify-content:flex-end;margin:16px 0}.rp-editor{border-top:2px solid #35bad6;margin-top:25px;padding-top:20px}.rp-manager h4{font-size:19px}.rp-edit-form textarea{color:#dfedf5;background:#0a293b}.portal:has(.rp-manager) .workspace,.portal:has(.rp-manager) .module-card{min-width:0}@media(max-width:650px){.rp-search label{min-width:100%!important}.portal:has(.rp-manager){display:block!important}.portal:has(.rp-manager) .sidebar{position:relative!important;width:auto!important;height:auto!important;max-height:230px;overflow:auto}.portal:has(.rp-manager) .workspace{width:auto!important;margin:0!important;padding:14px!important}.portal:has(.rp-manager) .module-card{padding:14px!important}.rp-table table{min-width:640px}}
.wi-search{margin:20px 0}.wi-search p{color:#b3cbd9}.wi-search form,.wi-pages{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.wi-search label{display:flex;flex-direction:column;gap:7px;flex:1;min-width:200px}.wi-search input,.wi-search button,.wi-pages button,#wristIdentityResults button{padding:11px 14px;font:inherit;border:1px solid #34728b;border-radius:7px;background:#0a293c;color:#e5f3fa}.wi-search button,.wi-pages button,#wristIdentityResults button{cursor:pointer}.wi-pages{justify-content:flex-end;margin:14px 0}.wi-pages button:disabled{opacity:.45}.wi-search :focus-visible,.wi-pages :focus-visible{outline:2px solid #47d8ed;outline-offset:3px}#wristIdentityResults .wrist-card{max-width:550px;width:100%;box-sizing:border-box}#wristIdentityResults .code-preview{overflow:auto}


/* ===== assets/css/portal-users.css ===== */
.pu-panel{min-width:0}.pu-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.pu-heading h4{font-size:23px;margin:0}.pu-heading p{color:#abc5d6;line-height:1.5}.pu-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:22px 0}.pu-filters label{display:flex;flex-direction:column;gap:7px}.pu-filters label:first-child{flex:1;min-width:220px}.pu-panel input,.pu-panel select,.pu-panel button,.pu-create>summary{font:inherit;border:1px solid #33728d;background:#0a2a3e;color:#e4f1f8;border-radius:8px;padding:11px 14px;min-height:43px}.pu-panel button{cursor:pointer}.pu-panel button:hover{background:#17465b;border-color:#4bd9ec}.pu-panel button:disabled{opacity:.45;cursor:default}.pu-panel :focus-visible{outline:2px solid #4bd9ec;outline-offset:3px}.pu-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pu-card{padding:19px;background:#082235;border:1px solid #244f67;border-radius:14px;display:flex;flex-direction:column;gap:14px;min-width:0}.pu-card-top{display:flex;align-items:center;gap:12px}.pu-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:50%;background:#164459;color:#70e8f4;font-size:14px;font-weight:700}.pu-card h5{font-size:16px;margin:0;overflow-wrap:anywhere}.pu-card p{margin:0;color:#b3cbd9;font-size:13px;line-height:1.5}.pu-card-top p{margin-top:5px}.pu-email{overflow-wrap:anywhere}.pu-badges{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.pu-badges>span{border:1px solid #2a5c72;border-radius:5px;padding:4px 8px;color:#c6e5f3;font-size:12px}.pu-card>button{margin-top:auto;width:100%}.pu-pages{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:18px}.pu-detail{margin-top:25px;border-top:2px solid #3dc5df;padding-top:20px}.pu-detail dl{display:grid;grid-template-columns:max-content 1fr;gap:10px 20px}.pu-detail dd{margin:0}.pu-create{margin:20px 0}.pu-create>summary{cursor:pointer;font-weight:700}.pu-create .user-admin-panel{margin-top:12px}.portal:has(.pu-panel) .workspace,.portal:has(.pu-panel) .module-card{min-width:0}@media(max-width:1100px){.pu-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.pu-cards{grid-template-columns:1fr}.pu-heading{align-items:start;flex-direction:column}.pu-filters label{min-width:100%!important}.portal:has(.pu-panel){display:block!important}.portal:has(.pu-panel) .sidebar{position:relative!important;width:auto!important;height:auto!important;max-height:230px;overflow:auto}.portal:has(.pu-panel) .workspace{width:auto!important;margin:0!important;padding:14px!important}.portal:has(.pu-panel) .module-card{padding:14px!important}.pu-detail dl{grid-template-columns:1fr}}


/* ===== assets/css/account-profile.css ===== */
.account-card #myContactForm button[type=submit],.account-card button[onclick="showMyPasswordChange()"]{width:190px;min-width:190px;max-width:100%;height:46px;min-height:46px;padding:10px 18px;box-sizing:border-box;font-size:15px;line-height:24px;justify-self:start}
.account-photo{display:flex;gap:24px;align-items:center}.account-photo-preview{width:112px;height:112px;flex:0 0 112px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#123a50;border:2px solid #27bada;color:#9ce7f6;font-size:32px;font-weight:700}.account-photo-preview img{width:100%;height:100%;object-fit:cover}.account-photo [hidden]{display:none!important}.account-photo-controls{min-width:0}.account-photo-controls p{color:#aac8da}.account-photo-controls label{position:relative;display:inline-flex;align-items:center;min-height:44px;cursor:pointer;margin-inline-end:10px}.account-photo-controls input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.account-photo-controls label:focus-within{outline:2px solid #47dcff;outline-offset:3px}.account-photo-controls button{min-height:44px}.account-photo [role=status]{font-size:13px;min-height:20px}
#reportPrintAuthor{display:none}@media print{#reportPrintAuthor{display:block;color:#111;font:12px Arial,sans-serif;border-top:1px solid #aaa;padding-top:8px}}
@media(max-width:600px){.account-photo{align-items:flex-start;gap:16px}.account-photo-preview{width:72px;height:72px;flex-basis:72px;font-size:24px}}


/* ===== assets/css/audit-fixes.css ===== */
[hidden]{display:none!important}
.skip-link{position:fixed;inset-block-start:8px;inset-inline-start:12px;z-index:99999;background:#fff;color:#092034;padding:12px 20px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.support-dock{position:static;display:flex;gap:8px;margin:12px 0;justify-content:flex-end}
.support-dock button{width:44px;height:44px;box-shadow:none}
.workspace-head{flex-wrap:wrap;gap:12px}
.workspace-head .support-dock{margin:0;margin-inline-start:auto}
.portal-brand{padding-block-start:20px;overflow-wrap:anywhere}
.audit-note,.audit-chart-summary{color:#c4d8e8;font-size:14px;line-height:1.65;margin:14px 0;max-width:85ch}
.audit-chart-summary{font-variant-numeric:tabular-nums}
.ticket-list code,.ticket-number{white-space:nowrap}
.ticket-kpi:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #83e5ff;outline-offset:3px}
.module-card input::placeholder,.module-card textarea::placeholder{color:#a4bbc9;opacity:1}
@media(max-width:600px){.workspace-head .support-dock{width:100%;justify-content:flex-start}.assistant-panel{max-height:70dvh}.audit-chart-summary{font-size:13px}}
@media print{.support-dock,.skip-link{display:none!important}}

.audit-series{margin:14px 0;color:#c4d8e8}.audit-series button{display:block;min-height:44px;margin:8px 0;text-align:start;max-width:100%;white-space:normal}

.ticket-row>span:first-child b{white-space:nowrap}.ticket-row{grid-template-columns:minmax(150px,1fr) minmax(170px,2fr) auto auto minmax(120px,1fr)}@media(max-width:700px){.ticket-row{grid-template-columns:1fr 1fr}}


/* ===== assets/css/pilot-readiness.css ===== */
.pilot-data-status{margin-block-end:24px;padding-block:16px;border-block:1px solid #36536a;color:#e5edf4;line-height:1.6;font-size:14px}
.pilot-status-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.pilot-status-head strong{font-size:18px}
.pilot-status-head button{min-height:44px;padding:8px 18px;background:#12384d;border:1px solid #7496ac;color:#fff;border-radius:6px;cursor:pointer}
.pilot-data-status p{margin-block:6px;max-width:85ch}.pilot-data-status summary{cursor:pointer;min-height:44px;padding-block:10px;color:#9ee3ff}
.pilot-data-status dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}.pilot-data-status dl>div{display:flex;justify-content:space-between;gap:16px;border-block-end:1px solid #36536a;padding-block:8px}.pilot-data-status dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
#portal .live-indicator{animation:none;background:#90aabb;box-shadow:none}#portal .command-kpi,#portal .ops-card,#portal .score-ring{box-shadow:none}
@media(max-width:700px){.pilot-data-status dl{grid-template-columns:1fr}.pilot-data-status{overflow-wrap:anywhere}}

.pilot-figures{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:24px;margin-block:22px}
.pilot-figure{display:flex;flex-direction:column;gap:6px;min-width:0}.pilot-figure>span{color:#bdd0dd;font-size:13px}.pilot-figure>strong{font-size:34px;line-height:1.2;color:#8de3ff;font-variant-numeric:tabular-nums}.pilot-figure>strong>span{font-size:20px}.pilot-figure small{color:#aac2d1;font-size:12px}.pilot-age>strong{font-size:24px;color:#f4d394}.pilot-age>strong>span{font-size:24px}
.pilot-distributions{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-block:1px solid #294657;padding-block:20px}.pilot-distribution h4{margin:0 0 14px;font-size:14px}.pilot-stack{height:14px;border-radius:4px;background:#213b4f;display:flex;overflow:hidden}.pilot-stack span{height:100%}.pilot-distribution ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.pilot-distribution li{display:flex;align-items:center;gap:8px;color:#c9dce8;font-size:13px}.pilot-distribution li i{width:9px;height:9px;border-radius:2px;flex:none}.pilot-distribution li b{margin-inline-start:auto;font-size:15px}
.pilot-quality-counts{display:flex;gap:40px;padding-block:18px}.pilot-quality-counts .pilot-figure{flex:1}.pilot-quality-counts .pilot-figure>strong{font-size:26px;color:#d9e8f2}
@media(max-width:700px){.pilot-figures{grid-template-columns:1fr 1fr;gap:18px}.pilot-age{grid-column:1/-1}.pilot-distributions{grid-template-columns:1fr;gap:24px}.pilot-quality-counts{gap:20px}}


/* ===== assets/css/platform-release.css ===== */
/* Shared master brand; platform accents do not replace severity colours. */
:root{--platform-primary:#42d6cf;--platform-deep:#0c5555}
body[data-platform=riayah],.showcase-card[data-platform=riayah]{--platform-primary:#42d6cf;--platform-deep:#0c5555}
body[data-platform=equisense],.showcase-card[data-platform=equisense]{--platform-primary:#78d4a0;--platform-deep:#154c35}
body[data-platform=camsense],.showcase-card[data-platform=camsense]{--platform-primary:#e4bc72;--platform-deep:#604b29}
.showcase-card{border-top:3px solid var(--platform-primary)}
.showcase-card h3,.portal-brand h3,.workspace-head .eyebrow{color:var(--platform-primary)}
.showcase-card .primary,body[data-platform] .module-action{background:var(--platform-deep);color:#fff;border:1px solid var(--platform-primary)}
body[data-platform] .menu button.active,body[data-platform] .module-nav-group.has-active-module>summary{border-color:var(--platform-primary);color:var(--platform-primary);background:var(--platform-deep)}
.public-nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.public-nav a,.public-nav summary{color:#d8e9ee;text-decoration:none;cursor:pointer}.public-nav a:hover{color:#42d6cf}.public-nav details{position:relative}.platform-dropdown{position:absolute;top:100%;background:#0a2637;padding:18px;min-width:180px;display:grid;gap:14px;z-index:100;border:1px solid #34708a}.topbar{position:sticky;top:0;z-index:100}
.trust-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:start}.trust-bar h3{color:#42d6cf}.trust-bar p,.trust-bar small{line-height:1.7;color:#c4d9e4}.trust-bar a,.legal-footer a{color:#83dce4;text-underline-offset:4px}
.product-sequence{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.product-step{padding:24px;border:1px solid #285264;border-radius:12px;background:#092536}.product-step svg{width:100%;height:100px;color:#42d6cf}.product-step p{color:#c4d9e4;line-height:1.7}.signal-pulse{stroke-dasharray:180;animation:signal-flow 5s linear infinite}@keyframes signal-flow{to{stroke-dashoffset:-360}}@media(prefers-reduced-motion:reduce){.signal-pulse{animation:none}}
.legal-footer{padding:28px;display:flex;justify-content:center;gap:22px;flex-wrap:wrap;background:#071c29}.legal-page{background:#071c29;color:#dceaf4;font:17px/1.75 Arial,sans-serif;margin:0}.legal-content{max-width:850px;margin:50px auto;padding:24px}.legal-content a{color:#83dce4}.legal-content h1,.legal-content h2{color:#fff}.legal-content aside{padding:18px;border:1px solid #987b40;color:#ffe0a0}.public-nav :focus-visible,.legal-footer a:focus-visible{outline:2px solid #42d6cf;outline-offset:5px}section[id]{scroll-margin-top:120px}
@media(max-width:800px){.trust-bar,.product-sequence{grid-template-columns:1fr 1fr}.topbar{flex-wrap:wrap;gap:12px;padding:12px}.public-nav{gap:12px;font-size:14px}.topbar .brand{font-size:18px}}@media(max-width:480px){.trust-bar,.product-sequence{grid-template-columns:1fr}}

/* Public content remains readable before viewport animation initialises. */
#home .reveal{opacity:1;transform:none}

/* Support launchers travel with page content; the opened conversation remains usable. */
body .support-dock{position:static!important;inset:auto!important;display:flex!important;justify-content:flex-end;gap:12px;margin:24px;padding:0;transform:none!important}
body.rtl .support-dock{justify-content:flex-start}
@media print{.support-dock{display:none!important}}

main.page>.support-dock{padding:12px 24px;margin:0;min-height:68px;box-sizing:border-box}.workspace>.support-dock{margin:12px 0 20px}

.legal-footer .support-dock{margin:0!important;padding:0!important;align-items:center}.page-support-footer{margin-top:32px}.legal-footer{align-items:center}.page-support-footer .support-dock button{width:44px;height:44px}

.pilgrim-visual-section{margin-block:24px;padding:20px;border:1px solid #285264;border-radius:12px}.pilgrim-visual-section>p{line-height:1.7;color:#bfd4df}

.clinical-main>.pilgrim-visual-section,.clinical-main>.clinical-actions{grid-column:1/-1;width:100%;box-sizing:border-box}.pilgrim-context{margin-top:20px}.pilgrim-location-map{height:260px;width:100%;border-radius:10px}.pilgrim-related-alerts{max-height:300px;overflow:auto}.pilgrim-related-alerts article{padding:12px;border-bottom:1px solid #285264}


/* ===== assets/css/portal-identity.css ===== */
/* =====================================================================
   SenseCore 360 — Portal identity layer (v104)
   ---------------------------------------------------------------------
   Visual-only layer. Loaded last. It never changes module markup,
   data or behaviour: it re-skins surfaces, typography and decoration
   per portal through html[data-portal] (set by portal-identity.js).

   Severity / priority colours (critical, high, P1…) are deliberately
   NOT themed so that risk meaning stays identical across portals.
   ===================================================================== */

/* ---------- 1. Self-hosted fonts (CSP: font-src 'self') ---------- */
@font-face{font-family:"Inter";src:url("../fonts/inter-400.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-500.woff") format("woff");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-600.woff") format("woff");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Inter";src:url("../fonts/inter-700.woff") format("woff");font-weight:700 900;font-style:normal;font-display:swap}
@font-face{font-family:"Inter Display";src:url("../fonts/interdisplay-700.woff") format("woff");font-weight:700;font-display:swap}
@font-face{font-family:"Inter Display";src:url("../fonts/interdisplay-800.woff") format("woff");font-weight:800 900;font-display:swap}
@font-face{font-family:"Poppins";src:url("../fonts/poppins-500.woff") format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Poppins";src:url("../fonts/poppins-700.woff") format("woff");font-weight:600 800;font-display:swap}
@font-face{font-family:"Lora";src:url("../fonts/lora-var.woff") format("woff");font-weight:400 700;font-display:swap}

/* ---------- 2. Master brand tokens (home / no portal selected) ---------- */
:root{
  --pt-font-body:"Inter","Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  --pt-font-head:"Inter Display","Inter","Segoe UI",system-ui,sans-serif;
  --pt-font-ar:"IBM Plex Sans Arabic","Noto Kufi Arabic","Noto Sans Arabic","Segoe UI","Tahoma","Geeza Pro","Arial",sans-serif;
  --pt-head-weight:800;--pt-head-track:-.02em;
  --pt-bg:#031326;--pt-bg-2:#0a2c4b;--pt-glow:#1f9fff;
  --pt-surface:rgba(9,36,61,.72);--pt-surface-2:rgba(12,46,76,.9);--pt-surface-solid:#082440;
  --pt-field:#041629;--pt-line:#1c4968;--pt-line-soft:rgba(255,255,255,.08);
  --pt-accent:#20c9f4;--pt-accent-2:#52e0bc;--pt-accent-ink:#031526;
  --pt-text:#eaf6ff;--pt-muted:#a9c1d3;--pt-faint:#7f99ad;
  --pt-radius:16px;--pt-radius-sm:10px;
  --pt-shadow:0 18px 40px rgba(0,0,0,.28);
  --pt-pattern:none;--pt-banner:none;--pt-hero-art:none;
}

/* ---------- 3. Portal palettes ---------- */
/* RIAYAH — human health & safety: calm clinical teal, sky and a warm heart-coral accent */
html[data-portal=riayah]{
  --pt-font-head:"Poppins","Inter","Segoe UI",sans-serif;--pt-head-weight:700;--pt-head-track:-.01em;
  --pt-bg:#03141b;--pt-bg-2:#06303a;--pt-glow:#18b5a3;
  --pt-surface:rgba(7,38,46,.74);--pt-surface-2:rgba(9,49,58,.92);--pt-surface-solid:#072a32;
  --pt-field:#031d23;--pt-line:#1b4d55;--pt-line-soft:rgba(160,255,240,.08);
  --pt-accent:#2ee6c5;--pt-accent-2:#8fd3ff;--pt-accent-ink:#022a25;--pt-warm:#ff8a7a;
  --pt-text:#e9fbf8;--pt-muted:#a6c9c8;--pt-faint:#7fa6a6;
  --pt-radius:18px;
  --pt-pattern:url("../images/identity/riayah-pattern.svg");
  --pt-banner:url("../images/identity/riayah-banner.svg");
  --pt-hero-art:url("../images/identity/riayah-guide.webp");
  --platform-primary:#2ee6c5;--platform-deep:#0b4a44;
}
/* EQUISENSE — equine heritage & performance: forest, emerald and champagne gold */
html[data-portal=equisense]{
  --pt-font-head:"Lora",Georgia,"Times New Roman",serif;--pt-head-weight:700;--pt-head-track:0;
  --pt-bg:#04120d;--pt-bg-2:#0e2c20;--pt-glow:#2f8f5f;
  --pt-surface:rgba(12,36,27,.76);--pt-surface-2:rgba(17,48,36,.92);--pt-surface-solid:#0d2a1f;
  --pt-field:#06170f;--pt-line:#2c4a3c;--pt-line-soft:rgba(232,214,160,.08);
  --pt-accent:#d8b46a;--pt-accent-2:#6fd59b;--pt-accent-ink:#1f1606;--pt-warm:#f3e3b8;
  --pt-text:#f4f1e6;--pt-muted:#b8c6b9;--pt-faint:#8ea394;
  --pt-radius:12px;--pt-radius-sm:8px;
  --pt-pattern:url("../images/identity/equisense-pattern.svg");
  --pt-banner:url("../images/identity/equisense-banner.svg");
  --pt-hero-art:url("../images/identity/equisense-horse.webp");
  --platform-primary:#d8b46a;--platform-deep:#3a2f14;
}
/* CAMELSENSE — desert welfare & endurance: dusk earth, sand and terracotta sun */
html[data-portal=camsense]{
  --pt-font-head:"Inter Display","Inter","Segoe UI",sans-serif;--pt-head-weight:800;--pt-head-track:.01em;
  --pt-bg:#150c07;--pt-bg-2:#34190c;--pt-glow:#c2602f;
  --pt-surface:rgba(46,26,15,.74);--pt-surface-2:rgba(60,34,19,.92);--pt-surface-solid:#2d190e;
  --pt-field:#1a0e07;--pt-line:#5a3b23;--pt-line-soft:rgba(255,220,170,.08);
  --pt-accent:#efb767;--pt-accent-2:#e07a4f;--pt-accent-ink:#2a1405;--pt-warm:#f0a04b;
  --pt-text:#fcf2e6;--pt-muted:#d6bea3;--pt-faint:#a88d72;
  --pt-radius:20px;
  --pt-pattern:url("../images/identity/camsense-pattern.svg");
  --pt-banner:url("../images/identity/camsense-banner.svg");
  --pt-hero-art:url("../images/identity/camsense-camel.webp");
  --platform-primary:#efb767;--platform-deep:#5a3418;
}

/* ---------- 4. Global foundation ---------- */
html{overflow-x:clip}
body{font-family:var(--pt-font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html.rtl body{font-family:var(--pt-font-ar)}
:is(h1,h2,h3,.section-title,#moduleTitle,.login-card h2){font-family:var(--pt-font-head);letter-spacing:var(--pt-head-track)}
html.rtl :is(h1,h2,h3,.section-title,#moduleTitle,.login-card h2){font-family:var(--pt-font-ar);letter-spacing:0}
:where(td,th,.status-card strong,.command-kpi strong,.ticket-kpi strong,.tile strong){font-variant-numeric:tabular-nums}
::selection{background:color-mix(in srgb,var(--pt-accent) 35%,transparent);color:#fff}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Portal / login backgrounds: each portal gets its own atmosphere + motif pattern */
html[data-portal] body{
  background:
    radial-gradient(900px 520px at 85% 0,color-mix(in srgb,var(--pt-glow) 38%,transparent),transparent 70%) no-repeat,
    radial-gradient(700px 480px at -10% 620px,color-mix(in srgb,var(--pt-accent-2) 12%,transparent),transparent 70%) no-repeat,
    linear-gradient(180deg,var(--pt-bg-2) 0,var(--pt-bg) 760px) no-repeat,
    var(--pt-bg);
  color:var(--pt-text)}
html[data-portal] body::before{content:"";position:absolute;inset:0 0 auto 0;height:900px;z-index:-1;pointer-events:none;background-image:var(--pt-pattern);opacity:.9;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 90%);mask-image:linear-gradient(180deg,#000,transparent 90%)}
html[data-portal] body{position:relative;isolation:isolate}

/* ---------- 5. Top bar ---------- */
.topbar{height:68px;padding-inline:clamp(16px,4vw,56px);border-bottom:1px solid var(--pt-line-soft);background:color-mix(in srgb,var(--pt-bg) 82%,transparent)}
.public-nav{gap:6px}
.public-nav>a,.public-nav summary{padding:8px 12px;border-radius:999px;font-size:14.5px;font-weight:500;color:#d4e6f1;transition:background-color .15s,color .15s}
.public-nav>a:hover,.public-nav summary:hover{background:rgba(255,255,255,.06);color:#fff}
.public-nav summary{list-style:none;display:inline-flex;align-items:center;gap:6px}
.public-nav summary::-webkit-details-marker{display:none}
.public-nav summary::after{content:"";width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.public-nav details[open] summary::after{transform:translateY(1px) rotate(225deg)}
.platform-dropdown{top:calc(100% + 8px);inset-inline-start:0;padding:8px;gap:2px;min-width:220px;border-radius:14px;border:1px solid var(--pt-line);background:#071b2e;box-shadow:0 20px 45px rgba(0,0,0,.45)}
.platform-dropdown a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:#dceaf3;text-decoration:none}
.platform-dropdown a::before{content:"";width:9px;height:9px;border-radius:50%;background:#2ee6c5;box-shadow:0 0 10px currentColor}
.platform-dropdown a:nth-child(2)::before{background:#d8b46a}.platform-dropdown a:nth-child(3)::before{background:#efb767;border-radius:2px;transform:rotate(45deg)}
.platform-dropdown a:hover{background:rgba(255,255,255,.06)}
.public-nav>a[href="/#platforms"]{border:1px solid rgba(255,255,255,.18);margin-inline-start:6px}
/* Inside a portal the marketing nav is noise; the platform name takes its place */
html[data-view=portal] .public-nav{display:none}
html[data-portal] .topbar{background:color-mix(in srgb,var(--pt-bg) 86%,transparent);border-bottom-color:var(--pt-line-soft)}
html[data-portal] .language-switch{border-color:color-mix(in srgb,var(--pt-accent) 45%,transparent);color:var(--pt-accent);background:color-mix(in srgb,var(--pt-accent) 7%,transparent)}
.pi-portal-chip{display:none;align-items:center;gap:10px;margin-inline-start:18px;padding:6px 14px 6px 8px;border-radius:999px;border:1px solid var(--pt-line);background:var(--pt-surface);font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--pt-text)}
.pi-portal-chip img{width:26px;height:26px;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
html[data-view=portal] .pi-portal-chip,html[data-view=login] .pi-portal-chip{display:inline-flex}
html[data-view=login] .public-nav{display:none}
.topbar .brand{margin-inline-end:auto}
.topbar .language-switch{margin-inline-start:12px}

/* ---------- 6. Login — split layout with portal artwork ---------- */
html[data-portal] .login-wrap{min-height:calc(100vh - 68px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,470px);align-items:center;gap:clamp(24px,5vw,72px);max-width:1180px;margin:0 auto;padding:40px clamp(16px,4vw,40px)}
.pi-login-art{position:relative;min-height:580px;border-radius:28px;overflow:hidden;border:1px solid var(--pt-line);
  background:
    var(--pt-banner) right -60px bottom 24px/720px auto no-repeat,
    radial-gradient(520px 380px at 70% 30%,color-mix(in srgb,var(--pt-glow) 45%,transparent),transparent 70%),
    linear-gradient(160deg,var(--pt-surface-2),color-mix(in srgb,var(--pt-bg) 90%,#000));
  box-shadow:var(--pt-shadow);display:flex;flex-direction:column;justify-content:flex-start;padding:40px}
.pi-login-art::after{content:"";position:absolute;z-index:0;inset:auto 0 0 0;height:50%;background:var(--pt-hero-art) right 8% bottom/contain no-repeat;filter:drop-shadow(0 26px 30px rgba(0,0,0,.5));animation:pi-float 9s ease-in-out infinite}
.pi-login-art>*{position:relative;z-index:1;max-width:520px}
html[data-portal=riayah] .pi-login-art{background:var(--pt-banner) left -160px bottom -10px/640px auto no-repeat,radial-gradient(420px 380px at 80% 60%,color-mix(in srgb,var(--pt-glow) 40%,transparent),transparent 70%),linear-gradient(160deg,var(--pt-surface-2),color-mix(in srgb,var(--pt-bg) 90%,#000))}
html[data-portal=riayah] .pi-login-art::after{inset:auto 0 0 auto;width:46%;height:84%;background-position:right bottom}
html[data-portal=riayah] .pi-login-art>*{max-width:54%}
html.rtl .pi-login-art::after{background-position:left 8% bottom}
html.rtl[data-portal=riayah] .pi-login-art::after{inset:auto auto 0 0;background-position:left bottom}
.pi-login-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.22em;color:var(--pt-accent);text-transform:uppercase}
.pi-login-kicker::before{content:"";width:26px;height:2px;border-radius:2px;background:currentColor}
.pi-login-art h2{margin:16px 0 12px;font-size:clamp(28px,3.2vw,40px);line-height:1.12;font-weight:var(--pt-head-weight);color:var(--pt-text)}
.pi-login-art p{margin:0 0 22px;color:var(--pt-muted);line-height:1.65;font-size:15.5px}
.pi-login-art ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pi-login-art li{display:flex;align-items:center;gap:10px;color:var(--pt-text);font-size:14.5px}
.pi-login-art li::before{content:"";flex:none;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--pt-accent) 18%,transparent) center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2 5 8.5l4.5-5'/%3E%3C/svg%3E");box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pt-accent) 55%,transparent)}
html[data-portal] .login-card{width:100%;border-color:var(--pt-line);background:color-mix(in srgb,var(--pt-surface-solid) 94%,transparent);border-radius:calc(var(--pt-radius) + 6px);box-shadow:var(--pt-shadow);backdrop-filter:blur(10px)}
.login-card .back{display:flex;align-items:center;gap:6px;width:max-content;margin-bottom:28px;font-weight:600;font-size:14px}
.login-card .eyebrow{display:block;margin-bottom:6px}
html[data-portal] .login-card .back,html[data-portal] .login-card .eyebrow,html[data-portal] .forgot-password-link{color:var(--pt-accent)}
html[data-portal] .login-card p{color:var(--pt-muted)}
html[data-portal] .field input{background:var(--pt-field);border-color:var(--pt-line);border-radius:var(--pt-radius-sm);min-height:50px;color:var(--pt-text)}
html[data-portal] .field input:focus{border-color:var(--pt-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--pt-accent) 18%,transparent)}
html[data-portal] #signBtn{min-height:50px;border-radius:var(--pt-radius-sm);background:linear-gradient(100deg,var(--pt-accent),var(--pt-accent-2));color:var(--pt-accent-ink);font-size:15.5px;box-shadow:0 12px 28px color-mix(in srgb,var(--pt-accent) 25%,transparent)}
html[data-portal] #signBtn:disabled{opacity:.7;cursor:progress}
.pi-login-assurance{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:12.5px;color:var(--pt-faint)}
.pi-login-assurance::before{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='10' height='7' rx='1.5'/%3E%3Cpath d='M5.5 7V5a2.5 2.5 0 0 1 5 0v2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='10' height='7' rx='1.5'/%3E%3Cpath d='M5.5 7V5a2.5 2.5 0 0 1 5 0v2'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes pi-float{50%{transform:translateY(-8px)}}
@media (max-width:920px){
  html[data-portal] .login-wrap{grid-template-columns:1fr;max-width:520px;padding-top:20px}
  .pi-login-art{min-height:260px;padding:26px}
  .pi-login-art::after{height:62%;inset:auto 0 0 42%;background-position:right bottom}
  .pi-login-art>*,html[data-portal=riayah] .pi-login-art>*{max-width:58%}
  .pi-login-art ul,.pi-login-art p{display:none}
  .pi-login-art h2{font-size:24px}
}
@media (max-width:480px){.pi-login-art{min-height:210px}.pi-login-art h2{font-size:21px}}

/* ---------- 7. Portal shell: sidebar + workspace ---------- */
html[data-portal] .portal{grid-template-columns:268px minmax(0,1fr);min-height:calc(100vh - 68px)}
html[data-portal] .sidebar{position:sticky;top:68px;align-self:start;height:calc(100vh - 68px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--pt-line) transparent;
  background:linear-gradient(180deg,color-mix(in srgb,var(--pt-surface-solid) 92%,transparent),color-mix(in srgb,var(--pt-bg) 96%,transparent));
  border-inline-end:1px solid var(--pt-line-soft);border-right-color:var(--pt-line-soft);padding:22px 14px 28px;display:flex;flex-direction:column}
html[data-portal] .portal-brand{position:relative;margin:0 0 14px;padding:16px 14px 18px;border:1px solid var(--pt-line);border-radius:var(--pt-radius);overflow:hidden;
  background:var(--pt-banner) right -260px bottom -30px/560px auto no-repeat,linear-gradient(150deg,var(--pt-surface-2),transparent)}
html[data-portal] .portal-brand .portal-logo{width:64px;height:64px;margin-bottom:10px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.45))}
html[data-portal] .portal-brand small{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--pt-accent)}
html[data-portal] .portal-brand h3{margin:4px 0 0;font-size:17px;line-height:1.3;color:var(--pt-text)}
.pi-sidebar-art{margin-top:auto;padding-top:18px;pointer-events:none}
.pi-sidebar-art div{height:150px;border-radius:var(--pt-radius);border:1px solid var(--pt-line-soft);background:var(--pt-hero-art) center bottom 6px/auto 88% no-repeat,radial-gradient(160px 110px at 50% 70%,color-mix(in srgb,var(--pt-glow) 40%,transparent),transparent 75%),var(--pt-pattern) center/220px auto;opacity:.9}
html[data-portal=riayah] .pi-sidebar-art div{background-size:auto 100%,auto,220px auto;background-position:center bottom,center,center}
/* Menu */
html[data-portal] #menu button,html[data-portal] #menu .module-nav-group-title{border-radius:var(--pt-radius-sm);color:color-mix(in srgb,var(--pt-text) 82%,transparent);border:1px solid transparent;transition:background-color .15s,color .15s,border-color .15s}
html[data-portal] #menu button:hover,html[data-portal] #menu .module-nav-group-title:hover{background:color-mix(in srgb,var(--pt-accent) 8%,transparent);color:var(--pt-text)}
html[data-portal] #menu button.active{background:linear-gradient(90deg,color-mix(in srgb,var(--pt-accent) 20%,transparent),color-mix(in srgb,var(--pt-accent) 4%,transparent));border-color:color-mix(in srgb,var(--pt-accent) 40%,transparent);color:var(--pt-text);box-shadow:inset 3px 0 0 var(--pt-accent)}
html.rtl[data-portal] #menu button.active{box-shadow:inset -3px 0 0 var(--pt-accent)}
html[data-portal] #menu .has-active-module>.module-nav-group-title{background:transparent;border-color:transparent;color:var(--pt-accent)}
html[data-portal] #menu .module-nav-children{border-inline-start-color:var(--pt-line)}
html[data-portal] #menu .module-orb{filter:drop-shadow(0 0 0 transparent)}
html[data-portal=equisense] #menu .module-orb img,html[data-portal=camsense] #menu .module-orb img,html[data-portal=equisense] #moduleTitle .module-orb img,html[data-portal=camsense] #moduleTitle .module-orb img{filter:var(--pi-orb-filter)}
html[data-portal=equisense]{--pi-orb-filter:hue-rotate(-62deg) saturate(.85) brightness(1.02)}
html[data-portal=camsense]{--pi-orb-filter:hue-rotate(-160deg) saturate(1.05) brightness(1.04)}
/* Workspace header with portal banner art */
html[data-portal] .workspace{padding:28px clamp(18px,3vw,40px) 40px}
html[data-portal] .workspace-head{position:relative;padding:22px 26px;border:1px solid var(--pt-line);border-radius:calc(var(--pt-radius) + 4px);overflow:hidden;
  background:var(--pt-banner) right -40px center/auto 150% no-repeat,linear-gradient(110deg,var(--pt-surface-2) 30%,color-mix(in srgb,var(--pt-surface) 60%,transparent));box-shadow:var(--pt-shadow)}
html.rtl[data-portal] .workspace-head{background-position:left -40px center,0 0}
html[data-portal] .workspace-head .eyebrow{color:var(--pt-accent);letter-spacing:.22em;font-size:11.5px}
html[data-portal] .workspace h2#moduleTitle{font-size:clamp(24px,2.6vw,32px);font-weight:var(--pt-head-weight);color:var(--pt-text)}
html[data-portal] .badge{border-color:color-mix(in srgb,var(--pt-accent) 45%,transparent);color:var(--pt-accent);background:color-mix(in srgb,var(--pt-bg) 55%,transparent);text-transform:capitalize;font-weight:600}
html[data-portal] .module-card{margin-top:20px;border-color:var(--pt-line-soft);background:transparent;padding:4px 0 0;border:0;min-height:0}

/* ---------- 8. Surfaces (cards, panels, sections) ---------- */
html[data-portal] :is(.data-panel,.command-panel,.visual-card,.ops-card,.monitor-panel,.monitor-hero,.xai-section,.xai-card,.directory-section,.user-admin-panel,.account-section,.integration-card,.ticket-list,.ticket-detail,.ticket-create,.ticket-dashboard-strip,.aw-table,.aw-guide,.rb-table,.registration-form,.api-box,.lifecycle-centre,.pilot-data-status,.pu-detail,.rp-manager,.rp-editor,.di-case-detail,.di-stage-info,.pilgrim-visual-section,.permission-matrix,.feature-item,.tile,fieldset){
  background:var(--pt-surface);border-color:var(--pt-line);border-radius:var(--pt-radius)}
html[data-portal] :is(.blueprint-banner,.module-stage){border-color:var(--pt-line);border-radius:var(--pt-radius);
  background:var(--pt-banner) right -120px center/auto 170% no-repeat,linear-gradient(110deg,var(--pt-surface-2),var(--pt-surface))}
html[data-portal] :is(.status-card,.command-kpi,.ticket-kpi,.monitor-metric,.pu-card){background:linear-gradient(150deg,var(--pt-surface-2),var(--pt-surface));border-color:var(--pt-line);border-radius:var(--pt-radius)}
html[data-portal] :is(.data-panel h4){border-bottom-color:var(--pt-line-soft)}
html[data-portal] :is(.module-stage-icon,.source-device-icon,.monitor-metric-icon){border-color:var(--pt-line);background:color-mix(in srgb,var(--pt-accent) 10%,var(--pt-surface-solid))}
html[data-portal] .module-note{border-inline-start-color:var(--pt-accent);background:color-mix(in srgb,var(--pt-accent) 7%,transparent);color:var(--pt-text)}
html[data-portal] :is(.module-card,.workspace) :is(h3,h4){color:var(--pt-text)}
html[data-portal] :is(.module-card) :is(p,label,small,li,.audit-note,.audit-chart-summary){color:var(--pt-muted)}
html[data-portal] .module-card h3{font-family:var(--pt-font-head);font-weight:var(--pt-head-weight)}
html.rtl[data-portal] .module-card h3{font-family:var(--pt-font-ar)}
html[data-portal] .eyebrow{color:var(--pt-accent)}

/* ---------- 9. Tables ---------- */
html[data-portal] .module-card table{border-collapse:separate;border-spacing:0}
html[data-portal] .module-card th{background:color-mix(in srgb,var(--pt-accent) 9%,var(--pt-surface-solid));color:color-mix(in srgb,var(--pt-accent) 75%,#fff);border-bottom:1px solid var(--pt-line);font-weight:700;letter-spacing:.06em}
html[data-portal] .module-card td{border-bottom-color:var(--pt-line-soft);color:color-mix(in srgb,var(--pt-text) 86%,transparent)}
html[data-portal] .module-card tbody tr{transition:background-color .12s}
html[data-portal] .module-card tbody tr:hover td{background:color-mix(in srgb,var(--pt-accent) 5%,transparent)}

/* ---------- 10. Form controls ---------- */
html[data-portal] .module-card :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea),html[data-portal] .dashboard-search{
  background:var(--pt-field);border:1px solid var(--pt-line);border-radius:var(--pt-radius-sm);color:var(--pt-text);min-height:44px}
html[data-portal] .module-card :is(input,select,textarea):focus{border-color:var(--pt-accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--pt-accent) 20%,transparent)}
html[data-portal] .module-card :is(input,textarea)::placeholder{color:var(--pt-faint)}
html[data-portal] input[type=checkbox],html[data-portal] input[type=radio],html[data-portal] input[type=range]{accent-color:var(--pt-accent)}
html[data-portal] select option{background:var(--pt-surface-solid);color:var(--pt-text)}

/* ---------- 11. Buttons ---------- */
html[data-portal] :is(.module-action,.primary,.dashboard-export,.rh-alert-explore,.ticket-open-response){background:linear-gradient(100deg,var(--pt-accent),color-mix(in srgb,var(--pt-accent) 55%,var(--pt-accent-2)));color:var(--pt-accent-ink);border:0;border-radius:var(--pt-radius-sm);font-weight:700;box-shadow:0 8px 20px color-mix(in srgb,var(--pt-accent) 18%,transparent);transition:transform .12s,box-shadow .15s,filter .15s}
html[data-portal] :is(.module-action,.primary,.dashboard-export,.rh-alert-explore,.ticket-open-response):hover{filter:brightness(1.06);box-shadow:0 10px 26px color-mix(in srgb,var(--pt-accent) 28%,transparent)}
html[data-portal] :is(.module-action,.primary,.dashboard-export):active{transform:translateY(1px)}
html[data-portal] .module-card button:not(.module-action):not(.primary):not(.dashboard-export):not(.rh-alert-explore):not(.ticket-open-response):not(.danger):not(.ticket-kpi):not(.monitor-person):not(.di-node):not(.ticket-row):not([class*=leaflet]),
html[data-portal] .secondary-action,html[data-portal] .dashboard-icon-action{
  background:color-mix(in srgb,var(--pt-surface-solid) 70%,transparent);border:1px solid var(--pt-line);color:var(--pt-text);border-radius:var(--pt-radius-sm);transition:background-color .15s,border-color .15s}
html[data-portal] .module-card button:not(.module-action):not(.primary):not(.dashboard-export):not(.danger):not(.ticket-kpi):not(.monitor-person):not(.di-node):not(.ticket-row):hover,html[data-portal] .secondary-action:hover{border-color:color-mix(in srgb,var(--pt-accent) 60%,transparent);background:color-mix(in srgb,var(--pt-accent) 9%,var(--pt-surface-solid))}
html[data-portal] .module-card button[aria-pressed=true],html[data-portal] .module-card button.active:not(.ticket-row){border-color:var(--pt-accent)!important;background:color-mix(in srgb,var(--pt-accent) 16%,var(--pt-surface-solid))!important;color:var(--pt-text)!important}
html[data-portal] button:disabled{opacity:.55;cursor:not-allowed}

/* ---------- 12. In-module navigation ---------- */
html[data-portal] .module-section-navigation{border-bottom-color:var(--pt-line-soft)}
html[data-portal] .module-section-navigation a{border-color:var(--pt-line);color:var(--pt-muted);border-radius:999px;padding-inline:16px}
html[data-portal] .module-section-navigation a:hover{background:color-mix(in srgb,var(--pt-accent) 9%,transparent);color:var(--pt-text)}
html[data-portal] .module-section-navigation a[aria-current=page]{background:color-mix(in srgb,var(--pt-accent) 16%,transparent);border-color:var(--pt-accent);color:var(--pt-text)}
html[data-portal] .module-section-label{color:var(--pt-faint)}
html[data-portal] body.rh-dashboard-navigation .dashboard-jumpbar{background:color-mix(in srgb,var(--pt-bg) 88%,transparent);border-color:var(--pt-line);border-radius:999px;padding:6px;backdrop-filter:blur(10px);top:80px}
html[data-portal] body.rh-dashboard-navigation .dashboard-jumpbar a{border-radius:999px;color:var(--pt-muted);font-family:var(--pt-font-body)}
html[data-portal] body.rh-dashboard-navigation .dashboard-jumpbar a:hover{background:color-mix(in srgb,var(--pt-accent) 10%,transparent);border-color:transparent;color:var(--pt-text)}
html[data-portal] body.rh-dashboard-navigation .dashboard-jumpbar a.is-current{background:var(--pt-accent);border-color:var(--pt-accent);color:var(--pt-accent-ink)}

/* ---------- 13. Status & priority chips (added as classes only; text unchanged) ---------- */
.pi-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6;text-transform:capitalize;white-space:nowrap;border:1px solid transparent}
.pi-chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pi-s-open,.pi-s-new,.pi-s-reopened{color:#8fd0ff;background:rgba(80,170,255,.12);border-color:rgba(80,170,255,.3)}
.pi-s-acknowledged,.pi-s-assigned{color:#c7b6ff;background:rgba(150,120,255,.13);border-color:rgba(150,120,255,.32)}
.pi-s-responding,.pi-s-in_progress,.pi-s-pending{color:#ffd27a;background:rgba(255,190,70,.12);border-color:rgba(255,190,70,.3)}
.pi-s-escalated,.pi-s-failed,.pi-s-overdue{color:#ff9aa6;background:rgba(255,100,120,.13);border-color:rgba(255,100,120,.34)}
.pi-s-resolved,.pi-s-closed,.pi-s-completed,.pi-s-delivered,.pi-s-sent,.pi-s-active,.pi-s-online{color:#7fe3b3;background:rgba(60,210,140,.12);border-color:rgba(60,210,140,.3)}
.pi-s-inactive,.pi-s-offline,.pi-s-suspended,.pi-s-cancelled{color:#b6c2cc;background:rgba(160,175,190,.1);border-color:rgba(160,175,190,.28)}
.pi-p{font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:.02em}
.pi-p-1{color:#fff;background:#d6334b;border-color:#ff6b80}.pi-p-2{color:#2a1300;background:#ff9f43;border-color:#ffc27f}.pi-p-3{color:#2a2100;background:#f3d150;border-color:#ffe48a}.pi-p-4{color:#e6f1f8;background:rgba(150,170,190,.22);border-color:rgba(150,170,190,.4)}
.pi-p::before{display:none}

/* ---------- 14. Leaflet map framing ---------- */
html[data-portal] .leaflet-container{border-radius:var(--pt-radius-sm);background:var(--pt-field)}
html[data-portal] .leaflet-bar a{background:var(--pt-surface-solid);color:var(--pt-text);border-bottom-color:var(--pt-line)}

/* ---------- 15. Assistant + support ---------- */
html[data-portal] .assistant-panel{border-color:var(--pt-line);background:var(--pt-surface-solid);border-radius:var(--pt-radius)}
html[data-portal] .assistant-head{background:linear-gradient(110deg,var(--pt-surface-2),var(--pt-surface))}
html[data-portal] .assistant-form button{background:var(--pt-accent);color:var(--pt-accent-ink)}
html[data-portal] .assistant-fab{background:linear-gradient(135deg,var(--pt-accent),var(--pt-accent-2));color:var(--pt-accent-ink)}


/* ---------- 17. Legacy !important overrides (dashboard-v13 et al.) ---------- */
html[data-portal] .sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--pt-surface-solid) 94%,transparent),color-mix(in srgb,var(--pt-bg) 97%,transparent))!important;padding:20px 14px 24px!important;box-shadow:none!important}
html[data-portal] .sidebar>*{flex-shrink:0}
html[data-portal] .menu button.active{background:linear-gradient(90deg,color-mix(in srgb,var(--pt-accent) 22%,transparent),color-mix(in srgb,var(--pt-accent) 5%,transparent))!important;border-color:color-mix(in srgb,var(--pt-accent) 42%,transparent)!important;color:var(--pt-text)!important;box-shadow:inset 3px 0 0 var(--pt-accent)!important}
html.rtl[data-portal] .menu button.active{box-shadow:inset -3px 0 0 var(--pt-accent)!important}
html[data-portal] .menu button.active::before{background:var(--pt-accent)!important}
html[data-portal] .menu button:hover .menu-icon,html[data-portal] .menu button.active .menu-icon{background:linear-gradient(145deg,var(--pt-accent),var(--pt-accent-2));border-color:var(--pt-accent)}
html[data-portal] .dashboard-source-banner{border-color:var(--pt-line)!important;background:var(--pt-banner) right 180px center/auto 160% no-repeat,linear-gradient(110deg,var(--pt-surface-2),var(--pt-surface))!important;box-shadow:var(--pt-shadow)!important}
html[data-portal] .ri-kpi-card{border-color:color-mix(in srgb,var(--ri-accent) 32%,var(--pt-line))!important;background:radial-gradient(circle at 100% 115%,color-mix(in srgb,var(--ri-glow) 70%,transparent),transparent 50%),linear-gradient(150deg,var(--pt-surface-2),var(--pt-surface))!important}
html[data-portal] .ri-kpi-label,html[data-portal] .ri-kpi-caption{color:var(--pt-muted)}
html[data-portal] .ri-kpi-value{font-family:var(--pt-font-head)}
/* Neutral KPI tints follow the portal; the orange "open alerts" tint keeps its warning meaning */
html[data-portal=riayah] .ri-kpi-purple{--ri-accent:#8fd3ff;--ri-glow:#1d5f86}
html[data-portal=riayah] .ri-kpi-green{--ri-accent:#2ee6c5;--ri-glow:#0b6a5c}
html[data-portal=equisense] .ri-kpi-purple{--ri-accent:#e6c784;--ri-glow:#6b5523}
html[data-portal=equisense] .ri-kpi-green{--ri-accent:#6fd59b;--ri-glow:#1d6a43}
html[data-portal=camsense] .ri-kpi-purple{--ri-accent:#f3cf98;--ri-glow:#7a5428}
html[data-portal=camsense] .ri-kpi-green{--ri-accent:#9fd7a8;--ri-glow:#40633f}
html[data-portal] .dashboard-search{background:var(--pt-field);border-color:var(--pt-line);color:var(--pt-faint)}
html[data-portal] .module-card .dashboard-search input{border:0!important;background:transparent!important;box-shadow:none!important;min-height:0}
html[data-portal] .dashboard-icon-action{background:var(--pt-surface-solid);border-color:var(--pt-line);color:var(--pt-text)}
html[data-portal] .dashboard-export{background:linear-gradient(100deg,var(--pt-accent),color-mix(in srgb,var(--pt-accent) 55%,var(--pt-accent-2)))!important;color:var(--pt-accent-ink)!important;box-shadow:0 10px 26px color-mix(in srgb,var(--pt-accent) 22%,transparent)!important}
html[data-portal] .module-experience :is(.module-toolbar,.directory-section,.feature-item,.data-panel,.rule-card,.alert-item,.blueprint-section,.registration-section){border-color:var(--pt-line)!important;background:linear-gradient(150deg,var(--pt-surface-2),var(--pt-surface))!important}
html[data-portal] .workspace{background:transparent!important}
html[data-portal] #portal :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea){background-color:var(--pt-field)!important;border-color:var(--pt-line)!important;color:var(--pt-text)!important}
html[data-portal] #portal :is(input,select,textarea):focus{border-color:var(--pt-accent)!important}
html[data-portal] #portal .dashboard-search input{background:transparent!important;border-color:transparent!important}
html[data-portal] #portal :is(td,th){border-color:var(--pt-line-soft)}
html[data-portal] :is(.rh-directory-summary,.field-group,.model-card,.monitor-person){background:var(--pt-surface);border-color:var(--pt-line)}
html[data-portal] .monitor-person:hover{background:var(--pt-surface-2)}
html[data-portal] .rh-alert-summary :is(button,input,select){background:var(--pt-field);border-color:var(--pt-line)}
html[data-portal] .file-drop{border-color:color-mix(in srgb,var(--pt-accent) 45%,transparent);background:color-mix(in srgb,var(--pt-accent) 5%,transparent)}
html[data-portal] .source-badge{background:color-mix(in srgb,var(--pt-accent) 12%,transparent);color:var(--pt-accent)}
html[data-portal] .dashboard-source-banner .source-badge{border-color:color-mix(in srgb,var(--pt-accent) 50%,transparent);background:color-mix(in srgb,var(--pt-accent) 14%,var(--pt-surface-solid));color:var(--pt-accent)}
html[data-portal] .legal-footer{background:color-mix(in srgb,var(--pt-bg) 92%,#000);border-top:1px solid var(--pt-line-soft)}
html[data-portal] .legal-footer a{color:var(--pt-muted)}
html[data-portal] body[data-platform]{--identity-primary:var(--pt-accent);--identity-secondary:var(--pt-accent-2);--identity-deep:var(--pt-surface-solid);--identity-glow:var(--pt-glow)}
html[data-portal] .workspace-head{background-position:right 150px center,0 0}
html.rtl[data-portal] .workspace-head{background-position:left 150px center,0 0}

/* ---------- 16. Mobile ---------- */
.pi-menu-toggle{display:none}
@media (max-width:850px){
  .topbar{height:auto;min-height:60px;flex-wrap:wrap;gap:8px 10px;padding:10px 14px!important}
  .topbar .brand{font-size:17px}.topbar .logo-img{width:38px;height:38px}
  .public-nav{order:3;flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:4px;margin:0 -4px;padding:2px 4px 4px}
  .public-nav::-webkit-scrollbar{display:none}
  .public-nav>a,.public-nav summary{white-space:nowrap;font-size:14px;padding:7px 12px}
  .public-nav details{position:static}
  .platform-dropdown{inset-inline:14px;top:auto;margin-top:6px}
  .pi-portal-chip{margin-inline-start:0;padding:4px;gap:0}
  .pi-portal-chip span{display:none}
  .topbar .language-switch{margin-inline-start:0;min-height:38px!important}
  html[data-portal] .topbar{position:relative}
  html[data-portal] .portal{grid-template-columns:minmax(0,1fr)}
  html[data-portal] .sidebar{position:sticky!important;top:0;z-index:40;height:auto!important;max-height:none!important;overflow:visible!important;padding:8px 12px!important;border-inline-end:0;border-bottom:1px solid var(--pt-line);display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;backdrop-filter:blur(12px)}
  html[data-portal] .portal-brand{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px 10px!important;margin:0!important;background:linear-gradient(150deg,var(--pt-surface-2),transparent)}
  html[data-portal] .portal-brand .portal-logo{width:34px;height:34px;margin:0}
  html[data-portal] .portal-brand h3{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  html[data-portal] .portal-brand small{display:none}
  html[data-portal] .pi-menu-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--pt-line);background:var(--pt-surface-solid);color:var(--pt-text);font-weight:600;cursor:pointer}
  html[data-portal] .pi-menu-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
  html[data-portal].pi-menu-open .pi-menu-toggle{background:var(--pt-accent);color:var(--pt-accent-ink);border-color:var(--pt-accent)}
  html[data-portal] #menu{display:none!important;flex:1 0 100%;max-height:min(70vh,560px);overflow-y:auto;padding:6px 0 10px;flex-direction:column}
  html[data-portal].pi-menu-open #menu{display:flex!important}
  html[data-portal] #menu button{min-width:0!important;width:100%;min-height:48px}
  html[data-portal] #menu .module-orb{width:30px;height:30px}
  .pi-sidebar-art{display:none}
  html[data-portal] .workspace-head{padding:16px 18px;background-position:right -160px bottom -30px,0 0!important;background-size:520px auto,auto!important}
  html[data-portal] :is(.blueprint-banner,.module-stage,.dashboard-source-banner){background-position:right -190px bottom -40px,0 0!important;background-size:520px auto,auto!important}
  html[data-portal] .workspace{padding:16px 14px 32px}
  html[data-portal] .login-wrap{padding-top:14px}
  html[data-portal=riayah] .pi-login-art::after{width:44%;height:96%}
  html[data-portal=riayah] .pi-login-art>*{max-width:56%}
}
@media (max-width:420px){.topbar .brand span{font-size:16px}}
@media print{html[data-portal] body{background:#fff!important;color:#000}html[data-portal] body::before,.pi-sidebar-art,.pi-login-art{display:none!important}}

/* ---------- 18. Settings & Control / users ---------- */
html[data-portal] .user-admin-panel{background:var(--pt-surface);border-color:var(--pt-line)}
html[data-portal] .user-admin-kpis>*{background:linear-gradient(150deg,var(--pt-surface-2),var(--pt-surface))!important;border-color:var(--pt-line)!important}
html[data-portal] .user-admin-kpis strong,html[data-portal] .user-admin-kpis b{color:var(--pt-accent)!important}
html[data-portal] .pu-panel :is(input,select,button),html[data-portal] .pu-create>summary{border-color:var(--pt-line);background:var(--pt-field);color:var(--pt-text)}
html[data-portal] .pu-panel button:hover{background:color-mix(in srgb,var(--pt-accent) 10%,var(--pt-surface-solid));border-color:var(--pt-accent)}
html[data-portal] .pu-avatar{background:linear-gradient(135deg,var(--pt-accent),var(--pt-accent-2));color:var(--pt-accent-ink)}

/* ---------- 19. Public home (master SenseCore brand, portal-coloured cards) ---------- */
#home .showcase-hero{overflow:hidden;min-height:calc(88vh - 68px);padding:72px 20px 40px}
#home .showcase-hero::before,#home .showcase-hero::after{pointer-events:none}
#home .showcase-hero::before{top:-80px}
#home .showcase-hero::after{bottom:auto;top:28%}
#home .hero-badge{font-size:12px;letter-spacing:.24em;padding:8px 16px}
#home .showcase-hero h1{font-family:"Inter Display","Inter",sans-serif;font-weight:800;letter-spacing:-.035em}
#home .showcase-tags span:nth-child(1){border-color:rgba(46,230,197,.4);color:#bff7ec}
#home .showcase-tags span:nth-child(2){border-color:rgba(216,180,106,.45);color:#f1e3bf}
#home .showcase-tags span:nth-child(3){border-color:rgba(239,183,103,.45);color:#f8dfbd}
#home .showcase-tags span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-inline-end:8px;background:currentColor;vertical-align:1px}
#home .showcase-section{padding-block:72px}
#home .section-subtitle{margin-bottom:40px}
#technology>h2,#security>h2{text-align:center;font-family:"Inter Display","Inter",sans-serif;font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.02em;margin:0 0 12px}
#technology>p{text-align:center;max-width:760px;margin:0 auto 36px;color:#9db0c6;line-height:1.7}
#security .trust-bar{margin-top:36px}
#security .trust-bar article{padding:24px;border:1px solid #1d4562;border-radius:16px;background:linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
#home .product-step{border-radius:16px;background:linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border-color:#1d4562;position:relative}
#home .product-step:not(:last-child)::after{content:"";position:absolute;top:72px;inset-inline-end:-18px;width:12px;height:12px;border-top:2px solid #42d6cf;border-right:2px solid #42d6cf;transform:rotate(45deg);opacity:.7}
html.rtl #home .product-step:not(:last-child)::after{transform:rotate(-135deg)}
@media(max-width:800px){#home .product-step::after{display:none}}

/* Platform cards each preview their own portal identity */
#home .showcase-card{--c1:#42d6cf;--c2:#8fd3ff;--cbg:#06303a;--cink:#022a25;--pat:none;border-top:0;padding:30px;display:flex;flex-direction:column;
  background:var(--pat) right -40px top -30px/260px auto no-repeat,radial-gradient(380px 260px at 50% 0,color-mix(in srgb,var(--c1) 22%,transparent),transparent 72%),linear-gradient(170deg,color-mix(in srgb,var(--cbg) 85%,transparent),rgba(4,16,30,.9));
  border:1px solid color-mix(in srgb,var(--c1) 26%,transparent);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--c1) 30%,transparent)}
#home .showcase-card::before{display:none}
#home .showcase-card[data-platform=riayah]{--c1:#2ee6c5;--c2:#8fd3ff;--cbg:#06303a;--cink:#022a25;--pat:url("../images/identity/riayah-pattern.svg")}
#home .showcase-card[data-platform=equisense]{--c1:#d8b46a;--c2:#6fd59b;--cbg:#0e2c20;--cink:#1f1606;--pat:url("../images/identity/equisense-pattern.svg")}
#home .showcase-card[data-platform=camsense]{--c1:#efb767;--c2:#e07a4f;--cbg:#34190c;--cink:#2a1405;--pat:url("../images/identity/camsense-pattern.svg")}
#home .showcase-card[data-platform=equisense] h3{font-family:"Lora",Georgia,serif;font-weight:700;letter-spacing:.02em}
#home .showcase-card[data-platform=riayah] h3{font-family:"Poppins","Inter",sans-serif}
#home .showcase-card .platform-number,#home .showcase-card .platform-type{color:var(--c1)}
#home .showcase-card h3{color:#fff;font-size:1.6rem}
#home .showcase-card p{min-height:0;flex:1;color:#b5c6d4}
#home .showcase-card:hover{border-color:color-mix(in srgb,var(--c1) 60%,transparent);box-shadow:0 26px 60px rgba(0,0,0,.4),0 0 0 1px color-mix(in srgb,var(--c1) 30%,transparent)}
#home .showcase-card .primary{background:linear-gradient(100deg,var(--c1),color-mix(in srgb,var(--c1) 55%,var(--c2)));color:var(--cink);border:0;min-height:48px;border-radius:12px;font-weight:800;box-shadow:0 10px 24px color-mix(in srgb,var(--c1) 22%,transparent)}
#home .showcase-card .primary::after{content:" →"}
html.rtl #home .showcase-card .primary::after{content:" ←"}
#home .showcase-card .platform-logo-img{height:170px}
#home .showcase-card .pi-card-art{position:absolute;inset:auto -6% 70px auto;width:58%;height:150px;background:var(--art) right bottom/contain no-repeat;opacity:.13;pointer-events:none;filter:grayscale(.2)}

/* Contact form */
#home .contact-card{border-radius:20px}
#home .inquiry-form input,#home .inquiry-form select,#home .inquiry-form textarea{min-height:46px;border-radius:10px}
#home .inquiry-form input:focus,#home .inquiry-form select:focus,#home .inquiry-form textarea:focus{outline:none;border-color:#20c9f4;box-shadow:0 0 0 3px rgba(32,201,244,.18)}
#home .inquiry-form label{font-size:13px;font-weight:600;color:#c8d9e6}
#home .inquiry-form button[type=submit]{min-height:50px}
#home .legal-footer{border-top:1px solid rgba(255,255,255,.06)}
html[data-portal=camsense] .pi-login-art::after{height:44%}

/* ---------- 20. Assistant (Rayan) per portal ---------- */
html[data-portal] .riayah-assistant .assistant-head{background:var(--pt-banner) right -200px bottom -20px/520px auto no-repeat,radial-gradient(circle at 25% 35%,color-mix(in srgb,var(--pt-glow) 45%,transparent),transparent 60%),linear-gradient(140deg,var(--pt-surface-2),var(--pt-surface-solid))!important}
html[data-portal] .riayah-assistant .assistant-head small,html[data-portal] .riayah-assistant .assistant-identity small{color:var(--pt-accent)}
html[data-portal] .assistant-language-row,html[data-portal] .riayah-assistant .assistant-form,html[data-portal] .assistant-disclaimer{background:var(--pt-surface-solid);border-color:var(--pt-line-soft)}
html[data-portal] .assistant-language-row button{border-color:var(--pt-line);background:var(--pt-field);color:var(--pt-muted)}
html[data-portal] .assistant-language-row button.active{border-color:var(--pt-accent);background:linear-gradient(110deg,var(--pt-accent),color-mix(in srgb,var(--pt-accent) 55%,var(--pt-accent-2)));color:var(--pt-accent-ink)}
html[data-portal] .riayah-assistant .assistant-messages{background-color:color-mix(in srgb,var(--pt-bg) 85%,#000);background-image:radial-gradient(color-mix(in srgb,var(--pt-accent) 10%,transparent) 1px,transparent 1px)}
html[data-portal] .riayah-assistant .assistant-message{border-color:var(--pt-line);background:var(--pt-surface-2)}
html[data-portal] .riayah-assistant .assistant-message.user{background:linear-gradient(120deg,color-mix(in srgb,var(--pt-accent) 75%,#000),color-mix(in srgb,var(--pt-accent-2) 60%,#000))}
html[data-portal] .assistant-quick button,html[data-portal] .assistant-read-aloud,html[data-portal] .assistant-voice-buttons button{border-color:var(--pt-line);background:var(--pt-field);color:var(--pt-text)}
html[data-portal] .assistant-profile-form input,html[data-portal] .assistant-message-input{border-color:var(--pt-line)!important;background:var(--pt-field)!important;color:var(--pt-text)}
html[data-portal] .assistant-profile-form button,html[data-portal] .riayah-assistant .assistant-form button[type=submit]{background:linear-gradient(110deg,var(--pt-accent),color-mix(in srgb,var(--pt-accent) 55%,var(--pt-accent-2)));color:var(--pt-accent-ink)}
html[data-portal] .riayah-assistant{border-color:var(--pt-line)!important;background:var(--pt-surface-solid)!important}
html[data-portal] #assistantVoiceTools{border-top-color:var(--pt-line);background:var(--pt-surface-solid);color:var(--pt-muted)}
/* Priority spans already rendered by the alerts workspace (priority-p1…p4) get the same chip look */
html[data-portal] .aw td>span[class^=priority-p]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent;font-variant-numeric:tabular-nums}
html[data-portal] .aw td>span[class^=priority-p]{color:color-mix(in srgb,var(--priority,#9fb0c0) 55%,#fff);background:color-mix(in srgb,var(--priority,#9fb0c0) 20%,transparent);border-color:color-mix(in srgb,var(--priority,#9fb0c0) 60%,transparent)}


/* ===== assets/css/portal-styles.css ===== */
/* =====================================================================
   SenseCore 360 — Portal design languages (v105)
   ---------------------------------------------------------------------
   Loaded after portal-identity.css. Where portal-identity gives each
   portal its colours, this file gives each portal its own SHAPE
   language: surfaces, cards, KPI tiles, tables, buttons, navigation.
     RIAYAH    → Clinical Light   (white, ECG paper, pills, zebra rows)
     EquiSense → Equestrian Editorial (sharp frames, serif small caps,
                                       ledger tables, underline tabs)
     CamelSense  → Desert Sadu      (chunky radius, Sadu weave bands,
                                   card-row tables, pressable buttons)
   Visual only: no module markup, data or behaviour is changed.
   Severity colours keep their meaning; on light surfaces they are
   darkened only enough to stay readable.
   ===================================================================== */

/* =====================================================================
   1. RIAYAH — CLINICAL NIGHT (v104 teal palette)
   Pill buttons, segmented tabs, vital-strip KPI tiles, ECG-grid
   header, soft rounded clinical cards with a pulse dot on titles.
   ===================================================================== */
html[data-portal=riayah]{--rh-grid:rgba(46,230,197,.05);--rh-grid-strong:rgba(46,230,197,.09);--pt-radius:18px}
html[data-portal=riayah] :is(.data-panel,.visual-card,.command-panel,.ops-card,.monitor-panel)>:is(h3,h4):first-child{display:flex;align-items:center;gap:10px}
html[data-portal=riayah] :is(.data-panel,.visual-card,.command-panel,.ops-card,.monitor-panel)>:is(h3,h4):first-child::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--pt-warm);box-shadow:0 0 0 4px rgba(255,138,122,.16);animation:rh-pulse 2.4s ease-in-out infinite}
/* KPI tiles: vital strip + mini ECG glyph */
html[data-portal=riayah] :is(.ri-kpi-card,.command-kpi,.ticket-kpi,.monitor-metric,.user-admin-kpis>div){position:relative;overflow:hidden}
html[data-portal=riayah] :is(.ri-kpi-card,.command-kpi,.ticket-kpi,.monitor-metric,.user-admin-kpis>div)::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--ri-accent,var(--pt-accent));opacity:1!important;animation:none!important;filter:none!important;transform:none!important;border-radius:0}
html.rtl[data-portal=riayah] :is(.ri-kpi-card,.command-kpi,.ticket-kpi,.monitor-metric,.user-admin-kpis>div)::before{inset:0 0 0 auto}
html[data-portal=riayah] .ri-kpi-card::after{content:"";position:absolute;inset:16px 14px auto auto;width:56px;height:22px;background:url("../images/identity/riayah-ecg-mini.svg") center/contain no-repeat;opacity:.6;filter:none;border-radius:0}
/* Tables: soft zebra */
html[data-portal=riayah] .module-card tbody tr:nth-child(even) td{background:rgba(46,230,197,.025)}
/* Buttons: pills */
html[data-portal=riayah] :is(.module-action,.primary,.dashboard-export,.rh-alert-explore,.ticket-open-response,#signBtn){border-radius:999px!important}
html[data-portal=riayah] .module-card button:not(.module-action):not(.primary):not(.dashboard-export):not(.rh-alert-explore):not(.ticket-open-response):not(.danger):not(.ticket-kpi):not(.monitor-person):not(.di-node):not(.ticket-row):not([class*=leaflet]),html[data-portal=riayah] .secondary-action{border-radius:999px!important}
/* Segmented tabs */
html[data-portal=riayah] .module-section-navigation{border-bottom:0;gap:4px;padding:4px;background:rgba(46,230,197,.07);border:1px solid var(--pt-line);border-radius:999px;width:max-content;max-width:100%}
html[data-portal=riayah] .module-section-label{display:none}
html[data-portal=riayah] .module-section-navigation a{border:0!important;border-radius:999px!important;min-height:38px;padding:6px 16px}
html[data-portal=riayah] .module-section-navigation a[aria-current=page]{background:var(--pt-accent)!important;color:var(--pt-accent-ink)!important}
/* ECG-grid header */
html[data-portal=riayah] .portal-brand::after{content:"";position:absolute;inset:auto 0 0 0;height:46px;background:url("../images/identity/riayah-ecg-white.svg") left center/240px 46px repeat-x;opacity:.22;animation:rh-ecg-scroll 6s linear infinite;pointer-events:none}
@keyframes rh-pulse{0%,100%{box-shadow:0 0 0 3px rgba(255,138,122,.18)}50%{box-shadow:0 0 0 7px rgba(255,138,122,.04)}}
@keyframes rh-ecg-scroll{to{background-position:-240px center}}

/* =====================================================================
   2. EQUISENSE — EQUESTRIAN EDITORIAL
   Sharp double-framed panels, serif small caps, ledger tables,
   underline tabs, gold plaque KPIs, linen grain.
   ===================================================================== */
html[data-portal=equisense]{--pt-radius:4px;--pt-radius-sm:3px;--es-gold:#d8b46a;--es-gold-soft:rgba(216,180,106,.28);--es-gold-faint:rgba(216,180,106,.12);--es-serif:"Lora",Georgia,"Times New Roman",serif}
html[data-portal=equisense] body{background:url("../images/identity/equisense-noise.svg"),radial-gradient(900px 520px at 85% 0,rgba(47,143,95,.28),transparent 70%) no-repeat,linear-gradient(180deg,#0e2c20 0,#04120d 760px) no-repeat,#04120d}
html[data-portal=equisense] :is(.data-panel,.command-panel,.visual-card,.ops-card,.monitor-panel,.monitor-hero,.xai-section,.xai-card,.directory-section,.user-admin-panel,.account-section,.integration-card,.ticket-list,.ticket-detail,.ticket-create,.ticket-dashboard-strip,.aw-table,.aw-guide,.rb-table,.registration-form,.api-box,.lifecycle-centre,.pilot-data-status,.pu-detail,.rp-manager,.rp-editor,.di-case-detail,.di-stage-info,.pilgrim-visual-section,.permission-matrix,.rh-directory-summary,.model-card,fieldset){
  border-radius:4px!important;border:1px solid var(--es-gold-soft)!important;outline:1px solid var(--es-gold-faint);outline-offset:-7px;background:linear-gradient(180deg,rgba(17,48,36,.85),rgba(10,32,24,.85))!important;box-shadow:0 18px 40px rgba(0,0,0,.35)}
html[data-portal=equisense] .module-experience :is(.module-toolbar,.directory-section,.feature-item,.data-panel,.rule-card,.alert-item,.blueprint-section,.registration-section){border-radius:4px!important;border-color:var(--es-gold-soft)!important}
html[data-portal=equisense] :is(.data-panel,.visual-card,.command-panel,.ops-card,.monitor-panel,.xai-section,.directory-section)>:is(h3,h4):first-child{font-family:var(--es-serif);font-weight:600;letter-spacing:.01em;padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--es-gold-faint)}
html[data-portal=equisense] .module-card :is(h3,h4),html[data-portal=equisense] .workspace h2#moduleTitle{font-family:var(--es-serif)}
html[data-portal=equisense] .eyebrow,html[data-portal=equisense] .module-section-label,html[data-portal=equisense] .ri-kpi-label,html[data-portal=equisense] .module-card th{font-variant:small-caps;text-transform:lowercase;letter-spacing:.12em}
html[data-portal=equisense] .workspace-head{border-radius:4px;outline:1px solid var(--es-gold-faint);outline-offset:-7px;border-color:var(--es-gold-soft)}
/* Plaque KPIs: centred serif numerals under a gold rule */
html[data-portal=equisense] :is(.ri-kpi-card,.status-card,.command-kpi,.ticket-kpi,.monitor-metric,.user-admin-kpis>div){border-radius:4px!important;text-align:center;border:1px solid var(--es-gold-soft)!important;outline:1px solid var(--es-gold-faint);outline-offset:-6px;background:radial-gradient(160px 90px at 50% 0,rgba(216,180,106,.10),transparent 70%),linear-gradient(180deg,#123224,#0b2219)!important;box-shadow:0 12px 30px rgba(0,0,0,.3)!important}
html[data-portal=equisense] .ri-kpi-card::after{display:none}
html[data-portal=equisense] .ri-kpi-value,html[data-portal=equisense] .status-card strong,html[data-portal=equisense] .command-kpi strong,html[data-portal=equisense] .ticket-kpi strong,html[data-portal=equisense] .user-admin-kpis strong{font-family:var(--es-serif)!important;font-weight:600!important;color:var(--es-gold)!important;background:none;-webkit-text-fill-color:currentColor;letter-spacing:0}
html[data-portal=equisense] .ri-kpi-label{display:block;position:relative;padding-bottom:10px;color:#c9d3c4!important}
html[data-portal=equisense] .ri-kpi-label::after{content:"";position:absolute;left:50%;bottom:0;width:28px;height:1px;background:var(--es-gold);transform:translateX(-50%)}
html[data-portal=equisense] .ri-kpi-purple{--ri-accent:#d8b46a}
html[data-portal=equisense] .ri-kpi-green{--ri-accent:#6fd59b}
/* Ledger tables */
html[data-portal=equisense] .module-card table{border-collapse:collapse}
html[data-portal=equisense] .module-card th{background:transparent!important;color:var(--es-gold)!important;font-family:var(--es-serif);font-size:14px;font-weight:600;border-bottom:3px double var(--es-gold-soft)!important;padding-block:12px}
html[data-portal=equisense] .module-card td{border-bottom:1px solid var(--es-gold-faint)!important;padding-block:13px}
html[data-portal=equisense] .module-card tbody tr:hover td{background:rgba(216,180,106,.05)!important}
/* Buttons: tailored, square, uppercase */
html[data-portal=equisense] :is(.module-action,.primary,.dashboard-export,.rh-alert-explore,.ticket-open-response,#signBtn){border-radius:2px!important;text-transform:uppercase;letter-spacing:.12em;font-size:12.5px!important;background:linear-gradient(180deg,#e2c27d,#c79e4f)!important;color:#1f1606!important;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 20px rgba(0,0,0,.35)!important}
html[data-portal=equisense] .module-card button:not(.module-action):not(.primary):not(.dashboard-export):not(.rh-alert-explore):not(.ticket-open-response):not(.danger):not(.ticket-kpi):not(.monitor-person):not(.di-node):not(.ticket-row):not([class*=leaflet]),
html[data-portal=equisense] .secondary-action{border-radius:2px!important;background:transparent!important;border:1px solid var(--es-gold-soft)!important;color:#ead9ae!important;letter-spacing:.04em}
html[data-portal=equisense] .module-card button:not(.module-action):not(.primary):not(.dashboard-export):not(.danger):not(.ticket-kpi):not(.monitor-person):not(.di-node):not(.ticket-row):hover{border-color:var(--es-gold)!important;background:rgba(216,180,106,.08)!important}
/* Underline tabs */
html[data-portal=equisense] .module-section-navigation{gap:4px 22px;border-bottom:1px solid var(--es-gold-faint)}
html[data-portal=equisense] .module-section-navigation a{border:0!important;border-radius:0!important;background:transparent!important;padding:10px 2px!important;color:#b8c6b9;font-family:var(--es-serif);font-size:15px;box-shadow:inset 0 -2px 0 transparent}
html[data-portal=equisense] .module-section-navigation a:hover{color:#f4f1e6}
html[data-portal=equisense] .module-section-navigation a[aria-current=page]{color:var(--es-gold)!important;box-shadow:inset 0 -2px 0 var(--es-gold)}
html[data-portal=equisense] body.rh-dashboard-navigation .dashboard-jumpbar{border-radius:0!important;background:rgba(4,18,13,.9)!important;border:0!important;border-block:1px solid var(--es-gold-faint)!important;padding:0 6px!important;gap:4px 22px}
html[data-portal=equisense] body.rh-dashboard-navigation .dashboard-jumpbar a{border-radius:0!important;font-family:var(--es-serif)!important;font-size:15px!important;padding:12px 2px!important;background:transparent!important}
html[data-portal=equisense] body.rh-dashboard-navigation .dashboard-jumpbar a.is-current{background:transparent!important;color:var(--es-gold)!important;box-shadow:inset 0 -2px 0 var(--es-gold)}
/* Inputs, chips, sidebar */
html[data-portal=equisense] #portal :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea){border-radius:2px!important}
html[data-portal=equisense] .pi-chip{border-radius:2px;text-transform:uppercase;font-size:10.5px;letter-spacing:.1em}
html[data-portal=equisense] .pi-chip::before{border-radius:0;transform:rotate(45deg);width:5px;height:5px}
html[data-portal=equisense] .sidebar{border-inline-end:1px solid var(--es-gold-faint)!important}
html[data-portal=equisense] .portal-brand{border-radius:4px!important;outline:1px solid var(--es-gold-faint);outline-offset:-6px}
html[data-portal=equisense] .portal-brand h3{font-family:var(--es-serif)}
html[data-portal=equisense] #menu button,html[data-portal=equisense] #menu .module-nav-group-title{border-radius:2px!important}
html[data-portal=equisense] .menu button.active,html[data-portal=equisense] #menu button.active{background:linear-gradient(90deg,rgba(216,180,106,.16),transparent)!important;border-color:transparent!important;box-shadow:inset 2px 0 0 var(--es-gold)!important}
html[data-portal=equisense] #menu .module-nav-label{font-family:var(--es-serif);font-size:14px;font-weight:500;letter-spacing:.01em}
html[data-portal=equisense] :is(.blueprint-banner,.module-stage,.dashboard-source-banner){border-radius:4px!important;outline:1px solid var(--es-gold-faint);outline-offset:-7px}
html[data-portal=equisense] .login-card{border-radius:4px!important;outline:1px solid var(--es-gold-faint);outline-offset:-8px}
html[data-portal=equisense] .pi-login-art{border-radius:4px;outline:1px solid var(--es-gold-faint);outline-offset:-10px}
html[data-portal=equisense] .field input{border-radius:2px!important}

/* =====================================================================
   3. CAMELSENSE — DESERT SADU
   Chunky rounded panels, Sadu weave bands, card-row tables,
   pressable buttons, chip navigation, sun-warm surfaces.
   ===================================================================== */
html[data-portal=camsense]{--pt-radius:22px;--pt-radius-sm:14px;--cs-sadu:url("../images/identity/camsense-sadu.svg");--cs-sand:#efb767;--cs-terra:#e07a4f;--cs-ink:#2a1405}
html[data-portal=camsense] :is(.data-panel,.command-panel,.visual-card,.ops-card,.monitor-panel,.monitor-hero,.xai-section,.xai-card,.directory-section,.user-admin-panel,.account-section,.integration-card,.ticket-list,.ticket-detail,.ticket-create,.ticket-dashboard-strip,.aw-table,.aw-guide,.rb-table,.registration-form,.api-box,.lifecycle-centre,.pilot-data-status,.pu-detail,.rp-manager,.rp-editor,.di-case-detail,.di-stage-info,.pilgrim-visual-section,.permission-matrix,.rh-directory-summary,.model-card,fieldset){
  position:relative;border-radius:22px!important;border:1.5px solid rgba(239,183,103,.22)!important;background:linear-gradient(180deg,rgba(66,38,21,.9),rgba(42,24,13,.92))!important;box-shadow:0 14px 34px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,220,170,.06);overflow:hidden}
html[data-portal=camsense] :is(.data-panel,.command-panel,.visual-card,.ops-card,.monitor-panel,.xai-section,.directory-section,.ticket-list,.ticket-detail,.aw-table,.rb-table,.registration-form,.user-admin-panel)::before{content:"";position:absolute;inset:0 0 auto 0;height:12px;background:var(--cs-sadu) 0 0/48px 12px repeat-x;opacity:.95;pointer-events:none}
html[data-portal=camsense] .module-experience :is(.module-toolbar,.directory-section,.feature-item,.data-panel,.rule-card,.alert-item,.blueprint-section,.registration-section){border-radius:22px!important}
html[data-portal=camsense] :is(.data-panel,.visual-card,.command-panel,.ops-card,.monitor-panel,.xai-section,.directory-section)>:is(h3,h4):first-child{font-family:"Inter Display","Inter",sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:15px;margin-top:6px}
html[data-portal=camsense] .workspace-head{border-radius:24px;padding-bottom:30px}
html[data-portal=camsense] .workspace-head::after{content:"";position:absolute;inset:auto 0 0 0;height:10px;background:var(--cs-sadu) 0 0/40px 10px repeat-x}
html[data-portal=camsense] .workspace h2#moduleTitle{text-transform:uppercase;letter-spacing:.02em}
/* KPI tiles: Sadu cap, chunky numerals */
html[data-portal=camsense] :is(.ri-kpi-card,.status-card,.command-kpi,.ticket-kpi,.monitor-metric,.user-admin-kpis>div){position:relative;border-radius:20px!important;padding-top:24px!important;border:1.5px solid rgba(239,183,103,.25)!important;background:radial-gradient(140px 100px at 100% 100%,color-mix(in srgb,var(--ri-accent,#efb767) 30%,transparent),transparent 70%),linear-gradient(180deg,#4a2a16,#2d190e)!important;overflow:hidden}
html[data-portal=camsense] :is(.ri-kpi-card,.status-card,.command-kpi,.ticket-kpi,.monitor-metric,.user-admin-kpis>div)::before{content:"";opacity:.95!important;animation:none!important;filter:none!important;transform:none!important;position:absolute;inset:0 0 auto 0;height:10px;background:var(--cs-sadu) 0 0/40px 10px repeat-x;width:auto;border-radius:0}
html[data-portal=camsense] .ri-kpi-card::after{display:none}
html[data-portal=camsense] .ri-kpi-value,html[data-portal=camsense] .status-card strong,html[data-portal=camsense] .command-kpi strong,html[data-portal=camsense] .ticket-kpi strong,html[data-portal=camsense] .user-admin-kpis strong{font-family:"Inter Display","Inter",sans-serif!important;font-weight:900!important;font-size:38px!important;letter-spacing:-.02em}
html[data-portal=camsense] .ri-kpi-label{text-transform:uppercase;letter-spacing:.08em;font-size:11.5px;font-weight:700}
/* Tables become stacks of rounded rows */
html[data-portal=camsense] .module-card table{border-collapse:separate!important;border-spacing:0 8px!important}
html[data-portal=camsense] .module-card th{background:transparent!important;border:0!important;color:var(--cs-sand)!important;text-transform:uppercase;font-size:11px;letter-spacing:.1em}
html[data-portal=camsense] .module-card td{background:rgba(255,220,170,.05)!important;border:0!important;border-block:1px solid rgba(239,183,103,.12)!important}
html[data-portal=camsense] .module-card td:first-child{border-start-start-radius:14px;border-end-start-radius:14px;border-inline-start:1px solid rgba(239,183,103,.12)!important}
html[data-portal=camsense] .module-card td:last-child{border-start-end-radius:14px;border-end-end-radius:14px;border-inline-end:1px solid rgba(239,183,103,.12)!important}
html[data-portal=camsense] .module-card tbody tr:hover td{background:rgba(239,183,103,.1)!important}
/* Pressable buttons */
html[data-portal=camsense] :is(.module-action,.primary,.dashboard-export,.rh-alert-explore,.ticket-open-response,#signBtn){border-radius:14px!important;background:linear-gradient(180deg,#f4c47c,#e49a54)!important;color:#2a1405!important;font-weight:800!important;box-shadow:0 4px 0 #9b5426,0 10px 22px rgba(0,0,0,.35)!important;transform:translateY(-1px)}
html[data-portal=camsense] :is(.module-action,.primary,.dashboard-export,#signBtn):active{transform:translateY(2px);box-shadow:0 1px 0 #9b5426,0 4px 10px rgba(0,0,0,.35)!important}
html[data-portal=camsense] .module-card button:not(.module-action):not(.primary):not(.dashboard-export):not(.rh-alert-explore):not(.ticket-open-response):not(.danger):not(.ticket-kpi):not(.monitor-person):not(.di-node):not(.ticket-row):not([class*=leaflet]),
html[data-portal=camsense] .secondary-action{border-radius:14px!important;border:1.5px solid rgba(239,183,103,.3)!important;background:rgba(239,183,103,.07)!important;box-shadow:0 3px 0 rgba(0,0,0,.35)}
/* Chip navigation */
html[data-portal=camsense] .module-section-navigation{border-bottom:0;gap:8px}
html[data-portal=camsense] .module-section-navigation a{border-radius:14px!important;border:1.5px solid rgba(239,183,103,.25)!important;background:rgba(239,183,103,.06);font-weight:700;box-shadow:0 3px 0 rgba(0,0,0,.35)}
html[data-portal=camsense] .module-section-navigation a[aria-current=page]{background:linear-gradient(180deg,#f4c47c,#e49a54)!important;color:#2a1405!important;border-color:transparent!important}
html[data-portal=camsense] body.rh-dashboard-navigation .dashboard-jumpbar{border-radius:18px!important;gap:6px}
html[data-portal=camsense] body.rh-dashboard-navigation .dashboard-jumpbar a{border-radius:12px!important;font-weight:700!important}
html[data-portal=camsense] body.rh-dashboard-navigation .dashboard-jumpbar a.is-current{background:linear-gradient(180deg,#f4c47c,#e49a54)!important;color:#2a1405!important}
/* Inputs, chips, sidebar */
html[data-portal=camsense] #portal :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea){border-radius:12px!important;border-width:1.5px!important}
html[data-portal=camsense] .pi-chip{border-radius:8px;font-weight:700}
html[data-portal=camsense] .sidebar{position:relative}
html[data-portal=camsense] .sidebar::after{content:"";position:absolute;inset:0 0 0 auto;width:8px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='48' viewBox='0 0 8 48' shape-rendering='crispEdges'%3E%3Crect width='8' height='48' fill='%232a140a'/%3E%3Cpath d='M0 0l8 6-8 6Z M0 24l8 6-8 6Z' fill='%23b5442b'/%3E%3Cpath d='M8 12l-8 6 8 6Z M8 36l-8 6 8 6Z' fill='%23f3e2c2'/%3E%3C/svg%3E") 0 0/8px 48px repeat-y;opacity:.75;pointer-events:none}
html.rtl[data-portal=camsense] .sidebar::after{inset:0 auto 0 0}
html[data-portal=camsense] .portal-brand{border-radius:20px!important;padding-top:22px!important}
html[data-portal=camsense] .portal-brand::before{content:"";position:absolute;inset:0 0 auto 0;height:10px;background:var(--cs-sadu) 0 0/40px 10px repeat-x}
html[data-portal=camsense] #menu button,html[data-portal=camsense] #menu .module-nav-group-title{border-radius:14px!important}
html[data-portal=camsense] .menu button.active,html[data-portal=camsense] #menu button.active{background:linear-gradient(90deg,rgba(239,183,103,.24),rgba(239,183,103,.06))!important;box-shadow:inset 0 0 0 1.5px rgba(239,183,103,.45)!important;border-color:transparent!important}
html[data-portal=camsense] :is(.blueprint-banner,.module-stage,.dashboard-source-banner){border-radius:22px!important}
html[data-portal=camsense] .login-card{border-radius:26px!important;overflow:hidden}
html[data-portal=camsense] .login-card::before{content:"";position:absolute;inset:0 0 auto 0;height:10px;background:var(--cs-sadu) 0 0/40px 10px repeat-x}
html[data-portal=camsense] .login-card{position:relative}
html[data-portal=camsense] .pi-login-art{border-radius:26px}
html[data-portal=camsense] .field input{border-radius:12px!important}
html[data-portal=camsense] :is(.data-panel,.command-panel,.visual-card,.ops-card,.monitor-panel,.xai-section,.directory-section,.ticket-list,.ticket-detail,.aw-table,.rb-table,.registration-form,.user-admin-panel){padding-top:max(26px,var(--cs-pt,0px))}

/* =====================================================================
   4. MOTION GRAPHICS (all portals; stilled by prefers-reduced-motion)
   ===================================================================== */
.px-motion{position:absolute;pointer-events:none;z-index:0}
.px-motion svg{width:100%;height:100%;display:block;overflow:visible}
.px-motion-head{inset:0 0 0 38%;opacity:.95}
html.rtl .px-motion-head{inset:0 38% 0 0;transform:scaleX(-1)}
html[data-portal] .workspace-head>*:not(.px-motion){position:relative;z-index:1}
html[data-portal] .workspace-head{background-image:none!important}
html[data-portal=riayah] .workspace-head{background:linear-gradient(90deg,var(--pt-surface-2) 30%,rgba(9,49,58,.6)),linear-gradient(var(--rh-grid-strong) 1px,transparent 1px) 0 0/20px 20px,linear-gradient(90deg,var(--rh-grid-strong) 1px,transparent 1px) 0 0/20px 20px,var(--pt-surface-solid)!important}
html[data-portal=equisense] .workspace-head{background:radial-gradient(500px 200px at 85% 50%,rgba(216,180,106,.12),transparent 70%),linear-gradient(110deg,#123224 30%,#0b2219)!important}
html[data-portal=camsense] .workspace-head{background:url("../images/identity/camsense-banner.svg") right -30px bottom -10px/auto 150% no-repeat,linear-gradient(110deg,#4a2a16 30%,#2d190e)!important}
.px-motion-login{inset:auto 0 0 0;height:46%;z-index:0}
.pi-login-art>.px-motion{max-width:none}
html[data-portal=riayah] .px-motion-login{height:22%;bottom:4%}

/* RIAYAH: live ECG trace + heartbeat */
.px-ecg-base{fill:none;stroke:var(--pt-accent);stroke-opacity:.18;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.px-ecg-run{fill:none;stroke:var(--pt-warm,#e0574a);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:110 890;animation:px-ecg 2.8s linear infinite;filter:drop-shadow(0 0 4px rgba(224,87,74,.45))}
.px-heart{fill:var(--pt-warm,#e0574a);transform-origin:0 0;animation:px-beat 1.4s ease-in-out infinite}
.px-ring{fill:none;stroke:var(--pt-warm,#e0574a);stroke-width:1.5;opacity:0;transform-origin:0 0;animation:px-ring 2.8s ease-out infinite}
.px-ring-2{animation-delay:1.4s}
.px-motion-login .px-ecg-base{stroke:#fff;stroke-opacity:.25}
.px-motion-login .px-ecg-run{stroke:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.8))}
.px-motion-login .px-heart{fill:#ffd1cb}
.px-motion-login .px-ring{stroke:#fff}
@keyframes px-ecg{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@keyframes px-beat{0%,40%,100%{transform:scale(1)}10%{transform:scale(1.18)}25%{transform:scale(1.06)}}
@keyframes px-ring{0%{opacity:.6;transform:scale(.6)}100%{opacity:0;transform:scale(2.1)}}

/* EQUISENSE: gallop hoofbeats + flowing gait wave */
.px-gait{animation:px-gait 6s linear infinite}
.px-gait-line{fill:none;stroke:var(--es-gold,#d8b46a);stroke-opacity:.45;stroke-width:1.6}
.px-shoe path{fill:none;stroke:var(--es-gold,#d8b46a);stroke-width:2.4;stroke-linecap:round}
.px-shoe{opacity:.15;animation:px-hoof 1.6s ease-out infinite;animation-delay:calc(var(--i)*.14s)}
@keyframes px-gait{to{transform:translateX(-100px)}}
@keyframes px-hoof{0%{opacity:.15}8%{opacity:1;filter:drop-shadow(0 0 6px rgba(216,180,106,.8))}40%,100%{opacity:.15}}

/* CAMELSENSE: caravan on the horizon, heat haze, breathing sun */
.px-caravan{animation:px-caravan 46s linear infinite}
.px-camel{animation:px-bob 1.1s ease-in-out infinite;animation-delay:calc(var(--i)*-.37s)}
.px-sun{fill:#f6b25a}
.px-sun-glow{fill:#f0a04b;opacity:.35;transform-origin:0 0;animation:px-sun 5s ease-in-out infinite}
.px-haze-line{fill:none;stroke:#f3d7a6;stroke-width:1.4;stroke-linecap:round;opacity:0;animation:px-haze 4s ease-in-out infinite;animation-delay:calc(var(--i)*1.2s)}
.px-motion-head .px-caravan image,.px-motion-login .px-caravan image{opacity:.9}
@keyframes px-caravan{from{transform:translateX(640px)}to{transform:translateX(-220px)}}
@keyframes px-bob{50%{transform:translateY(-1.5px)}}
@keyframes px-sun{50%{transform:scale(1.25);opacity:.18}}
@keyframes px-haze{0%{opacity:0;transform:translateY(8px)}40%{opacity:.6}100%{opacity:0;transform:translateY(-16px)}}

/* Gentle entrance for module sections */
html[data-portal] #moduleContent>*{animation:px-rise .45s cubic-bezier(.2,.7,.2,1) both}
html[data-portal] #moduleContent>*:nth-child(2){animation-delay:.05s}
html[data-portal] #moduleContent>*:nth-child(3){animation-delay:.1s}
html[data-portal] #moduleContent>*:nth-child(4){animation-delay:.15s}
html[data-portal] #moduleContent>*:nth-child(n+5){animation-delay:.2s}
@keyframes px-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* =====================================================================
   5. DASHBOARD HERO — mirrors the KPI tiles with a portal visual
   ===================================================================== */
.px-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:24px;align-items:stretch;margin-top:18px;padding:26px 28px;border-radius:calc(var(--pt-radius) + 4px);overflow:hidden;animation:px-rise .5s both}
.px-hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.px-hero-kicker{font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pt-accent)}
.px-hero h3{margin:0;font-family:var(--pt-font-head);font-size:clamp(24px,2.4vw,32px);line-height:1.15;font-weight:var(--pt-head-weight);color:var(--pt-text)}
.px-hero p{margin:0;color:var(--pt-muted);max-width:46ch}
.px-hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:14px 0 0}
.px-stat{display:flex;flex-direction:column-reverse;gap:2px;padding:12px 14px;border-radius:var(--pt-radius-sm);background:color-mix(in srgb,var(--pt-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--pt-accent) 22%,transparent)}
.px-stat dd{margin:0;font-family:var(--pt-font-head);font-size:26px;font-weight:800;color:var(--pt-text);font-variant-numeric:tabular-nums;line-height:1.1}
.px-stat dt{font-size:12px;color:var(--pt-muted)}
.px-stat.is-warn{background:rgba(255,140,60,.10);border-color:rgba(255,140,60,.35)}
.px-stat.is-warn dd{color:#e8742c}
.px-hero-vis{position:relative;min-height:220px}
.px-hero-art{position:absolute;inset:0;background:center bottom/contain no-repeat;filter:drop-shadow(0 18px 24px rgba(0,0,0,.35));z-index:1}
.px-motion-hero{inset:auto -28px -10px 0;height:60%;z-index:0;overflow:hidden}
.px-ring-wrap{position:absolute;z-index:2;inset:10px auto auto 0;width:112px;height:112px;display:none}
.px-hero.has-ring .px-ring-wrap{display:block}
.px-ring-svg{width:100%;height:100%;transform:rotate(-90deg)}
.px-ring-track{fill:none;stroke:color-mix(in srgb,var(--pt-text) 12%,transparent);stroke-width:9}
.px-ring-val{fill:none;stroke:var(--pt-accent);stroke-width:9;stroke-linecap:round;stroke-dasharray:0 100;transition:stroke-dasharray 1.2s cubic-bezier(.2,.7,.2,1)}
.px-ring-text{position:absolute;inset:0;display:grid;place-content:center;text-align:center;line-height:1.1}
.px-ring-text b{font-family:var(--pt-font-head);font-size:22px;color:var(--pt-text)}
.px-ring-text span{font-size:10.5px;color:var(--pt-muted);max-width:76px}
/* Per-portal hero skins */
html[data-portal=riayah] .px-hero{background:radial-gradient(420px 260px at 85% 80%,rgba(46,230,197,.14),transparent 70%),linear-gradient(120deg,var(--pt-surface-2),var(--pt-surface-solid));border:1px solid var(--pt-line);box-shadow:var(--pt-shadow)}
html[data-portal=riayah] .px-hero-art{inset:-6px 0 -26px 30%;background-position:right bottom}
html[data-portal=equisense] .px-hero{border-radius:4px;border:1px solid var(--es-gold-soft);outline:1px solid var(--es-gold-faint);outline-offset:-8px;background:radial-gradient(420px 260px at 80% 70%,rgba(216,180,106,.14),transparent 70%),linear-gradient(120deg,#123224,#08190f)}
html[data-portal=equisense] .px-hero h3{font-family:var(--es-serif);font-style:italic}
html[data-portal=equisense] .px-stat{border-radius:2px;text-align:center;background:transparent;border:0;border-top:1px solid var(--es-gold-soft)}
html[data-portal=equisense] .px-stat dd{font-family:var(--es-serif);color:var(--es-gold)}
html[data-portal=equisense] .px-ring-val{stroke:var(--es-gold)}
html[data-portal=camsense] .px-hero{border-radius:26px;border:1.5px solid rgba(239,183,103,.25);background:url("../images/identity/camsense-banner.svg") right -60px bottom -20px/auto 120% no-repeat,radial-gradient(420px 260px at 80% 30%,rgba(240,160,75,.25),transparent 70%),linear-gradient(120deg,#4a2a16,#24130a);padding-top:38px}
html[data-portal=camsense] .px-hero::before{content:"";position:absolute;inset:0 0 auto 0;height:12px;background:var(--cs-sadu) 0 0/48px 12px repeat-x}
html[data-portal=camsense] .px-hero h3{text-transform:uppercase;letter-spacing:.02em}
html[data-portal=camsense] .px-stat{border-radius:16px;background:rgba(255,220,170,.06);border-color:rgba(239,183,103,.25)}
html[data-portal=camsense] .px-stat dd{font-size:30px;font-weight:900}
html[data-portal=camsense] .px-ring-val{stroke:#efb767}
@media (max-width:900px){.px-hero{grid-template-columns:1fr}.px-hero-vis{min-height:170px}.px-motion-head{inset:0 0 0 20%;opacity:.5}}

/* Standalone sites: no route back to an umbrella home */
html[data-standalone] .login-card .back{display:none}
html[data-standalone] .topbar .brand>span{font-family:var(--pt-font-head);font-weight:700;letter-spacing:.01em}
@media print{.px-motion,.px-hero{display:none!important}}

/* Module banners carry the portal motion too */
html[data-portal] .module-stage{position:relative;overflow:hidden}
html[data-portal] .module-stage>*:not(.px-motion){position:relative;z-index:1}
.px-motion-stage{inset:0 0 0 45%;opacity:.85}
html.rtl .px-motion-stage{inset:0 45% 0 0;transform:scaleX(-1)}
html[data-portal] .module-stage .module-stage-orbit{display:none}
@media (max-width:700px){.px-motion-stage{opacity:.35;inset:0}}

/* Themed loading states */
html[data-portal] .loading-state{position:relative;padding-top:84px!important}
html[data-portal] .loading-state::before{content:"";position:absolute;left:50%;top:22px;width:120px;height:44px;transform:translateX(-50%);background:center/contain no-repeat}
html[data-portal=riayah] .loading-state::before{background-image:url("../images/identity/riayah-ecg-mini.svg");animation:px-load-ecg 1.4s ease-in-out infinite}
html[data-portal=equisense] .loading-state::before{width:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 28' fill='none' stroke='%23d8b46a' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M-7 9C-12 6-14 0-12-5-10-10-5-12 0-12S10-10 12-5C14 0 12 6 7 9'/%3E%3C/svg%3E");animation:px-load-hoof .8s ease-in-out infinite}
html[data-portal=camsense] .loading-state::before{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle,#f6b25a 0 40%,rgba(240,160,75,.35) 41% 60%,transparent 61%);animation:px-sun 1.6s ease-in-out infinite}
@keyframes px-load-ecg{0%,100%{opacity:.35;transform:translateX(-50%) scaleX(.9)}50%{opacity:1;transform:translateX(-50%) scaleX(1)}}
@keyframes px-load-hoof{0%,100%{transform:translateX(-50%) translateY(0) rotate(-8deg)}50%{transform:translateX(-50%) translateY(-6px) rotate(8deg)}}

/* =====================================================================
   6. LIVE DASHBOARD PANEL (portal-live.js)
   ===================================================================== */
.px-live{position:relative;margin-top:18px;padding:22px 24px 0;border-radius:calc(var(--pt-radius) + 4px);overflow:hidden;border:1px solid var(--pt-line);background:linear-gradient(130deg,var(--pt-surface-2),var(--pt-surface-solid));box-shadow:var(--pt-shadow);animation:px-rise .5s both}
.px-live-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.px-live-kicker{font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--pt-accent)}
.px-live-head h3{margin:4px 0 0;font-family:var(--pt-font-head);font-size:clamp(22px,2.2vw,30px);font-weight:var(--pt-head-weight);color:var(--pt-text)}
.px-live-status{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--pt-muted)}
.px-live-dot{width:10px;height:10px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.6);animation:px-live 1.8s ease-out infinite}
.px-live.is-paused .px-live-dot{background:#9aa7b0;animation:none}
.px-live-toggle{min-height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--pt-line);background:transparent;color:var(--pt-text);cursor:pointer;font:600 12.5px/1 var(--pt-font-body)}
.px-live-toggle:hover{border-color:var(--pt-accent)}
.px-live-toggle:focus-visible{outline:2px solid var(--pt-accent);outline-offset:2px}
@keyframes px-live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.55)}100%{box-shadow:0 0 0 12px rgba(61,220,132,0)}}
.px-live-body{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,2fr);gap:20px;align-items:stretch}
.px-live-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}
.px-live-stat{display:flex;flex-direction:column;gap:2px;padding:14px;border-radius:var(--pt-radius-sm);background:color-mix(in srgb,var(--pt-accent) 7%,transparent);border:1px solid color-mix(in srgb,var(--pt-accent) 20%,transparent);transition:background-color .4s}
.px-live-stat b{font-family:var(--pt-font-head);font-size:28px;line-height:1.1;color:var(--pt-text);font-variant-numeric:tabular-nums}
.px-live-stat span{font-size:12px;color:var(--pt-muted)}
.px-live-stat.is-alert{background:rgba(255,90,90,.10);border-color:rgba(255,90,90,.35)}
.px-live-stat.is-alert b{color:#ff8b8b}
.px-live-stat.is-changed{animation:px-flash 1.2s ease-out}
@keyframes px-flash{0%{background:color-mix(in srgb,var(--pt-accent) 35%,transparent)}100%{}}
.px-live-vis{min-width:0;display:flex;flex-direction:column;gap:8px}
.px-vis-note{margin:0;font-size:12px;color:var(--pt-faint)}
.px-vis-empty{margin:auto;color:var(--pt-muted)}
.px-live-ticker{position:relative;margin:18px -24px 0;padding:11px 0;border-top:1px solid var(--pt-line-soft);background:rgba(0,0,0,.18);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.px-live-track{display:inline-flex;gap:34px;white-space:nowrap;padding-inline-start:24px;font-size:13px;color:var(--pt-text)}
.px-live-track.is-moving{animation:px-ticker 40s linear infinite}
.px-live-ticker:hover .px-live-track{animation-play-state:paused}
.px-tick-dup{display:inline-flex;gap:34px}
.px-tick{display:inline-flex;align-items:center;gap:6px}
.px-tick i{width:8px;height:8px;border-radius:50%;background:#8fa3b0}
.px-tick.sev-critical i{background:#ff4d6d;box-shadow:0 0 8px #ff4d6d}.px-tick.sev-high i{background:#ff9f43}.px-tick.sev-medium i{background:#ffd166}.px-tick.sev-low i{background:#45c8ff}
.px-tick b{font-size:11px;padding:1px 6px;border-radius:4px;background:rgba(255,255,255,.08)}
.px-tick em{font-style:normal;color:var(--pt-accent)}
.px-tick small{color:var(--pt-faint)}
.px-tick.is-calm{color:#7fe3b3}
@keyframes px-ticker{to{transform:translateX(-50%)}}
html.rtl .px-live-track.is-moving{animation-name:px-ticker-rtl}
@keyframes px-ticker-rtl{to{transform:translateX(50%)}}

/* RIAYAH vital monitor */
.px-mon{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:0;border-radius:14px;overflow:hidden;border:1px solid rgba(46,230,197,.25);background:#020c10;min-height:230px;box-shadow:inset 0 0 40px rgba(46,230,197,.06)}
.px-mon-cv{width:100%;height:100%;min-height:230px;display:block}
.px-mon-read{display:grid;grid-template-rows:repeat(3,1fr);border-inline-start:1px solid rgba(46,230,197,.18)}
.px-mon-read>div{display:flex;flex-direction:column;justify-content:center;padding:8px 14px;border-bottom:1px solid rgba(46,230,197,.12)}
.px-mon-read>div:last-child{border-bottom:0}
.px-mon-read small{font-size:10px;letter-spacing:.14em;color:#7fa6a6}
.px-mon-read b{font-family:var(--pt-font-head);font-size:30px;line-height:1;font-variant-numeric:tabular-nums}
.px-mon-read span{font-size:11px;color:#7fa6a6}
.px-mon-hr b{color:var(--pt-accent)}.px-mon-tp b{color:var(--pt-warm,#ff8a7a)}.px-mon-ac b{color:var(--pt-accent-2,#8fd3ff)}
.px-mon-hr b{animation:px-hrblink 1s ease-in-out infinite}
@keyframes px-hrblink{50%{opacity:.7}}

/* EquiSense stable board */
.px-board{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.px-row{display:grid;grid-template-columns:minmax(120px,1.3fr) 92px minmax(70px,1fr) 70px minmax(90px,1fr);gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--es-gold-faint,rgba(216,180,106,.12));border-radius:3px;background:rgba(0,0,0,.18);animation:px-rise .4s both}
.px-row:nth-child(2){animation-delay:.05s}.px-row:nth-child(3){animation-delay:.1s}.px-row:nth-child(4){animation-delay:.15s}.px-row:nth-child(n+5){animation-delay:.2s}
.px-row.has-alert{border-color:rgba(255,90,90,.45);box-shadow:inset 3px 0 0 #ff5a5a}
.px-row-name{display:flex;flex-direction:column;min-width:0}
.px-row-name b{font-family:var(--es-serif,Georgia,serif);font-size:16px;color:var(--pt-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.px-row small{font-size:11px;color:var(--pt-faint)}
.px-row-hr{display:flex;align-items:baseline;gap:6px}
.px-row-hr b,.px-row-tp b{font-family:var(--es-serif,Georgia,serif);font-size:20px;color:var(--es-gold,#d8b46a);font-variant-numeric:tabular-nums}
.px-heartbeat{width:12px;height:12px;align-self:center;background:#ff6b6b;clip-path:path("M6 11C1 7.2 0 5 0 3.3 0 1.4 1.4 0 3.2 0 4.4 0 5.4.6 6 1.6 6.6.6 7.6 0 8.8 0 10.6 0 12 1.4 12 3.3 12 5 11 7.2 6 11Z");animation:px-beat2 var(--beat,1s) ease-in-out infinite}
@keyframes px-beat2{0%,60%,100%{transform:scale(1)}15%{transform:scale(1.35)}30%{transform:scale(1.1)}}
.px-row-spark{width:100%;height:28px}
.px-row-spark polyline{fill:none;stroke:var(--es-gold,#d8b46a);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-dasharray:300;stroke-dashoffset:300;animation:px-draw 1.2s ease-out forwards}
@keyframes px-draw{to{stroke-dashoffset:0}}
.px-row-ac{display:flex;align-items:center;gap:8px}
.px-bar{flex:1;height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden}
.px-bar>span{display:block;height:100%;background:linear-gradient(90deg,#6fd59b,#d8b46a);border-radius:3px;transform-origin:left;animation:px-grow 1s ease-out both}
@keyframes px-grow{from{transform:scaleX(0)}}

/* CamelSense herd radar */
.px-radar{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:14px;align-items:center}
.px-radar-cv{width:100%;aspect-ratio:1/1;max-height:300px;display:block}
.px-radar-read{display:grid;gap:10px}
.px-radar-read>div{padding:12px 14px;border-radius:14px;background:rgba(255,220,170,.06);border:1.5px solid rgba(239,183,103,.22)}
.px-radar-read small{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pt-muted)}
.px-radar-read b{font-family:"Inter Display","Inter",sans-serif;font-size:24px;font-weight:900;color:var(--pt-text)}

/* Per-portal frames */
html[data-portal=riayah] .px-live{border-radius:20px}
html[data-portal=equisense] .px-live{border-radius:4px;border-color:var(--es-gold-soft);outline:1px solid var(--es-gold-faint);outline-offset:-8px;background:radial-gradient(500px 260px at 90% 0,rgba(216,180,106,.12),transparent 70%),linear-gradient(130deg,#123224,#08190f)}
html[data-portal=equisense] .px-live-head h3{font-family:var(--es-serif);font-style:italic}
html[data-portal=equisense] .px-live-stat{border-radius:2px;background:transparent;border:0;border-top:1px solid var(--es-gold-soft)}
html[data-portal=equisense] .px-live-stat b{font-family:var(--es-serif);color:var(--es-gold)}
html[data-portal=equisense] .px-live-toggle{border-radius:2px;text-transform:uppercase;letter-spacing:.1em;font-size:11px}
html[data-portal=camsense] .px-live{border-radius:26px;padding-top:34px;border:1.5px solid rgba(239,183,103,.25);background:radial-gradient(420px 260px at 85% 20%,rgba(240,160,75,.18),transparent 70%),linear-gradient(130deg,#4a2a16,#24130a)}
html[data-portal=camsense] .px-live::before{content:"";position:absolute;inset:0 0 auto 0;height:12px;background:var(--cs-sadu) 0 0/48px 12px repeat-x}
html[data-portal=camsense] .px-live-head h3{text-transform:uppercase;letter-spacing:.02em}
html[data-portal=camsense] .px-live-stat{border-radius:16px;background:rgba(255,220,170,.06);border:1.5px solid rgba(239,183,103,.22)}
html[data-portal=camsense] .px-live-stat b{font-weight:900;font-size:30px}
html[data-portal=camsense] .px-live-toggle{border-radius:12px;box-shadow:0 3px 0 rgba(0,0,0,.35)}
@media (max-width:980px){.px-live-body{grid-template-columns:1fr}.px-live-stats{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.px-live{padding:18px 14px 0}.px-live-stats{grid-template-columns:1fr 1fr}.px-mon{grid-template-columns:1fr}.px-mon-read{grid-template-columns:repeat(3,1fr);grid-template-rows:none;border-inline-start:0;border-top:1px solid rgba(46,230,197,.18)}.px-row{grid-template-columns:1fr auto auto;gap:8px}.px-row-spark,.px-row-ac{display:none}.px-radar{grid-template-columns:1fr}.px-radar-read{grid-template-columns:repeat(3,1fr)}.px-live-ticker{margin-inline:-14px}}
@media print{.px-live{display:none!important}}
html[data-standalone] .pi-portal-chip{display:none!important}

/* =====================================================================
   7. LAYOUT PARADIGMS (v106) — each portal is a different kind of app
     RIAYAH    → Command centre: full left sidebar (unchanged structure)
     EquiSense → Editorial: top navigation bar, centred reading column,
                 ledger forms with underline fields
     CamelSense  → Field console: compact icon rail with flyouts,
                 full-width chunky workspace, filled fields
   Desktop only (≥ 851px); phones keep the Menu drawer.
   ===================================================================== */
@media (min-width:851px){
  /* ---------- EquiSense: top navigation ---------- */
  html[data-portal=equisense] .portal{display:block!important}
  html[data-portal=equisense] .sidebar{position:sticky!important;top:68px;z-index:45;height:auto!important;max-height:none!important;overflow:visible!important;display:flex!important;flex-direction:row!important;align-items:center;gap:22px;padding:8px clamp(16px,3vw,44px)!important;border:0!important;border-bottom:1px solid var(--es-gold-soft)!important;background:rgba(4,18,13,.94)!important;backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(0,0,0,.35)!important}
  html[data-portal=equisense] .portal-brand{display:flex!important;align-items:center;gap:10px;flex:none;margin:0!important;padding:0 18px 0 0!important;border:0!important;outline:0!important;background:none!important;border-inline-end:1px solid var(--es-gold-faint)!important;border-radius:0!important}
  html[data-portal=equisense] .portal-brand .portal-logo{width:38px;height:38px;margin:0}
  html[data-portal=equisense] .portal-brand small{display:none}
  html[data-portal=equisense] .portal-brand h3{margin:0;font-size:15px;white-space:nowrap}
  html[data-portal=equisense] .pi-sidebar-art{display:none}
  html[data-portal=equisense] #menu{display:flex!important;flex-direction:row;flex-wrap:wrap;align-items:center;gap:2px 4px}
  html[data-portal=equisense] #menu>button,html[data-portal=equisense] #menu .module-nav-group-title{min-height:44px!important;padding:6px 12px!important;gap:8px!important;border-radius:0!important;background:transparent!important;box-shadow:inset 0 -2px 0 transparent!important}
  html[data-portal=equisense] #menu .module-orb{width:24px!important;height:24px!important}
  html[data-portal=equisense] #menu .module-nav-label{font-size:14.5px}
  html[data-portal=equisense] #menu>button.active,html[data-portal=equisense] #menu .has-active-module>.module-nav-group-title{background:transparent!important;color:var(--es-gold)!important;box-shadow:inset 0 -2px 0 var(--es-gold)!important}
  html[data-portal=equisense] #menu .module-nav-group{position:relative;margin:0!important}
  html[data-portal=equisense] #menu .module-nav-children{display:none;position:absolute;top:100%;inset-inline-start:0;z-index:60;min-width:250px;margin:0!important;padding:8px!important;border:1px solid var(--es-gold-soft)!important;outline:1px solid var(--es-gold-faint);outline-offset:-5px;background:#0b2219;box-shadow:0 22px 40px rgba(0,0,0,.5)}
  html[data-portal=equisense] #menu .module-nav-group:hover>.module-nav-children,html[data-portal=equisense] #menu .module-nav-group:focus-within>.module-nav-children{display:grid}
  html[data-portal=equisense] #menu .module-nav-children button{min-height:42px!important;border-radius:0!important}
  html[data-portal=equisense] #menu .nav-disclosure{width:16px;height:16px}
  html[data-portal=equisense] .workspace{max-width:1240px;margin:0 auto;padding:34px clamp(20px,3vw,44px) 60px!important}
  html[data-portal=equisense] .workspace-head{text-align:center;justify-content:center;padding:34px 26px!important}
  html[data-portal=equisense] .workspace-head>div{display:flex;flex-direction:column;align-items:center}
  html[data-portal=equisense] .workspace-head .badge{position:absolute;inset-inline-end:22px;top:18px}
  html[data-portal=equisense] .workspace h2#moduleTitle{font-size:clamp(30px,3.2vw,42px)!important;font-style:italic}
  html[data-portal=equisense] .px-motion-head{inset:0;opacity:.55}

  /* ---------- CamelSense: icon rail with flyouts ---------- */
  html[data-portal=camsense] .portal{grid-template-columns:104px minmax(0,1fr)!important}
  html[data-portal=camsense] .sidebar{padding:16px 10px 24px!important;align-items:stretch}
  html[data-portal=camsense] .portal-brand{display:flex!important;justify-content:center;padding:18px 6px 10px!important;margin-bottom:10px!important}
  html[data-portal=camsense] .portal-brand .portal-logo{width:56px;height:56px;margin:0}
  html[data-portal=camsense] .portal-brand :is(small,h3){display:none}
  html[data-portal=camsense] .pi-sidebar-art{display:none}
  html[data-portal=camsense] #menu{display:flex!important;flex-direction:column;gap:6px}
  html[data-portal=camsense] #menu>button,html[data-portal=camsense] #menu .module-nav-group-title{flex-direction:column!important;justify-content:center;text-align:center!important;gap:6px!important;min-height:78px!important;padding:10px 4px!important}
  html[data-portal=camsense] #menu .module-orb{width:34px!important;height:34px!important}
  html[data-portal=camsense] #menu .module-nav-label{font-size:10.5px!important;line-height:1.2;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
  html[data-portal=camsense] #menu .nav-disclosure{display:none}
  html[data-portal=camsense] #menu .module-nav-group{position:relative;margin:0!important}
  html[data-portal=camsense] #menu .module-nav-children{display:none;position:absolute;top:0;inset-inline-start:calc(100% + 14px);z-index:60;min-width:240px;margin:0!important;padding:10px!important;border:1.5px solid rgba(239,183,103,.3)!important;border-radius:18px;background:#2d190e;box-shadow:0 22px 40px rgba(0,0,0,.55)}
  html[data-portal=camsense] #menu .module-nav-children::before{content:"";position:absolute;inset-inline-start:-15px;top:0;width:16px;height:100%}
  html[data-portal=camsense] #menu .module-nav-group:hover>.module-nav-children,html[data-portal=camsense] #menu .module-nav-group:focus-within>.module-nav-children{display:grid;gap:4px}
  html[data-portal=camsense] #menu .module-nav-children button{flex-direction:row!important;text-align:start!important;min-height:46px!important}
  html[data-portal=camsense] #menu .module-nav-children .module-nav-label{font-size:13px!important;text-transform:none;letter-spacing:0}
  html[data-portal=camsense] .workspace{padding:26px clamp(18px,2.4vw,36px) 40px!important}
}

/* Form language per portal (all widths) */
html[data-portal=equisense] #portal :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea){background-color:transparent!important;border:0!important;border-bottom:1px solid var(--es-gold-soft)!important;border-radius:0!important;padding-inline:2px!important}
html[data-portal=equisense] #portal :is(input,select,textarea):focus{border-bottom-color:var(--es-gold)!important;box-shadow:0 1px 0 var(--es-gold)!important}
html[data-portal=equisense] #portal select option{background:#0b2219}
html[data-portal=equisense] .module-card label{font-variant:small-caps;letter-spacing:.06em;color:#cdbf98!important}
html[data-portal=equisense] .dashboard-search{border:0;border-bottom:1px solid var(--es-gold-soft);border-radius:0;background:transparent}
html[data-portal=camsense] #portal :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea){background-color:rgba(255,220,170,.07)!important;border:1.5px solid transparent!important;min-height:48px;box-shadow:inset 0 2px 0 rgba(0,0,0,.25)}
html[data-portal=camsense] #portal :is(input,select,textarea):focus{border-color:#efb767!important}
html[data-portal=camsense] .module-card label{text-transform:uppercase;font-size:11.5px!important;font-weight:700;letter-spacing:.06em;color:#e8c99c!important}
@media (min-width:851px){
  html[data-portal=equisense] #menu>button,html[data-portal=equisense] #menu>.module-nav-group{width:auto!important;min-width:0!important;flex:none}
  html[data-portal=equisense] #menu{flex:1;min-width:0}
  html[data-portal=equisense] #menu>.module-nav-group>.module-nav-group-title{width:auto!important}
}
@media (min-width:851px){
  html[data-portal=equisense] #menu>button .module-orb,html[data-portal=equisense] #menu>.module-nav-group>.module-nav-group-title .module-orb{display:none}
  html[data-portal=equisense] #menu>button,html[data-portal=equisense] #menu .module-nav-group-title{padding:6px 10px!important}
  html[data-portal=equisense] #menu .module-nav-label{font-size:14px}
}
@media (min-width:851px){
  html[data-portal=camsense] #menu .module-nav-children{position:fixed!important;top:var(--fly-top,120px)!important;inset-inline-start:var(--fly-left,118px)!important}
  html[data-portal=camsense] #menu .module-nav-children::before{inset-inline-start:-16px}
}

/* Realtime alert toasts (portal-live.js) */
.px-toasts{position:fixed;z-index:9000;top:calc(78px + env(safe-area-inset-top,0px));inset-inline-end:max(16px,env(safe-area-inset-right,0px));display:grid;gap:10px;width:min(380px,calc(100vw - 32px))}
.px-toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 12px 12px 14px;border-radius:var(--pt-radius-sm,10px);background:var(--pt-surface-solid,#082440);border:1px solid var(--pt-line,#1c4968);border-inline-start:4px solid #ff9f43;box-shadow:0 18px 40px rgba(0,0,0,.45);color:var(--pt-text,#eaf6ff);animation:px-toast-in .35s cubic-bezier(.2,.7,.2,1) both}
.px-toast.sev-critical{border-inline-start-color:#ff4d6d}
.px-toast i{width:10px;height:10px;border-radius:50%;background:#ff9f43;box-shadow:0 0 0 0 rgba(255,159,67,.6);animation:px-live 1.4s ease-out infinite}
.px-toast.sev-critical i{background:#ff4d6d}
.px-toast b{display:block;font-size:13px}
.px-toast span{display:block;font-size:12.5px;color:var(--pt-muted,#a9c1d3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.px-toast button{min-height:34px;border-radius:8px;border:1px solid var(--pt-line,#1c4968);background:transparent;color:var(--pt-text,#eaf6ff);cursor:pointer;padding:0 12px;font:600 12.5px/1 var(--pt-font-body,sans-serif)}
.px-toast .px-toast-open{background:var(--pt-accent,#20c9f4);color:var(--pt-accent-ink,#031526);border:0}
.px-toast .px-toast-x{padding:0 10px;font-size:18px}
.px-toast.is-leaving{opacity:0;transform:translateY(-6px);transition:opacity .5s,transform .5s}
.px-live.is-realtime .px-live-dot{background:#3ddc84}
@keyframes px-toast-in{from{opacity:0;transform:translateY(-10px)}}
