/* ZuvTV visual system v1. Permanent reference: docs/SISTEMA_VISUAL_ZUVTV.md.
   Reuse these tokens/components; legacy selectors map existing screens onto the kit. */
@font-face{font-family:"ZuvTV Pixel";src:url('./pixelify-sans.ttf') format('truetype');font-weight:400 700;font-display:swap}
:root{--zuv-ink:#091327;--zuv-metal:#172640;--zuv-steel:#35466b;--zuv-edge:#8697be;--zuv-cyan:#46fff1;--zuv-amber:#ffb526;--zuv-red:#e82b24;--zuv-text:#fff2d0;--zuv-muted:#bdcce3;--zuv-font:"ZuvTV Pixel",monospace;--zuv-gap:8px;--zuv-frame:12px;--zuv-button-edge:#f6ca69;--zuv-led:radial-gradient(#46fff11c 1px,transparent 1px);--zuv-shadow:0 4px 0 #040817,0 8px 16px #0007}
/* The shared family is explicit because older scenes used independent font shorthands. */
:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,#language-dialog,.game-dialog,.hold-info,.elevator-directory,.arrival-room-preview,.zuv-gallery),
:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,#language-dialog,.game-dialog,.hold-info,.elevator-directory,.arrival-room-preview,.zuv-gallery) :where(*){font-family:var(--zuv-font)!important}
.zuv-panel,:is(.game-dialog,.language-dialog,.elevator-directory,.arrival-room-preview,.interior-dialog,.library-details,.cinema-details,.agency-info,.ad-offer-dialog,.library-case,.cinema-case,.office-computer,.planner-menu-panel,.audience-map,.boss-copy,.boss-portrait){box-sizing:border-box;border:var(--zuv-frame) solid var(--zuv-steel)!important;border-image:url('./ui-frame.png') 40 stretch!important;border-radius:0!important;clip-path:none!important;background:var(--zuv-ink)!important;color:var(--zuv-text);box-shadow:var(--zuv-shadow)!important;text-shadow:0 1px #000}
:is(#library,#cinema,#agency) .library-shelves{border:8px solid var(--zuv-steel);border-image:url('./ui-frame.png') 40 stretch;border-radius:0;background:linear-gradient(#172640,#091327);box-sizing:border-box;box-shadow:var(--zuv-shadow);color:var(--zuv-text)}
.zuv-title,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue) :is(.planner-heading,.planner-menu-heading,.stats-heading,.library-heading strong,.library-shelves>header,.library-shelves>h2,.interior-heading h1,.boss-copy h1),:is(.game-dialog,.language-dialog,.elevator-directory) :is(.panel-title,h2,.directory-heading){background-color:#08101e;background-image:var(--zuv-led);background-size:3px 3px;border:1px solid #49628b;border-radius:0;color:var(--zuv-cyan);text-shadow:1px 1px #020713;letter-spacing:.01em;font-weight:700}
:is(#office,#agency,#library,#cinema,#interior) :is(.office-stock-card,.library-tape,.ad-offer-card,.stats-chart,.finance-columns,.planner-details,.ad-offer-terms,.library-genres,.ad-filters){border-color:var(--zuv-edge);border-radius:3px;background-color:var(--zuv-metal);color:var(--zuv-text);box-shadow:inset 0 1px #90a8d844,0 2px #040817}
:is(#office,#agency,#library,#cinema) :is(.office-empty,.ad-market-empty,.library-empty,.report-note,.stats-note,.stats-unit,.stats-summary,.ad-offer-note){color:var(--zuv-muted);text-shadow:none}
/* Buttons share materials; picture hotspots and the approved console keep their geometry. */
.zuv-button,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog,.elevator-directory,.arrival-room-preview) button:where(:not(.office-hotspot):not(.interior-point):not(.audience-zone-sale):not(.audience-satellite)){box-sizing:border-box;border:2px solid var(--zuv-button-edge);border-radius:4px;background:linear-gradient(#e5a328,#a65c09 55%,#6e3307);box-shadow:inset 1px 1px #ffe7a4,inset -1px -2px #713607,0 2px #040817;color:var(--zuv-text);font-weight:700;text-shadow:1px 1px #482008;transition:filter .1s,box-shadow .1s;letter-spacing:0}
.zuv-button:hover,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog,.elevator-directory,.arrival-room-preview) button:where(:not(.office-hotspot):not(.interior-point):not(:disabled)):hover{filter:brightness(1.12)}
.zuv-button:active,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog,.elevator-directory,.arrival-room-preview) button:where(:not(.office-hotspot):not(.interior-point):not(:disabled)):active{box-shadow:inset 1px 2px #4f2b14,inset -1px -1px #f8cd7a;filter:brightness(.9)}
.zuv-button--primary,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog,.elevator-directory) :is(.button-primary,.button-danger,.office-exit,.audience-map-close,.library-close,.cinema-close,.ad-offer-close,.agency-info-close,.directory-close,[data-library-exit],[data-cinema-exit],[data-agency-exit],[data-interior-exit]){border-color:#ffb7a0;background:linear-gradient(#ff4b36,#ce201d 60%,#8b1119);box-shadow:inset 1px 1px #ffe3ab,inset -1px -2px #640b1c,0 2px #040817;color:#fff4cb}
.zuv-button--selected,:is(#office,#agency,#library,#cinema,#interior,.elevator-directory) button:is([aria-pressed="true"],.selected),:is(#office,#agency,#library,#cinema) :is(.office-stock-card,.library-tape,.ad-offer-card).selected{border-color:var(--zuv-cyan);background:linear-gradient(#13667a,#092a42);box-shadow:inset 0 0 0 1px #87fff7,0 0 4px #46fff13b;color:#d8fffa}
.zuv-button:disabled,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog,.elevator-directory) button:disabled{opacity:.55;filter:grayscale(.7);cursor:not-allowed;box-shadow:inset 0 1px #b9b5a244}
:is(.zuv-button,.zuv-input):focus-visible,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog,.elevator-directory,.arrival-room-preview) :is(button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--zuv-cyan);outline-offset:2px}
.zuv-input,:is(#office,#agency,#library,#cinema,.game-dialog,#language-dialog) :is(input,select,textarea){box-sizing:border-box;border:2px solid #d4b77e;border-radius:3px;background:#fff2d8;color:#122039;box-shadow:inset 2px 2px #a2865b55;font-weight:500;text-shadow:none;accent-color:var(--zuv-cyan)}
.zuv-input[aria-invalid="true"],:is(.game-dialog,#language-dialog) [aria-invalid="true"]{border-color:#ff6d63;outline:2px solid #a82129}
:is(#office,#agency,#library,#cinema,#interior) :is(p,.library-modal-message,.ad-offer-note,.stats-note){line-height:1.35}
/* Existing details now use the same metal frame rather than a separate gold theme. */
.hold-info:is(#broadcast-info,#audience-info,#finance-dialog,#clock-dialog){border:8px solid var(--zuv-steel);border-image:url('./ui-frame.png') 40 stretch;border-radius:0;background:var(--zuv-ink);box-shadow:var(--zuv-shadow);clip-path:none;color:var(--zuv-text)}
.hold-info:is(#broadcast-info,#audience-info,#finance-dialog,#clock-dialog) h2{border:1px solid #49628b;border-radius:0;background-color:#08101e;background-image:var(--zuv-led);background-size:3px 3px;color:var(--zuv-cyan);box-shadow:none}
.hold-info:is(#broadcast-info,#audience-info,#finance-dialog) :is(dl,dd){border-color:#49628b;background:var(--zuv-metal);box-shadow:none}
#interior .interior-point>span{border-color:var(--zuv-edge);border-radius:3px;background:#172640;color:var(--zuv-cyan)}
#interior .interior-point>b{border-color:#49628b;background:#091327;color:var(--zuv-text);border-radius:2px}
#interior .interior-point:focus-visible{outline:3px solid var(--zuv-cyan);outline-offset:1px}
#interior .interior-dialog{border-width:8px;background:var(--zuv-ink)}
#interior .interior-dialog h2{color:var(--zuv-cyan)}
:is(#office,#agency,#library,#cinema) :is(.library-modal-title,.library-modal-content h2,.agency-info h2,.planner-details h2){color:var(--zuv-cyan);text-shadow:1px 1px #020713}
#office .planner-slot{border-color:#49628b;color:var(--zuv-text)}
#office .planner-slot.empty{background:#0c192e}
#office .planner-slot.drop-ready{outline:2px solid var(--zuv-cyan);background:#143e4b}
#office .audience-map-sidebar{background:var(--zuv-ink);border-color:var(--zuv-edge);color:var(--zuv-text)}
#office .office-room-title{color:var(--zuv-cyan);background:#091327eb;border-color:var(--zuv-edge);border-radius:2px}
.elevator-directory .directory-floor-badge{background:var(--zuv-metal);border-color:var(--zuv-edge);color:var(--zuv-text)}
.elevator-directory .directory-here{border-color:var(--zuv-cyan);color:var(--zuv-cyan)}
/* Public classes for future components and the isolated gallery. */
.zuv-panel{padding:12px}.zuv-title{margin:0 0 12px;padding:8px;font:700 22px/1.15 var(--zuv-font)}
.zuv-button{padding:8px 16px;min-height:44px;font:700 18px/1.1 var(--zuv-font);cursor:pointer}
.zuv-input{padding:8px;min-height:44px;font:500 18px/1.2 var(--zuv-font)}
@media(prefers-reduced-motion:reduce){.zuv-button,:is(#office,#agency,#library,#cinema,#interior,#boss-dialogue,.game-dialog,#language-dialog) button{transition:none}}
/* Navigation and schedule cells are surfaces, not primary action buttons. */
:is(#office,#agency,#library,#cinema) :is(nav button,.planner-tabs button,.office-genres button,.stats-controls button,.planner-slot,.office-stock-card,.library-tape,.ad-offer-card){border-color:#627aa0;background:linear-gradient(#203553,#112039);color:var(--zuv-text);box-shadow:inset 0 1px #8ba4cf55,0 1px #030916;text-shadow:1px 1px #030916}
:is(#office,#agency,#library,#cinema) :is(nav button,.planner-tabs button,.office-genres button,.stats-controls button,.planner-slot,.office-stock-card,.library-tape,.ad-offer-card):is(.selected,[aria-pressed="true"],[aria-expanded="true"]){border-color:var(--zuv-cyan);background:linear-gradient(#12667b,#0b2941);color:#d8fffa;box-shadow:inset 0 0 0 1px #87fff7,0 0 4px #46fff144}
:is(#office,#agency,#library,#cinema) :is(.planner-heading,.planner-menu-heading,.stats-heading,.library-heading)>strong{color:var(--zuv-cyan)}

:is(#library,#cinema) :is(.library-case,.cinema-case)>h2,:is(#library,#cinema,#agency) .library-shelves>header h2{color:var(--zuv-cyan);background-color:#08101e;background-image:var(--zuv-led);background-size:3px 3px;border:1px solid #49628b;border-radius:0;padding:4px}

#office .audience-map h2{color:var(--zuv-cyan);background-color:#08101e;background-image:var(--zuv-led);background-size:3px 3px;border:1px solid #49628b;text-shadow:1px 1px #020713}
#language-dialog label{font-size:14px;line-height:1.3;color:var(--zuv-text)}
#language-dialog :is(select,button){font-size:18px;min-height:44px;line-height:1.2}
:is(.game-dialog,.interior-dialog) p{font-size:clamp(14px,1.5vw,20px);line-height:1.35}
:is(#library,#cinema) :is(.library-case,.cinema-case) h2{color:var(--zuv-cyan)}
:is(#office,#agency,#library,#cinema,#interior) :is(.planner-tabs,.planner-stock,.planner-table,.planner-menu-panel,.library-section,.library-genre-list,.ad-market-content){scrollbar-width:thin;scrollbar-color:var(--zuv-cyan) var(--zuv-ink)}
#office :is(.planner-sidebar,.planner-tabs){background-color:var(--zuv-ink);border-color:var(--zuv-edge)}
@media(max-height:520px){#office .office-computer{--zuv-frame:6px;padding:3px;gap:2px}#office .planner-menu-panel{--zuv-frame:6px}}
.zuv-panel{font-family:var(--zuv-font)!important}
