@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#100507;--wine:#36070c;--wine2:#5d0a13;--gold:#e8b75b;--glow:#fff1b7;--rim:#ad701e;--line:#79501e;--panel:#15110f;--panel2:#211713;--ink:#f9e4bd;--dim:#bfae91;--ok:#9cde95;--no:#d88985;--r:16px;}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -5%,#43100e 0,transparent 45%),#110609;color:var(--ink);font:15px/1.4 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible{outline:2px solid var(--glow);outline-offset:3px}.hidden{display:none!important}svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.app-header{height:76px;position:relative;z-index:20;display:flex;align-items:center;max-width:1510px;margin:auto;padding:0 34px;gap:18px;background:linear-gradient(180deg,#160908db,#180d0b68);border-bottom:1px solid #5a3c1e}.brand{border:0;display:flex;align-items:center;background:none;gap:1px;color:var(--gold);padding:0}.brand img{width:83px;height:51px;object-fit:contain;filter:drop-shadow(0 0 10px #fbcf664d)}.brand span{font:700 21px/1 Cinzel,Georgia,serif;letter-spacing:.13em;text-shadow:0 0 12px #d49143ad}.breadcrumbs{font:500 17px/1.4 Cinzel,Georgia,serif;margin:0 auto 0 8px;color:#e8cf9b;display:flex;gap:10px;align-items:center}.crumb-sep{color:#a67b46}.header-right{display:flex;align-items:center;gap:17px;margin-left:auto}.mode-badge{font:600 10px/1 Inter,sans-serif;color:#d9ad6d;border:1px solid #775326;border-radius:99px;padding:8px 10px;letter-spacing:.1em}.account{display:flex;align-items:center;gap:12px;color:#f7deaa;background:none;border:0;font-size:13px;font-weight:650}.account-circle{display:grid;place-items:center;border-radius:50%;width:35px;height:35px;border:1px solid var(--gold);font:600 11px Cinzel;background:#2c1310}.icon-button{border:1px solid #815320;color:#fad885;background:#21120f;border-radius:11px;width:38px;height:38px;display:grid;place-items:center}.screen{min-height:calc(100vh - 150px);max-width:1510px;margin:auto;padding:24px 34px 115px}.screen.home-screen{padding:0 0 115px;max-width:none;min-height:calc(100vh - 76px)}h1,h2,h3{font-family:Cinzel,Georgia,serif;font-weight:500}h1{font-size:clamp(23px,3vw,35px);margin:0}h2{font-size:clamp(18px,2.2vw,24px);margin:0}h3{font-size:17px;margin:0}p{margin:0}.overline{font:600 10px Inter,sans-serif;letter-spacing:.2em;color:#d39e51}.page-intro{margin:6px 0 22px;color:var(--dim);font-size:13px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:21px}.page-heading h1{color:#f9d88f;text-shadow:0 0 18px #c87e2455}.stage{position:relative;min-height:clamp(650px,calc(100vh - 76px),830px);background:linear-gradient(90deg,#22020533,transparent 24%,transparent 76%,#22020544),url('/theater-stage.svg') center top/cover no-repeat;isolation:isolate;display:flex;flex-direction:column;align-items:center;overflow:hidden}.stage::before{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,#07040400 12%,#07040426 52%,#05030330 72%,#120509c9 100%);z-index:0}.stage-content{position:relative;z-index:1;width:min(1160px,94%);display:flex;flex-direction:column;align-items:center}.stage-logo{margin-top:20px;display:flex;flex-direction:column;align-items:center}.stage-logo img{width:min(270px,42vw);height:130px;object-fit:contain;filter:drop-shadow(0 0 16px #ffbb4266)}.stage-logo h1{margin:-10px 0 1px;font-size:clamp(43px,6vw,79px);letter-spacing:.14em;color:#f9d887;text-shadow:0 0 5px #ffc86d,0 0 22px #c37f24;line-height:1.15}.tagline{font:500 11px Cinzel,Georgia,serif;letter-spacing:.25em;color:#f3d89c;text-transform:uppercase}.stage-divider{display:flex;align-items:center;gap:15px;width:70%;margin:20px auto 19px}.stage-divider::before,.stage-divider::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#d5a054,transparent)}.stage-divider span{color:#c58d42;font-size:13px}.poster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;width:min(1110px,94%);margin:0 auto}.poster{position:relative;aspect-ratio:.76;min-height:280px;overflow:hidden;background:#1c1011;border-radius:16px;border:3px solid #b78336;box-shadow:inset 0 0 0 4px #170b07,0 0 0 1px #ffde99,0 8px 26px #000b,0 0 17px #c0813066;transition:transform .2s,box-shadow .2s;padding:0;color:#ffe3a4}.poster:focus-visible,.poster:hover{transform:translateY(-4px);box-shadow:0 0 0 1px #ffdf94,0 0 28px #d69f5c87}.poster:before{content:"";position:absolute;inset:9px;border-radius:10px;border:2px dotted #e8ad60b0;pointer-events:none;z-index:2}.poster img{width:100%;height:100%;display:block;object-fit:cover}.poster:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0b0304e8 0%,#230b0980 19%,transparent 50%)}.poster-label{position:absolute;z-index:3;bottom:10px;left:12px;right:12px;display:block;padding:14px 5px;font:600 clamp(15px,2vw,22px) Cinzel,Georgia,serif;letter-spacing:.07em;text-align:center;color:#fff0b5;text-shadow:0 0 8px #f0aa4877;background:linear-gradient(90deg,#341109,#5e1a10ee,#341109);border:1px solid #e6ae58;border-radius:6px}.theater-floor{position:relative;z-index:1;height:45px;width:85%;margin:22px auto 0;border-top:2px solid #d39b3c66;background:linear-gradient(#a16c2150,transparent 45%)}.floor-note{position:relative;z-index:1;font:500 10px/1.4 Cinzel,Georgia,serif;letter-spacing:.2em;color:#d5b077;margin-bottom:8px}
.room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.room-card,.camera-card{padding:0;text-align:left;position:relative;aspect-ratio:1.48;border:1px solid #c18a3a;border-radius:14px;overflow:hidden;background:linear-gradient(145deg,#61402b,#1d1312 50%,#2e1610);color:#fff3c9;box-shadow:0 12px 24px #0006;transition:transform .15s}.room-card:hover,.camera-card:hover{transform:translateY(-2px);border-color:#f6d17e}.room-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 27%,#f6c87180 0,transparent 17%),linear-gradient(155deg,#3d2e24 5%,#22100ec9 50%,#110507 100%)}.room-card::after{content:"";position:absolute;left:10%;right:10%;top:11%;bottom:25%;border:4px solid #ce943c55;border-bottom-width:12px;box-shadow:inset 0 0 32px #fabc2d15;background:linear-gradient(170deg,#a2764e33,transparent 40%,#241b1b9e 85%);pointer-events:none}.room-card[data-area="kitchen"]{background:linear-gradient(140deg,#4f4b37,#1c2b26)}.room-card[data-area="living-room"]{background:linear-gradient(140deg,#67303b,#20121c)}.room-card[data-area="master-bedroom"]{background:linear-gradient(140deg,#76543a,#23111a)}.room-card[data-area="office"]{background:linear-gradient(140deg,#344e46,#151519)}.room-card[data-area="outside"]{background:linear-gradient(140deg,#27492b,#141718)}.room-card[data-area="master-bath"]{background:linear-gradient(140deg,#777464,#212724)}.room-card-inner{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:linear-gradient(transparent 20%,#110608e8 100%)}.room-illustration{position:absolute;left:0;right:0;top:10%;height:59%;font:90px Georgia;text-align:center;color:#f3d48e66;text-shadow:0 0 28px #d7a753a2;z-index:1}.room-title{font:600 18px Cinzel,Georgia,serif;display:block;text-shadow:0 2px 7px #000}.room-count{font:500 11px Inter;color:#dab887;margin-top:5px;display:block}.top-actions{display:flex;align-items:center;gap:8px}.gold-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 14px;border-radius:9px;font-weight:600;font-size:12px;border:1px solid #c68a38;color:#29170b;background:linear-gradient(#ffe6a4,#dda64d);box-shadow:inset 0 1px #fff4c3}.secondary-button{background:#1b1211;color:#f4d293}.back-text{color:#caa978;font-size:13px}.light-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.light-tile{background:linear-gradient(145deg,#211911,#140e0f);border:1px solid #66502b;border-radius:13px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:13px;min-height:92px}.light-tile.offline{opacity:.48}.light-name{font:600 14px Inter}.light-status{font-size:11px;color:#b4a48d;margin-top:5px}.light-icon{height:30px;width:30px;color:#e0ba66;flex:none}.light-tile button{flex:none}.light-open{background:transparent;border:0;color:#e7bd69;padding:5px}.toggle{border:1px solid #87704b;background:#342d22;border-radius:99px;width:46px;height:28px;position:relative;transition:background .2s}.toggle::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#b9a98e;transition:transform .2s}.toggle.on{background:linear-gradient(#f7d78a,#cc8430)}.toggle.on::after{transform:translateX(18px);background:#fff9df}.light-tile .open-light{margin-left:auto;border:none;border-radius:9px;background:#2d231a;color:#dcae69;padding:7px}.speaker-list{display:grid;gap:12px;max-width:940px}.speaker-row{display:flex;align-items:center;gap:18px;justify-content:space-between;padding:18px 21px;border:1px solid #815b30;border-radius:12px;background:linear-gradient(115deg,#23150f,#191416);color:#f7deb0;text-align:left;min-height:76px}.speaker-row:hover{border-color:var(--gold)}.speaker-row .name{font:600 16px Cinzel}.speaker-row .sub{font:400 11px Inter;color:#aa9682;margin-top:5px}.speaker-row .meter{width:min(35%,240px);height:6px;border-radius:9px;background:#4a3c30;margin-left:auto}.speaker-row .meter i{height:100%;display:block;border-radius:9px;background:linear-gradient(90deg,#c78321,#fce7a5)}.speaker-row .pct{width:56px;text-align:right;font:600 14px Inter;color:#f8d08b}.camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.camera-card{aspect-ratio:16/10}.camera-card img{width:100%;height:100%;object-fit:cover;display:block}.camera-card .camera-fallback{position:absolute;inset:0;background:linear-gradient(155deg,#273f39,#10171d);display:grid;place-items:center;color:#e4bc6b}.camera-card .camera-fallback svg{width:65px;height:65px}.camera-card .camera-name{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:19px 14px 14px;background:linear-gradient(transparent,#0c090be6);font:600 15px Cinzel;color:#f4d99d}.camera-card .online-dot{position:absolute;z-index:4;top:11px;right:12px;border-radius:99px;width:10px;height:10px;background:#9cdb8f;box-shadow:0 0 9px #a3ea8f}.camera-card .online-dot.off{background:#b75b5b;box-shadow:none}.camera-detail-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:20px}.live-panel,.clip-panel{border:1px solid #b77a31;border-radius:14px;background:#151113;overflow:hidden}.live-stage{background:#030506;aspect-ratio:16/9;position:relative;display:flex;align-items:center;justify-content:center}.live-stage video{display:block;width:100%;height:100%;max-height:65vh;object-fit:contain}.live-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#f2d597}.live-placeholder button{border:1px solid #c9984b;background:#211511;color:#ffe5b6;border-radius:10px;padding:15px 28px;font:600 14px Inter}.live-caption{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:12px 15px;font-size:12px;color:#bfaa86}.clip-panel{padding:16px}.clip-panel h2{font-size:19px;margin-bottom:15px}.clip-list{display:flex;flex-direction:column;gap:10px}.clip-item{display:flex;gap:12px;align-items:center;text-align:left;background:#241b16;border:1px solid #513d28;border-radius:10px;padding:8px;color:#efd4a0}.clip-item img{width:105px;aspect-ratio:16/9;object-fit:cover;border-radius:6px}.clip-item strong{font-size:12px;font-weight:600;display:block}.clip-item small{font-size:11px;color:#bda77e;display:block;margin-top:4px}.clip-empty{padding:25px 12px;color:#c5a37b;text-align:center;font-size:12px}.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.action-card{aspect-ratio:1.23;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;border:1px solid #bc8538;background:radial-gradient(circle at 50% 15%,#5e331c,#24120d 68%,#1a1010);border-radius:14px;color:#fad894;font:600 17px Cinzel;box-shadow:0 0 20px #b67a2720}.action-card svg{height:54px;width:54px;color:#f6c96a}.action-card:hover{box-shadow:0 0 20px #d9954d5a}.action-list{display:grid;gap:10px}.action-line{border:1px solid #654529;border-radius:10px;background:#211712;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#f7dfa8}.action-line button{flex:none}.filters{display:flex;gap:10px;margin-bottom:15px}.search{background:#211611;border:1px solid #795123;color:#ffecba;border-radius:9px;padding:11px 13px;min-width:190px;width:min(100%,330px)}.alarm-controls{max-width:600px;display:grid;gap:18px}.alarm-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px;border:1px solid #7b592d;background:#211711;border-radius:14px}.alarm-form input[type=time]{padding:10px;border:1px solid #a37135;background:#2b1c14;color:#f5d392;border-radius:9px}.foot-note{padding:12px 0 2px;color:#9e8466;font-size:11px}.modal{background:#130c0c;color:#f5dfa8;border:1px solid #b9883a;border-radius:16px;padding:20px;width:min(450px,95vw);box-shadow:0 22px 90px #000c}.modal::backdrop{background:#090405cf;backdrop-filter:blur(4px)}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.modal-head h2{font-size:21px}.modal-head>button{font-size:27px;color:#f2d49b;border:0;background:none;line-height:1}.volume-body{padding:20px 7px;text-align:center}.volume-number{font:500 72px Cinzel;color:#ffda89}.volume-number span{font:500 21px Inter}.range{appearance:none;width:100%;height:8px;border-radius:9px;background:#60462a;accent-color:#e1aa56;margin:23px 0 24px}.range::-webkit-slider-thumb{appearance:none;width:25px;height:25px;background:#ffe6a5;border:3px solid #b77b25;box-shadow:0 0 9px #ffde81;border-radius:50%}.gold-ghost{background:linear-gradient(#47301b,#211a16);color:#f7d99c;border:1px solid #bb8c45;border-radius:10px;padding:11px 24px}.light-modal{width:min(520px,96vw)}.light-modal-body{margin-top:20px}.detail-block{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 2px;border-bottom:1px solid #4b3421}.color-wheel{display:block;width:min(270px,76vw);height:min(270px,76vw);margin:12px auto;touch-action:none;border-radius:50%;box-shadow:0 0 0 3px #b88939}.rgb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rgb-grid label{display:flex;gap:7px;align-items:center;color:#efbd73}.rgb-grid input{min-width:0;width:100%;background:#281c16;color:#f8e3b5;border:1px solid #765427;border-radius:8px;padding:10px}.clip-modal{width:min(850px,96vw)}.clip-modal video{width:100%;max-height:75vh;background:#030303;display:block;margin-top:18px}.toast{position:fixed;z-index:100;left:50%;bottom:100px;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s;background:linear-gradient(#f8e1a4,#d9a85d);color:#291609;font:600 12px Inter;padding:12px 20px;border:1px solid #fdf1c3;border-radius:10px;box-shadow:0 10px 35px #0008;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#e8b2a2;color:#431d18}.footer-menu{position:fixed;z-index:30;bottom:0;left:0;right:0;height:77px;padding:9px max(13px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom));display:flex;gap:8px;align-items:center;justify-content:center;background:linear-gradient(#281011f7,#15080af9);backdrop-filter:blur(10px);border-top:1px solid #815425}.footer-menu button{display:flex;align-items:center;gap:7px;justify-content:center;min-width:110px;height:53px;color:#bf9b5f;background:transparent;border:0;border-radius:8px;font:500 12px Inter}.footer-menu button.active{background:#4e1b17;color:#ffe7a9;border:1px solid #91682e;box-shadow:inset 0 1px #a66b34}.footer-menu button svg{height:18px;width:18px}.login-screen{min-height:80vh;display:flex;align-items:center;justify-content:center}.login-card{text-align:center;background:linear-gradient(155deg,#280e10,#0d080a);border:1px solid #bb8b3e;border-radius:17px;width:min(420px,92vw);padding:34px;box-shadow:0 10px 45px #0009}.login-card img{width:155px}.login-card h1{color:#ebc878;margin:6px 0 14px}.login-card p{font-size:12px;color:#bdab8b;margin-bottom:24px}.role-preview{padding:8px 11px;border:1px solid #7f5529;border-radius:9px;background:#26170e;color:#e5bd75;font-size:12px}.empty{padding:28px 12px;color:#bda37e;text-align:center}.loading{min-height:40vh;display:grid;place-items:center;color:#c3a06b}.small-note{font-size:11px;color:#b49b7b;margin-top:12px}.err{color:#f1b6a9}.arc-deco{height:8px;margin:9px auto 0;border-top:2px solid #d8a851;border-radius:50% 50% 0 0;max-width:490px}.light-grid .light-tile:hover,.action-line:hover{border-color:#b68c45}
@media(max-width:1100px){.room-grid{grid-template-columns:repeat(3,1fr)}.poster-grid{gap:12px}.camera-detail-layout{grid-template-columns:1fr}.stage{min-height:730px}}
@media(max-width:750px){.app-header{height:66px;padding:0 14px;gap:8px}.breadcrumbs{font-size:13px}.brand img{width:56px;height:38px}.brand span{font-size:15px}.mode-badge{font-size:8px;padding:5px}.screen{padding:20px 13px 110px}.stage{min-height:calc(100svh - 65px);background-position:center top}.stage-logo{margin-top:22px}.stage-logo img{height:85px;width:185px}.stage-logo h1{font-size:48px}.tagline{font-size:8px}.stage-divider{margin:10px auto 14px}.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:min(480px,88%);gap:12px}.poster{min-height:0;aspect-ratio:.89}.poster-label{font-size:13px;bottom:8px;padding:9px 3px}.poster:before{inset:6px}.theater-floor{display:none}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.room-card{aspect-ratio:1.27}.room-title{font-size:13px}.room-count{font-size:10px}.light-grid{grid-template-columns:1fr;gap:9px}.camera-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.action-card{font-size:14px}.footer-menu{height:75px;gap:1px}.footer-menu button{flex:1;min-width:0;flex-direction:column;gap:4px;font-size:10px}.footer-menu button svg{height:20px;width:20px}.speaker-row{padding:15px 13px}.speaker-row .name{font-size:14px}.speaker-row .meter{width:20%}.camera-detail-layout{gap:14px}.header-right{gap:6px}.account{gap:6px}.account span:first-child{display:none}}
@media(max-width:390px){.stage-logo{margin-top:7px}.stage-logo img{height:64px}.stage-logo h1{font-size:38px}.poster-grid{width:90%;gap:8px}.poster-label{font-size:12px}.room-title{font-size:12px}.room-card-inner{padding:9px}.room-count{font-size:9px}}
.alarm-controls{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.alarm-slot{border:1px solid #986b32;border-radius:14px;background:linear-gradient(140deg,#271610,#130d0d);padding:20px}.slot-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.slot-head h2{font-size:20px;color:#f6d694}.alarm-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.alarm-fields label{font:500 11px Inter;color:#c7a976;display:grid;gap:7px}.alarm-fields input{width:100%}.alarm-fields select{min-width:0;width:100%}.slot-buttons{display:flex;justify-content:flex-end;margin-top:5px}.alarm-footer{display:flex;gap:13px;margin-top:20px}@media(max-width:700px){.alarm-controls{grid-template-columns:1fr}.alarm-fields{grid-template-columns:1fr 1fr}.alarm-slot{padding:15px}}


/* Approved cinematic object artwork and jet-ring logo. Replaces rejected vector symbols. */
.brand img{width:110px;height:62px;object-fit:contain;mix-blend-mode:screen;filter:drop-shadow(0 0 6px #c48b374d)}
.stage-logo{margin-top:4px}
.stage-logo img{width:min(520px,68vw);height:clamp(172px,21vw,286px);max-width:100%;object-fit:contain;mix-blend-mode:screen;filter:drop-shadow(0 0 16px #dc9e3466)}
.stage-logo .tagline{margin-top:-14px}
.poster img{object-fit:cover;object-position:center 43%}
.poster:after{background:linear-gradient(0deg,#0b0304e6 0%,#230b0980 18%,transparent 55%)}
@media(max-width:750px){
 .brand img{width:76px;height:52px}
 .stage-logo img{width:min(350px,85vw);height:184px}
 .stage-logo .tagline{margin-top:-10px}
 .stage-divider{margin:8px auto 11px}
}
@media(max-width:390px){
 .stage-logo img{height:165px}
}

/* Transparent approved ring-jet mark, no rectangular background plate. */
.stage-logo img,.brand img{mix-blend-mode:normal}
/* Fit the approved four photographic cards and their text into the desktop stage. */
@media(min-width:751px){
  .footer-menu{display:none}
  .screen{padding-bottom:40px}
  .screen.home-screen{padding-bottom:0}
  .stage-logo img{width:min(380px,46vw);height:200px}
  .stage-logo{margin-top:0}
  .stage-logo .tagline{margin-top:-13px}
  .stage-divider{margin:13px auto 15px}
  .stage{min-height:calc(100vh - 76px)}
  .poster-grid{width:min(1060px,90%);gap:18px}
  .poster{min-height:0;aspect-ratio:.83}
  .poster-label{bottom:12px}
}
/* Responsive theater: all four labeled picture buttons remain above the mobile navigation. */
@media(max-width:750px){
  .stage-logo img{width:min(300px,76vw);height:142px}
  .stage-divider{margin:7px auto 10px}
  .poster{aspect-ratio:1.07;min-height:0}
  .poster-label{bottom:6px;padding:7px 4px}
  .floor-note{display:none}
  .poster-grid{gap:9px}
}
@media(max-width:390px){
  .stage-logo img{height:130px}
  .stage-divider{margin:5px auto 9px}
}

/* Sculpted gold controls from the approved Action reference, not outline placeholders. */
.action-card .action-glyph{width:67px;height:67px;object-fit:contain;filter:drop-shadow(0 0 7px #d99a394d)}

/* Approved ODO theater visual system, 2026-11-12. Exact approved art crops. */
:root{--bg:#080305;--wine:#2a0308;--wine2:#4c040c;--gold:#f6c354;--glow:#fff0b2;--rim:#dd9f31;--line:#c68a2e;--panel:#0d0608;--panel2:#1c0c0b;--ink:#ffe5a9;--dim:#cda66e}
body{background:radial-gradient(ellipse at 50% -20%,#4f1209 0,transparent 54%),linear-gradient(90deg,#250509,#0b0507 16%,#080406 84%,#210406);color:var(--ink)}
body.odo-at-home .app-header{display:none}
.screen.home-screen{padding:0 0 96px;min-height:calc(100vh - 76px);background:#110307}
.approved-home{position:relative;min-height:calc(100svh - 76px);background:linear-gradient(180deg,#140406,#320507 64%,#0b0305 100%);overflow:hidden}
.approved-wide{position:relative;max-width:1535px;margin:0 auto;aspect-ratio:1535/485;background:#110608}
.approved-scene{width:100%;height:100%;display:block;object-fit:contain}
.approved-hit{position:absolute;z-index:2;border:0;background:transparent;border-radius:13px;color:transparent}
.approved-hit:focus-visible{outline:4px solid #fff0a0;outline-offset:0;box-shadow:0 0 17px #ffa522}
.approved-hit:hover{box-shadow:inset 0 0 0 2px #f8c36a,0 0 22px #f8a836aa}
.approved-hit-lights{left:8.6%;top:46.2%;width:19.1%;height:43%}
.approved-hit-sound{left:29.6%;top:46.2%;width:20.5%;height:43%}
.approved-hit-camera{left:51.0%;top:46.2%;width:19.2%;height:43%}
.approved-hit-action{left:71.7%;top:46.2%;width:19.9%;height:43%}
.approved-hit-menu{left:.8%;top:1.4%;width:4.7%;height:11%}
.approved-hit-settings{right:5.5%;top:1.4%;width:4.1%;height:11%}
.approved-hit-account{right:1.9%;top:1.4%;width:3.4%;height:11%}
.approved-mobile{display:none}
.app-header{max-width:none;box-shadow:0 4px 18px #e49d264e;border-bottom:2px solid #bf7826;background:linear-gradient(90deg,#080304,#230b0a 23%,#080304 80%,#1c0908)}
.brand img{width:140px;height:55px;object-fit:contain;filter:drop-shadow(0 0 5px #f5ac334d)}
.brand span{display:none}
.brand{flex:none}
.breadcrumbs{font-size:16px;color:#f9d791}
.mode-badge{border:1px solid #d3993f;color:#ffdf98;background:#1e0b09}
.account-circle{background:#200906;border-color:#e4ac48;color:#ffe4b0}
.screen:not(.home-screen){max-width:1535px;min-height:calc(100vh - 145px);background:linear-gradient(155deg,#0b0505,#110807);border-left:1px solid #50320c;border-right:1px solid #50320c}
.page-heading{margin-bottom:24px;padding:11px 5px 16px;border-bottom:2px solid #9c5c14;box-shadow:0 6px 10px -10px #ffbb62}
.page-heading h1{font-weight:600;color:#ffe49f;text-shadow:0 0 12px #e2a44788}
.footer-menu{background:linear-gradient(180deg,#1a0909f9,#050203fa);border-top:2px solid #cb8d30;box-shadow:0 -5px 25px #bd6c2444}
.footer-menu button.active{border:1px solid #f5b54b;box-shadow:inset 0 0 12px #b36c244c,0 0 12px #de922953}
.footer-menu button{color:#d5ac65}
.palace-room-nav{display:flex;flex-direction:column;align-self:start;padding:13px 6px;background:linear-gradient(#150b09,#070505);border:1px solid #9b641d;border-radius:13px;box-shadow:0 0 10px #c87d2235}
.palace-room-nav button{color:#e8cb92;background:transparent;padding:12px 16px;border:1px solid transparent;border-radius:8px;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:14px;font:500 13px Inter,sans-serif}
.palace-room-nav button.active{border-color:#e7b14e;background:linear-gradient(90deg,#7a431a,#210e08);box-shadow:inset 0 0 8px #e9a8524f;color:#fff1ba}
.palace-room-nav button:hover:not(.active){background:#30180b}
.palace-room-nav button svg{width:14px;height:14px}
.palace-lights-layout{display:grid;grid-template-columns:minmax(180px,245px) minmax(0,1fr);gap:18px;align-items:start}
.palace-room-controls{border:1px solid #86511f;border-radius:12px;background:#110809;padding:17px;box-shadow:inset 0 0 16px #4c220c}
.palace-room-controls .light-grid{grid-template-columns:1fr;gap:10px}
.light-tile.palace-fixture{background:linear-gradient(90deg,#1d0c0a,#130809 65%,#1c0e0a);border:1px solid #68411a;padding:13px 16px;min-height:73px;display:flex;gap:12px;justify-content:initial}
.palace-lamp-icon{color:#ffbd4f;flex:none;filter:drop-shadow(0 0 6px #fbb74b88)}
.palace-light-name{width:min(23%,230px);min-width:135px;flex-shrink:1;display:flex;flex-direction:column}
.palace-light-name .light-name{font-size:14px;color:#ffe2a4}
.palace-light-name .light-status{display:block}
.palace-brightness{margin-left:auto;display:flex;align-items:center;gap:12px;min-width:100px;flex:1;max-width:330px}
.palace-brightness .range{margin:0;min-width:0;flex:1}
.palace-brightness output{font:600 12px Inter,sans-serif;color:#ffdb8a;min-width:36px;text-align:right}
.palace-color-button{width:32px;height:32px;flex:none;border:2px solid #eec875;border-radius:50%;background:conic-gradient(#fa3232,#f8d632,#2ff15b,#25dbe9,#263af3,#c62bf2,#fa3232);box-shadow:0 0 8px #ffbc546b}
.palace-color-button:hover{box-shadow:0 0 13px #ffc97e}
.palace-light-detail{border:1px solid #664a25;background:#261709;color:#ddb36c;padding:7px;border-radius:9px;display:grid;place-items:center;flex:none}
.palace-light-detail svg{width:14px;height:14px}
.palace-speaker-list{max-width:1200px}
.palace-speaker-row{display:flex;gap:18px;min-height:85px;padding:15px 20px;background:linear-gradient(90deg,#1c0c08,#12090a)}
.palace-speaker-name{display:flex;align-items:center;gap:14px;width:36%;min-width:220px;text-align:left;border:0;background:transparent;color:#f6d89d;padding:0}
.palace-speaker-name svg{color:#eec061;width:36px;height:36px}
.palace-speaker-name .sub{display:block;color:#bca078}
.palace-inline-volume{flex:1;min-width:80px;max-width:380px;margin:0}
.palace-speaker-row .pct{min-width:50px;font-size:16px}
.palace-mute{display:grid;place-items:center;flex:none;width:46px;height:42px;border:1px solid #b78031;background:linear-gradient(#3d210b,#1c100b);border-radius:10px;color:#ffe09d}
.palace-mute svg{height:22px;width:22px}
.palace-camera-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:1450px}
.palace-camera-card{aspect-ratio:1.75;border:2px solid #d6983c;border-radius:12px;box-shadow:0 0 13px #b976284e}
.palace-camera-card img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.palace-camera-card .camera-name{font-family:Inter,sans-serif;font-size:14px;text-shadow:0 0 5px black}
.camera-preview-label{position:absolute;top:9px;left:10px;background:#1a0b09cc;border:1px solid #af7b31;color:#ffdb95;font-size:9px;letter-spacing:.12em;padding:4px 6px;border-radius:7px;z-index:3}
.palace-clips-card{display:grid;place-items:center;background:radial-gradient(circle,#5d2a09,#150907 70%);color:#ffcb67}
.palace-clips-card>svg{height:80px;width:80px;filter:drop-shadow(0 0 12px #faaa399a)}
.palace-clips-card .camera-name{text-align:center;background:linear-gradient(transparent,#1a0909)}
.palace-clips-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.palace-clips-list .clip-item{align-items:center}
.action-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:15px}
.action-card{aspect-ratio:.95;min-height:150px;background:radial-gradient(ellipse at 48% 25%,#813a12,#2a0c09 62%,#0f0809);border:2px solid #ecb24e;box-shadow:inset 0 0 9px #a9601d,0 0 14px #ed9b334c;color:#ffdc87;font-size:15px}
.action-card svg{width:60px;height:60px;color:#ffc75f;filter:drop-shadow(0 0 8px #ffad4688)}
.action-card:hover{transform:translateY(-2px);box-shadow:0 0 20px #ffb45680}
.palace-menu-modal nav{display:grid;gap:8px;padding:20px 0 0}
.palace-menu-modal nav button{border:1px solid #b98738;color:#f8d69a;background:linear-gradient(#47210d,#1c0d08);border-radius:8px;padding:14px;font-family:Cinzel,Georgia,serif;text-align:left}
.palace-menu-modal nav button:hover{background:#743611}
.login-card img{width:min(330px,90%);height:auto;max-height:120px;object-fit:contain}
@media(max-width:1090px){.action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.palace-camera-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.palace-light-name{min-width:120px}.palace-speaker-name{min-width:185px}}
@media(max-width:780px){
 .approved-wide{display:none}
 .approved-mobile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:calc(100svh - 77px);padding:16px 12px 30px;background:linear-gradient(180deg,#10070b44,#1b0408d9 63%,#070304f4),url('/theater-stage.svg') center top/cover no-repeat}
 .approved-mobile-logo{width:min(94%,580px);height:auto;max-height:190px;object-fit:contain;filter:drop-shadow(0 0 12px #edb44077)}
 .approved-mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(98%,560px);margin:12px 0 0}
 .approved-mobile-card{background:#080606;border:1px solid #e7ab43;border-radius:13px;overflow:hidden;aspect-ratio:1.42;box-shadow:0 0 13px #d78c355e;padding:0}
 .approved-mobile-card img{width:100%;height:100%;object-fit:fill;display:block}
 .approved-mobile-card:focus-visible{outline:3px solid #ffefae}
 .app-header{height:64px;padding:0 10px}
 .brand img{width:92px;height:47px}
 .breadcrumbs{font-size:12px}
 .screen:not(.home-screen){padding:15px 12px 110px}
 .palace-lights-layout{grid-template-columns:1fr;gap:10px}
 .palace-room-nav{flex-direction:row;overflow-x:auto;scrollbar-width:thin;padding:6px;gap:5px}
 .palace-room-nav button{flex:none;white-space:nowrap;padding:10px 12px;font-size:12px}
 .palace-room-nav button svg{display:none}
 .palace-room-controls{padding:10px}
 .light-tile.palace-fixture{flex-wrap:wrap;gap:9px}
 .palace-light-name{flex:1;width:auto;min-width:110px}
 .palace-brightness{order:5;max-width:none;width:100%;flex-basis:100%;margin:0 0 2px 45px}
 .palace-speaker-row{gap:10px;flex-wrap:wrap}
 .palace-speaker-name{width:100%;min-width:0}
 .palace-inline-volume{max-width:none}
 .palace-camera-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .palace-clips-list{grid-template-columns:1fr}
 .action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .action-card{min-height:125px;font-size:13px}
 .action-card svg{width:48px;height:48px}
}
@media(min-width:781px) and (max-width:1200px){.approved-home{min-height:calc(100svh - 77px)}}

/* Room-wide color and saved Home Assistant scenes */
.palace-room-group{border-color:#d5a049!important;background:linear-gradient(100deg,#392011,#24110b 55%,#190c0b)!important;box-shadow:inset 0 0 12px #d7992e3a,0 0 10px #bb78292c;min-height:82px!important;flex-wrap:wrap}
.palace-room-group .palace-light-name .light-name{font-weight:700;color:#ffe29f;font-size:15px}
.palace-room-group .palace-brightness{max-width:260px}
.palace-group-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-shrink:0}
.palace-group-tool{min-height:40px;border:1px solid #d99b3e;border-radius:9px;background:linear-gradient(180deg,#513012,#25120b);color:#ffdfa0;padding:9px 13px;font:600 12px Inter,sans-serif;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:inset 0 1px 0 #ffcf7952}
.palace-group-tool:hover{background:linear-gradient(180deg,#70401a,#34190d);box-shadow:0 0 10px #f3b34864}
.palace-wheel-glyph{display:inline-block;width:19px;height:19px;border:2px solid #ffe3a0;border-radius:50%;background:conic-gradient(#e7463e,#e5d048,#45bc57,#3dd0cd,#5967ce,#c657cb,#e7463e);box-shadow:0 0 5px #e9ae625c}
.palace-scene-tool::before{content:"";display:inline-block;width:16px;height:17px;background:linear-gradient(170deg,#ffd87e,#c78939);clip-path:polygon(0 0,100% 0,100% 85%,50% 100%,0 85%);opacity:.96}
.scene-modal{width:min(675px,96vw);max-height:min(85svh,820px);overflow:auto}
.scene-modal .modal-head{position:sticky;top:0;background:#130c0c;z-index:2;padding-bottom:15px;border-bottom:1px solid #805522}
.palace-scene-section{margin:20px 0 6px}
.palace-scene-section h3{font:600 14px Cinzel,Georgia,serif;color:#efc277;margin-bottom:12px;letter-spacing:.04em}
.palace-scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.palace-scene-option{min-height:53px;background:linear-gradient(155deg,#362010,#170d0c);border:1px solid #a67131;border-radius:10px;color:#f4d89c;padding:11px 12px;font:600 12px Inter,sans-serif;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;overflow-wrap:anywhere}
.palace-scene-option small{color:#cca563;font-size:10px;font-weight:500}
.palace-scene-option:hover{border-color:#f8d37c;background:linear-gradient(145deg,#72451d,#2b160e);box-shadow:0 0 10px #ebad5253}
@media(max-width:1090px){.palace-room-group .palace-brightness{max-width:180px}.palace-group-tools{margin-left:0}.palace-room-group .palace-light-name{min-width:155px}}
@media(max-width:780px){.palace-room-group{gap:10px!important}.palace-room-group .palace-brightness{order:4;flex-basis:100%;max-width:none;margin:0 0 0 45px}.palace-group-tools{order:5;width:100%;justify-content:flex-start;margin:0 0 0 45px}.palace-group-tool{padding:9px 12px}.palace-scene-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Owner-managed Action permissions; does not alter the approved Home art */
.action-row-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}
.access-panel{background:linear-gradient(145deg,#25100d,#0b0708);border:1px solid #9d6c28;padding:20px;border-radius:13px}
.access-email{display:block;width:min(100%,440px);margin:10px 0}
.access-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.access-columns h2{font-size:19px;color:#f6d890;margin-bottom:12px}
.access-search{width:100%;margin-bottom:10px}
.access-list{max-height:420px;overflow:auto;background:#100a09;border:1px solid #654424;border-radius:11px;padding:8px}
.access-row{display:flex;align-items:center;gap:12px;padding:11px 9px;border-bottom:1px solid #382515;color:#f2d69f;font-size:13px;cursor:pointer}
.access-row:last-child{border-bottom:0}.access-row:hover{background:#362010}
.access-row input{width:18px;height:18px;accent-color:#d9a44f;flex:none}
.access-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px;color:#ccb184;font-size:12px}
@media(max-width:780px){.access-columns{grid-template-columns:1fr}.access-panel{padding:13px}.access-footer{align-items:stretch;flex-direction:column}.action-row-controls{gap:7px}}

/* Camera detail: on-demand snapshot, video explicitly guarded until compliant transport */
.live-snapshot{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.94}
.live-stage video{position:absolute;z-index:2;inset:0}
.live-placeholder{z-index:3;background:linear-gradient(transparent 50%,#09070bc4)}
.media-unavailable{display:block;text-align:center;padding:9px 13px;border:1px solid #ba8b48;border-radius:9px;background:#180f0edc;color:#f3d393;font-size:12px}
.archive-status{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px;padding:11px 14px;border:1px solid #8e602c;background:#23170f;border-radius:10px;font-size:12px;color:#e9c98b}
.archive-status strong{color:#fbe1a1;font-weight:650}

#live-video:not([src]){display:none}


/* Red velvet theater curtains. No footlights, stage scenery, spotlights, or other backdrop.
   Approved ODO jet logo floats over velvet with transparent alpha. */
html {background-color:#440914;}
body {
  background-color:#440914!important;
  background-image:url("/approved/red-velvet-curtains.webp")!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-attachment:fixed!important;
  background-size:cover!important;
}
.screen, .screen.home-screen, .screen:not(.home-screen),
.login-screen, .approved-home {
  background:transparent!important;
}
.screen:not(.home-screen) {
  border-left:none!important;
  border-right:none!important;
}
.app-header {
  background:rgba(38,4,12,.88)!important;
  border-bottom:1px solid rgba(207,145,61,.65);
  box-shadow:none!important;
}
.footer-menu {
  background:rgba(39,5,13,.90)!important;
  border-top:1px solid rgba(207,145,61,.7)!important;
  box-shadow:none!important;
}
.brand img {
  object-fit:contain;
  background:transparent;
  max-height:100%;
}
.login-card img {background:transparent}
.velvet-home {
  position:relative;
  min-height:calc(100svh - 77px);
  padding:24px clamp(16px,4vw,70px) 75px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  background:transparent;
}
.velvet-home-nav {
  position:relative;
  z-index:2;
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.velvet-nav-control {
  width:48px;height:45px;display:grid;place-items:center;
  border:1px solid rgba(251,205,114,.8);border-radius:11px;
  background:rgba(43,5,13,.68);color:#f8d68e;
  box-shadow:0 2px 6px #22000744;
}
.velvet-nav-control:hover,.velvet-nav-control:focus-visible {
  border-color:#ffe8ac;background:rgba(89,19,24,.85);
}
.velvet-nav-control svg{width:22px;height:22px}
.velvet-home-content {
  width:min(100%,1350px);
  margin:0 auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.velvet-logo {
  width:min(67%,645px);
  height:auto;
  max-height:238px;
  object-fit:contain;
  margin:10px auto clamp(48px,7vh,110px);
  display:block;
  filter:drop-shadow(0 3px 9px rgba(17,0,4,.62));
}
.velvet-posters {
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(12px,1.9vw,28px);
  width:100%;
  margin:0 auto;
}
.velvet-poster {
  position:relative;
  border:1px solid rgba(254,203,115,.75);
  padding:0;background:rgba(24,5,9,.55);
  border-radius:14px;overflow:hidden;
  aspect-ratio:1.415;
  cursor:pointer;
  box-shadow:0 8px 23px rgba(25,0,6,.38);
  transition:transform .15s ease,box-shadow .15s ease;
}
.velvet-poster img {display:block;width:100%;height:100%;object-fit:fill}
.velvet-poster:hover,.velvet-poster:focus-visible {
  transform:translateY(-3px);
  outline:2px solid #ffe5ae;outline-offset:2px;
  box-shadow:0 9px 24px rgba(13,1,5,.55);
}
@media(max-width:820px) {
  .velvet-home{padding:15px 13px 85px;min-height:calc(100svh - 76px)}
  .velvet-home-content{flex:1}
  .velvet-nav-control{width:43px;height:40px}
  .velvet-logo{width:min(92%,520px);margin:16px auto clamp(22px,4vh,60px)}
  .velvet-posters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:590px}
  .velvet-poster{border-radius:10px}
}
@media(max-width:390px) {
  .velvet-home{padding-left:10px;padding-right:10px}
  .velvet-posters{gap:9px}
  .velvet-logo{margin-bottom:25px}
}
@media(prefers-reduced-motion:reduce) {
  .velvet-poster{transition:none}
}


/* ODO MVP, grand proscenium composition: parted red velvet, gold fringe, premiere searchlights.
   Uses authored background artwork, not a CSS simulation of flat hanging curtains. */
body {
 background-image:linear-gradient(180deg,rgba(5,3,9,.025),rgba(7,3,8,.035) 65%,rgba(9,3,8,.09)),url("/approved/premiere-curtains-desktop.webp")!important;
 background-position:center top!important;
 background-size:cover!important;
 background-repeat:no-repeat!important;
 background-attachment:fixed!important;
}
.velvet-home {min-height:calc(100svh - 77px)}
.velvet-logo {
 width:min(61%,635px)!important;
 margin-top:clamp(116px,14vh,185px)!important;
 margin-bottom:clamp(20px,3.5vh,51px)!important;
 filter:drop-shadow(0 3px 8px rgba(10,0,4,.7))!important;
}
.velvet-poster {
 box-shadow:0 9px 25px rgba(5,0,7,.54),0 0 0 2px rgba(217,142,49,.38)!important;
}
@media(max-width:820px) {
 body {
  background-image:linear-gradient(180deg,rgba(3,3,8,.035),rgba(4,1,6,.045)),url("/approved/premiere-curtains-mobile.webp")!important;
  background-size:100% 100%!important;
  background-position:center top!important;
 }
 .velvet-logo {
  width:min(89%,490px)!important;
  margin-top:clamp(70px,10.5vh,138px)!important;
  margin-bottom:clamp(15px,3vh,35px)!important;
 }
}
@media(max-width:410px) {
 .velvet-home{padding-bottom:83px!important}
 .velvet-logo{margin-top:clamp(75px,10vh,112px)!important}
}

/* Owner-only setup control, hidden automatically after the real Odo connection */
.odo-connect-notice{margin:18px auto 0;display:block;width:fit-content;max-width:100%;padding:10px 19px;border:1px solid #e5b967;border-radius:10px;background:rgba(28,5,13,.88);color:#ffdd97;font:600 12px Inter,sans-serif;cursor:pointer;box-shadow:0 2px 8px #1a000940}
.odo-connect-notice:hover,.odo-connect-notice:focus-visible{border-color:#ffedb7;background:rgba(84,24,29,.91)}

/* Async HA device feedback: intent displayed immediately; no claim of success before state confirmation */
.toggle.pending{opacity:.82;cursor:progress;outline:2px solid rgba(245,205,112,.48);outline-offset:2px}
.toggle:disabled.pending{pointer-events:none}

/* Single navigation system: Home contains the four functional cards, and inner pages
   use the existing header Back + ODO Home controls. No footer nav or Home hamburger. */
.velvet-home-nav {justify-content:flex-end!important;}
.screen {min-height:calc(100svh - 76px);padding-bottom:clamp(24px,3.5vh,42px)!important;}
.screen.home-screen {min-height:100svh;padding-bottom:0!important;}
.velvet-home {min-height:100svh!important;padding-bottom:clamp(24px,5vh,52px)!important;}
@media(max-width:750px) {
  .screen:not(.home-screen) {min-height:calc(100svh - 66px);padding-bottom:26px!important;}
  .screen.home-screen {min-height:100svh;}
  .velvet-home {min-height:100svh!important;padding-bottom:26px!important;}
}

/* r26: discreet universal user-circle account control. Navigation/login unaffected. */
.velvet-account {
  display:grid!important;
  place-items:center;
  gap:0!important;
  width:36px!important;
  min-width:36px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0!important;
  border:1px solid rgba(218,178,111,.62);
  border-radius:50%;
  background:rgba(30,10,15,.48)!important;
  color:#e7c995;
  box-shadow:none!important;
  text-shadow:none;
}
.velvet-account svg {
  display:block;
  width:19px!important;
  height:19px!important;
  stroke-width:1.65;
}
.velvet-account:hover,.velvet-account:focus-visible {
  background:rgba(66,25,26,.78)!important;
  border-color:#f5dba9;
  color:#fbe3b3;
}
/* Matching compact account button on inner pages; retain full account dialog. */
.app-header .account-icon-button {
  display:grid;
  place-items:center;
  gap:0;
  width:36px;
  min-width:36px;
  height:36px;
  padding:0;
  border:1px solid rgba(215,176,104,.59);
  border-radius:50%;
  background:rgba(31,11,16,.42);
  color:#e7c995;
}
.app-header .account-icon-button svg {width:19px;height:19px;stroke-width:1.65}
.app-header .account-icon-button:hover,.app-header .account-icon-button:focus-visible {
  border-color:#f5dba9;
  background:rgba(72,25,29,.8);
}
@media(max-width:820px){
 .velvet-account {width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important}
 .app-header .account-icon-button{width:34px;min-width:34px;height:34px}
}

/* Separate account identities without duplicating the Home navigation. */
.odo-account-menu {width:min(400px,calc(100vw - 28px));border:1px solid #d29b51;border-radius:16px;background:#200a11;color:#ffe0a8;padding:0;box-shadow:0 16px 55px #060107d9}
.odo-account-menu::backdrop {background:#020104a8}
.odo-account-content {display:flex;flex-direction:column;gap:11px;padding:18px}
.odo-account-identity {overflow-wrap:anywhere;font-size:13px;color:#f0cf91;margin-bottom:9px}
.odo-account-content button {width:100%;min-height:44px}
.odo-account-content [hidden]{display:none!important}
.amanda-login-status {display:flex;flex-direction:column;gap:6px;margin:0 0 18px;padding:13px 14px;border:1px solid #9f752d;border-radius:9px;background:#241017;color:#eed7a9;font-size:12px}
.amanda-login-status strong{color:#ffe1a3;font-weight:700}
.amanda-login-status span{overflow-wrap:anywhere}

/* Room groups do not necessarily contain all listed fixtures. */
.palace-light-name .palace-light-coverage{display:block;color:#d9b883;font-size:10px;line-height:1.3;margin-top:3px}

/* Odo Home, owner-approved 2026-11-13 interaction refinement. */
.odo-page-enter{animation:odo-theater-enter .24s cubic-bezier(.16,.7,.32,1) both}
@keyframes odo-theater-enter{from{opacity:.45;transform:translateY(9px);filter:brightness(.72)}to{opacity:1;transform:translateY(0);filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.odo-page-enter{animation:none}}
.odo-sync-indicator{font:700 10px/1.1 Inter,sans-serif;letter-spacing:.01em;white-space:nowrap;padding:8px 10px;border:1px solid #7b5730;border-radius:8px;transition:opacity .2s}
.odo-sync-indicator[hidden],.odo-refresh-button[hidden]{display:none!important}
.odo-sync-indicator.loading-now{border-color:#cb6b64;background:#460d16;color:#ffd3cf}
.odo-sync-indicator.live-now{border-color:#4c8d65;background:#143726;color:#baffc9}
.odo-sync-indicator.stale-now{border-color:#a86e42;background:#421b10;color:#ffd5a6}
.odo-refresh-button{display:grid;place-items:center;flex:none;width:35px;height:35px;background:#251014;border:1px solid #b2894c;border-radius:9px;color:#f4d49c;padding:7px}
.odo-refresh-button svg{width:20px;height:20px;stroke-width:2}
.odo-refresh-button:hover{background:#4a1721}

/* Compact gold theater tickets: counts must never disappear against the backdrop. */
.room-grid.odo-room-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:13px;max-width:1450px}
.room-card.odo-room-ticket{display:grid;grid-template-rows:auto 1fr auto;position:relative;width:100%;height:auto;min-height:146px;aspect-ratio:auto!important;overflow:hidden;text-align:left;padding:16px 18px 13px;background:linear-gradient(135deg,rgba(41,14,20,.96),rgba(18,11,15,.92))!important;border:1px solid #bd8637;border-left:4px solid #d5a44f;border-radius:12px;color:#ffe0a4;box-shadow:0 5px 17px #08020763}
.odo-room-ticket.room-card:before{content:"";pointer-events:none;position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 10px,#ffe7a706 11px 12px);z-index:0}
.odo-room-ticket.room-card:after{content:"";pointer-events:none;position:absolute;inset:auto 10px 10px 10px;height:0;border:0;border-top:1px solid #b6863438;box-shadow:none;background:none}
.odo-room-ticket-heading,.odo-room-ticket-count,.odo-room-ticket-meta,.odo-room-ticket-arrow{position:relative;z-index:2}
.odo-room-ticket-heading{font:600 17px/1.25 Cinzel,Georgia,serif;color:#ffe0a2;min-height:25px}
.odo-room-ticket-count{display:flex;align-items:baseline;gap:9px;line-height:1.05;margin-top:9px}
.odo-room-ticket-count strong{font:700 47px/1 Cinzel,Georgia,serif;color:#ffe6ad;font-variant-numeric:tabular-nums;text-shadow:0 1px 12px #d6a54254}
.odo-room-ticket-count span{font:800 10px Inter,sans-serif;color:#dfac62;letter-spacing:.15em}
.odo-room-ticket-meta{font:600 11px/1.2 Inter,sans-serif;color:#d4ae75;letter-spacing:.01em;margin-top:8px}
.odo-room-ticket-arrow{position:absolute;right:12px;top:14px;color:#cba05d;opacity:.65}
.odo-room-ticket-arrow svg{width:17px;height:17px}
.odo-room-ticket:hover{transform:translateY(-2px);border-color:#ffe1a2;box-shadow:0 8px 20px #13070b90}

/* Actions: large categories and precise, compact controls beneath them. */
.odo-action-main{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1160px;gap:17px}
.odo-action-poster{aspect-ratio:1.4;min-height:155px;padding:14px}
.odo-action-tabs{display:flex;gap:9px;overflow:auto;max-width:100%;margin:12px 0 24px;padding:1px 1px 8px;scrollbar-width:thin}
.odo-action-tabs button{flex:none;border:1px solid #856233;border-radius:9px;background:#1d0e14;color:#ddbc83;padding:11px 18px;font:700 13px Inter,sans-serif;min-height:44px;white-space:nowrap}
.odo-action-tabs button.current{background:linear-gradient(180deg,#5d261c,#32131b);border-color:#e2ba6a;color:#ffe4aa;box-shadow:inset 0 -2px #d9a753}
.odo-triggers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:1190px}
.odo-trigger{border:1px solid #b08543;border-radius:11px;color:#f9db9e;background:linear-gradient(135deg,#311920,#180f13);display:flex;align-items:center;gap:13px;text-align:left;padding:14px 16px;min-height:72px;box-shadow:0 4px 12px #0b050b4a}
.odo-trigger svg{width:21px;height:21px;flex:none;color:#efc681}
.odo-trigger span{font:650 13px/1.3 Inter,sans-serif}
.odo-trigger:hover{border-color:#f5d08c;background:#462126}
.odo-environment-stack,.odo-activities-list,.odo-alarm-list{display:grid;gap:12px;max-width:980px}
.odo-environment-item,.odo-activity-item,.odo-alarm-summary{display:flex;gap:17px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:16px 19px;border:1px solid #976c37;border-radius:12px;background:#1b1014eb;color:#efce93}
.odo-environment-item strong,.odo-activity-item strong,.odo-alarm-summary strong{display:block;font:650 16px Cinzel,Georgia,serif}
.odo-environment-item small,.odo-activity-item small,.odo-alarm-summary small{display:block;margin-top:5px;color:#bdab8c;font:500 12px Inter,sans-serif}
.odo-environment-fan{display:flex;gap:7px;flex-wrap:wrap}
.odo-environment-fan .secondary-button{font-size:12px;padding:9px 12px;min-height:41px}
.odo-alarm-status{display:flex;align-items:center;gap:12px;font:600 13px Inter,sans-serif}
.odo-alarm-status b{font-variant-numeric:tabular-nums;font-size:18px;color:#ffe0aa}
.odo-alarm-status .enabled{color:#83d1a1}.odo-alarm-status .disabled{color:#a8998a}
.odo-supporting{color:#c5ab82;margin:8px 0 18px;font-size:13px}
.odo-muted-state{color:#d9b982;font-size:12px}
.odo-test-sounds{max-width:1080px}
.odo-test-sounds h2{font:600 19px Cinzel,Georgia,serif;margin:0 0 15px;color:#f6d69e}
.odo-stop-all{margin-top:15px;min-height:44px}

/* Color shortcuts: eight invisible equal zones across one continuous-looking spectrum. */
.odo-color-favorites{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;margin:12px auto 15px;max-width:400px}
.odo-color-swatch,.odo-color-save{width:34px;height:34px;border-radius:50%;flex:none;border:2px solid #deb470;background:var(--swatch,#27121a);box-shadow:0 2px 9px #000a;cursor:pointer}
.odo-color-swatch:focus-visible,.odo-color-swatch:hover{outline:2px solid #fff1c2;outline-offset:2px}
.odo-color-save{background:#29141a;color:#ffe2ac;font:700 20px/1 Inter,sans-serif;display:grid;place-items:center}
.odo-roygbiv{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));height:35px;overflow:hidden;border:1px solid #dfbd86;border-radius:9px;margin:0 auto 18px;max-width:390px;background:linear-gradient(to right,#ff0000 0%,#ff7f00 14%,#ffff00 28%,#00b900 43%,#00ffff 57%,#0000ff 71%,#4b0082 86%,#9400d3 100%);box-shadow:0 2px 12px #06000585}
.odo-rainbow-zone{border:0;background:transparent;padding:0;min-width:0;border-right:0}
.odo-rainbow-zone:focus-visible{outline:2px solid white;outline-offset:-3px;background:transparent}

@media(max-width:1100px){.room-grid.odo-room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.room-grid.odo-room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.odo-triggers{grid-template-columns:repeat(2,minmax(0,1fr))}.odo-action-main{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){
 .room-grid.odo-room-grid{gap:9px}
 .room-card.odo-room-ticket{padding:12px 11px 13px;min-height:130px;border-left-width:3px}
 .odo-room-ticket-heading{font-size:13px;min-height:32px;padding-right:9px}
 .odo-room-ticket-count strong{font-size:39px}
 .odo-room-ticket-meta{font-size:10px}
 .odo-action-main{grid-template-columns:1fr;gap:10px}
 .odo-action-poster{min-height:111px;aspect-ratio:2.2;flex-direction:row;gap:20px}
 .odo-action-poster .action-glyph{max-height:64px;width:68px;object-fit:contain}
 .odo-action-tabs{gap:7px}
 .odo-action-tabs button{padding:11px 12px;font-size:12px}
 .odo-triggers{grid-template-columns:1fr 1fr;gap:8px}
 .odo-trigger{min-height:71px;padding:11px 10px;gap:8px}
 .odo-trigger span{font-size:12px}
 .odo-trigger svg{width:17px;height:17px}
 .odo-environment-item,.odo-alarm-summary{padding:14px 13px}
 .odo-environment-fan{justify-content:flex-start;width:100%}
 .odo-environment-fan .secondary-button{flex:1 1 20%;min-width:0;padding:9px 6px}
 .odo-sync-indicator{font-size:9px;padding:5px 7px}
 .odo-refresh-button{width:31px;height:31px;padding:5px}
 .header-right{gap:5px!important}
 .breadcrumbs{font-size:11px!important}
}

/* Mobile header gives priority to refresh feedback and the account button. */
@media(max-width:620px){
 .app-header{padding-left:9px!important;padding-right:9px!important;gap:5px!important}
 .app-header .mode-badge{display:none!important}
 .app-header .brand img{width:49px;height:36px}
 .app-header .breadcrumbs{flex:1 1 auto;min-width:0;margin:0 1px!important;overflow:hidden;white-space:nowrap;font-size:10px!important;gap:4px}
 .app-header .header-right{flex:0 0 auto;gap:4px!important;margin-left:0!important}
 .app-header .account{padding:0!important;gap:0!important}
 .app-header .account-circle{width:31px;height:31px}
 .app-header .odo-refresh-button{width:31px;height:31px}
}

.odo-next-alarm{border:1px solid #a38143;background:#2a1419;color:#fbe1aa;font:650 14px Inter,sans-serif;padding:12px 15px;border-radius:10px;max-width:980px;margin-bottom:15px}

/* Odo Home r15: visible room state, actual fixture colors and brightness. */
.room-grid.odo-room-grid.odo-lights-v15{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1450px;align-items:stretch;gap:12px}
.room-card.odo-room-ticket.odo-status-card{
 display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:7px;
 position:relative;min-width:0;min-height:238px;aspect-ratio:auto!important;width:100%;
 padding:15px 16px 13px!important;border:1px solid #866342!important;border-left:4px solid #684b46!important;
 border-radius:12px;overflow:hidden;text-align:left!important;
 background:radial-gradient(ellipse 78% 78% at 100% 0%,color-mix(in srgb,var(--room-glow) 22%,transparent),transparent 83%),linear-gradient(132deg,#2b121f 0%,#160f15 64%,#110b13 100%)!important;
 box-shadow:0 8px 23px #06020870!important;color:#f9e2be;transition:border-color .2s,background .2s,transform .17s,box-shadow .2s
}
.room-card.odo-room-ticket.odo-status-card.active{border-color:#ba985e!important;border-left-color:var(--room-glow)!important;box-shadow:0 6px 19px #09030982,inset 0 0 23px color-mix(in srgb,var(--room-glow) 9%,transparent)!important}
.room-card.odo-room-ticket.odo-status-card.inactive{background:linear-gradient(130deg,#21151b,#100c12)!important;border-color:#574347!important;color:#deccb6}
.room-card.odo-room-ticket.odo-status-card:hover{transform:translateY(-2px);border-color:#ffd58a!important;box-shadow:0 8px 23px #060208b0,inset 0 0 30px color-mix(in srgb,var(--room-glow) 14%,transparent)!important}
.room-card.odo-room-ticket.odo-status-card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(150deg,transparent 65%,#f1c57508 100%);border:0;box-shadow:none}
.room-card.odo-room-ticket.odo-status-card::after{content:"";position:absolute;z-index:0;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,transparent,var(--room-glow),transparent);opacity:.76;bottom:auto;box-shadow:none;border:0}
.odo-status-card>*{position:relative;z-index:2;max-width:100%}
.odo-status-card .odo-room-ticket-heading{font:600 17px/1.2 Cinzel,Georgia,serif!important;min-height:0!important;padding-right:28px;color:#ffe3b0!important;letter-spacing:.015em}
.odo-room-readout{display:flex;justify-content:space-between;gap:9px;align-items:center;margin:0;min-height:53px}
.odo-room-fraction{display:flex;align-items:baseline;white-space:nowrap;font-variant-numeric:tabular-nums;font-family:Cinzel,Georgia,serif;line-height:1}
.odo-room-fraction strong{font-size:47px;font-weight:750;letter-spacing:-.045em;color:#fce4b5;text-shadow:0 1px 8px #e8bb6435}
.odo-room-fraction>span{font-size:29px;font-weight:450;color:#d8bd94;letter-spacing:-.04em}
.odo-room-power-label{max-width:50%;padding:6px 9px;border:1px solid #a48154;border-radius:7px;background:#362019;color:#ffde95;text-align:center;font:800 11px/1.3 Inter,sans-serif;letter-spacing:.025em}
.odo-status-card.inactive .odo-room-power-label{border-color:#7a5461;background:#261822;color:#e8b6c4}
.odo-room-fixtures{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-height:18px;margin:0 0 2px}
.odo-room-fixture{display:inline-block;flex:none;position:relative;width:14px;height:14px;min-width:14px;border-radius:50%;background:#242026;border:1px solid #554b51;box-shadow:inset 0 1px 2px #030205}
.odo-room-fixture.lit{background:var(--light-color);border:1px solid color-mix(in srgb,var(--light-color) 76%,#fff);box-shadow:0 0 calc(3px + 7px * var(--lamp-power)) color-mix(in srgb,var(--light-color) 70%,transparent),inset 0 0 3px #ffffffaa;opacity:calc(.45 + .55 * var(--lamp-power))}
.odo-room-fixture.unlit{background:#32282f;border-color:#66565c}
.odo-room-fixture.unavailable{background:repeating-linear-gradient(45deg,#5d3945 0 2px,#30212b 2px 4px);border-color:#8c5061}
.odo-room-metrics{display:flex;align-items:baseline;justify-content:space-between;gap:7px;margin-top:2px;min-height:16px}
.odo-room-metric-heading{font:700 9px/1.1 Inter,sans-serif;letter-spacing:.14em;color:#cda981}
.odo-room-metrics strong{font:700 13px/1 Inter,sans-serif;white-space:nowrap;color:#f8dcad;font-variant-numeric:tabular-nums}
.odo-room-level-track{display:block;position:relative;height:6px;border-radius:8px;background:#31232c;border:1px solid #5f493f;overflow:hidden}
.odo-room-level-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b47731,#ffe9aa);box-shadow:0 0 6px #ffdb916f}
.odo-room-colors{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:19px;max-height:40px;overflow:hidden;margin-top:2px}
.odo-room-color-chip{display:inline-flex;gap:4px;align-items:center;white-space:nowrap;font:600 10px/1.1 Inter,sans-serif;color:#e7c89b}
.odo-room-color-chip span{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid #ffe8bd78;background:var(--light-color);box-shadow:0 0 6px color-mix(in srgb,var(--light-color) 50%,transparent)}
.odo-room-other-colors,.odo-room-no-colors{color:#c5a487;font:600 10px Inter,sans-serif}
.odo-room-last-scene{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:500 10px/1.3 Inter,sans-serif;color:#c8aa86;min-height:13px;margin-top:auto;padding-top:4px;border-top:1px solid #a77d402e}
.odo-room-unavailable{color:#f3a1aa;font:700 10px Inter,sans-serif;margin-top:-5px}
.odo-status-card .odo-room-ticket-arrow{position:absolute;right:13px;top:13px;color:#d9b274}
.odo-status-card .odo-room-ticket-arrow svg{width:17px;height:17px}

/* Preserve actual 1:1 Actions artwork aspect ratio at every breakpoint. */
.odo-action-main .odo-action-poster{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:13px!important;aspect-ratio:auto!important;min-height:166px!important;padding:18px!important;text-align:center}
.odo-action-main .odo-action-poster .action-glyph{display:block!important;flex:0 0 77px!important;width:77px!important;height:77px!important;max-width:77px!important;max-height:77px!important;aspect-ratio:1/1!important;object-fit:contain!important;object-position:center!important;transform:none!important}
.odo-action-main .odo-action-poster>span{font:650 15px/1.3 Cinzel,Georgia,serif;color:#fce2ab;max-width:100%;overflow-wrap:break-word}

@media(max-width:1150px){.room-grid.odo-room-grid.odo-lights-v15{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.room-grid.odo-room-grid.odo-lights-v15{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:590px){
 .room-grid.odo-room-grid.odo-lights-v15{grid-template-columns:1fr;gap:11px}
 .room-card.odo-room-ticket.odo-status-card{min-height:202px;padding:14px 16px 12px!important;gap:6px}
 .odo-status-card .odo-room-ticket-heading{font-size:17px!important}
 .odo-room-fraction strong{font-size:43px}
 .odo-room-fraction>span{font-size:27px}
 .odo-room-power-label{font-size:12px}
 .odo-action-main .odo-action-poster{min-height:103px!important;flex-direction:row!important;gap:20px!important;padding:12px 18px!important;justify-content:flex-start!important;text-align:left!important}
 .odo-action-main .odo-action-poster .action-glyph{flex:0 0 65px!important;width:65px!important;height:65px!important;max-width:65px!important;max-height:65px!important}
}
@media(prefers-reduced-motion:reduce){.room-card.odo-room-ticket.odo-status-card{transition:none!important}}

/* Camera loading: keep browser's premature native-play symbol out of view. */
#live-video{visibility:hidden}
.odo-camera-connecting{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:128px;max-width:95%;margin:auto;padding:18px 22px;color:#f9e3ba;text-align:center;background:#180d16dc;border:1px solid #b18b57;border-radius:12px;box-shadow:0 9px 24px #0006}
.odo-camera-connecting strong{font:650 15px/1.3 Inter,sans-serif;letter-spacing:.01em}
.odo-camera-connecting small{font:500 12px/1.4 Inter,sans-serif;color:#d7ba88}
.odo-camera-spinner{display:block;width:30px;height:30px;border:3px solid #927047;border-top-color:#ffe3a9;border-radius:50%;animation:odo-stream-spin .9s linear infinite}
@keyframes odo-stream-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.odo-camera-spinner{animation:none;border-color:#cfac73}}

/* Odo Home environment: exact Home Assistant fan controls. */
.odo-environment-heading{font:600 17px Cinzel,Georgia,serif;color:#f2d69e;margin:12px 0 3px}
.odo-fan-row{min-height:73px}
.odo-fan-description{min-width:175px}
.odo-fan-row .odo-environment-fan{margin-left:auto;justify-content:flex-end;align-items:center}
.odo-fan-row .odo-fan-level.selected{background:#623326;border-color:#f0c781;color:#ffe5b2;box-shadow:inset 0 -2px #dba657}
.odo-fan-row.is-unavailable{opacity:.65}
.odo-fan-row button:disabled{cursor:not-allowed;opacity:.6}
@media(max-width:690px){.odo-fan-row .odo-environment-fan{margin-left:0;width:100%;justify-content:flex-start}.odo-fan-row .odo-fan-description{flex:1 1 100%}}

/* R27 environmental activity explanations and physical-volume readback. */
.odo-env-intelligence{margin-top:22px}
.odo-env-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.odo-env-panel{min-width:0;border:1px solid #80603b;border-radius:12px;background:linear-gradient(150deg,#29151a,#140e14);color:#f4d7ad;overflow:hidden}
.odo-env-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:64px;cursor:pointer;padding:14px 16px;list-style:none;font:600 15px Cinzel,Georgia,serif}
.odo-env-panel>summary::-webkit-details-marker{display:none}
.odo-env-panel[open]>summary{border-bottom:1px solid #6c4f36}
.odo-env-status{font:600 11px/1.3 Inter,sans-serif;color:#e1b57d;text-align:right}
.odo-env-body{padding:15px 17px 18px;font:400 12px/1.6 Inter,sans-serif;color:#e1c8ad}
.odo-env-body p{margin:10px 0 0}
.odo-env-facts{display:grid;gap:8px;margin:0}
.odo-env-facts>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #70543750;padding-bottom:7px}
.odo-env-facts dt{color:#ba9b79;max-width:43%}
.odo-env-facts dd{margin:0;text-align:right;max-width:57%;overflow-wrap:anywhere;color:#f7ddb3;font-weight:600}
.odo-env-key{color:#ccad82}
.odo-env-body button{margin-top:13px}
.odo-activity-note{display:block;margin-top:7px;max-width:440px;line-height:1.35}
.palace-speaker-row .pct.updating{font-size:12px;color:#eec486}
@media(max-width:760px){.odo-env-grid{grid-template-columns:1fr}.odo-env-panel>summary{font-size:14px}.odo-env-facts dt{max-width:47%}.odo-env-facts dd{max-width:53%}}

/* r28: Now Playing in its own route; button mirrors the approved Account button. */
.velvet-now-playing{display:grid!important;place-items:center;gap:0!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;border:1px solid rgba(218,178,111,.62);border-radius:50%;background:rgba(30,10,15,.48)!important;color:#e7c995;box-shadow:none!important;text-shadow:none;}
.velvet-now-playing svg{display:block;width:19px!important;height:19px!important;stroke-width:1.65;}
.velvet-now-playing:hover,.velvet-now-playing:focus-visible{background:rgba(66,25,26,.78)!important;border-color:#f5dba9;color:#fbe3b3;}
@media(max-width:820px){.velvet-now-playing{width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;}}
.screen.odo-now-playing-screen{padding-top:clamp(18px,3vw,32px);padding-bottom:25px;min-height:calc(100svh - 76px);}
.odo-np-root.odo-np-page{margin:0 auto 24px;padding:0 12px 28px;}
@media(max-width:750px){.screen.odo-now-playing-screen{min-height:calc(100svh - 66px);padding:16px 0 20px;} .odo-np-root.odo-np-page{padding:0 10px 20px;margin:0 auto;}}

/* Approved Signal option 3: distribute Now Playing and Account to opposite edges.
   Overrides the earlier right-aligned, account-only Home navigation rule. */
.velvet-home .velvet-home-nav{justify-content:space-between!important;}
