.phase2-appearance{max-width:1600px}.phase2-appearance .appearance-builder{grid-template-columns:420px minmax(620px,1fr)}.phase2-appearance .appearance-controls{min-height:700px}.phase2-appearance .appearance-panel{padding:18px}.design-status{align-self:center;font:9px "DM Mono";letter-spacing:.12em;color:#168e80;background:#e5f8f3;padding:7px 9px;border-radius:15px}
.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.asset-card{position:relative;border:1px solid #dfe5ec;border-radius:8px;background:#fff;overflow:hidden;cursor:pointer;text-align:left}.asset-card.active{border:2px solid #2879f4;box-shadow:0 0 0 3px #2879f414}.asset-thumb{height:92px;background-size:cover;background-position:center;position:relative}.asset-card>div:nth-child(2){padding:9px 10px 11px;display:grid;gap:3px}.asset-card b{font-size:11px}.asset-card small{font:8px "DM Mono";color:#7e8b9b}.asset-video{position:absolute;top:7px;left:7px;padding:4px 6px;border-radius:4px;background:#111b28d9;color:white;font:8px "DM Mono"}.asset-delete{position:absolute;right:6px;top:6px;background:#fff;color:#9a4d49;border-radius:50%;width:23px;height:23px;box-shadow:0 2px 8px #08111f33}.upload-spec{margin-top:16px;padding:15px;border:1px dashed #aabbd0;border-radius:8px;background:#f8fafe;display:grid;gap:12px}.upload-spec b{font-size:12px}.upload-spec p{font-size:10px;line-height:1.5;color:#687789;margin:5px 0}.upload-button{display:block;background:#2879f4;color:#fff;border-radius:5px;padding:10px;text-align:center;font-size:11px;font-weight:650;cursor:pointer}.upload-button.disabled{background:#e7ebf0;color:#8490a0;cursor:not-allowed}.upload-button input{display:none}
.layout-options{display:grid;gap:11px}.layout-option{border:1px solid #dfe5ec;border-radius:8px;padding:12px;text-align:left;display:grid;gap:5px;background:#fff}.layout-option.active{border:2px solid #2879f4;box-shadow:0 0 0 3px #2879f414}.layout-option>b{font-size:12px}.layout-option>small{font-size:10px;line-height:1.4;color:#778493}.layout-mini{height:75px;border-radius:5px;background:linear-gradient(145deg,#16304a,#0a1320);display:flex;align-items:flex-end;gap:4px;padding:8px;box-sizing:border-box}.layout-mini i{height:23px;flex:1;border:1px solid #fff9;border-radius:4px;background:#13283e}.layout-mini.glass i{background:#ffffff25;backdrop-filter:blur(4px)}.fixed-nav-note{margin-top:17px;padding:14px;background:#f4f7fb;border-radius:7px}.fixed-nav-note>b{font-size:11px}.fixed-nav-note>div{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.fixed-nav-note span{font-size:9px;background:#fff;border:1px solid #e0e6ed;border-radius:12px;padding:4px 7px}.fixed-nav-note p,.builder-footnote{font-size:10px;line-height:1.5;color:#758193;margin:0}.builder-footnote{margin-top:13px}
.phase2-tv{padding:0;background:#08111f;color:#fff;isolation:isolate;font-family:"DM Sans",sans-serif}.phase2-tv>.tv-bg,.phase2-tv>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}.tv-shade{position:absolute;inset:0;background:linear-gradient(90deg,#06101cc9 0%,#06101c6b 43%,#06101c18 72%),linear-gradient(0deg,#06101cd9 0%,transparent 42%);z-index:-2}.tv-home-top,.tv-detail-top{position:absolute;left:4.5%;right:4.5%;top:6%;display:flex;align-items:center;gap:10px;font-size:clamp(6px,.7vw,11px);letter-spacing:.09em}.tv-hotel-logo{width:clamp(18px,2.1vw,34px);height:clamp(18px,2.1vw,34px);display:grid;place-items:center;border:1px solid #fff8;border-radius:50%;font-family:"Playfair Display";font-size:clamp(11px,1.3vw,20px)}.tv-status{margin-left:auto;display:flex;gap:clamp(8px,1.6vw,26px);align-items:center}.tv-status span{color:#d5e1eb}.tv-status time,.tv-detail-top time{font-weight:700}.tv-welcome{position:absolute;left:4.5%;top:25%;max-width:52%}.tv-welcome small,.tv-detail>small{font:clamp(6px,.65vw,10px) "DM Mono";letter-spacing:.18em;color:#8ee4d6}.tv-welcome h2{font:clamp(24px,3.4vw,54px) "Playfair Display";color:#fff;margin:clamp(4px,.7vw,11px) 0 3px;letter-spacing:-.045em;line-height:1}.tv-welcome p{font-size:clamp(8px,.9vw,14px);color:#d4dfed;margin:0}
.tv-weather{position:absolute;right:4.5%;top:25%;width:20%;min-height:18%;border:1px solid #ffffff63;border-radius:clamp(6px,.8vw,13px);background:#07142252;backdrop-filter:blur(8px);color:white;display:grid;grid-template-columns:auto auto;align-items:center;padding:clamp(8px,1.2vw,18px);text-align:left}.tv-weather>span{font-size:clamp(16px,2vw,32px)}.tv-weather>b{font-size:clamp(16px,2.2vw,35px)}.tv-weather>small{grid-column:1/3;color:#d2deea;font-size:clamp(6px,.65vw,10px);line-height:1.4}.tv-wifi{position:absolute;left:4.5%;bottom:24%;display:flex;align-items:center;gap:8px;color:#e6edf5}.tv-wifi>span{font-size:clamp(13px,1.5vw,24px)}.tv-wifi b{display:block;font-size:clamp(7px,.75vw,12px)}.tv-wifi small{font-size:clamp(6px,.6vw,9px);color:#aebdca}
.tv-main-nav{position:absolute;left:4.5%;right:4.5%;bottom:5%;display:grid;grid-template-columns:repeat(7,1fr);gap:1%}.tv-main-nav button{height:clamp(50px,8.5vw,138px);border:1px solid #ffffff72;border-radius:clamp(5px,.65vw,10px);background:#071624a8;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(3px,.45vw,7px);min-width:0}.tv-main-nav.glass button{background:#ffffff1d;backdrop-filter:blur(8px)}.tv-main-nav button>span{font-size:clamp(14px,1.8vw,29px)}.tv-main-nav button>b{font-size:clamp(6px,.68vw,11px);white-space:nowrap}.tv-main-nav button.focused,.tv-main-nav button:hover{border:2px solid white;background:#ffffff2d;transform:translateY(-4%);box-shadow:0 0 0 3px #8ee4d655}
.tv-detail-top>button{color:white;font-size:clamp(10px,1.1vw,18px)}.tv-detail-top time{margin-left:auto}.tv-detail{position:absolute;left:8%;right:8%;top:20%;bottom:10%}.tv-detail h2{font:clamp(28px,4vw,64px) "Playfair Display";margin:6px 0 clamp(14px,2vw,30px)}.tv-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(7px,1vw,16px)}.tv-detail-grid button{min-height:clamp(62px,10vw,160px);padding:clamp(10px,1.3vw,21px);border:1px solid #ffffff62;border-radius:clamp(6px,.8vw,13px);background:#071624c7;color:white;text-align:left;display:flex;align-items:flex-start;gap:10px}.tv-detail-grid button>span{color:#8ee4d6;font-size:clamp(12px,1.4vw,22px)}.tv-detail-grid b{display:block;font-size:clamp(9px,1vw,16px);margin-bottom:5px}.tv-detail-grid small{font-size:clamp(7px,.7vw,11px);color:#c4d0dc;line-height:1.4}.tv-detail-grid button.focused{border:2px solid #fff;box-shadow:0 0 0 3px #8ee4d655}.preview-loading{display:grid;place-items:center;height:100%;color:#d4dfed}
@media(max-width:1100px){.phase2-appearance .appearance-builder{grid-template-columns:1fr}.phase2-appearance .appearance-controls{min-height:auto}}@media(max-width:600px){.asset-grid{grid-template-columns:1fr}.phase2-appearance .appearance-tabs button{flex:1}}
.tv-preview.phase2-tv>.tv-bg,.tv-preview.phase2-tv>video{position:absolute;z-index:-3}.tv-preview.phase2-tv>.tv-shade{position:absolute;z-index:-2}.tv-preview.phase2-tv>.tv-home-top,.tv-preview.phase2-tv>.tv-detail-top,.tv-preview.phase2-tv>.tv-welcome,.tv-preview.phase2-tv>.tv-weather,.tv-preview.phase2-tv>.tv-wifi,.tv-preview.phase2-tv>.tv-main-nav,.tv-preview.phase2-tv>.tv-detail{position:absolute;z-index:1}

/* Actual TV layouts: free-standing icon dock versus a shared compact rail. */
.phase2-tv .tv-weather{top:24.5%;width:29%;height:15%;min-height:0;box-sizing:border-box;grid-template-columns:auto 1fr;column-gap:8%;padding:2%}
.phase2-tv .tv-weather>small{grid-column:2;line-height:1}
.phase2-tv .tv-wifi{left:auto;right:4.5%;top:41.5%;bottom:auto;width:29%;height:26.5%;box-sizing:border-box;padding:1.4%;border:1px solid #ffffff63;border-radius:8px;background:#ffffff20;display:flex;gap:5%;text-align:left}
.phase2-tv .tv-wifi>div{flex:1;min-width:0}.phase2-tv .tv-wifi small{display:block;overflow-wrap:anywhere;margin-top:5%;font-size:clamp(5px,.6vw,10px)}
.phase2-tv .tv-wifi strong{font-size:clamp(6px,.7vw,11px);color:white}.phase2-tv .tv-wifi img{width:48%;aspect-ratio:1;image-rendering:pixelated}.phase2-tv .tv-wifi-qr{width:44%;aspect-ratio:1;display:grid;place-items:center;align-content:center;gap:3%;border:clamp(2px,.28vw,5px) solid white;border-radius:4px;background:#fff;color:#08111f;font:700 clamp(10px,1.4vw,22px) "DM Mono",monospace}.phase2-tv .tv-wifi-qr small{margin:0;color:#677485;font-size:clamp(4px,.42vw,7px)}.phase2-tv .tv-wifi.not-configured .tv-wifi-qr{background:#ffffff18;border-color:#ffffff45;color:#fff}
.phase2-tv .tv-main-nav{height:15%;gap:1.5%;overflow:visible}
.phase2-tv .tv-main-nav button{position:relative;height:100%;padding:0;background:transparent;border:1px solid transparent;border-radius:5px;box-shadow:none;transition:transform var(--motion-ms,180ms) ease-out,background var(--motion-ms,180ms),border-color var(--motion-ms,180ms);gap:9%;outline:none}
.phase2-tv .tv-main-nav button>span{display:block;width:34%;aspect-ratio:1}.phase2-tv .tv-main-nav svg{display:block;width:100%;height:100%}
.phase2-tv .tv-main-nav button.focused{border-color:white;background:#ffffff19;box-shadow:none;transform:translateY(-5.33%) scale(1.06)}
.phase2-tv .tv-main-nav button:not(.focused):hover{border-color:transparent;background:transparent;box-shadow:none;transform:none}
.phase2-tv .tv-main-nav.glass{height:12.5%;gap:0;bottom:4.5%;border:1px solid #ffffff32;border-radius:4px;background:#07131ec8}
.phase2-tv .tv-main-nav.glass button{border:0;border-radius:0;backdrop-filter:none;background:transparent;gap:12%;transform:none}
.phase2-tv .tv-main-nav.glass button>span{width:21%;transition:transform var(--motion-ms,240ms) ease-out}
.phase2-tv .tv-main-nav.glass button.focused{background:transparent;box-shadow:none;transform:none;color:#8ee4d6}
.phase2-tv .tv-main-nav.glass button.focused>span{transform:scale(1.16);color:white}
.tv-rail-highlight{display:none}.glass>.tv-rail-highlight{display:block;position:absolute;inset:0 auto 0 0;width:calc(100% / 7);box-sizing:border-box;border:1px solid #ffffffc3;border-radius:3px;background:#ffffff3a;transform:translateX(calc(var(--focus-index,0) * 100%));transition:transform var(--motion-ms,240ms) ease-out;pointer-events:none}
.layout-mini{gap:7px}.layout-mini i{background:transparent;border-color:transparent;position:relative}.layout-mini i::before{content:'';position:absolute;left:35%;top:18%;width:30%;height:35%;border:1px solid white;border-radius:50%}.layout-mini i:first-child{border-color:#fff;transform:translateY(-3px)}
.layout-mini.glass{gap:0;background:linear-gradient(0deg,#07131e 44%,#16304a 44%)}.layout-mini.glass i{border-radius:0;background:transparent;backdrop-filter:none}.layout-mini.glass i:first-child{transform:none;background:#ffffff3a}
.tv-home-top>img{width:clamp(30px,4vw,66px);height:clamp(18px,2.1vw,34px);object-fit:contain}.tv-welcome .tv-welcome-message{margin-top:clamp(4px,.55vw,9px);font-size:clamp(6px,.7vw,11px);color:#c0d0dc}.tv-announcement{width:88%;margin-top:clamp(5px,.65vw,10px);padding:clamp(5px,.7vw,11px);border:1px solid #ffffff30;border-radius:clamp(4px,.55vw,9px);background:#ffffff18;display:grid;gap:clamp(2px,.25vw,4px);backdrop-filter:blur(7px)}.tv-announcement b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(6px,.75vw,12px)}.tv-announcement span{display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(5px,.62vw,10px);line-height:1.35;color:#dae4ec}
@media(prefers-reduced-motion:reduce){.phase2-tv .tv-main-nav button,.phase2-tv .tv-main-nav button>span,.glass>.tv-rail-highlight{transition:none}}
