/* Official-site public-entry-editorial palette. Loaded after every page skin.
   Existing class names and controller hooks remain unchanged. */
:root {
  color-scheme: light;
  --forest-canvas: #08251E;
  --forest-raised: #12342A;
  --paper: #F1E7D2;
  --paper-shadow: #D8C7A8;
  --ink: #2B211A;
  --muted-ink: #6E6253;
  --primary-action: #742126;
  --primary-hover: #8B2B31;
  --brass: #B49359;
  --focus: #A64046;
  --bg: var(--paper);
  --panel: #F8F1E3;
  --line: var(--paper-shadow);
  --text: var(--ink);
  --muted: var(--muted-ink);
  --gold: var(--primary-action);
  --primary: var(--primary-action);
  --pink: var(--primary-action);
  --green: #285E42;
  --red: #8B2B31;
  --field: #FFFAEF;
  --soft: #E9DCC2;
  --radius: 16px;
}
body { background: var(--bg); color: var(--text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft JhengHei", sans-serif; }
h1, h2, .brand, .admin-wordmark { font-family: "Noto Serif TC", "Songti TC", "PMingLiU", Georgia, serif; }
h1, h2 { letter-spacing: .02em; }
a { color: var(--primary-action); }
button { min-height: 44px; color: var(--text); background: var(--soft); border-color: var(--line); }
button:hover { background: var(--paper-shadow); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
input, select, input[type=text], input[type=password], input[type=number], .player-page #room { color: var(--text); background: var(--field); border-color: var(--line); min-height: 44px; }
input[type=checkbox], input[type=range], .effects input[type=range] { accent-color: var(--primary-action); }
input[type=range] { min-height: 44px; }
input[type=checkbox] { min-height: 0; }
button.primary, .hero-action, .transport-buttons .play, .effects .transport-buttons .play {
  background: var(--primary-action); color: var(--paper); border-color: var(--primary-action); box-shadow: none;
}
button.primary:hover, .hero-action:hover, .transport-buttons .play:hover { background: var(--primary-hover); box-shadow: none; }
.muted { color: var(--muted); }
.topbar, .admin-page .topbar { background: var(--paper); border-color: var(--line); }
.brand { color: var(--text); }
.brand small, .workspace-title small { color: var(--muted); }
.brand-mark, .brand-mark span { color: var(--primary-action); }
.player-page .intro { min-height: 0; background: var(--panel); border-color: var(--line); padding: 26px 30px; }
.player-page .intro .hero-copy { max-width: none; padding-right: 180px; }
.player-page h1 { font-size: 32px; letter-spacing: .02em; }
.player-page h1 span, .player-page .intro .eyebrow { color: var(--primary-action); }
.player-page .intro .muted { max-width: 560px; }
.hero-art { display: none; }
.player-page .intro .room-label { bottom: 26px; right: 30px; }
.hero-action { margin-top: 12px; }
.preparation, .channel, .cue-desk, .storage-panel, .projection-panel, .tablet-setup, .admin-page .admin-panel, .admin-notice { background: var(--panel); border-color: var(--line); box-shadow: none; }
.channel-name .channel-number, .effects .channel-number { background: var(--paper-shadow); color: var(--primary-action); }
.track.active, .effects .track.active { background: #E4D5B6; }
.track.active .track-index, .track.active .track-title { color: var(--primary-action); }
.channel[data-playing=true] .channel-status { color: var(--green); background: #E4EBDD; border-color: #8AAB8D; font-weight: 650; }
.pill { color: var(--green); border-color: #8AAB8D; background: #E4EBDD; }
.notice.error, .channel-error, .stop-all, .danger { color: var(--red); }
.danger, .stop-all { border-color: #B88378; }
.player-page .player-sidebar, .admin-sidebar, .workspace-sidebar, .player-dock, .mobile-nav {
  --bg: var(--forest-canvas);
  --panel: var(--forest-raised);
  --line: #476052;
  --text: var(--paper);
  --muted: var(--paper-shadow);
  --gold: var(--brass);
  --green: #C1D2B4;
  --red: #F0B9AA;
  --field: var(--forest-raised);
  --soft: var(--forest-raised);
  color: var(--paper); background: var(--forest-canvas); border-color: #476052;
}
.player-sidebar .brand, .workspace-sidebar .brand, .admin-wordmark span { color: var(--paper); }
.player-sidebar .brand-mark, .player-sidebar .brand-mark span, .workspace-sidebar .brand-mark, .workspace-sidebar .brand-mark span, .admin-wordmark { color: var(--brass); }
.workspace-sidebar>p a { display: inline-flex; align-items: center; min-height: 44px; color: var(--paper-shadow); font-size: 12px; }
.sidebar-nav a:hover, .sidebar-nav a[aria-current=location], .workspace-sidebar nav a:hover, .workspace-sidebar nav a[aria-current=page], .admin-sidebar>a.current, .admin-sidebar>a:hover {
  color: var(--paper); background: var(--forest-raised); box-shadow: inset 3px 0 var(--brass);
}
.sidebar-note { background: var(--forest-raised); border-color: #476052; }
.sidebar-note-dot { background: var(--brass); }
.player-dock { box-shadow: 0 -3px 18px #08251E14; }
.dock-cover { background: var(--forest-raised); color: var(--brass); border: 1px solid var(--brass); }
.dock-channel-tabs button, .dock-controls button { min-width: 44px; min-height: 44px; color: var(--paper-shadow); }
.dock-channel-tabs button[aria-pressed=true] { color: var(--paper); background: var(--forest-raised); box-shadow: inset 0 -2px var(--brass); }
.dock-controls .dock-play { min-width: 44px; min-height: 44px; background: var(--primary-action); color: var(--paper); border: 1px solid var(--brass); }
.dock-controls .dock-play:hover { background: var(--primary-hover); }
.mobile-nav a { color: var(--paper-shadow); }
.mobile-nav a[aria-current=location] { color: var(--paper); background: var(--forest-raised); box-shadow: inset 0 -3px var(--brass); }
.player-sidebar :focus-visible, .admin-sidebar :focus-visible, .workspace-sidebar :focus-visible, .player-dock :focus-visible, .mobile-nav :focus-visible { outline-color: var(--brass); }
.player-dock input[type=range] { accent-color: var(--brass); }
.embedded.player-page .mobile-nav { background: var(--forest-canvas); border-color: #476052; }
.admin-page .savebar { background: var(--paper); }
.admin-page .cue-card, .cue-intro, .import-target { background: var(--paper); }
.admin-page .channel-tabs button[aria-pressed=true], .admin-page #channel-effects[aria-pressed=true] { background: var(--paper); color: var(--primary-action); border-color: var(--primary-action); box-shadow: inset 0 -3px var(--primary-action); }
.drag-handle.dragging { background: var(--paper-shadow); }
.catalog-row.drop-target { outline-color: var(--focus); }
/* Store-access pages intentionally have no player or admin body class. */
body:not([class]) form, body:not([class]) section { color: var(--ink); background: var(--panel); border-color: var(--line); }
body:not([class]) button[type=submit] { color: var(--paper); background: var(--primary-action); border-color: var(--primary-action); }
body:not([class]) button[type=submit]:hover { background: var(--primary-hover); }
body:not([class]) main>a { display: inline-flex; align-items: center; min-height: 44px; }
@media(max-width:650px) {
  .player-page .intro { padding: 22px; min-height: 0; }
  .player-page .intro .hero-copy { padding-right: 0; }
  .player-page h1 { font-size: 28px; }
  .player-page .intro .room-label { position: static; margin-top: 18px; width: 100%; max-width: 240px; }
}
@media(max-width:1179px),(pointer:coarse) {
  /* Explicit edges keep the shell anchored in iPad Safari 12 (no inset shorthand). */
  .workspace-sidebar { top: auto; left: 0; right: 0; bottom: 0; }
  .player-page .topbar { padding-top: 12px; padding-top: calc(12px + env(safe-area-inset-top,0px)); }
}

[data-owner-only][hidden],[data-owner-switch][hidden],#approved-folder-label[hidden],.cloud-setup-page section[hidden]{display:none!important}
.approved-folder-settings textarea{width:100%;min-height:88px}.approved-folder-settings{margin:12px 0;padding:12px;border:1px solid #6d9181;border-radius:10px}
