/* =====================================================================
   FORTIS HARDWARE THEME — css/fm-hardware.css
   Author: Claude (design lead). Approved look: docs/design/hardware/
   Loaded AFTER css/styles.css and css/fm-tactile.css.
   RULES: values in this file are the approved design. Do not change values.
   Only selectors may be adjusted if they do not match the real DOM (report it).
   Themes:  <html data-theme="pearl|graphite" data-led="fortis|amber|ice">
   ===================================================================== */

/* Epilogue, self-hosted with balanced vertical metrics (OFL, assets/hw/fonts/epilogue).
   Stock metrics (ascent .79 / descent .235 em) put capitals ~0.09em above the centre of every key,
   window and chip. Same total height (1.025em), ascent/descent rebalanced so text sits centred. */
@font-face{font-family:"Epilogue";font-style:normal;font-weight:300;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-300-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:300;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-300-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-400-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:400;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-400-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-500-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-500-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:600;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-600-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:600;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-600-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-700-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:700;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-700-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:800;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-800-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:800;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-800-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:900;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-ext-900-normal.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}
@font-face{font-family:"Epilogue";font-style:normal;font-weight:900;font-display:swap;src:url("../assets/hw/fonts/epilogue/epilogue-latin-900-normal.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;ascent-override:86.25%;descent-override:16.25%;line-gap-override:0%}

/* ---------- 1. LED palettes ---------- */
html[data-led="fortis"]{--acc:#9b5cff;--acc2:#a64bff;--lcd:#2ff07f;--play:#2ff07f;--info:#3d8bff;--alert:#ff3352}
html[data-led="amber"] {--acc:#ff8d1a;--acc2:#ff5a1a;--lcd:#ffb43a;--play:#3ee36c;--info:#2ed3ff;--alert:#ff3b3b}
html[data-led="ice"]   {--acc:#38dcff;--acc2:#5c7cff;--lcd:#8fe9ff;--play:#38dcff;--info:#8b6bff;--alert:#ff3d6e}
html{--cue:#ffa21a;--wf-low:#2c6bff;--wf-mid:#ff9a2e;--wf-high:#ffffff;--wf-played:#5c616b;--wf-head:#ff3352}

/* ---------- 2. Materials ---------- */
html[data-theme="pearl"]{
 --t1:#15171c;--t2:#525866;--t3:#8a909b;--line:rgba(20,24,32,.12);
 --metal-hi:#fbfbfc;--metal-lo:#e4e6e9;--metal-edge:#c9cdd3;--page:#dfe1e5;
 --rub-hi:#fafbfc;--rub-lo:#e1e4e8;--rub-edge:#bfc4cb;--rub-drop:#b4b9c1;--rub-text:#1d2026;
 --well:#d3d6db;--chan:#eceef1;--screen:#101215;--screen-edge:#2a2d33;
 --inset-bg:var(--page);--inset-edge:var(--rub-edge);--inset-shadow:inset 0 1px 3px rgba(0,0,0,.08),0 1px 0 var(--face-hi);
 --tray-bg:var(--page);--tray-shadow:inset 0 2px 6px rgba(0,0,0,.28),inset 0 0 0 1px rgba(0,0,0,.12),0 1px 0 var(--face-hi);
 --raised-bg:var(--brush2),linear-gradient(100deg,transparent 30%,var(--sheen) 48%,transparent 62%),linear-gradient(180deg,var(--metal-hi),var(--metal-lo));--raised-size:1024px 256px,cover,cover;--raised-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop),0 4px 8px -6px rgba(0,0,0,.4);
 --face-hi:rgba(255,255,255,.75);--face-shadow:0 10px 24px -14px rgba(0,0,0,.35);
 --sheen:rgba(255,255,255,.22);
 --brush2:url("../assets/hw/brush-light.png");
}
html[data-theme="graphite"]{
 --t1:#eceef2;--t2:#a2a7b1;--t3:#737985;--line:rgba(255,255,255,.08);
 --metal-hi:#3a3d43;--metal-lo:#2c2e33;--metal-edge:#1b1c1f;--page:#25272b;
 --rub-hi:#43464d;--rub-lo:#2e3035;--rub-edge:#17181b;--rub-drop:#0f1012;--rub-text:#eef0f4;
 --well:#1c1d20;--chan:#303237;--screen:#0b0c0e;--screen-edge:#000;
 --inset-bg:var(--page);--inset-edge:var(--rub-edge);--inset-shadow:inset 0 1px 3px rgba(0,0,0,.35),0 1px 0 rgba(255,255,255,.04);
 --tray-bg:var(--page);--tray-shadow:inset 0 2px 6px rgba(0,0,0,.55),inset 0 0 0 1px rgba(0,0,0,.35),0 1px 0 rgba(255,255,255,.05);
 --raised-bg:var(--brush2),linear-gradient(100deg,transparent 30%,var(--sheen) 48%,transparent 62%),linear-gradient(180deg,var(--metal-hi),var(--metal-lo));--raised-size:1024px 256px,cover,cover;--raised-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop),0 4px 8px -6px rgba(0,0,0,.4);
 --face-hi:rgba(255,255,255,.08);--face-shadow:0 14px 28px -16px rgba(0,0,0,.8);
 --sheen:rgba(255,255,255,.04);
 --brush2:url("../assets/hw/brush-dark.png");
}

/* ---------- 3. Existing base tokens remapped (pages using tokens change automatically) ---------- */
html[data-theme]{
 --fx-glass-a:var(--metal-hi);--fx-glass-b:var(--metal-lo);
 --fx-plate-a:var(--chan);--fx-plate-b:var(--chan);
 --fx-key-a:var(--rub-hi);--fx-key-b:var(--rub-lo);
 --fx-edge:var(--metal-edge);--fx-rim:var(--face-hi);--fx-drop:var(--rub-drop);
 --fx-seat:var(--well);--fx-well-a:var(--well);--fx-well-b:var(--well);
 --fx-menu-bg:var(--metal-hi);--fx-menu-blur:0px;--fx-blur:0px;
 --fx-nav-bg:var(--metal-hi);--fx-nav-edge:var(--metal-edge);--fx-nav-rim:var(--face-hi);--fx-nav-blur:0px;--fx-nav-sat:100%;
 --fx-grad:linear-gradient(90deg,var(--acc),var(--acc2));--fx-grad-glow:color-mix(in srgb,var(--acc) 55%,transparent);
 --fx-live:var(--lcd);--fx-live-hi:var(--lcd);
 --fx-live-ghost:color-mix(in srgb,var(--lcd) 8%,transparent);--fx-live-glow:color-mix(in srgb,var(--lcd) 60%,transparent);
 --fx-lcd-a:var(--screen);--fx-lcd-b:var(--screen);
 --fx-metal-a:var(--metal-hi);--fx-metal-b:var(--metal-lo);
 --fx-billboard-metal-a:var(--metal-hi);--fx-billboard-metal-b:var(--metal-lo);
 --fx-play:linear-gradient(var(--rub-hi),var(--rub-lo));
 --fx-red:var(--alert);--fx-blue:var(--info);--fx-status-live:var(--alert);--fx-status-replay:var(--info);
 --fx-ambient-opacity:0;--fx-ambient-opacity-2:0;
 --fx-pass-w:360px;
 color-scheme:light;
}
/* Artist passport pad / type scale match hardware profile refs (v3). */
html[data-theme] :is(#page-artist,.pf-app){
 --fx-pf-pass-pad-x:16px;--fx-pf-avatar:104px;
 --fx-pf-key-fs:14px;--fx-pf-key-h:36px;
 --fx-pf-panel-title-fs:16px;--fx-pf-row-title-fs:14.5px}
html[data-theme] :is(#page-artist,.pf-app) .pf-layout{gap:8px}
html[data-theme] :is(#page-artist,.pf-app) .fx-pass .pf-avatar-wrap{margin:20px 0 0 var(--fx-pf-pass-pad-x)}
html[data-theme] :is(#page-artist,.pf-app) .fx-pass .pf-head-name{font-size:25px}
html[data-theme="graphite"]{color-scheme:dark}

/* ---------- 4. Page background (replaces concert photo) ---------- */
html[data-theme] body{
 background:var(--brush2),linear-gradient(100deg,var(--metal-lo),var(--metal-hi) 45%,var(--metal-lo) 70%,var(--metal-hi))!important;
 background-size:1024px 256px,cover!important;background-attachment:fixed!important;color:var(--t1)}
html[data-theme] body::before,html[data-theme] body::after{background:none!important;opacity:0!important}

/* ---------- 5. Faceplates: top bar, admin bar, panels, menus, modals ---------- */
html[data-theme] .fx-panel,
html[data-theme] .hw-faceplate,
html[data-theme] .lv-dd-menu,
html[data-theme] .modal,
html[data-theme] .fm-notif-panel,
html[data-theme] .fm-avatar-dropdown,
html[data-theme] .gate-box{
 background:var(--brush2),linear-gradient(100deg,transparent 30%,var(--sheen) 48%,transparent 62%),linear-gradient(180deg,var(--metal-hi),var(--metal-lo))!important;
 background-size:1024px 256px,cover,cover!important;
 border:1px solid var(--metal-edge)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),inset 0 -1px 0 rgba(0,0,0,.06),var(--face-shadow)!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:var(--t1)}
/* corner screws (top bar + passport only) */
html[data-theme] .hw-screws:not(nav){position:relative}
html[data-theme] .hw-screws::after{content:"";position:absolute;inset:7px;pointer-events:none;z-index:1;background:
 radial-gradient(circle 4px at 4px 4px,#8d939b 0 2.2px,#5b6068 2.8px,transparent 3.6px),
 radial-gradient(circle 4px at calc(100% - 4px) 4px,#8d939b 0 2.2px,#5b6068 2.8px,transparent 3.6px),
 radial-gradient(circle 4px at 4px calc(100% - 4px),#8d939b 0 2.2px,#5b6068 2.8px,transparent 3.6px),
 radial-gradient(circle 4px at calc(100% - 4px) calc(100% - 4px),#8d939b 0 2.2px,#5b6068 2.8px,transparent 3.6px)}
html[data-theme] .fx-panel-title{color:var(--t1)}
html[data-theme] .fx-panel-meta{color:var(--t2)}
html[data-theme] .fx-panel-link{color:var(--t1)}

/* ---------- 6. LEDs (always in a black bezel) ---------- */
html[data-theme] .fx-led{--c:var(--play);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%)!important;
 box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.35),0 0 10px color-mix(in srgb,var(--c) 75%,transparent)!important}
html[data-theme] .fx-led.is-red{--c:var(--alert)} html[data-theme] .fx-led.is-blue{--c:var(--info)}
html[data-theme] .fx-led.is-amber{--c:#ffb02e} html[data-theme] .fx-led.is-violet{--c:var(--acc2)}

/* ---------- 7. Keys (rubber) ---------- */
html[data-theme] .fx-key,html[data-theme] .lv-dd-btn,html[data-theme] .hw-key,html[data-theme] #navJoinBtn,html[data-theme] .jb-donate-amt{
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop),0 5px 10px -6px rgba(0,0,0,.35)!important;text-shadow:none!important}
html[data-theme] .fx-key:active,html[data-theme] .fx-key.is-down{transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.25),0 1px 0 var(--rub-drop)!important}
html[data-theme] .fx-key:disabled,html[data-theme] .fx-key[aria-disabled="true"]{opacity:.5}
/* primary = LED ring like CUE/PLAY */
html[data-theme] .fx-key.fx-primary,html[data-theme] #navJoinBtn{border:2px solid var(--acc)!important;color:var(--rub-text)!important;
 box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 14px color-mix(in srgb,var(--acc) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--acc) 35%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] .fx-key.hw-alert,html[data-theme] .fm-btn.hw-alert{border:2px solid var(--alert)!important;
 box-shadow:0 0 0 1px color-mix(in srgb,var(--alert) 40%,transparent),0 0 14px color-mix(in srgb,var(--alert) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--alert) 35%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] .fx-key.is-following,html[data-theme] .fx-key.hw-on{color:var(--play)!important}

/* ---------- 8. Player keys ---------- */
html[data-theme] .fx-rkey{border-radius:50%!important;background:radial-gradient(circle at 50% 35%,var(--rub-hi),var(--rub-lo) 70%)!important;border:1px solid var(--rub-edge)!important;
 color:var(--rub-text)!important;box-shadow:inset 0 2px 0 var(--face-hi),0 3px 0 var(--rub-drop),0 8px 14px -6px rgba(0,0,0,.4)!important}
html[data-theme] .fx-play{border-radius:50%!important;background:radial-gradient(circle at 50% 35%,var(--rub-hi),var(--rub-lo) 70%)!important;color:var(--rub-text)!important;
 border:3px solid var(--play)!important;box-shadow:0 0 16px color-mix(in srgb,var(--play) 60%,transparent),inset 0 0 10px color-mix(in srgb,var(--play) 35%,transparent),0 3px 0 var(--rub-drop)!important}
html[data-theme] .fx-play svg,html[data-theme] .fx-rkey svg{fill:currentColor;stroke:currentColor}
html[data-theme] .hw-cue{border-radius:50%!important;border:3px solid var(--cue)!important;box-shadow:0 0 14px color-mix(in srgb,var(--cue) 60%,transparent),inset 0 0 10px color-mix(in srgb,var(--cue) 35%,transparent),0 3px 0 var(--rub-drop)!important}
/* knob: knurled dark cap, white indicator, LED arc */
html[data-theme] .fx-knob{background:repeating-conic-gradient(#2a2c31 0 6deg,#1b1c20 6deg 12deg)!important;border-radius:50%!important;
 box-shadow:0 0 0 3px var(--well),0 0 0 5px color-mix(in srgb,var(--acc) 85%,transparent),0 0 12px color-mix(in srgb,var(--acc) 45%,transparent),0 4px 8px rgba(0,0,0,.5)!important}
/* slide switch */
html[data-theme] .fx-switch{background:#121316!important;border-radius:4px!important;border:0!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 1px 0 var(--face-hi)!important}
html[data-theme] .fx-switch::before,html[data-theme] .fx-switch::after{border-radius:3px!important;background:linear-gradient(90deg,#9aa0a8,#f4f5f6 45%,#a8adb5)!important;box-shadow:0 1px 2px rgba(0,0,0,.6)!important}
html[data-theme] .fx-switch.is-on,html[data-theme] .fx-switch[aria-checked="true"]{box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 0 0 1px color-mix(in srgb,var(--play) 70%,transparent),0 0 8px color-mix(in srgb,var(--play) 40%,transparent)!important}

/* ---------- 9. Tabs = pads with LED strip ---------- */
html[data-theme] .fx-well.lv-tab-well,html[data-theme] .pf-tab-well,html[data-theme] .hw-well{background:var(--well)!important;border:1px solid var(--rub-edge)!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.18)!important}
html[data-theme] .lv-tab-key{position:relative;overflow:hidden;background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;color:var(--rub-text)!important;
 border:1px solid var(--rub-edge)!important;box-shadow:0 1px 0 var(--rub-drop)!important}
html[data-theme] .lv-tab-key::after{content:"";position:absolute;left:8px;right:8px;bottom:3px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--acc) 22%,transparent);pointer-events:none}
html[data-theme] .lv-tab-key.is-down{color:var(--rub-text)!important;box-shadow:0 1px 0 var(--rub-drop),inset 0 -8px 14px -10px var(--acc)!important}
html[data-theme] .lv-tab-key.is-down::after{background:var(--acc);box-shadow:0 0 8px var(--acc),0 0 2px var(--acc)}
html[data-theme] .lv-tab-n{color:var(--t2)!important}

/* ---------- 10. Chips = printed labels ---------- */
html[data-theme] .fx-chip,html[data-theme] .lv-chip{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:none!important}
html[data-theme] .fx-chip--type,html[data-theme] .fx-chip--grad{border-color:var(--acc)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acc) 35%,transparent)!important;color:var(--rub-text)!important}
html[data-theme] .fx-chip--live{background:var(--screen)!important;border-color:var(--screen-edge)!important;color:var(--lcd)!important}

/* ---------- 11. Rows = recessed channels ----------
   UTISNUTO (inset) = jedna jedina povrsina na platformi, boja glavne pozadine stranice: --inset-bg (= --page) / --inset-edge / --inset-shadow.
   Sve sto je "utisnuto" uzima ove tokene (ili klasu .hw-inset). Nema drugih nijansi sive za utisnute delove.
   KADA (tray) = prozor u panelu kroz koji se vidi pozadina stranice: --tray-bg (= --page) / --tray-shadow (klasa .hw-tray).
   ISPUPCEN RED (raised) = red od istog brusenog metala kao panel, lebdi iznad kade: --raised-bg / --raised-size / --raised-shadow (klasa .hw-raised).
   Balans: kada (tamno) -> ispupcen red (svetlo) -> utisnuti delovi u redu (--inset-bg). */
html[data-theme] .hw-tray{padding:10px;border-radius:14px;background:var(--tray-bg)!important;box-shadow:var(--tray-shadow)!important}
html[data-theme] .hw-raised{background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--rub-edge)!important;box-shadow:var(--raised-shadow)!important}
html[data-theme] .fx-row,html[data-theme] .nd-collab-row,html[data-theme] .jb-vote-item,html[data-theme] .hw-inset{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;
 box-shadow:var(--inset-shadow)!important;color:var(--t1)}
html[data-theme] .fx-row.is-now{border-color:var(--acc)!important}

/* ---------- 12. Fields ---------- */
html[data-theme] .fx-field{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;color:var(--t1)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)!important}
html[data-theme] .fx-field::placeholder{color:var(--t3)}
html[data-theme] .lv-dd-item{color:var(--t1)}
html[data-theme] .lv-dd-item:hover,html[data-theme] .lv-dd-item.is-active{background:var(--chan)}

/* ---------- 13. Displays and status (always dark screens) ---------- */
html[data-theme] .fx-lcd,html[data-theme] .hw-screen{background:linear-gradient(180deg,#0e1013,#060708)!important;border:1px solid #0d0e10!important;
 box-shadow:0 1px 0 var(--face-hi),inset 0 1px 4px rgba(0,0,0,.85)!important;color:var(--lcd)}
html[data-theme] .fx-lcd-text{color:var(--lcd)!important;text-shadow:0 0 8px color-mix(in srgb,var(--lcd) 60%,transparent)}
html[data-theme] .fx-status{background:var(--screen)!important;border:1px solid var(--screen-edge)!important;color:#f3f4f6!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)!important}

/* ---------- 14. Waveform (3-band look) ---------- */
html[data-theme] .jb-wave{background:var(--screen)!important;border:1px solid var(--screen-edge);border-radius:7px;box-shadow:inset 0 1px 4px rgba(0,0,0,.9)}
html[data-theme] .jb-wave-bar--top{background:linear-gradient(to top,var(--wf-high) 0 22%,var(--wf-mid) 22% 52%,var(--wf-low) 52%)!important}
html[data-theme] .jb-wave-bar--bot{background:linear-gradient(to bottom,var(--wf-high) 0 22%,var(--wf-mid) 22% 52%,var(--wf-low) 52%)!important}
html[data-theme] .jb-wave-bar.is-played,html[data-theme] .jb-wave .is-played{background:var(--wf-played)!important;opacity:.7}
html[data-theme] .jb-wave-head{background:var(--wf-head)!important}

/* ---------- 15. Content is never tinted ---------- */
html[data-theme] img,html[data-theme] video,html[data-theme] iframe{filter:none!important}

/* ---------- 16. Theme switch in the top bar ---------- */
.hw-switch{display:flex;align-items:center;gap:14px}
.hw-switch .hw-cap{font-size:9.5px;font-weight:600;letter-spacing:.8px;color:var(--t2);text-align:center;margin-bottom:3px}
.hw-panel{display:flex;align-items:center;gap:6px;font-size:9.5px;font-weight:600;letter-spacing:.6px;color:var(--t2);background:none;border:0;cursor:pointer;padding:0}
.hw-panel .hw-slot{position:relative;width:40px;height:16px;border-radius:4px;background:#121316;box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 1px 0 var(--face-hi)}
.hw-panel .hw-slot b{position:absolute;top:2px;left:2px;width:18px;height:12px;border-radius:3px;background:linear-gradient(90deg,#9aa0a8,#f4f5f6 45%,#a8adb5);box-shadow:0 1px 2px rgba(0,0,0,.6);transition:left .15s}
html[data-theme="graphite"] .hw-panel .hw-slot b{left:20px}
.hw-leds{display:flex;gap:7px}
.hw-leds button{display:flex;gap:2px;padding:4px;border-radius:7px;cursor:pointer;background:linear-gradient(var(--rub-hi),var(--rub-lo));border:1px solid var(--rub-edge);box-shadow:0 1px 0 var(--rub-drop)}
.hw-leds button i{display:block;width:6px;height:6px;border-radius:50%}
.hw-leds button[aria-pressed="true"]{border-color:var(--acc);box-shadow:0 0 8px color-mix(in srgb,var(--acc) 60%,transparent)}
@media (prefers-reduced-motion:reduce){.hw-panel .hw-slot b{transition:none}}

/* ===================== v2 additions ===================== */
/* tip amounts (Jukebox + Tip popover): selected amount lit like a pad */
html[data-theme] .jb-donate-amt.is-active,html[data-theme] .jb-donate-amt.active,html[data-theme] .jb-donate-amt[aria-pressed="true"],html[data-theme] .jb-donate-amt.is-selected{
 color:var(--lcd)!important;box-shadow:inset 0 2px 6px rgba(0,0,0,.35),0 0 0 1px color-mix(in srgb,var(--lcd) 45%,transparent)!important}
/* every play button in rows/lists = green ring */
html[data-theme] .hw-play{border-radius:50%!important;background:radial-gradient(circle at 50% 35%,var(--rub-hi),var(--rub-lo) 70%)!important;color:var(--rub-text)!important;
 border:2px solid var(--play)!important;box-shadow:0 0 10px color-mix(in srgb,var(--play) 55%,transparent),inset 0 0 6px color-mix(in srgb,var(--play) 30%,transparent),0 2px 0 var(--rub-drop)!important}
/* indicator windows: Protected badge, small status tags */
html[data-theme] .hw-indicator{background:var(--screen)!important;border:1px solid var(--screen-edge)!important;color:#f3f4f6!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)!important}
html[data-theme] .hw-indicator--lcd{color:var(--lcd)!important;text-shadow:0 0 6px color-mix(in srgb,var(--lcd) 60%,transparent)}
/* text on faceplates */
html[data-theme] .fx-panel{color:var(--t1)}

/* passport stats: small LCD window, label OUTSIDE below in panel text colour */
html[data-theme] .hw-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
html[data-theme] .hw-stats.hw-stats--2{grid-template-columns:1fr 1fr}
html[data-theme] .hw-stat-win{padding:3px;border-radius:10px;background:linear-gradient(#2a2d33,#15171a)!important;border:1px solid #0d0e10!important;box-shadow:0 1px 0 var(--face-hi),inset 0 1px 0 rgba(255,255,255,.08)!important}
html[data-theme] .hw-stat-win>*{border-radius:7px}
html[data-theme] .hw-stat-lb{display:block;margin-top:6px;font-size:12.5px;font-weight:500;color:var(--t1)}

/* billboard: floats (no panel), three minimal picture lights washing light down */
html[data-theme] .fx-billboard{position:relative;background:none!important;border:0!important;box-shadow:none!important;padding:72px 0 0!important}
html[data-theme] .fx-billboard-halo{position:absolute;left:0;right:0;top:46px;height:70px;z-index:0;pointer-events:none;filter:blur(20px);
 background:radial-gradient(ellipse 12% 60% at 18% 80%,rgba(255,222,175,.22),transparent 70%),radial-gradient(ellipse 12% 60% at 50% 80%,rgba(255,222,175,.22),transparent 70%),radial-gradient(ellipse 12% 60% at 82% 80%,rgba(255,222,175,.22),transparent 70%)}
html[data-theme="pearl"] .fx-billboard-halo{opacity:.55;mix-blend-mode:multiply;filter:blur(24px);
 background:radial-gradient(ellipse 14% 70% at 18% 80%,rgba(160,120,60,.22),transparent 70%),radial-gradient(ellipse 14% 70% at 50% 80%,rgba(160,120,60,.22),transparent 70%),radial-gradient(ellipse 14% 70% at 82% 80%,rgba(160,120,60,.22),transparent 70%)}
html[data-theme] .fx-billboard-lamp{position:absolute;top:22px;width:15%;height:48px;z-index:3;pointer-events:none;transform:translateX(-50%)}
/* Selector fix: halo is first div — lamps are nth-child 2/3/4 (not nth-of-type 1/2/3). */
html[data-theme] .fx-billboard-lamp:nth-child(2){left:18%} html[data-theme] .fx-billboard-lamp:nth-child(3){left:50%} html[data-theme] .fx-billboard-lamp:nth-child(4){left:82%}
html[data-theme] .fx-billboard-stage::before{display:none!important}
html[data-theme] .fx-lamp-mount{position:absolute;left:50%;top:30px;transform:translateX(-50%);width:30px;height:12px;border-radius:3px;background:linear-gradient(#c9cdd3,#8c9199);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 6px 14px rgba(0,0,0,.6)}
html[data-theme="graphite"] .fx-lamp-mount{background:linear-gradient(#45484e,#1f2023)}
html[data-theme] .fx-lamp-mount::after{content:"";position:absolute;left:50%;top:-11px;width:2px;height:11px;transform:translateX(-50%);background:linear-gradient(90deg,#141118,#3a3542,#141118)}
html[data-theme] .fx-lamp-bar{position:absolute;left:0;right:0;top:12px;height:8px;border-radius:5px;
 background:var(--brush2),linear-gradient(#f2f3f5,#a9aeb6 60%,#7d828a);background-size:1024px 256px,cover;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 8px 18px rgba(0,0,0,.7)}
html[data-theme="graphite"] .fx-lamp-bar{background:linear-gradient(#55585f,#2a2c30 60%,#151618)}
html[data-theme] .fx-lamp-bar::after{content:"";position:absolute;left:3%;right:3%;bottom:-1px;height:3px;border-radius:2px;background:#0b0a0e}
html[data-theme] .fx-billboard-stage{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1px var(--metal-edge),0 24px 40px -24px rgba(0,0,0,.55)!important}
html[data-theme] .fx-billboard-wash{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;z-index:2;background:
 radial-gradient(ellipse 17% 80% at 18% -6%,rgba(255,230,195,.32),rgba(255,230,195,.09) 55%,transparent 76%),
 radial-gradient(ellipse 17% 80% at 50% -6%,rgba(255,230,195,.32),rgba(255,230,195,.09) 55%,transparent 76%),
 radial-gradient(ellipse 17% 80% at 82% -6%,rgba(255,230,195,.32),rgba(255,230,195,.09) 55%,transparent 76%)}
@media (prefers-reduced-motion:no-preference){html[data-theme] .fx-billboard-wash{animation:hwLampsOn .6s ease-out both}}
@keyframes hwLampsOn{from{opacity:0}to{opacity:1}}

/* mini 3-band waveform in track rows */
html[data-theme] .hw-wf{flex:none;width:430px;height:38px;padding:3px 5px;border-radius:7px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 1px 4px rgba(0,0,0,.9);
 display:flex;align-items:center;gap:0;overflow:hidden}
html[data-theme] .hw-wf i{flex:1 1 0;min-width:0;margin-right:.35px;border-radius:0;
 background:linear-gradient(to bottom,var(--wf-low) 0 24%,var(--wf-mid) 24% 39%,var(--wf-high) 39% 61%,var(--wf-mid) 61% 76%,var(--wf-low) 76%)}
html[data-theme] .hw-wf i.is-played{background:var(--wf-played);opacity:.75}
@media (max-width:1100px){html[data-theme] .hw-wf{display:none}}

/* ===================== v3: legacy variables mapped to the theme ===================== */
html[data-theme]{
 --bg:var(--page);--bg2:var(--page);--card:var(--chan);--card2:var(--chan);
 --border:var(--line);--border-strong:var(--metal-edge);
 --text:var(--t1);--muted:var(--t2);
 --purple:var(--acc2);--pink:var(--acc);--green:var(--lcd);
 --grad:linear-gradient(135deg,var(--acc),var(--acc2));
 --card-border:var(--metal-edge);--card-border-hover:var(--acc);
 --card-shadow:inset 0 1px 0 var(--face-hi),0 1px 2px rgba(0,0,0,.12);
 --card-shadow-hover:inset 0 1px 0 var(--face-hi),0 0 0 1px var(--acc),0 6px 16px -8px rgba(0,0,0,.4);
}

/* ---- text tuning per material (readability) ---- */
html[data-theme="graphite"]{--t2:#b4b9c2;--t3:#959ba7}
html[data-theme="pearl"]{--t3:#6b717c}
/* LED-green text outside screens must stay readable on light metal */
html[data-theme]{--lcd-text:var(--lcd);--on-dark:#f3f4f6;--on-dark-2:#c9ccd3}
html[data-theme="pearl"]{--lcd-text:color-mix(in srgb,var(--lcd) 52%,#06140c)}
html[data-theme] .pf-verified,html[data-theme] #artistPageVerified,
html[data-theme] .jb-genre-row.active .jb-genre-row-name,
html[data-theme] .jb-vote-item.playing .jb-vote-track,html[data-theme] .jb-vote-item.playing .fx-mq-inner,
html[data-theme] .jb-donate-amt.active,html[data-theme] .fx-key.is-following,html[data-theme] .fx-key.hw-on{color:var(--lcd-text)!important}
html[data-theme] .pf-verified,html[data-theme] #artistPageVerified{border-color:color-mix(in srgb,var(--lcd-text) 55%,transparent)!important;background:color-mix(in srgb,var(--lcd-text) 10%,transparent)!important}

/* logo follows panel text */
html[data-theme] .nav-logo-word--fortis{color:var(--t1)!important}
html[data-theme] .nav-logo-word--music{color:var(--t2)!important}

/* content overlays (on photos, covers, video) always light text */
html[data-theme] .lv-pill,html[data-theme] .lv-card-pills,html[data-theme] .pf-spotlight-caption,
html[data-theme] .pf-spotlight-scrim,html[data-theme] .card .cap,html[data-theme] .lv-card-cover *{color:var(--on-dark)!important}

/* jukebox: no concert photo, show the metal */
html[data-theme] #now-sub-jukebox{--jb-bg:transparent!important;background:transparent!important}
html[data-theme] #now-sub-jukebox .jb-room-header,html[data-theme] #jbRoom{background:transparent!important}

/* legacy buttons (.fm-btn) become hardware keys */
html[data-theme] .fm-btn{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop),0 5px 10px -6px rgba(0,0,0,.35)!important;text-shadow:none!important}
html[data-theme] .fm-btn-primary{border:2px solid var(--acc)!important;
 box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 14px color-mix(in srgb,var(--acc) 55%,transparent),inset 0 0 10px color-mix(in srgb,var(--acc) 35%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] .fm-btn-danger{border:2px solid var(--alert)!important}
html[data-theme="graphite"]{--t3:#a2a7b1} html[data-theme="pearl"]{--t3:#5e646f}
/* small indicators: access pill (Free / €10) = dark indicator window */
html[data-theme] .lv-access-pill{background:var(--screen)!important;border:1px solid var(--screen-edge)!important;color:#f3f4f6!important}
/* passport LCD: digits right-aligned over ghost segments (like the Jukebox room) */
html[data-theme] .hw-stat-win .fx-seg-row{display:flex;justify-content:flex-end;align-items:center;gap:2px;padding:6px 10px 5px;height:34px;box-sizing:border-box}
html[data-theme] .hw-stat-win .fx-seg-sym{line-height:1}
/* logo mark and search fields on light metal */
html[data-theme="pearl"] .nav-logo-mark{filter:brightness(0) saturate(100%) opacity(.88)!important}
html[data-theme] .dr-fg-search,html[data-theme] :is(#page-live,#lrBrowse) .lv-search{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)!important;color:var(--t2)!important}
html[data-theme] .dr-fg-search input{color:var(--t1)!important}
/* plain form controls on legacy pages (events, fans, upload, settings) */
html[data-theme] select,html[data-theme] textarea,
html[data-theme] input[type="text"]:not([style*="transparent"]),html[data-theme] input[type="email"],html[data-theme] input[type="password"],
html[data-theme] input[type="number"],html[data-theme] input[type="url"],html[data-theme] input[type="tel"],html[data-theme] input[type="date"]{
 background-color:var(--chan)!important;color:var(--t1)!important;border-color:var(--rub-edge)!important}
html[data-theme] select option{background:var(--metal-hi);color:var(--t1)}
html[data-theme] div[style*="background:rgba(0,0,0,0.3)"]{background:var(--chan)!important}
html[data-theme] ::placeholder{color:var(--t3)!important;opacity:1}
/* phone: switch lives in the navigation drawer, not in the top bar */
.mob-drawer-hw{display:none}
@media (max-width:768px){
 #hwSwitch{display:none!important}
 html[data-theme] nav.hw-screws::after{display:none}
 .mob-drawer-hw.hw-switch{display:flex;margin-left:auto;margin-right:10px}
 html[data-theme="pearl"] .mob-nav-logo-img{filter:brightness(0) saturate(100%) opacity(.88)!important}
}
/* phone navigation drawer = faceplate with rubber keys */
html[data-theme] #mob-drawer{background:var(--brush2),linear-gradient(180deg,var(--metal-hi),var(--metal-lo))!important;background-size:1024px 256px,cover!important;
 border-top:1px solid var(--metal-edge)!important;box-shadow:0 -12px 30px -12px rgba(0,0,0,.45)!important;color:var(--t1)}
html[data-theme] .mob-drawer-btn{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important;color:var(--rub-text)!important}
html[data-theme] .mob-drawer-btn-label{color:var(--rub-text)!important}
html[data-theme] .mob-drawer-btn-sub,html[data-theme] .mob-drawer-section-label,html[data-theme] .mob-drawer-title-text{color:var(--t2)!important}
html[data-theme] .mob-drawer-handle{background:var(--rub-edge)!important}
html[data-theme] .mob-drawer-close{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important}
html[data-theme] .mob-drawer-title-badge{background:transparent!important;border:1px solid var(--acc)!important;color:var(--t1)!important}

/* =====================================================================
   v4 — 1:1 with docs/design/hardware references (Claude, 2026-10-08)
   ===================================================================== */
@font-face{font-family:"FxSeg14";src:url("../assets/hw/fonts/DSEG14Classic-Bold.woff2") format("woff2");font-display:swap}

/* page: flat colour (no texture); texture only on panels and cards */
html[data-theme] body{background:var(--page)!important;background-image:none!important}

/* every panel / card faceplate is brushed metal */
html[data-theme] .jb-player-card,html[data-theme] .jb-vote-card,html[data-theme] .jb-chat-card,
html[data-theme] .jb-room-hero-bar,html[data-theme] .jb-track-passport,html[data-theme] .jb-col-left,
html[data-theme] .jb-rail-card,html[data-theme] .fm-contact-card,html[data-theme] article.lv-card,
html[data-theme] div[style*="background:var(--card);border:1px solid var(--card-border)"]{
 background:var(--brush2),linear-gradient(100deg,transparent 30%,var(--sheen) 48%,transparent 62%),linear-gradient(180deg,var(--metal-hi),var(--metal-lo))!important;
 background-size:1024px 256px,cover,cover!important;border:1px solid var(--metal-edge)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),inset 0 -1px 0 rgba(0,0,0,.06),var(--face-shadow)!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:var(--t1)}
html[data-theme] .lv-up-row{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.08),0 1px 0 var(--face-hi)!important}

/* Join the Shield: logo mark follows the key text */
html[data-theme="pearl"] .nav-join-mark{filter:brightness(0) saturate(100%) opacity(.85)!important}

/* LED bulb: 12px in black bezel (reference .bulb) */
html[data-theme] .fx-led{width:12px!important;height:12px!important;border-radius:50%!important;flex:none}
html[data-theme] .fx-led.is-live{--c:var(--play)}
html[data-theme] .fx-led::before,html[data-theme] .fx-led::after{display:none!important}

/* status window (LIVE / REPLAY / SAT 21:00) = reference .st */
html[data-theme] .fx-status{display:inline-flex!important;align-items:center;gap:7px;height:28px!important;padding:0 11px 0 9px!important;border-radius:999px!important;
 background:var(--screen)!important;border:1px solid rgba(255,255,255,.06)!important;color:#f3f4f6!important;font-weight:700!important;font-size:12.5px!important;
 letter-spacing:.2px;line-height:1;white-space:nowrap;flex:none;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)!important}
html[data-theme] .fx-status .fx-led{width:11px!important;height:11px!important}

/* panel head (reference .ph) */
html[data-theme] .fx-panel-head{gap:10px}
html[data-theme] .fx-panel-title{font-size:16px;font-weight:600}
html[data-theme] .fx-panel-meta{font-size:13.5px;color:var(--t2)}

/* passport rows (On air) = reference .plate */
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-row{display:flex!important;align-items:center;gap:13px!important;padding:7px 10px!important;border-radius:12px!important;
 background:var(--chan)!important;border:1px solid var(--rub-edge)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.08),0 1px 0 var(--face-hi)!important;margin-bottom:6px}
html[data-theme="graphite"] :is(#page-artist,.pf-app) .pf-onair-row{box-shadow:inset 0 1px 3px rgba(0,0,0,.35),0 1px 0 rgba(255,255,255,.04)!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-mid{flex:1;min-width:0}
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-title{font-size:14.5px!important;font-weight:600!important;color:var(--t1)!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-mid .fx-panel-meta{display:block;font-size:13px!important;margin-top:1px;color:var(--t2)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-row .fx-key{height:28px!important;padding:0 12px!important;font-size:12.5px!important;border-radius:9px!important;flex:none}

/* avatar live LED (reference .av .live) */
html[data-theme] :is(#page-artist,.pf-app) .pf-avatar-wrap--live::after{top:5%!important;right:3%!important;width:18%!important;height:18%!important;
 background:radial-gradient(circle at 35% 30%,#fff 0 12%,var(--alert) 45%,#8a0f20)!important;border:3px solid var(--metal-hi)!important;box-shadow:0 0 10px var(--alert)!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-avatar-wrap .fm-profile-avatar{border:3px solid var(--metal-hi)!important;box-shadow:0 0 0 1px var(--metal-edge),0 8px 20px rgba(0,0,0,.25)!important}

/* banner ledge: dots + LCD counter (reference .ledge) */
html[data-theme] .fx-billboard-bar .fm-banner-dot{width:7px!important;height:7px!important;min-width:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:var(--rub-edge)!important;box-shadow:none!important;transition:width .15s}
html[data-theme] .fx-billboard-bar .fm-banner-dot.is-active{width:18px!important;border-radius:4px!important;background:var(--acc)!important;box-shadow:0 0 8px var(--acc)!important}
html[data-theme] .fx-billboard-count{font-family:"FxSeg14",ui-monospace,monospace!important;font-size:12px!important;font-weight:400!important;color:var(--t2)!important;letter-spacing:0}

/* tabs as pads (reference) */
html[data-theme] .fx-well.lv-tab-well,html[data-theme] .pf-tab-well{padding:5px!important;border-radius:15px!important;gap:4px!important}
html[data-theme] .lv-tab-key{height:36px!important;padding:0 15px!important;border-radius:11px!important;font-size:14.5px!important;font-weight:600!important;gap:8px}
html[data-theme] .lv-tab-key::after{left:8px!important;right:8px!important;bottom:3px!important;height:3px!important}
html[data-theme] .lv-tab-n{font-weight:600}

/* protected track rows (reference .trk) */
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row{display:grid!important;grid-template-columns:34px 46px minmax(0,1fr) auto 92px auto!important;align-items:center;gap:14px!important;
 padding:7px 10px!important;border-radius:12px!important;min-height:0!important;height:auto!important}
html[data-theme] .hw-play{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;border-radius:50%!important;flex:none;
 display:inline-flex!important;align-items:center;justify-content:center;font-size:0!important;position:relative;aspect-ratio:1/1}
html[data-theme] .hw-play::after{content:"";position:absolute;left:13px;top:10px;border-left:9px solid var(--rub-text);border-top:6.5px solid transparent;border-bottom:6.5px solid transparent}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-cover{width:46px!important;height:46px!important;border-radius:9px!important;overflow:hidden;background:var(--well)}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-main{display:flex!important;align-items:center;gap:18px;min-width:0}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-main-text{flex:1;min-width:0}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-title{font-size:14.5px!important;font-weight:600!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-main-text .fx-panel-meta{font-size:13px!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-plays{font-size:13px;color:var(--t2);text-align:right}
html[data-theme] .hw-indicator{display:inline-flex!important;align-items:center;gap:6px;height:28px!important;padding:0 12px!important;border-radius:999px!important;font-size:12.5px!important;font-weight:600!important;white-space:nowrap}
html[data-theme] .hw-indicator--lcd::before{content:"";width:12px;height:12px;flex:none;background:currentColor;
 -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center/contain no-repeat;
 mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center/contain no-repeat}

/* waveform (row + Jukebox): SVG from js/core/hwWave.js */
html[data-theme] .hw-wf{display:block!important;flex:none;width:430px!important;height:38px!important;padding:3px 5px!important;box-sizing:border-box;border-radius:7px;
 background:var(--screen)!important;border:1px solid var(--screen-edge);box-shadow:inset 0 1px 4px rgba(0,0,0,.9);overflow:hidden}
.hw-wave{position:relative}
.hw-wave .hw-wave-on,.hw-wave .hw-wave-played{position:absolute;inset:0}
.hw-wf .hw-wave-on{position:relative;inset:auto;width:100%;height:100%}
.hw-wave svg{display:block;width:100%;height:100%}
.hw-wave .hw-wave-played{clip-path:inset(0 calc((1 - var(--hw-p, 0)) * 100%) 0 0);pointer-events:none}
.hw-wave .hw-wave-head{position:absolute;top:0;bottom:0;left:calc(var(--hw-p, 0) * 100%);width:2px;margin-left:-1px;background:var(--wf-head,#ff3352);box-shadow:0 0 6px rgba(255,51,82,.7);opacity:0;pointer-events:none}
.hw-wave.is-started .hw-wave-head{opacity:1}
.hw-wave-flat{position:absolute;left:4%;right:4%;top:50%;height:1px;background:rgba(255,255,255,.18)}
html[data-theme] #jbWave{position:relative;background:var(--screen)!important;border:6px solid #1a1c1f!important;border-radius:10px!important;
 box-shadow:inset 0 0 0 1px #000,0 1px 0 var(--face-hi)!important;padding:0!important;overflow:hidden;cursor:pointer;display:block!important}
html[data-theme] #jbWave .hw-wave-on,html[data-theme] #jbWave .hw-wave-played{top:12px;bottom:12px}
html[data-theme] #jbWave::before,html[data-theme] #jbWave::after{content:"";position:absolute;left:8px;right:8px;height:4px;pointer-events:none;
 background:repeating-linear-gradient(90deg,rgba(255,255,255,.45) 0 1px,transparent 1px 10%)}
html[data-theme] #jbWave::before{top:3px} html[data-theme] #jbWave::after{bottom:3px}

/* player transport (reference kit: prev 42 · CUE 62 · PLAY 62 · next 42 · knob · AUTOPLAY · VU) */
html[data-theme] .jbx-transport{display:flex!important;align-items:center;gap:14px;flex-wrap:nowrap}
html[data-theme] .jbx-transport-main{display:flex!important;align-items:center;gap:10px}
html[data-theme] .jbx-transport-side{display:flex!important;align-items:center;gap:14px;margin-left:auto}
html[data-theme] #jbPrevBtn,html[data-theme] #jbNextBtn{width:42px!important;height:42px!important;min-width:42px}
html[data-theme] #jbCueBtn{width:62px!important;height:62px!important;min-width:62px;font-weight:700!important;font-size:13px!important;letter-spacing:.5px;color:var(--rub-text)!important;
 border:3px solid var(--cue)!important;box-shadow:0 0 14px color-mix(in srgb,var(--cue) 60%,transparent),inset 0 0 10px color-mix(in srgb,var(--cue) 35%,transparent),0 3px 0 var(--rub-drop)!important}
html[data-theme] #now-sub-jukebox #jbRoom #jbPlayBtn,html[data-theme] #jbPlayBtn{width:62px!important;height:62px!important;min-width:62px}
html[data-theme] #jbCueBtn:disabled,html[data-theme] #jbPlayBtn:disabled,html[data-theme] #jbPrevBtn:disabled,html[data-theme] #jbNextBtn:disabled{opacity:.55}
html[data-theme] .jbx-vol-lbl{font-size:9.5px!important;font-weight:600!important;letter-spacing:.8px!important;text-transform:uppercase;color:var(--t2)!important}
html[data-theme] .jbx-vol-n{display:none}
html[data-theme] .jbx-auto-col{display:flex!important;flex-direction:column-reverse;align-items:center;gap:5px}
html[data-theme] .jbx-auto-meta{display:flex;align-items:center;gap:0}
html[data-theme] .jbx-auto-meta .fx-led{display:none}
html[data-theme] .jbx-auto-meta .fx-label{font-size:9.5px!important;font-weight:600!important;letter-spacing:.8px!important;text-transform:uppercase;color:var(--t2)!important}
html[data-theme] #jbAutoBtn.fx-switch{width:44px!important;height:18px!important}
.hw-vu{display:flex;gap:3px;padding:6px 7px;border-radius:6px;background:var(--screen,#0b0c0e);box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 1px 0 var(--face-hi,transparent)}
.hw-vu i{width:5px;height:16px;border-radius:1px;background:color-mix(in srgb,var(--play,#2ff07f) 18%,#0b0c0e)}
.hw-vu i.hw-vu-y{background:color-mix(in srgb,#ffb02e 18%,#0b0c0e)} .hw-vu i.hw-vu-r{background:#3a1015}
.hw-vu i.on{background:var(--play,#2ff07f);box-shadow:0 0 5px color-mix(in srgb,var(--play,#2ff07f) 70%,transparent)}
.hw-vu i.hw-vu-y.on{background:#ffb02e;box-shadow:0 0 5px rgba(255,176,46,.7)} .hw-vu i.hw-vu-r.on{background:var(--alert,#ff3352);box-shadow:0 0 5px var(--alert,#ff3352)}

/* Jukebox tip: amounts readable keys even when locked for guests */
html[data-theme] .jb-donate-card.jb-disabled{opacity:1!important}
html[data-theme] .jb-donate-card.jb-disabled .jb-donate-amt{opacity:1!important;color:var(--rub-text)!important;cursor:not-allowed}
html[data-theme] .jb-donate-card.jb-disabled .jb-donate-amt.active{color:var(--lcd-text)!important}
html[data-theme] #jbTipGate,html[data-theme] .jb-tip-note{color:var(--t2)!important;opacity:1!important}
html[data-theme] #jbVolKnobVal{display:none!important}
html[data-theme] .jbx-transport{gap:10px!important}
html[data-theme] .jbx-transport-main{gap:8px!important}
html[data-theme] .jbx-transport-side{gap:10px!important}
html[data-theme] #jbRoom .hw-vu{gap:2px;padding:6px 6px}
html[data-theme] #jbRoom .hw-vu i{width:4px}
/* hardware keys have no glossy blob */
html[data-theme] .fx-play::before,html[data-theme] #now-sub-jukebox #jbRoom #jbPlayBtn::before,html[data-theme] .fx-rkey::before{display:none!important}
html[data-theme] #jbCueBtn:disabled,html[data-theme] #jbPlayBtn:disabled,html[data-theme] #jbPrevBtn:disabled,html[data-theme] #jbNextBtn:disabled{opacity:.8!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-title,html[data-theme] :is(#page-artist,.pf-app) .pf-track-title{line-height:1.3!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-mid .fx-panel-meta,html[data-theme] :is(#page-artist,.pf-app) .pf-track-main-text .fx-panel-meta{line-height:1.3!important}
html[data-theme] .fm-scroll-hint span{color:var(--t2)!important}
html[data-theme] #now-sub-jukebox #jbDash .jb-wait-chip{opacity:1!important;color:var(--rub-text)!important}
html[data-theme] .drop-zone .icon{color:var(--t2)!important}
/* empty cover placeholder is content (a dark sleeve), not a panel */
html[data-theme] .jb-cover-neutral{background:linear-gradient(145deg,#2a1f45,#120b22)!important}
html[data-theme] #lvnDeniedBack{height:36px;padding:0 16px;border-radius:10px;margin-top:6px}
@media (max-width:768px){
 html[data-theme] .jbx-transport{flex-wrap:wrap!important;justify-content:center;row-gap:12px}
 html[data-theme] .jbx-transport-side{margin-left:0!important}
}
html[data-theme] .pf-pass-section-meta{font-size:13.5px;font-weight:400;color:var(--t2);margin-left:2px}
.hw-wave .hw-b-lo{fill:var(--wf-low,#2c6bff)} .hw-wave .hw-b-mi{fill:var(--wf-mid,#ff9a2e)} .hw-wave .hw-b-hi{fill:var(--wf-high,#fff)}
.hw-wave .hw-wave-played .hw-b-lo{fill:#2a3550} .hw-wave .hw-wave-played .hw-b-mi{fill:#5a4a3c} .hw-wave .hw-wave-played .hw-b-hi{fill:#6b6f78}
/* volume knob = reference: knurled dark cap, white indicator, LED arc that follows the volume */
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob-seat{width:62px!important;height:62px!important;border-radius:50%;
 background:conic-gradient(from 225deg,var(--acc) 0 calc(var(--hw-vol,1) * 270deg),color-mix(in srgb,var(--acc) 14%,transparent) calc(var(--hw-vol,1) * 270deg) 270deg,transparent 270deg)!important;
 -webkit-mask:radial-gradient(circle,transparent 26px,#000 27px);mask:radial-gradient(circle,transparent 26px,#000 27px);
 filter:drop-shadow(0 0 4px color-mix(in srgb,var(--acc) 50%,transparent))}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob-seat{-webkit-mask:none;mask:none}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob-seat::before{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--metal-hi);pointer-events:none}
html[data-theme] #jbRoom .jbx-knob-arc{display:none!important}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob-well{inset:5px!important;background:var(--well)!important;box-shadow:inset 0 2px 4px rgba(0,0,0,.35)!important}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob{width:46px!important;height:46px!important;background:repeating-conic-gradient(#2a2c31 0 6deg,#1b1c20 6deg 12deg)!important;
 box-shadow:0 4px 8px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.15)!important}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob::after{inset:7px!important;background:radial-gradient(circle at 40% 30%,#4b4f57,#1f2125 70%)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob-rot{z-index:2}
html[data-theme] #jbRoom .jbx-vol-wrap .fx-knob-dot{top:5px!important;width:3px!important;height:13px!important;margin-left:-1.5px!important;border-radius:2px!important;background:#fff!important;box-shadow:none!important}

/* =====================================================================
   v5 — polish pass (Claude, 2026-10-08)
   ===================================================================== */
/* billboard sits higher: lamp bar level with the passport top, tighter ledge under the banner */
html[data-theme] .fx-billboard{padding-top:40px!important}
html[data-theme] .fx-billboard-lamp{top:-10px}
html[data-theme] .fx-billboard-halo{top:14px}
html[data-theme] :is(#page-artist,.pf-app) .fx-billboard-bar{min-height:36px!important;padding:6px 6px 0!important}
/* lamps are lit: warm diffuser under each head + a hotspot on the banner right below it (reads on light banners too) */
html[data-theme] .fx-lamp-bar::after{background:linear-gradient(90deg,transparent,#fff4e0 10%,#ffe7c2 50%,#fff4e0 90%,transparent)!important;
 box-shadow:0 1px 5px rgba(255,228,185,.95),0 4px 16px rgba(255,214,150,.6)}
html[data-theme] .fx-billboard-stage::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:
 radial-gradient(ellipse 7% 26% at 18% 0,rgba(255,246,228,.5),rgba(255,238,210,.16) 55%,transparent 80%),
 radial-gradient(ellipse 7% 26% at 50% 0,rgba(255,246,228,.5),rgba(255,238,210,.16) 55%,transparent 80%),
 radial-gradient(ellipse 7% 26% at 82% 0,rgba(255,246,228,.5),rgba(255,238,210,.16) 55%,transparent 80%)}
@media (prefers-reduced-motion:no-preference){html[data-theme] .fx-billboard-stage::after{animation:hwLampsOn .6s ease-out both}}

/* LED bulbs in panel heads: the title clips overflow (ellipsis) — give the bezel room */
html[data-theme] .fx-panel-title:has(>.fx-led){padding:4px 0 4px 4px;margin:-4px 0 -4px -4px}

/* displays are flat-sided windows (like the passport LCDs) — never pills */
html[data-theme] .fx-lcd{border-radius:6px!important}
html[data-theme] .fx-status,html[data-theme] .hw-indicator{border-radius:7px!important}
html[data-theme] .lv-status-pill{display:inline-flex!important;align-items:center;gap:6px;height:24px!important;padding:0 9px 0 7px!important;border-radius:6px!important;
 background:var(--screen)!important;border:1px solid var(--screen-edge)!important;color:#f3f4f6!important;font-weight:700!important;font-size:11.5px!important;
 letter-spacing:.3px;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)!important}
html[data-theme] .lv-status-pill .fx-led{width:10px!important;height:10px!important}
html[data-theme] .nd-stat-well{border-radius:10px!important}

/* admin bar = a slim faceplate under the top bar (rounded, inset label, Open Admin as a key) */
html[data-theme] .fm-admin-toolbar{margin-top:6px;height:32px!important;padding:0 5px 0 16px!important;border-radius:12px!important;overflow:visible!important}
html[data-theme] .fm-admin-toolbar-label{display:inline-flex;align-items:center;gap:9px;color:var(--t1)!important;font-size:10.5px!important;font-weight:700!important;letter-spacing:.16em!important}
html[data-theme] .fm-admin-toolbar-label::before{content:"";width:9px;height:9px;border-radius:50%;flex:none;--c:var(--alert);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);
 box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.35),0 0 8px color-mix(in srgb,var(--c) 75%,transparent)}
html[data-theme] .fm-admin-toolbar-btn{height:24px;padding:0 12px!important;border-radius:8px!important;font-size:12px!important;font-weight:600!important;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;color:var(--rub-text)!important;border:1px solid var(--alert)!important;
 box-shadow:0 0 0 1px color-mix(in srgb,var(--alert) 30%,transparent),0 0 10px color-mix(in srgb,var(--alert) 40%,transparent),0 2px 0 var(--rub-drop)!important}

/* Messages launcher = rubber key with LED; chat window = faceplate */
html[data-theme] #chatMinimizedTab{height:42px;padding:0 16px 0 14px!important;border-radius:12px!important;gap:10px!important;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop),0 12px 24px -10px rgba(0,0,0,.55)!important}
html[data-theme] #chatMinimizedTab::before{content:"";width:10px;height:10px;border-radius:50%;flex:none;--c:var(--info);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);
 box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.35),0 0 8px color-mix(in srgb,var(--c) 75%,transparent)}
html[data-theme] #chatMinimizedTab>span:first-child{color:var(--rub-text)!important;font-size:14px!important;font-weight:600!important;letter-spacing:0!important}
html[data-theme] #chatMsgBadge{background:var(--alert)!important;color:#fff!important;border-radius:6px!important}
html[data-theme] #artistChatPanel{background:var(--brush2),linear-gradient(180deg,var(--metal-hi),var(--metal-lo))!important;background-size:1024px 256px,cover!important;
 border:1px solid var(--metal-edge)!important;border-radius:14px!important;box-shadow:inset 0 1px 0 var(--face-hi),0 20px 50px -14px rgba(0,0,0,.6)!important;color:var(--t1)}
html[data-theme] #artistChatPanel>div:first-child,html[data-theme] #chatInputArea{border-color:var(--line)!important}
html[data-theme] #chatMsgInput{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;color:var(--t1)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)}

/* footer logo follows panel text (dark mark on Pearl) */
html[data-theme="pearl"] .footer-logo img{filter:brightness(0) saturate(100%) opacity(.88)!important}
html[data-theme] .footer-logo{color:var(--t1)!important}

/* ---- profile edit mode ---- */
/* edit bar = faceplate with LED; sits above the billboard and never under the lamps */
html[data-theme] .fm-edit-bar{background:var(--brush2),linear-gradient(180deg,var(--metal-hi),var(--metal-lo))!important;background-size:1024px 256px,cover!important;
 border:1px solid var(--metal-edge)!important;border-radius:14px!important;padding:8px 8px 8px 16px!important;box-shadow:inset 0 1px 0 var(--face-hi),var(--face-shadow)!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;z-index:45!important}
html[data-theme] .fm-edit-bar-label{color:var(--t1)!important;font-size:14px!important;font-weight:600!important}
html[data-theme] .fm-edit-bar-dot{width:11px!important;height:11px!important;--c:var(--cue);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%)!important;
 box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.35),0 0 10px color-mix(in srgb,var(--c) 75%,transparent)!important}
html[data-theme] .fm-edit-bar .fm-btn{height:34px!important;padding:0 16px!important;font-size:14px!important;border-radius:10px!important}
html[data-theme] :is(#page-artist,.pf-app) #artist-edit-banner:not([hidden])+.fx-billboard{margin-top:6px}

/* edit sections: content inset like every other panel */
html[data-theme] #artist-edit-grid .artist-edit-section{padding:0 18px 18px!important}
html[data-theme] #artist-edit-grid .artist-edit-section>.fx-panel-head{padding:13px 0 12px!important}
html[data-theme] #artist-edit-grid input[type="text"],html[data-theme] #artist-edit-grid input[type="email"],html[data-theme] #artist-edit-grid input[type="tel"],
html[data-theme] #artist-edit-grid input[type="url"],html[data-theme] #artist-edit-grid textarea,html[data-theme] #artist-edit-grid select{
 background:var(--chan)!important;border:1px solid var(--rub-edge)!important;color:var(--t1)!important;border-radius:10px!important;
 box-shadow:inset 0 1px 3px rgba(0,0,0,.12)!important;font-size:14px!important;font-family:inherit!important}
html[data-theme="graphite"] #artist-edit-grid input,html[data-theme="graphite"] #artist-edit-grid textarea,html[data-theme="graphite"] #artist-edit-grid select{box-shadow:inset 0 1px 3px rgba(0,0,0,.4)!important}
html[data-theme] #artist-edit-grid textarea{padding:10px 14px!important;line-height:1.5!important}
html[data-theme] #artist-edit-grid input::placeholder,html[data-theme] #artist-edit-grid textarea::placeholder{color:var(--t3)!important}
html[data-theme] #artist-edit-grid input:focus,html[data-theme] #artist-edit-grid textarea:focus,html[data-theme] #artist-edit-grid select:focus{border-color:var(--acc)!important;outline:none}
html[data-theme] #artist-edit-grid div[style*="text-transform:uppercase"]{color:var(--t2)!important;font-size:11px!important;font-weight:600!important;letter-spacing:.1em!important}
/* genres: main genre = key, picked genres = printed labels, sub list = recessed well */
html[data-theme] #edit-genre-main{height:34px;padding:0 34px 0 14px!important;border-radius:10px!important;cursor:pointer;
 background:linear-gradient(var(--rub-hi),var(--rub-lo)) !important;color:var(--rub-text)!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important}
html[data-theme] #edit-genre-main{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='3'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"),linear-gradient(var(--rub-hi),var(--rub-lo))!important;
 background-repeat:no-repeat!important;background-position:right 12px center,0 0!important}
html[data-theme] #edit-subgenre-list{background:var(--well)!important;border:1px solid var(--rub-edge)!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.18)!important}
html[data-theme] #edit-selected-genres>span,html[data-theme] .ftp-chip{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;
 color:var(--rub-text)!important;border-radius:8px!important;box-shadow:0 1px 0 var(--rub-drop)!important;font-size:12.5px!important;padding:4px 8px 4px 11px!important}
html[data-theme] #edit-selected-genres>span>span,html[data-theme] .ftp-chip-x{color:var(--t3)!important}
/* card background: upload pad + crop frame */
html[data-theme] #artist-cardbg-upload-area{border:2px dashed var(--rub-edge)!important;background:var(--well)!important;border-radius:12px!important}
html[data-theme] #artist-cardbg-upload-area div{color:var(--t2)!important}
html[data-theme] #artist-cardbg-upload-area div:first-child{color:var(--acc)!important}
html[data-theme] #artist-cardbg-crop-container{border:2px solid var(--metal-edge)!important;box-shadow:0 8px 18px -10px rgba(0,0,0,.5)}

/* toggles = hardware slide switch (dark slot, metal thumb, LED glow when on) — every form */
html[data-theme] .fm-toggle-wrap{width:46px!important;height:22px!important}
html[data-theme] .fm-toggle-slider{background:#121316!important;border:0!important;border-radius:5px!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 1px 0 var(--face-hi)!important}
html[data-theme] .fm-toggle-slider:before{width:22px!important;height:16px!important;left:3px!important;top:3px!important;border-radius:3px!important;
 background:linear-gradient(90deg,#9aa0a8,#f4f5f6 45%,#a8adb5)!important;box-shadow:0 1px 2px rgba(0,0,0,.6)!important}
html[data-theme] .fm-toggle-wrap input:checked+.fm-toggle-slider{background:#121316!important;
 box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 0 0 1px color-mix(in srgb,var(--play) 70%,transparent),0 0 8px color-mix(in srgb,var(--play) 45%,transparent)!important}
html[data-theme] .fm-toggle-wrap input:checked+.fm-toggle-slider:before{transform:translateX(18px)!important;background:linear-gradient(90deg,#9aa0a8,#f4f5f6 45%,#a8adb5)!important}
html[data-theme] .fm-toggle-wrap input:focus-visible+.fm-toggle-slider{outline:2px solid var(--acc);outline-offset:2px}
/* radio = LED in bezel */
html[data-theme] .fm-visibility-option{border-color:var(--line)!important;align-items:center!important}
html[data-theme] .fm-visibility-option input[type="radio"]{-webkit-appearance:none;appearance:none;width:13px;height:13px;margin:0 2px 0 3px!important;border-radius:50%;cursor:pointer;
 background:radial-gradient(circle at 35% 30%,#4a4d55,#1b1c20 70%);box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.3)}
html[data-theme] .fm-visibility-option input[type="radio"]:checked{--c:var(--play);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);
 box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.35),0 0 10px color-mix(in srgb,var(--c) 75%,transparent)}
html[data-theme] .fm-visibility-option input[type="radio"]:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
html[data-theme] .fm-visibility-option div{color:var(--t1)!important}
html[data-theme] .fm-visibility-option div+div{color:var(--t2)!important}
html[data-theme] #artist-edit-grid .artist-edit-section>div[style*="justify-content:space-between"]{border-color:var(--line)!important}
/* :is(#page-artist,.pf-app) is the sticky scroll box (starts under the top bar) — the edit bar sticks at its top, not 98px lower over the lamps */
/* the document scrolls: :is(#page-artist,.pf-app) must not be a scroll box (clip, not hidden) so the edit bar can stick under the top bar */
html[data-theme] :is(#page-artist,.pf-app).fx-page-scroll{overflow-x:clip!important;overflow-y:visible!important}
html[data-theme] :is(#page-artist,.pf-app) .fx-pass{position:relative!important;top:auto!important}
html[data-theme] :is(#page-artist,.pf-app) #artist-edit-banner:not([hidden]){position:sticky!important;top:calc(var(--cs-chrome-top,60px) + 8px)!important}
html[data-theme] #artist-cardbg-upload-area{text-align:center}
/* discovery card preview is content on a photo/colour: light text */
html[data-theme] #artist-cardbg-preview,html[data-theme] #artist-cardbg-preview *{color:#fff}
html[data-theme] #artist-cardbg-preview [style*="color"]{color:rgba(255,255,255,.78)!important}

/* ---- Discover: list view rows = recessed channels on a fixed grid (no wrapping into each other) ---- */
html[data-theme] .dr-row{display:grid!important;grid-template-columns:42px minmax(200px,1.4fr) minmax(0,1fr) 210px 112px;grid-template-areas:"av main genres stats follow";
 align-items:center;gap:16px!important;padding:8px 10px 8px 12px!important;border-radius:12px!important;
 background:var(--chan)!important;border:1px solid var(--rub-edge)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.08),0 1px 0 var(--face-hi)!important}
html[data-theme="graphite"] .dr-row{box-shadow:inset 0 1px 3px rgba(0,0,0,.35),0 1px 0 rgba(255,255,255,.04)!important}
html[data-theme] .dr-row:hover{border-color:color-mix(in srgb,var(--acc) 55%,var(--rub-edge))!important}
html[data-theme] .dr-row>.dr-av{grid-area:av;width:42px!important;height:42px!important;margin:0!important;border:2px solid var(--metal-hi)!important;box-shadow:0 0 0 1px var(--metal-edge)!important;font-size:13px}
html[data-theme] .dr-row>.dr-row-main{grid-area:main;min-width:0}
html[data-theme] .dr-row .dr-row-name{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:600;color:var(--t1)!important}
html[data-theme] .dr-row .dr-row-name .dr-row-live{display:inline-flex;vertical-align:2px;margin-left:6px}
html[data-theme] .dr-row .dr-row-meta{font-size:13px;color:var(--t2)!important;margin-top:1px}
html[data-theme] .dr-row>.dr-genres{grid-area:genres;justify-content:flex-end;min-width:0}
html[data-theme] .dr-row>.dr-stats{grid-area:stats;justify-content:flex-end;flex-wrap:nowrap!important;white-space:nowrap;gap:14px!important;font-size:13px;color:var(--t2)}
html[data-theme] .dr-row>.dr-follow-btn{grid-area:follow;width:112px!important;margin:0!important;height:32px!important;justify-self:end}
html[data-theme] .dr-chip{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;border-radius:7px!important;font-size:11.5px!important;height:22px!important;padding:0 8px!important}
html[data-theme] .dr-lcd{color:var(--t1)!important;font-weight:700}
html[data-theme="graphite"] .dr-lcd{color:var(--lcd)!important}
html[data-theme] .dr-stat-n{color:var(--t1)!important;font-weight:600}
@media (max-width:900px){
 html[data-theme] .dr-row{grid-template-columns:42px minmax(0,1fr) auto;grid-template-areas:"av main follow" "av stats stats";row-gap:4px!important}
 html[data-theme] .dr-row>.dr-stats{justify-content:flex-start}
 html[data-theme] .dr-row>.dr-genres{display:none!important}
 html[data-theme] .dr-row>.dr-follow-btn{width:auto!important;padding:0 14px!important}
}

/* ---- docked track player (js/core/hwDeck.js) = component kit ---- */
.hw-deck{position:fixed;left:14px;right:14px;bottom:12px;z-index:1090;display:grid;align-items:center;gap:16px;
 grid-template-columns:58px minmax(200px,280px) auto minmax(220px,1fr) 58px auto 34px;grid-template-areas:"cover lcd tr screen vol vu close";
 padding:12px 14px 12px 12px;border-radius:16px;box-sizing:border-box;font-family:'Epilogue',sans-serif;
 background:var(--brush2),linear-gradient(180deg,var(--metal-hi),var(--metal-lo));background-size:1024px 256px,cover;
 border:1px solid var(--metal-edge);box-shadow:inset 0 1px 0 var(--face-hi),0 18px 40px -12px rgba(0,0,0,.55);color:var(--t1)}
.hw-deck[hidden]{display:none!important}
@media (prefers-reduced-motion:no-preference){.hw-deck:not([hidden]){animation:hwDeckIn .22s ease-out both}}
@keyframes hwDeckIn{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.hw-deck-cover{grid-area:cover;width:58px;height:58px;border-radius:9px;overflow:hidden;background:var(--well);box-shadow:0 0 0 1px var(--metal-edge)}
.hw-deck-cover .fm-track-cover-tile{width:100%!important;height:100%!important;border-radius:0!important;margin:0!important}
.hw-deck-lcd{grid-area:lcd;min-width:0;padding:7px 12px 8px;border-radius:7px;background:linear-gradient(180deg,#0e1013,#060708);border:1px solid #0d0e10;
 box-shadow:0 1px 0 var(--face-hi),inset 0 1px 4px rgba(0,0,0,.85);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.hw-deck-np{display:flex;align-items:center;gap:7px;font-size:9.5px;font-weight:700;letter-spacing:1.4px;color:color-mix(in srgb,var(--lcd) 75%,#fff)}
.hw-deck-np .fx-led{width:8px!important;height:8px!important}
.hw-deck:not(.is-playing) .hw-deck-np .fx-led{--c:#3a3d43!important;box-shadow:0 0 0 2px #121316!important}
.hw-deck-pos{margin-left:auto;letter-spacing:.5px}
.hw-deck-title{margin-top:3px;font-size:13.5px;font-weight:700;color:var(--lcd);text-shadow:0 0 8px color-mix(in srgb,var(--lcd) 55%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hw-deck-artist{font-size:11.5px;color:color-mix(in srgb,var(--lcd) 70%,#9aa0a8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hw-deck-transport{grid-area:tr;display:flex;align-items:center;gap:9px}
.hw-deck-transport .fx-rkey,.hw-deck-transport .fx-play{display:inline-flex;align-items:center;justify-content:center;padding:0;cursor:pointer;flex:none}
.hw-deck-prev,.hw-deck-next{width:38px;height:38px}
.hw-deck-cue,.hw-deck-play{width:52px;height:52px}
.hw-deck-cue{font-weight:700!important;font-size:12px!important;letter-spacing:.5px;color:var(--rub-text)!important}
.hw-deck-transport button:disabled{opacity:.5;cursor:default}
.hw-deck-screen{grid-area:screen;min-width:0}
.hw-deck-wave{height:46px;box-sizing:border-box;border:4px solid #1a1c1f;border-radius:9px;background:var(--screen);box-shadow:inset 0 0 0 1px #000,0 1px 0 var(--face-hi);overflow:hidden;cursor:pointer}
.hw-deck-wave .hw-wave-on,.hw-deck-wave .hw-wave-played{top:3px;bottom:3px}
.hw-deck-wave:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.hw-deck-times{display:flex;justify-content:space-between;margin-top:4px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--t2)}
.hw-deck-vol{grid-area:vol;display:flex;flex-direction:column;align-items:center;gap:4px}
.hw-deck-knob{position:relative;width:46px;height:46px;border-radius:50%;cursor:ns-resize;touch-action:none;
 background:conic-gradient(from 225deg,var(--acc) 0 calc(var(--hw-vol,1) * 270deg),color-mix(in srgb,var(--acc) 14%,transparent) calc(var(--hw-vol,1) * 270deg) 270deg,transparent 270deg);
 filter:drop-shadow(0 0 3px color-mix(in srgb,var(--acc) 45%,transparent))}
.hw-deck-knob::before{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--well);box-shadow:inset 0 2px 4px rgba(0,0,0,.35)}
.hw-deck-knob-cap{position:absolute;inset:6px;border-radius:50%;background:repeating-conic-gradient(#2a2c31 0 6deg,#1b1c20 6deg 12deg);
 box-shadow:0 3px 6px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.15);transform:rotate(calc(-135deg + var(--hw-vol,1) * 270deg))}
.hw-deck-knob-cap::after{content:"";position:absolute;inset:6px;border-radius:50%;background:radial-gradient(circle at 40% 30%,#4b4f57,#1f2125 70%)}
.hw-deck-knob-cap i{position:absolute;left:50%;top:3px;width:3px;height:10px;margin-left:-1.5px;border-radius:2px;background:#fff;z-index:1}
.hw-deck-knob:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.hw-deck-lbl{font-size:9.5px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;color:var(--t2)}
.hw-deck-vu{grid-area:vu;gap:2px!important;padding:6px!important}
.hw-deck-vu i{width:4px!important}
.hw-deck-close{grid-area:close;width:32px;height:32px;padding:0!important;border-radius:9px!important;font-size:19px!important;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
html.hw-deck-open :is(#page-artist,.pf-app),html.hw-deck-open .page.pf-app{padding-bottom:118px!important}
html.hw-deck-open #chatMinimizedTab,html.hw-deck-open #artistChatPanel{bottom:116px!important}
/* row play key shows pause while its track plays */
html[data-theme] .hw-play.is-current{box-shadow:0 0 14px color-mix(in srgb,var(--play) 75%,transparent),inset 0 0 8px color-mix(in srgb,var(--play) 40%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] .hw-play.is-playing::after{left:11px!important;top:10px!important;width:3px;height:13px;border:0!important;background:var(--rub-text);box-shadow:7px 0 0 var(--rub-text)}
@media (max-width:1180px){
 .hw-deck{grid-template-columns:52px minmax(0,1fr) auto 34px;grid-template-areas:"cover lcd tr close" "screen screen screen screen";row-gap:10px}
 .hw-deck-vol,.hw-deck-vu{display:none}
 .hw-deck-cover{width:52px;height:52px}
}
@media (max-width:640px){
 .hw-deck{left:8px;right:8px;bottom:8px;padding:10px;gap:10px;grid-template-columns:44px minmax(0,1fr) 32px;grid-template-areas:"cover lcd close" "screen screen screen" "tr tr tr"}
 .hw-deck-cover{width:44px;height:44px}
 .hw-deck-transport{justify-content:center}
 html.hw-deck-open :is(#page-artist,.pf-app),html.hw-deck-open .page.pf-app{padding-bottom:240px!important}
 html.hw-deck-open #chatMinimizedTab{bottom:234px!important}
}
html[data-theme] .lv-access-pill{border-radius:6px!important}

/* ---- collab session room (Now Live → session) on the hardware panels ---- */
html[data-theme] #now-sub-collab .cs-tips-bar,html[data-theme] #now-sub-collab .cs-col-stage .cv-grid-wrap,html[data-theme] #now-sub-collab .cs-daw,
html[data-theme] #now-sub-collab .cs-splits,html[data-theme] #now-sub-collab .cs-chat,html[data-theme] #now-sub-collab .cs-cert-panel,
html[data-theme] #now-sub-collab .cs-recap-section,html[data-theme] #now-sub-collab .cs-join-bar{
 background:var(--brush2),linear-gradient(100deg,transparent 30%,var(--sheen) 48%,transparent 62%),linear-gradient(180deg,var(--metal-hi),var(--metal-lo))!important;
 background-size:1024px 256px,cover,cover!important;border:1px solid var(--metal-edge)!important;border-radius:16px!important;
 box-shadow:inset 0 1px 0 var(--face-hi),inset 0 -1px 0 rgba(0,0,0,.06),var(--face-shadow)!important;color:var(--t1)}
/* head */
html[data-theme] #now-sub-collab #csCollabTitle{font-size:26px;font-weight:700;color:var(--t1)}
html[data-theme] #now-sub-collab .cs-head .sub,html[data-theme] #csCollabCount{color:var(--t2)!important;font-size:14px!important}
html[data-theme] #now-sub-collab .now-live-dot,html[data-theme] #now-sub-collab .cs-live .now-live-dot{width:10px!important;height:10px!important;border-radius:50%;flex:none;--c:var(--acc2);animation:none!important;
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%)!important;
 box-shadow:0 0 0 2px #121316,0 0 0 3px rgba(255,255,255,.35),0 0 8px color-mix(in srgb,var(--c) 75%,transparent)!important}
html[data-theme] #now-sub-collab .cs-live .now-live-dot{--c:var(--alert)}
html[data-theme] #now-sub-collab .cs-head .fm-btn{height:34px!important;padding:0 16px!important;font-size:14px!important;border-radius:10px!important}
html[data-theme] #csCollabStatusBadge,html[data-theme] #csSplitNewCollabWarn,html[data-theme] #csSplitRoyaltyWarn{
 display:flex;align-items:center;gap:10px;background:var(--chan)!important;border:1px solid var(--rub-edge)!important;border-radius:10px!important;color:var(--t1)!important;font-size:13px!important;font-weight:500!important}
html[data-theme] #csCollabStatusBadge::before,html[data-theme] #csSplitNewCollabWarn::before,html[data-theme] #csSplitRoyaltyWarn::before{content:"";width:10px;height:10px;border-radius:50%;flex:none;--c:var(--cue);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);box-shadow:0 0 0 2px #121316,0 0 8px color-mix(in srgb,var(--c) 70%,transparent)}
html[data-theme] #csSplitNewCollabWarn[style*="display: none"],html[data-theme] #csSplitRoyaltyWarn[style*="display: none"],html[data-theme] #csCollabStatusBadge[style*="display: none"],
html[data-theme] #csSplitNewCollabWarn[style*="display:none"],html[data-theme] #csSplitRoyaltyWarn[style*="display:none"],html[data-theme] #csCollabStatusBadge[style*="display:none"]{display:none!important}
/* tips: LCD total, amount pads, Send Tip = LED key */
html[data-theme] #now-sub-collab .cs-tips-bar{padding:16px 22px!important}
html[data-theme] .cs-tips-earned-label,html[data-theme] .cs-tips-center-label,html[data-theme] .cs-tips-splits-label{color:var(--t2)!important;font-size:10.5px!important;letter-spacing:.14em!important}
html[data-theme] .cs-tips-earned-amount{display:inline-flex!important;align-self:flex-start;align-items:center;gap:3px;height:40px;margin:4px 0 4px;padding:0 10px 0 8px!important;border-radius:6px!important;box-sizing:border-box}
html[data-theme] .cs-tips-earned-amount .fx-seg-sym{font-size:18px!important;margin-right:0;flex:none}
html[data-theme] .cs-tips-earned-sub{color:var(--t2)!important}
html[data-theme] .cs-tip-btn{height:32px;padding:0 13px!important;border-radius:9px!important;background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;
 color:var(--rub-text)!important;font-size:13px!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important}
html[data-theme] .cs-tip-btn.active{color:var(--lcd)!important;box-shadow:inset 0 2px 6px rgba(0,0,0,.35),0 0 0 1px color-mix(in srgb,var(--lcd) 45%,transparent)!important}
html[data-theme="pearl"] .cs-tip-btn.active{color:var(--rub-text)!important;border-color:var(--play)!important}
html[data-theme] .cs-tip-send{height:38px;margin-top:10px!important;border-radius:10px!important;background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;color:var(--rub-text)!important;
 border:2px solid var(--acc)!important;font-size:14px!important;font-weight:700!important;
 box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 14px color-mix(in srgb,var(--acc) 50%,transparent),inset 0 0 10px color-mix(in srgb,var(--acc) 30%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] #csTipAmount{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;color:var(--t1)!important}
html[data-theme] .cs-tips-center p{color:var(--t2)!important}
html[data-theme] .cs-tips-split-name{color:var(--t2)!important;font-size:13px!important}
html[data-theme] .cs-tips-split-pct{color:var(--t1)!important;font-size:13px!important}
html[data-theme] .cs-tips-split-av,html[data-theme] .cs-av,html[data-theme] .cv-cam-avatar{color:#fff!important;box-shadow:0 0 0 2px var(--metal-hi),0 0 0 3px var(--metal-edge)!important}
html[data-theme] .cs-tips-split-av{font-size:9px!important;width:24px!important;height:24px!important}
/* stage: each camera is a screen in a dark bezel; name strip always dark with light text */
html[data-theme] #now-sub-collab .cs-col-stage .cv-grid-wrap{padding:14px!important;gap:12px!important}
html[data-theme] #now-sub-collab .cv-cam{border:5px solid #1a1c1f!important;border-radius:12px!important;box-shadow:inset 0 0 0 1px #000,0 1px 0 var(--face-hi),0 10px 22px -12px rgba(0,0,0,.6)!important;background:#0b0c0e}
html[data-theme] #now-sub-collab .cv-cam-bar,html[data-theme] #now-sub-collab .cv-host-bar{background:#0b0c0e!important;border-top:1px solid #000!important;padding:9px 12px!important}
html[data-theme] #now-sub-collab .cv-cam-name{color:#f3f4f6!important;font-size:14px!important}
html[data-theme] #now-sub-collab .cv-cam-role{color:color-mix(in srgb,var(--lcd) 70%,#c7cbd2)!important;font-size:12px!important}
html[data-theme] #now-sub-collab .cv-cam-mic{color:#9aa0a8!important}
html[data-theme] #now-sub-collab .cv-cam-wave{display:none!important}
html[data-theme] #now-sub-collab .cv-host-glow{display:none}
html[data-theme] .cv-host-badge,html[data-theme] .cv-host-live{height:24px;padding:0 9px 0 7px!important;border-radius:6px!important;gap:6px!important;font-size:11px!important;font-weight:700!important;letter-spacing:.08em!important;
 background:var(--screen)!important;border:1px solid var(--screen-edge)!important;color:#f3f4f6!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)!important}
html[data-theme] .cv-host-badge::before,html[data-theme] .cv-host-live::before{content:"";width:9px;height:9px;border-radius:50%;flex:none;--c:var(--acc);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);box-shadow:0 0 0 2px #121316,0 0 7px color-mix(in srgb,var(--c) 75%,transparent)}
html[data-theme] .cv-host-live::before{--c:var(--alert)}
html[data-theme] .cv-host-badge>*:not(span),html[data-theme] .cv-host-live>span:first-child:empty,html[data-theme] .cv-host-live>.cv-live-dot{display:none}
html[data-theme] #now-sub-collab .cv-cam-host{border-color:#1a1c1f!important}
/* track layers: channel rows with play key, seek bar, time */
html[data-theme] #now-sub-collab .cs-daw,html[data-theme] #now-sub-collab .cs-splits{padding:16px 18px 18px!important}
html[data-theme] #now-sub-collab .cs-daw-head,html[data-theme] #now-sub-collab .cs-splits-head h4,html[data-theme] #now-sub-collab .cs-chat h4{font-size:16px!important;font-weight:600!important;color:var(--t1)!important}
html[data-theme] #now-sub-collab .cs-live{color:var(--t2)!important;font-size:12.5px!important;display:inline-flex;align-items:center;gap:8px}
html[data-theme] #now-sub-collab .cs-track{padding:8px 10px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge);box-shadow:inset 0 1px 3px rgba(0,0,0,.08),0 1px 0 var(--face-hi);margin-bottom:8px!important}
html[data-theme="graphite"] #now-sub-collab .cs-track,html[data-theme="graphite"] #now-sub-collab .cs-contrib{box-shadow:inset 0 1px 3px rgba(0,0,0,.35),0 1px 0 rgba(255,255,255,.04)}
html[data-theme] .cs-track-lbl{width:64px;flex:none;font-size:11px!important;font-weight:700!important;letter-spacing:.1em;text-transform:uppercase;color:var(--t2)!important}
.cs-layer-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.cs-layer-deck{display:flex;align-items:center;gap:12px;min-width:0}
.cs-layer-play{width:34px;height:34px;min-width:34px;padding:0;cursor:pointer}
.cs-layer-play:disabled{opacity:.45;cursor:default}
.cs-layer-bar{position:relative;flex:1;min-width:60px;height:12px;border-radius:4px;cursor:pointer;background:var(--screen,#0b0c0e);box-shadow:inset 0 1px 3px rgba(0,0,0,.9),0 1px 0 var(--face-hi,transparent);overflow:hidden}
.cs-layer-bar i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p,0) * 100%);background:linear-gradient(90deg,color-mix(in srgb,var(--lcd,#2ff07f) 55%,#000),var(--lcd,#2ff07f));box-shadow:0 0 8px color-mix(in srgb,var(--lcd,#2ff07f) 60%,transparent)}
.cs-layer-bar:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.cs-layer-time{flex:none;min-width:84px;text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:var(--t2);font-variant-numeric:tabular-nums}
html[data-theme] .cs-layer-main a[data-path]{font-size:12px!important;color:var(--t2)!important;text-decoration:underline!important;text-underline-offset:2px;align-self:flex-start}
html[data-theme] .cs-av{width:32px!important;height:32px!important;font-size:11px!important}
html[data-theme] #now-sub-collab .cs-add{border:2px dashed var(--rub-edge)!important;background:var(--well)!important;color:var(--t2)!important;border-radius:12px!important}
/* splits */
html[data-theme] #now-sub-collab .cs-contrib{padding:9px 12px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge);box-shadow:inset 0 1px 3px rgba(0,0,0,.08),0 1px 0 var(--face-hi);margin-bottom:8px!important}
html[data-theme] .cs-contrib-name{color:var(--t1)!important;font-size:14.5px!important;font-weight:600!important;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html[data-theme] .cs-contrib-role{color:var(--t2)!important;font-size:12.5px!important}
html[data-theme] .cs-split-status{display:inline-flex!important;align-items:center;height:22px;padding:0 8px!important;border-radius:6px!important;font-size:11px!important;font-weight:700!important;letter-spacing:.04em;
 background:var(--screen)!important;border:1px solid var(--screen-edge)!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)!important}
html[data-theme] .cs-split-accepted-at{color:var(--t2)!important}
html[data-theme] .cs-split-model-btn{height:26px;padding:0 10px!important;border-radius:7px!important;font-size:11.5px!important;font-weight:600!important;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--t2)!important;box-shadow:0 1px 0 var(--rub-drop)!important}
html[data-theme] [data-split-model="royalty"] .cs-split-model-btn[data-model="royalty"],html[data-theme] [data-split-model="work_for_hire"] .cs-split-model-btn[data-model="work_for_hire"]{
 color:var(--rub-text)!important;box-shadow:inset 0 -6px 10px -8px var(--acc),0 1px 0 var(--rub-drop)!important;border-color:color-mix(in srgb,var(--acc) 60%,var(--rub-edge))!important}
html[data-theme] .cs-split-pct-input,html[data-theme] .cs-split-hire-input{height:32px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:14px!important;font-weight:700;
 background:linear-gradient(180deg,#0e1013,#060708)!important;border:1px solid #0d0e10!important;color:var(--lcd)!important;border-radius:7px!important;box-shadow:0 1px 0 var(--face-hi),inset 0 1px 4px rgba(0,0,0,.85)!important}
html[data-theme] .cs-pct{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;color:var(--t1)!important}
html[data-theme] [data-split-unallocated] .cs-pct{color:var(--cue)!important}
html[data-theme] #csSplitAcceptSummary{color:var(--t2)!important}
html[data-theme] #csSplitHostActions .fm-btn{height:36px!important;font-size:14px!important;border-radius:10px!important}
html[data-theme] #now-sub-collab .cs-splits>div[style*="rgba(0,230,118,0.06)"]{display:flex;align-items:center;gap:10px;background:var(--chan)!important;border:1px solid var(--rub-edge)!important;box-shadow:none!important;color:var(--t2)!important;font-size:12.5px!important}
html[data-theme] #now-sub-collab .cs-splits>div[style*="rgba(0,230,118,0.06)"]::before{content:"";width:9px;height:9px;border-radius:50%;flex:none;--c:var(--play);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);box-shadow:0 0 0 2px #121316,0 0 7px color-mix(in srgb,var(--c) 75%,transparent)}
/* session chat */
html[data-theme] #now-sub-collab .cs-chat{padding:16px 16px 14px!important}
html[data-theme] #now-sub-collab .cs-input{gap:8px;align-items:center}
html[data-theme] #now-sub-collab .cs-input input{height:38px;background:var(--chan)!important;border:1px solid var(--rub-edge)!important;color:var(--t1)!important;border-radius:10px!important;box-shadow:inset 0 1px 3px rgba(0,0,0,.12)!important}
html[data-theme] #now-sub-collab .fm-chat-emoji-btn{width:38px;height:38px;border-radius:10px!important;background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:0 2px 0 var(--rub-drop)!important}

/* legacy purple "3D rim" overlay on cards: none on metal */
html[data-theme] .stat-card::before,html[data-theme] .now-card::before,html[data-theme] .now-drop-card::before,html[data-theme] .now-jukebox-card::before,html[data-theme] .now-live-room-card::before,html[data-theme] .about-team-card::before,html[data-theme] .about-value::before,html[data-theme] .jb-player-card::before,html[data-theme] .jb-vote-card::before,html[data-theme] .jb-chat-card::before,html[data-theme] .jb-donate-card::before,html[data-theme] .jb-tod-card::before,html[data-theme] .gs-store-card::before,html[data-theme] .gs-profile-about::before,html[data-theme] .gs-reviews::before,html[data-theme] .cs-daw::before,html[data-theme] .cs-splits::before,html[data-theme] .cs-chat::before,html[data-theme] .prot-card::before,html[data-theme] .modal::before,html[data-theme] .gate-box::before,html[data-theme] .fm-artist-card::before,html[data-theme] .fm-path-card::before,html[data-theme] .about-video-box::before,html[data-theme] .gear-card::before{background:none!important}
/* collab fixes */
html[data-theme] .cs-tips-earned>div:not(.cs-tips-earned-amount){color:var(--t2)!important}
html[data-theme] #now-sub-collab .cs-split-pct-input,html[data-theme] #now-sub-collab .cs-split-hire-input{color:var(--lcd)!important;-webkit-text-fill-color:var(--lcd)}
html[data-theme] #csCvHostLiveBadge>span{display:none!important}
html[data-theme] #now-sub-collab .cs-col-chat{border-left-color:var(--line)!important}

/* phone: protected track rows stack (title + waveform on top, status / plays / Verify below) */
@media (max-width:768px){
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row{grid-template-columns:34px 44px minmax(0,1fr) auto auto!important;row-gap:8px!important;column-gap:10px!important}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.hw-play{grid-column:1;grid-row:1}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-cover{grid-column:2;grid-row:1;width:44px!important;height:44px!important}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-main{grid-column:3 / 6;grid-row:1;flex-direction:column;align-items:stretch!important;gap:6px!important}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row .hw-wf{width:100%!important;height:30px!important}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-protected{grid-column:2 / 4;grid-row:2;justify-self:start}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-plays{grid-column:4;grid-row:2}
 html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-verify{grid-column:5;grid-row:2}
}
@media (max-width:480px){html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-plays{display:none}}
html[data-theme] .dr-av--letter{color:#fff!important}
/* split status windows: LED colour by state (Accepted green, Pending amber, TBD dark) */
html[data-theme] .cs-split-status{gap:6px;color:#f3f4f6!important;margin-left:2px!important}
html[data-theme] .cs-split-status::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;--c:#5b6068;
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.85) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%);box-shadow:0 0 0 2px #121316}
html[data-theme] .cs-split-status[style*="0,230,118"]::before{--c:var(--play);box-shadow:0 0 0 2px #121316,0 0 7px var(--play)}
html[data-theme] .cs-split-status[style*="255,215,0"]::before{--c:var(--cue);box-shadow:0 0 0 2px #121316,0 0 7px var(--cue)}

/* lamp light v2: eased falloff with many stops (no visible steps), spread wide like a bar light */
html[data-theme] .fx-billboard-wash{background:radial-gradient(ellipse 21% 105% at 18% -8%,rgba(255,232,200,0.360) 0.0%,rgba(255,232,200,0.336) 3.6%,rgba(255,232,200,0.313) 7.1%,rgba(255,232,200,0.290) 10.7%,rgba(255,232,200,0.269) 14.3%,rgba(255,232,200,0.248) 17.9%,rgba(255,232,200,0.228) 21.4%,rgba(255,232,200,0.208) 25.0%,rgba(255,232,200,0.190) 28.6%,rgba(255,232,200,0.172) 32.1%,rgba(255,232,200,0.155) 35.7%,rgba(255,232,200,0.139) 39.3%,rgba(255,232,200,0.124) 42.9%,rgba(255,232,200,0.110) 46.4%,rgba(255,232,200,0.096) 50.0%,rgba(255,232,200,0.084) 53.6%,rgba(255,232,200,0.072) 57.1%,rgba(255,232,200,0.061) 60.7%,rgba(255,232,200,0.051) 64.3%,rgba(255,232,200,0.042) 67.9%,rgba(255,232,200,0.033) 71.4%,rgba(255,232,200,0.026) 75.0%,rgba(255,232,200,0.019) 78.6%,rgba(255,232,200,0.014) 82.1%,rgba(255,232,200,0.009) 85.7%,rgba(255,232,200,0.005) 89.3%,rgba(255,232,200,0.002) 92.9%,rgba(255,232,200,0.001) 96.4%,rgba(255,232,200,0.000) 100.0%),radial-gradient(ellipse 21% 105% at 50% -8%,rgba(255,232,200,0.360) 0.0%,rgba(255,232,200,0.336) 3.6%,rgba(255,232,200,0.313) 7.1%,rgba(255,232,200,0.290) 10.7%,rgba(255,232,200,0.269) 14.3%,rgba(255,232,200,0.248) 17.9%,rgba(255,232,200,0.228) 21.4%,rgba(255,232,200,0.208) 25.0%,rgba(255,232,200,0.190) 28.6%,rgba(255,232,200,0.172) 32.1%,rgba(255,232,200,0.155) 35.7%,rgba(255,232,200,0.139) 39.3%,rgba(255,232,200,0.124) 42.9%,rgba(255,232,200,0.110) 46.4%,rgba(255,232,200,0.096) 50.0%,rgba(255,232,200,0.084) 53.6%,rgba(255,232,200,0.072) 57.1%,rgba(255,232,200,0.061) 60.7%,rgba(255,232,200,0.051) 64.3%,rgba(255,232,200,0.042) 67.9%,rgba(255,232,200,0.033) 71.4%,rgba(255,232,200,0.026) 75.0%,rgba(255,232,200,0.019) 78.6%,rgba(255,232,200,0.014) 82.1%,rgba(255,232,200,0.009) 85.7%,rgba(255,232,200,0.005) 89.3%,rgba(255,232,200,0.002) 92.9%,rgba(255,232,200,0.001) 96.4%,rgba(255,232,200,0.000) 100.0%),radial-gradient(ellipse 21% 105% at 82% -8%,rgba(255,232,200,0.360) 0.0%,rgba(255,232,200,0.336) 3.6%,rgba(255,232,200,0.313) 7.1%,rgba(255,232,200,0.290) 10.7%,rgba(255,232,200,0.269) 14.3%,rgba(255,232,200,0.248) 17.9%,rgba(255,232,200,0.228) 21.4%,rgba(255,232,200,0.208) 25.0%,rgba(255,232,200,0.190) 28.6%,rgba(255,232,200,0.172) 32.1%,rgba(255,232,200,0.155) 35.7%,rgba(255,232,200,0.139) 39.3%,rgba(255,232,200,0.124) 42.9%,rgba(255,232,200,0.110) 46.4%,rgba(255,232,200,0.096) 50.0%,rgba(255,232,200,0.084) 53.6%,rgba(255,232,200,0.072) 57.1%,rgba(255,232,200,0.061) 60.7%,rgba(255,232,200,0.051) 64.3%,rgba(255,232,200,0.042) 67.9%,rgba(255,232,200,0.033) 71.4%,rgba(255,232,200,0.026) 75.0%,rgba(255,232,200,0.019) 78.6%,rgba(255,232,200,0.014) 82.1%,rgba(255,232,200,0.009) 85.7%,rgba(255,232,200,0.005) 89.3%,rgba(255,232,200,0.002) 92.9%,rgba(255,232,200,0.001) 96.4%,rgba(255,232,200,0.000) 100.0%)!important}
html[data-theme] .fx-billboard-stage::after{background:radial-gradient(ellipse 16% 44% at 18% -8%,rgba(255,244,226,0.460) 0.0%,rgba(255,244,226,0.423) 3.6%,rgba(255,244,226,0.388) 7.1%,rgba(255,244,226,0.354) 10.7%,rgba(255,244,226,0.323) 14.3%,rgba(255,244,226,0.293) 17.9%,rgba(255,244,226,0.264) 21.4%,rgba(255,244,226,0.237) 25.0%,rgba(255,244,226,0.212) 28.6%,rgba(255,244,226,0.189) 32.1%,rgba(255,244,226,0.167) 35.7%,rgba(255,244,226,0.146) 39.3%,rgba(255,244,226,0.127) 42.9%,rgba(255,244,226,0.109) 46.4%,rgba(255,244,226,0.093) 50.0%,rgba(255,244,226,0.079) 53.6%,rgba(255,244,226,0.066) 57.1%,rgba(255,244,226,0.054) 60.7%,rgba(255,244,226,0.043) 64.3%,rgba(255,244,226,0.034) 67.9%,rgba(255,244,226,0.026) 71.4%,rgba(255,244,226,0.019) 75.0%,rgba(255,244,226,0.013) 78.6%,rgba(255,244,226,0.009) 82.1%,rgba(255,244,226,0.005) 85.7%,rgba(255,244,226,0.003) 89.3%,rgba(255,244,226,0.001) 92.9%,rgba(255,244,226,0.000) 96.4%,rgba(255,244,226,0.000) 100.0%),radial-gradient(ellipse 16% 44% at 50% -8%,rgba(255,244,226,0.460) 0.0%,rgba(255,244,226,0.423) 3.6%,rgba(255,244,226,0.388) 7.1%,rgba(255,244,226,0.354) 10.7%,rgba(255,244,226,0.323) 14.3%,rgba(255,244,226,0.293) 17.9%,rgba(255,244,226,0.264) 21.4%,rgba(255,244,226,0.237) 25.0%,rgba(255,244,226,0.212) 28.6%,rgba(255,244,226,0.189) 32.1%,rgba(255,244,226,0.167) 35.7%,rgba(255,244,226,0.146) 39.3%,rgba(255,244,226,0.127) 42.9%,rgba(255,244,226,0.109) 46.4%,rgba(255,244,226,0.093) 50.0%,rgba(255,244,226,0.079) 53.6%,rgba(255,244,226,0.066) 57.1%,rgba(255,244,226,0.054) 60.7%,rgba(255,244,226,0.043) 64.3%,rgba(255,244,226,0.034) 67.9%,rgba(255,244,226,0.026) 71.4%,rgba(255,244,226,0.019) 75.0%,rgba(255,244,226,0.013) 78.6%,rgba(255,244,226,0.009) 82.1%,rgba(255,244,226,0.005) 85.7%,rgba(255,244,226,0.003) 89.3%,rgba(255,244,226,0.001) 92.9%,rgba(255,244,226,0.000) 96.4%,rgba(255,244,226,0.000) 100.0%),radial-gradient(ellipse 16% 44% at 82% -8%,rgba(255,244,226,0.460) 0.0%,rgba(255,244,226,0.423) 3.6%,rgba(255,244,226,0.388) 7.1%,rgba(255,244,226,0.354) 10.7%,rgba(255,244,226,0.323) 14.3%,rgba(255,244,226,0.293) 17.9%,rgba(255,244,226,0.264) 21.4%,rgba(255,244,226,0.237) 25.0%,rgba(255,244,226,0.212) 28.6%,rgba(255,244,226,0.189) 32.1%,rgba(255,244,226,0.167) 35.7%,rgba(255,244,226,0.146) 39.3%,rgba(255,244,226,0.127) 42.9%,rgba(255,244,226,0.109) 46.4%,rgba(255,244,226,0.093) 50.0%,rgba(255,244,226,0.079) 53.6%,rgba(255,244,226,0.066) 57.1%,rgba(255,244,226,0.054) 60.7%,rgba(255,244,226,0.043) 64.3%,rgba(255,244,226,0.034) 67.9%,rgba(255,244,226,0.026) 71.4%,rgba(255,244,226,0.019) 75.0%,rgba(255,244,226,0.013) 78.6%,rgba(255,244,226,0.009) 82.1%,rgba(255,244,226,0.005) 85.7%,rgba(255,244,226,0.003) 89.3%,rgba(255,244,226,0.001) 92.9%,rgba(255,244,226,0.000) 96.4%,rgba(255,244,226,0.000) 100.0%)!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-stat-label{text-transform:none!important}

/* collab v2: chat = same shell as the Jukebox room chat (recessed list, bubbles, LED send key); wider column */
html[data-theme] #now-sub-collab .cs-col-chat{width:400px!important}
html[data-theme] #now-sub-collab .cs-chat .fx-chat-list-wrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin:10px 0 12px}
html[data-theme] #now-sub-collab .cs-msgs.fx-chat-list{margin:0!important;gap:0}
html[data-theme] #now-sub-collab .cs-input .fx-chat-send{width:42px;height:38px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;flex:none}
/* contributors and layers sit in a recessed well (like lists on other pages) */
html[data-theme] #now-sub-collab #csSplitsList,html[data-theme] #now-sub-collab #csLayersList{padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
html[data-theme] #now-sub-collab #csSplitsList>.cs-contrib:last-child,html[data-theme] #now-sub-collab #csLayersList>.cs-track:last-child{margin-bottom:0!important}
html[data-theme] #now-sub-collab #csSplitsList>.cs-contrib,html[data-theme] #now-sub-collab #csLayersList>.cs-track{
 background:var(--raised-bg)!important;background-size:var(--raised-size)!important;box-shadow:var(--raised-shadow)!important}
html[data-theme] #now-sub-collab #csSplitsList:empty,html[data-theme] #now-sub-collab #csLayersList:empty{display:none}

/* ---- display template (see docs/design/hardware/README.md › Displays) ---- */
html[data-theme] .fx-lcd.fx-seg-row{gap:3px}
/* Jukebox room countdown: roomier window, larger digits */
html[data-theme] #now-sub-jukebox #jbRoom #jbRoomFlipMount{height:58px!important;padding:0 18px!important;gap:3px!important;justify-content:center}
/* Now Live: Jukebox row countdown and stat windows */
html[data-theme] #page-now .nd-jb-clock{height:32px;padding:0 10px;box-sizing:border-box;display:inline-flex;align-items:center}
html[data-theme] #page-now .nd-stat-lcd{height:30px;padding:0 8px;box-sizing:border-box}

/* split fields: segment-digit face under a transparent native input (typing, caret, spinners stay native) */
.hw-seg-field{position:relative;display:inline-flex;align-items:center}
.hw-seg-face{position:absolute;inset:0;display:flex!important;align-items:center;justify-content:flex-end;gap:2px!important;padding:0 9px;border-radius:7px;pointer-events:none;z-index:0}
.hw-seg-face .fx-seg-sym{font-size:14px!important;margin:0 0 0 2px;flex:none}
html[data-theme] #now-sub-collab .hw-seg-field>input{position:relative;z-index:1;color:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:var(--lcd);
 background:transparent!important;border:1px solid #0d0e10!important;box-shadow:none!important;width:96px!important;height:34px;padding:0 30px 0 8px!important;text-align:right}
html[data-theme] #now-sub-collab .hw-seg-field>input.cs-split-hire-input{padding:0 9px 0 22px!important}
html[data-theme] #now-sub-collab .hw-seg-field>input::-webkit-inner-spin-button,html[data-theme] #now-sub-collab .hw-seg-field>input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
html[data-theme] #now-sub-collab .hw-seg-field>input{-moz-appearance:textfield;appearance:textfield}
html[data-theme] #now-sub-collab .hw-seg-field>input:focus{border-color:var(--acc)!important;outline:none}
/* chat bubbles on metal (every chat): theirs = rubber label, mine = rubber with LED edge */
html[data-theme] .fx-chat-bubble.is-theirs{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;color:var(--rub-text)!important;border:1px solid var(--rub-edge);box-shadow:0 1px 0 var(--rub-drop)}
html[data-theme] .fx-chat-bubble.is-mine{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;color:var(--rub-text)!important;border:1px solid color-mix(in srgb,var(--acc) 55%,var(--rub-edge));
 box-shadow:inset 0 0 10px color-mix(in srgb,var(--acc) 18%,transparent),0 1px 0 var(--rub-drop)}
html[data-theme] .fx-chat-bubble .fx-chat-time,html[data-theme] .fx-chat-bubble.is-mine .fx-chat-time{color:var(--t2)!important}
html[data-theme] .fx-chat-av{color:#fff}
html[data-theme] #now-sub-collab .cs-body{grid-template-columns:minmax(0,1fr) 400px!important}
@media (max-width:900px){html[data-theme] #now-sub-collab .cs-col-chat{width:auto!important}}
html[data-theme="pearl"] .fx-chat-name{filter:brightness(.62) saturate(1.5)}

/* ---- polish round 3 ---- */
/* compact chat (Jukebox room): own lines on rubber with an LED edge, not purple */
html[data-theme] .fx-chat--compact .fx-chat-row{padding:4px 8px!important;border-radius:8px!important;border:1px solid transparent}
html[data-theme] .fx-chat--compact .fx-chat-row.is-mine{background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border-color:color-mix(in srgb,var(--acc) 50%,var(--rub-edge));
 box-shadow:inset 0 0 10px color-mix(in srgb,var(--acc) 14%,transparent),0 1px 0 var(--rub-drop)}
html[data-theme] .fx-chat--compact .fx-chat-text{color:var(--t1)}
/* Now Live activity list: LED bezels are not clipped by the scroll box */
html[data-theme] #page-now .nd-scroll{padding-left:4px;padding-top:2px}
html[data-theme] #page-now .nd-act-row .fx-led{margin-left:1px}

/* ---- Messages in the top bar: key + drawer (and the bell as a matching key) ---- */
html[data-theme] .fm-notif-rail-btn{width:36px!important;height:36px!important;border-radius:11px!important;background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;
 border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop),0 5px 10px -6px rgba(0,0,0,.35)!important}
html[data-theme] .fm-notif-rail-btn .fm-notif-rail-icon{color:var(--rub-text)!important}
html[data-theme] .fm-notif-rail-btn[aria-expanded="true"]{border-color:var(--acc)!important;
 box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 12px color-mix(in srgb,var(--acc) 50%,transparent),inset 0 0 8px color-mix(in srgb,var(--acc) 25%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] .fm-notif-rail-btn:active{transform:translateY(1px)}
html[data-theme] .fm-msg-rail{margin-right:8px}
html[data-theme] .fm-notif-badge{top:-6px!important;right:-6px!important;min-width:18px!important;height:18px!important;line-height:16px!important;padding:0 5px!important;border-radius:6px!important;
 background:var(--screen)!important;border:1px solid #000!important;color:var(--alert)!important;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px!important;font-weight:700!important;
 text-shadow:0 0 6px color-mix(in srgb,var(--alert) 70%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--alert) 45%,transparent),0 2px 4px rgba(0,0,0,.4)}
@media (min-width:769px){html[data-theme] #chatMinimizedTab{display:none!important}}
/* drawer */
html[data-theme] #artistChatPanel.fm-msg-drawer{position:fixed!important;z-index:1200!important;border-radius:16px!important}
@media (prefers-reduced-motion:no-preference){html[data-theme] #artistChatPanel.fm-msg-drawer[style*="display: flex"]{animation:hwDrawerIn .16s ease-out both}}
@keyframes hwDrawerIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
html[data-theme] #artistChatPanel>div:first-child{padding:12px 12px 12px 16px!important}
html[data-theme] #chatPanelTitle{font-size:16px!important;font-weight:600!important;color:var(--t1)!important}
html[data-theme] #artistChatPanel>div:first-child button{color:var(--t2)!important}
html[data-theme] #chatInboxList,html[data-theme] #chatThread{margin:0 10px;border-radius:12px;background:var(--well);box-shadow:inset 0 2px 6px rgba(0,0,0,.28),inset 0 0 0 1px rgba(0,0,0,.12)}
html[data-theme="graphite"] #chatInboxList,html[data-theme="graphite"] #chatThread{box-shadow:inset 0 2px 6px rgba(0,0,0,.55),inset 0 0 0 1px rgba(0,0,0,.35)}
html[data-theme] #chatInboxList{padding:6px}
html[data-theme] #chatThread{padding:10px 12px!important}
html[data-theme] #chatInputArea{border-top:0!important;padding:10px!important}
html[data-theme] #chatSendBtn{height:36px!important;border-radius:10px!important}
/* inbox rows (drawer and profile Messages tab) = raised rubber rows */
html[data-theme] [data-chat-id]{margin-bottom:6px;border-radius:12px;border:1px solid var(--rub-edge)!important;padding:10px 12px!important;gap:12px!important;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)}
html[data-theme] [data-chat-id]:hover{border-color:color-mix(in srgb,var(--acc) 55%,var(--rub-edge))!important}
html[data-theme] [data-chat-id]:last-child{margin-bottom:0}
html[data-theme] [data-chat-id] span[style*="color:var(--text)"]{color:var(--t1)!important}
html[data-theme] [data-chat-id] span[style*="rgba(230,224,255"]{color:var(--t1)!important}
html[data-theme] [data-chat-id] span[style*="#E91E8C"]{width:9px!important;height:9px!important;--c:var(--acc);
 background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.9) 0 13%,var(--c) 42%,color-mix(in srgb,var(--c) 45%,#000) 100%)!important;box-shadow:0 0 0 2px #121316,0 0 8px color-mix(in srgb,var(--c) 70%,transparent)}
html[data-theme] [data-chat-id]>div:first-child{box-shadow:0 0 0 2px var(--metal-hi),0 0 0 3px var(--metal-edge)}
/* DM threads: no avatar column (one partner) */
html[data-theme] #chatThread .fx-chat-av--spacer,html[data-theme] [id$="-messages-thread"] .fx-chat-av--spacer{display:none}
html[data-theme] #chatThread .fx-chat-row,html[data-theme] [id$="-messages-thread"] .fx-chat-row{margin-top:6px}
html[data-theme] #chatInputArea:not([style*="display: none"]):not([style*="display:none"]){display:flex!important;flex-wrap:wrap;align-items:flex-end;gap:8px}
html[data-theme] #chatInputArea>.fm-chat-compose-input-wrap,html[data-theme] #chatInputArea>textarea{flex:1 1 0;min-width:0}
html[data-theme] #chatMsgInput{min-height:40px;height:40px;resize:none!important;border-radius:10px!important}
html[data-theme] #chatMsgError{order:3;width:100%}
html[data-theme] #chatSendBtn{width:auto!important;flex:none;margin:0!important;height:40px!important;padding:0 18px!important}

/* ---- alignment pass ---- */
/* Jukebox room track rows: room for the play ring, Vote key LED not touching its label */
html[data-theme] #now-sub-jukebox #jbRoom .jb-vote-item{min-height:52px;padding-top:7px!important;padding-bottom:7px!important;padding-right:10px!important;box-sizing:border-box;align-items:center}
html[data-theme] #now-sub-jukebox #jbRoom .jbx-row-play{width:34px!important;height:34px!important;min-width:34px!important;flex:none;margin-left:4px}
html[data-theme] #now-sub-jukebox #jbRoom .jb-vote-btn{display:inline-flex!important;align-items:center;gap:7px!important;height:30px!important;padding:0 12px 0 9px!important}
html[data-theme] #now-sub-jukebox #jbRoom .jb-vote-btn .fx-led{width:11px!important;height:11px!important}
/* status windows: their inset shadow darkens the top edge, so the optical centre sits 1px lower */
html[data-theme] .fx-status,html[data-theme] .lv-status-pill,html[data-theme] .cs-split-status,html[data-theme] .cv-host-badge,html[data-theme] .cv-host-live{padding-top:2px!important}
/* round play keys that carry their own SVG icon: no second (CSS) triangle */
html[data-theme] .hw-play:has(svg)::after{content:none!important;display:none!important}

/* Letter avatars on room cards (Live + Collab lists): visible recessed face */
html[data-theme] .lv-host-av:not(:has(img)){background:var(--chan)!important;box-shadow:inset 0 0 0 1px var(--line)!important;color:var(--t2)!important}
/* Collab sessions list (#liveroom): same shell as #live, page scrolls normally */
html[data-theme] #lrBrowse .lr-shell{padding-bottom:24px}
@media (max-width:768px){html[data-theme] #lrBrowse .lv-title-left{flex-wrap:wrap!important;overflow:visible!important;gap:10px!important}html[data-theme] #lrBrowse .lv-tab-well{max-width:100%;overflow-x:auto}}

/* Go-to keys: every "See all / All … / View all" that opens another page is a key, never plain text.
   Markup: class="fx-key fx-key--sm fx-goto" (works on <a> and <button>). */
html[data-theme] .fx-goto{text-decoration:none!important;white-space:nowrap;flex:none;display:inline-flex;align-items:center;gap:6px}
html[data-theme] .fx-goto #ndLiveSeeAllN{opacity:.7}

/* Go live: option keys carry an LED, lit on the selected option */
html[data-theme] #page-live-new .lvn-type-key,html[data-theme] #page-live-new .lvn-choice{position:relative;padding-right:40px!important}
html[data-theme] #page-live-new .lvn-opt-led{position:absolute;right:14px;top:50%;margin-top:-6px}
html[data-theme] #page-live-new :is(.lvn-type-key,.lvn-choice):not(.is-down) .lvn-opt-led{filter:saturate(0) brightness(.38);box-shadow:none!important}
html[data-theme] #page-live-new :is(.lvn-type-key,.lvn-choice):disabled .lvn-opt-led{opacity:.4}

/* Now Live on phones: page scrolls, panels take their natural height, stats 2x2, go-to keys stay visible */
@media (max-width:768px){
  html[data-theme] #page-now .nd-title-row{flex-wrap:wrap!important;row-gap:10px}
  html[data-theme] #page-now .nd-stat-wells{display:grid!important;grid-template-columns:1fr 1fr;width:100%;margin-left:0!important}
  html[data-theme] #page-now .nd-stat-well{min-width:0}
  html[data-theme] #page-now .nd-mid-slot{container-type:normal!important;flex:none!important}
  html[data-theme] #page-now .nd-mid-panels{max-height:none!important;overflow:visible!important}
  html[data-theme] #page-now :is(.nd-section--jb,.nd-section--collab){max-height:none!important}
  html[data-theme] #page-now :is(.nd-section--jb,.nd-section--collab) .nd-scroll{max-height:none!important}
  html[data-theme] #page-now .nd-section-head .fx-panel-title .fx-panel-meta{display:none}
  html[data-theme] #page-now .nd-section-head{gap:8px}
}
@media (max-width:768px){
  html[data-theme] #page-now .nd-main{display:flex!important;flex-direction:column;flex:none!important;min-height:auto!important}
  html[data-theme] #page-now .nd-col{flex:none!important;min-height:auto!important;overflow:visible!important}
  html[data-theme] #page-now .nd-section{flex:none!important;min-height:auto!important}
  html[data-theme] #page-now .nd-stat-well{padding:4px 8px!important;gap:5px!important}
  html[data-theme] #page-now .nd-stat-lbl{overflow:hidden;text-overflow:ellipsis;min-width:0}
}
@media (max-width:768px){
  html[data-theme] #page-now .nd-jb-row{grid-template-columns:auto auto minmax(0,1fr) auto!important;row-gap:6px!important;height:auto!important;padding-top:8px!important;padding-bottom:8px!important}
  html[data-theme] #page-now .nd-jb-row .nd-jb-row-main{grid-column:1/-1}
  html[data-theme] #page-now .nd-collab-row{grid-template-columns:auto minmax(0,1fr) auto auto!important}
  html[data-theme] #page-now .nd-collab-row .nd-collab-inroom{display:none}
}
@media (max-width:768px){html[data-theme] #page-now .nd-stat-lbl{font-size:11px;letter-spacing:0}html[data-theme] #page-now .nd-stat-well{padding:4px 6px!important;gap:4px!important}}
/* Phone nav: active icon follows the theme text colour (was hard white, invisible on Pearl) */
html[data-theme] .mob-nav-item.active .mob-nav-icon svg{stroke:currentColor!important;filter:none!important}

/* ===== Role profiles on the shared frame (roleShell.js) ===== */
/* signature display: one wide LCD in the passport */
.pf-sig{margin:12px var(--fx-pf-pass-pad-x,16px) 0;padding:3px;border-radius:10px;background:var(--well);border:1px solid var(--rub-edge)}
.pf-sig-screen{display:flex;align-items:center;gap:12px;padding:8px 12px 7px;border-radius:7px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.6)}
.pf-sig-col{display:flex;flex-direction:column;gap:4px;min-width:0}
.pf-sig-cap{font-size:10.5px;font-weight:700;letter-spacing:1.1px;color:color-mix(in srgb,var(--lcd) 70%,transparent);white-space:nowrap}
.pf-sig-text{display:inline-flex;align-items:center;gap:7px;font-size:16px;font-weight:700;letter-spacing:.5px;color:var(--lcd);text-shadow:0 0 8px color-mix(in srgb,var(--lcd) 55%,transparent);white-space:nowrap}
.pf-sig-text .fx-led{width:9px!important;height:9px!important}
.pf-sig-seg{display:inline-flex;align-items:center;height:19px}
.pf-sig-sep{width:1px;align-self:stretch;background:color-mix(in srgb,var(--lcd) 18%,transparent)}
/* flat status windows used in role rows */
.pf-win{white-space:nowrap}
.pf-win--blue{color:var(--info)!important}
.pf-win--amber{color:#ffb02e!important}
.pf-win--dim{opacity:.7}
.pf-plates{display:flex;flex-direction:column;gap:6px}
.pf-role-row{display:flex!important;align-items:center;gap:10px}
.pf-role-row .pf-room-main{flex:1;min-width:0}
.pf-row-del{min-width:30px!important;padding:0 8px!important}
.pf-role-empty{margin:2px 0 4px}
.pf-pass-add{margin-left:auto}
.pf-pass-section-title:has(.pf-pass-add){display:flex;align-items:center}
.pf-role-book{margin-bottom:8px}
.pf-role-rider{margin-top:8px}
.pf-role-rider summary{list-style:none;display:inline-flex;cursor:pointer}
.pf-role-rider summary::-webkit-details-marker{display:none}
.pf-role-rider pre{margin-top:8px;padding:10px 12px;border-radius:9px;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);font-size:13px;line-height:1.55;font-family:inherit;white-space:pre-wrap}
.pf-dispute-banner{margin-bottom:8px;padding:10px 14px;border-radius:10px;border:1px solid #ffb02e;color:var(--t1);display:flex;gap:12px;align-items:center;justify-content:space-between}
.pf-dispute-banner a{color:inherit;font-weight:700}
.fx-panel[hidden],.pf-pass-section[hidden]{display:none!important}
/* role pages: inline donate widget never shows (Tip key opens the modal), row 2 with three keys + more */
.pf-app [id$="-donate-section"]{display:none!important}
:is(#page-artist,.pf-app) .fx-pass .pf-head-actions.is-visitor .pf-head-actions-row2.pf-row2-3{grid-template-columns:1fr 1fr 40px}
/* Jukebox section in role passports: only when there is a win or a badge */
.pf-role-jb[data-wins="0"]:not(:has(.pf-jb-badges:not([hidden]))){display:none}
.pf-role-book,.pf-pass-section>.pf-role-rider{padding:0 var(--fx-pf-pass-pad-x,16px)}
.pf-pass-section>.pf-plates{padding:0 10px}
.pf-head-keys{display:inline-flex;gap:6px;align-items:center;margin-left:auto}
.pf-row-del{font-size:18px!important;line-height:1!important}
/* beatmaker: pad matrix in the signature display, performance cards, split row */
.pf-pads{display:grid;grid-template-columns:repeat(4,11px);gap:3px;flex:none}
.pf-pads i{width:11px;height:11px;border-radius:2.5px;background:#24262b;box-shadow:inset 0 1px 1px rgba(255,255,255,.08),inset 0 -1px 1px rgba(0,0,0,.6)}
.pf-pads i.l{background:var(--acc);box-shadow:0 0 7px var(--acc)}
.pf-pads i.l2{background:var(--info);box-shadow:0 0 7px var(--info)}
.pf-pads i.l3{background:var(--play);box-shadow:0 0 7px var(--play)}
.pf-perf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 10px 10px}
.pf-perf-grid>.pf-role-empty{grid-column:1/-1}
.pf-perf-card{position:relative;aspect-ratio:16/9;border-radius:11px;border:1px solid var(--rub-edge);background:#111 center/cover no-repeat;cursor:pointer;padding:0;overflow:hidden}
.pf-perf-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(0,0,0,.7))}
.pf-perf-tag{position:absolute;left:8px;top:8px;z-index:1;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border-radius:6px;background:var(--screen);color:#fff;font-size:11px;font-weight:700;letter-spacing:.4px}
.pf-perf-tag .fx-led{width:9px!important;height:9px!important}
.pf-perf-watch{position:absolute;right:8px;bottom:8px;z-index:1}
.pf-ov-split{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start}
.pf-role-form{margin:0 10px 10px;padding:10px 12px;border-radius:11px;background:var(--chan);border:1px solid var(--rub-edge);display:flex;flex-direction:column;gap:8px}
.pf-role-form-title{font-size:13px;font-weight:700;color:var(--t1)}
.pf-role-field{display:flex;flex-direction:column;gap:4px}
.pf-role-field .fx-field{height:34px;padding:0 10px;border-radius:8px}
.pf-role-form-keys{display:flex;gap:6px}
.pf-role-note{padding:0 14px 12px;color:var(--t2);font-size:12.5px}
@media (max-width:1100px){.pf-ov-split{grid-template-columns:1fr}.pf-perf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:768px){.pf-perf-grid{grid-template-columns:1fr}}
/* ===== role pages: places, shop, organizer, dance ===== */
.pf-tone-0{background:radial-gradient(ellipse at 30% 40%,color-mix(in srgb,var(--info) 55%,transparent),transparent 62%),linear-gradient(135deg,#1a2233,#0c0e14)}
.pf-tone-1{background:radial-gradient(ellipse at 60% 40%,color-mix(in srgb,var(--acc) 55%,transparent),transparent 62%),linear-gradient(135deg,#2a1830,#0e0b12)}
.pf-tone-2{background:radial-gradient(ellipse at 50% 60%,rgba(255,176,46,.45),transparent 62%),linear-gradient(135deg,#2e2414,#0f0c08)}
.pf-tone-3{background:radial-gradient(ellipse at 40% 50%,color-mix(in srgb,var(--play) 40%,transparent),transparent 62%),linear-gradient(135deg,#132a20,#080d0a)}
/* week program (club) */
.pf-week{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;padding:0 10px 10px}
.pf-week>.pf-role-empty{grid-column:1/-1}
.pf-day{display:flex;flex-direction:column;border-radius:11px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);text-decoration:none;color:inherit}
html[data-theme=graphite] .pf-day,html[data-theme=graphite] .pf-card{background:#26282c}
.pf-day-pic{position:relative;height:84px;background:linear-gradient(135deg,#1a2233,#0c0e14) center/cover no-repeat}
.pf-day-pic .pf-win{position:absolute;left:8px;top:8px}
.pf-day-bd{display:flex;flex-direction:column;gap:3px;padding:9px 10px 10px;flex:1;min-width:0}
.pf-day-bd b{font-size:14px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-day-row{display:flex;align-items:center;gap:6px;margin-top:auto;padding-top:6px}
.pf-day-row .fx-key{margin-left:auto}
/* cards (rooms, products) */
.pf-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;padding:0 10px 10px}
.pf-card-grid--4{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.pf-card-grid>.pf-role-empty,.pf-card-grid>.pf-text-body{grid-column:1/-1}
.pf-card{display:flex;flex-direction:column;border-radius:11px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);min-width:0}
.pf-card-pic{position:relative;height:120px}
.pf-card-pic .pf-win{position:absolute;left:8px;top:8px}
.pf-card-letter{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:800;color:rgba(255,255,255,.85)}
.pf-card-bd{display:flex;flex-direction:column;gap:4px;padding:9px 11px 11px}
.pf-card-bd b{font-size:14.5px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-card-row{display:flex;align-items:center;gap:6px;margin-top:6px}
.pf-card-row>:last-child{margin-left:auto}
.pf-card .gs-product-cta{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:9px;font-size:12.5px;font-weight:600;text-decoration:none;cursor:pointer;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:0 2px 0 var(--rub-drop)!important}
.pf-text-body{padding:0 14px 12px;color:var(--t1);font-size:14px;line-height:1.55;white-space:pre-wrap}
.pf-tile-grid{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px}
.pf-tile-item{display:inline-flex;align-items:center;height:30px;padding:0 11px;border-radius:8px;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);font-size:13px}
.pf-key-row{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 12px}
.pf-pass-tags{padding:0 var(--fx-pf-pass-pad-x,16px);display:flex;flex-wrap:wrap;gap:6px}
.pf-announce:not(:empty){margin-bottom:0}
.pf-announce>div{border-radius:12px!important;background:var(--chan)!important;border:1px solid var(--rub-edge)!important}
/* timetable (dance) */
.pf-tt{display:grid;gap:6px;padding:0 12px 12px}
.pf-tt-hd{font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--t2);text-align:center}
.pf-tt-time{text-align:left;align-self:center}
.pf-tt-cls{position:relative;min-height:54px;padding:8px 9px;border-radius:9px;background:var(--chan);border:1px solid var(--rub-edge);border-left:3px solid var(--acc)}
html[data-theme=graphite] .pf-tt-cls{background:#26282c}
.pf-tt-cls b{display:block;font-size:13px;font-weight:700;color:var(--t1)}
.pf-tt-cls span{display:block;font-size:11.5px;color:var(--t2);margin-top:2px}
.pf-tt-cls.is-empty{background:transparent!important;border:1px dashed var(--line)}
button.pf-tt-cls{display:block;width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit}
button.pf-tt-cls:hover,button.pf-tt-cls:focus-visible{border-color:var(--acc);outline:none}
.pf-tt-cls .pf-tt-cta{margin-top:4px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--acc)}
.pf-tone-b1{border-left-color:var(--info)}.pf-tone-b2{border-left-color:var(--play)}.pf-tone-b3{border-left-color:#ffb02e}
.pf-tt-del{position:absolute;top:4px;right:6px;background:none;border:0;color:var(--t2);font-size:16px;cursor:pointer}
.pf-perf-grid--1{grid-template-columns:1fr}
/* next event (organizer) */
.pf-next-event{padding:0 12px 12px;display:flex;flex-direction:column;gap:10px}
.pf-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pf-fact{display:flex;flex-direction:column;gap:6px;padding:9px 11px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
html[data-theme=graphite] .pf-fact{background:#26282c}
.pf-fact .pf-win{align-self:flex-start}
.pf-next-main{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.pf-next-main b{font-size:18px;font-weight:700;color:var(--t1)}
.pf-next-main .pf-head-keys{margin-left:auto}

/* ===== Owner dashboard desk (roleDesk.js) ===== */
#dash-content.is-desk>:not(#dash-desk){display:none!important}
#page-dashboard:has(#dash-content.is-desk) .admin-dash-inner{max-width:none!important;padding:10px 12px 40px!important}
#page-dashboard:has(#dash-content.is-desk) .admin-dashboard{padding:0!important;background:transparent!important}
.dsk{display:flex;flex-direction:column;gap:8px}
.dsk-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:4px 2px}
.dsk-title{font-size:30px;font-weight:700;letter-spacing:-.5px;color:var(--t1);margin:0}
.dsk-head .is-role{border-color:var(--acc)!important}
.dsk-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.dsk-kpi{padding:12px 14px!important;display:flex;flex-direction:column;gap:8px;min-width:0}
.dsk-kpi-k{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap}
.dsk-kpi-k .fx-led{width:11px!important;height:11px!important}
.dsk-kpi-d{margin-left:auto;font-size:12px;font-weight:700;color:var(--play)}
.dsk-kpi-d.is-dn{color:var(--alert)}
.dsk-kpi-lcd,.dsk-money{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:8px 12px;border-radius:9px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.6)}
.dsk-money{margin:0 14px 10px;justify-content:flex-start;align-self:flex-start;display:inline-flex}
.dsk-eur{font-weight:700;font-size:18px;color:var(--lcd);text-shadow:0 0 8px color-mix(in srgb,var(--lcd) 55%,transparent)}
.dsk-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr) minmax(0,400px);gap:8px;align-items:start}
.dsk-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.dsk-panel{padding-bottom:4px}
.dsk-pad{padding:0 10px 10px}
.dsk-empty{padding:0 14px 12px;margin:0}
.dsk-acts{display:inline-flex;gap:6px;margin-left:auto}
.dsk-keys{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 12px}
.dsk-keys .fx-key{justify-content:center}
.dsk-chart{display:flex;gap:3px;align-items:flex-end;height:130px;padding:4px 14px 2px}
.dsk-chart .dsk-bar{flex:1;display:flex;flex-direction:column-reverse;gap:2px}
.dsk-chart .dsk-bar i{height:4.5px;border-radius:1.5px;background:color-mix(in srgb,var(--t3) 22%,transparent)}
.dsk-chart .dsk-bar i.on{background:var(--play);box-shadow:0 0 4px color-mix(in srgb,var(--play) 50%,transparent)}
.dsk-chart .dsk-bar i.on.w{background:#ffb02e}
.dsk-axis{display:flex;justify-content:space-between;padding:4px 14px 12px;font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--t2)}
.dsk-meter{display:flex;gap:2px;height:11px;flex:1;min-width:60px}
.dsk-meter i{flex:1;border-radius:2px;background:color-mix(in srgb,var(--t3) 26%,transparent)}
.dsk-meter i.on{background:var(--play);box-shadow:0 0 5px color-mix(in srgb,var(--play) 55%,transparent)}
.dsk-meter i.on.w{background:#ffb02e}
.dsk-mrow{display:grid;grid-template-columns:140px minmax(0,1fr) 64px;gap:10px;align-items:center;padding:4px 14px;font-size:13px;color:var(--t1)}
.dsk-v{text-align:right;color:var(--t2);font-variant-numeric:tabular-nums}
.dsk-trunc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsk-row-meter{display:inline-flex;align-items:center;gap:8px;width:220px}
.dsk-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:0 12px 8px}
.dsk-cal-hd{font-size:10.5px;font-weight:700;letter-spacing:.6px;color:var(--t2);text-align:center}
.dsk-cal-d{height:36px;border-radius:7px;background:var(--well);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px;font-weight:600;color:var(--t2)}
.dsk-cal-d.is-x{color:var(--t1)}
.dsk-cal-d.is-today{box-shadow:0 0 0 2px var(--acc)}
.dsk-led{display:inline-block;width:14px;height:4px;border-radius:2px;opacity:0}
.dsk-led.f{opacity:1;background:var(--play);box-shadow:0 0 6px var(--play)}
.dsk-led.h{opacity:1;background:#ffb02e;box-shadow:0 0 6px #ffb02e}
.dsk-legend{display:flex;gap:14px;padding:0 14px 12px;font-size:12px;color:var(--t2)}
.dsk-legend span{display:inline-flex;align-items:center;gap:6px}
.dsk-legend .dsk-led{width:12px;height:12px;border-radius:3px}
.dsk-note{display:flex;gap:8px;align-items:center;padding:0 14px 12px;font-size:12.5px;color:var(--t2);margin:0}
.dsk-note--gap{padding-top:10px}
.dsk-soon{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;font-size:10.5px;font-weight:700;letter-spacing:.5px;color:var(--t2);border:1px dashed var(--t3)}
.dsk-loading{padding:14px}
@media (max-width:1400px){.dsk-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dsk-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dsk-grid>.dsk-col:nth-child(2){grid-column:1/-1;order:3}}
@media (max-width:768px){.dsk-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dsk-grid{grid-template-columns:1fr}.dsk-mrow{grid-template-columns:100px minmax(0,1fr) 48px}.dsk-row-meter{display:none}}
@media (max-width:768px){.dsk-panel .pf-section-head{flex-wrap:wrap;gap:8px}.dsk-panel .pf-section-head .fx-panel-title{min-width:0;flex:1 1 auto}.dsk-panel .fx-panel-meta{display:none}.dsk-panel .pf-head-keys{flex:0 0 auto}}
/* passport: every section body starts on the title LED line (2026-10-09) */
html[data-theme] :is(#page-artist,.pf-app) .pf-onair-empty{padding:0 var(--fx-pf-pass-pad-x,16px)!important;margin:0 0 10px!important}
html[data-theme] :is(#page-artist,.pf-app) .fx-key.pf-onair-golive{display:inline-flex!important;align-items:center;justify-content:center;height:34px!important;min-width:0!important;padding:0 18px!important;border-radius:9px!important;margin:0 0 14px var(--fx-pf-pass-pad-x,16px)!important;font-size:13.5px!important}
html[data-theme] .pf-app .pf-pass-sections .pf-onair-row{margin-left:var(--fx-pf-pass-pad-x,16px)!important;margin-right:var(--fx-pf-pass-pad-x,16px)!important}
html[data-theme] .pf-app .pf-pass-section>.pf-plates{padding:0 var(--fx-pf-pass-pad-x,16px)!important}
html[data-theme] .pf-app .pf-pass-section .pf-plates>.fx-row{margin-left:0!important;margin-right:0!important}
html[data-theme] .pf-app .pf-pass-section .pf-role-empty{text-align:left!important;padding:0!important}
html[data-theme] .pf-app .pf-pass-section>[id$="-form"]:not(:empty){padding:0 var(--fx-pf-pass-pad-x,16px) 8px}
html[data-theme] .pf-app .pf-jb-cards{padding-left:var(--fx-pf-pass-pad-x,16px)!important;padding-right:var(--fx-pf-pass-pad-x,16px)!important}
/* ---------- sheet (one dialog for quick owner tasks) — 2026-10-09 ---------- */
.fm-sheet-ov{position:fixed;inset:0;z-index:9000;display:flex;align-items:flex-start;justify-content:center;padding:72px 16px 24px;background:rgba(6,7,10,.62);backdrop-filter:blur(3px);overflow-y:auto;box-sizing:border-box}
.fm-sheet-ov[hidden]{display:none!important}
.fm-sheet{width:100%;max-width:560px;margin:0 auto;padding-bottom:6px;box-sizing:border-box}
.fm-sheet.is-wide{max-width:860px}
.fm-sheet-head{position:sticky;top:0;z-index:1}
.fm-sheet-head .fx-panel-title{min-width:0;flex:1 1 auto}
.fm-sheet-body{padding:0 4px 8px}
html.fm-sheet-open{overflow:hidden}
.fm-sheet .pf-role-form{margin:0 10px 10px}
.fm-form-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:10px 12px}
.fm-form-grid>.pf-role-form-title,.fm-form-grid>.is-wide{grid-column:1/-1}
.fm-sheet .pf-role-form textarea.fx-field,.pf-role-form textarea.fx-field{height:auto!important;min-height:84px;padding:8px 10px!important;resize:vertical;font:inherit}
.pf-role-form input[type=file].fx-field{height:auto!important;padding:7px 10px!important}
.pf-role-field.is-wide{grid-column:1/-1}
.fm-book-busy{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--t1)}
.fm-book-busy[hidden]{display:none}
.fm-book-err{color:var(--alert);font-size:13px}
.dsk-sheet-form .pf-role-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.dsk-sheet-form .pf-role-form-title,.dsk-sheet-form .pf-role-field.is-wide,.dsk-sheet-form .pf-role-form-keys{grid-column:1/-1}
.dsk-day-keys{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 12px}
.dsk-thumb{width:40px;height:40px;border-radius:8px;flex:none;background:#111 center/cover no-repeat;border:1px solid var(--rub-edge)}
/* bookings */
.fm-bk-tabs{margin:0 10px 10px;display:inline-flex}
.fm-bk{display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge)}
.fm-bk>.fx-row{background:transparent!important;box-shadow:none!important;border:0!important;padding:0!important;min-height:0!important}
.fm-bk-note{padding:0 2px;font-size:13.5px;color:var(--t1)}
.fm-bk-note p{margin:0 0 4px;white-space:pre-wrap;word-break:break-word}
.fm-bk-keys{display:flex;flex-wrap:wrap;gap:6px}
.fm-bk-list{padding:0 10px 10px}
.fm-dd-badge{margin-left:6px;vertical-align:1px}
/* calendar: days are keys */
.dsk-cal button.dsk-cal-d{border:0;font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:0;color:var(--t2)}
.dsk-cal button.dsk-cal-d.is-x{color:var(--t1)}
.dsk-cal button.dsk-cal-d:hover{box-shadow:0 0 0 1px var(--rub-edge),inset 0 0 0 999px rgba(255,255,255,.04)}
.dsk-cal button.dsk-cal-d.is-today{box-shadow:0 0 0 2px var(--acc)}
.dsk-cal button.dsk-cal-d:focus-visible{outline:2px solid var(--acc);outline-offset:1px}
.dsk-led.b{opacity:1;background:var(--t3,#8a8f98)}
.dsk-cal-nav{min-width:30px!important;padding:0 8px!important;font-size:16px!important}
.dsk-cal-tip{padding-top:0}
/* gear: clickable cards + product view */
.pf-card--click{cursor:pointer;transition:border-color .15s}
.pf-card--click:hover{border-color:var(--acc)}
.pf-card--click:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.pf-card-pic--img{background:#111 center/cover no-repeat}
.fm-prod{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding:0 10px 10px}
.fm-prod-pic{position:relative;min-height:300px;border-radius:12px;border:1px solid var(--rub-edge);overflow:hidden}
.fm-prod-pic--img{background:#111 center/contain no-repeat}
.fm-prod-bd{display:flex;flex-direction:column;gap:12px;min-width:0}
.fm-prod-bd .pf-facts{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.fm-prod-desc{margin:0;font-size:14px;line-height:1.6;color:var(--t1);white-space:pre-wrap;word-break:break-word}
.fm-prod-bd .dsk-note{padding:0}
.fm-prod-keys{display:flex;flex-wrap:wrap;gap:6px}
#gearProductsDisclaimer{padding:4px 14px 12px}
/* event form inside a sheet */
.fm-evf{padding:0 10px 10px}
.fm-evf #org-event-form-grid>div{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;border-radius:11px!important;padding:12px!important;margin:0!important;box-shadow:none!important}
.fm-evf input:not([type=file]):not([type=checkbox]),.fm-evf select,.fm-evf textarea{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;border-radius:8px!important;color:var(--t1)!important;font-family:inherit!important}
.fm-evf>div:first-of-type{display:none!important}
.dsk-keys>:last-child:nth-child(odd){grid-column:1/-1}
@media (max-width:768px){
  .fm-sheet-ov{padding:12px 8px 80px}
  .fm-form-grid,.dsk-sheet-form .pf-role-form,.fm-prod{grid-template-columns:1fr}
  .fm-prod-pic{min-height:220px}
}
html[data-theme] .fm-book-rail{margin-right:8px}
/* plain keys inside sheets get the standard key size (base .fx-key carries no size) */
html[data-theme] .fm-sheet .fx-key:not(.fx-key--sm):not(.lv-tab-key){display:inline-flex!important;align-items:center;justify-content:center;height:36px!important;padding:0 16px!important;border-radius:10px!important;font-size:13.5px!important;text-decoration:none}
html[data-theme] .fm-sheet .fx-key--sm{text-decoration:none}
.fm-bk-sep{padding:6px 2px 0}
/* booking proof: every step with who and when */
.fm-bk-log{list-style:none;margin:0;padding:6px 10px;border-radius:9px;background:var(--inset-bg);display:flex;flex-direction:column;gap:4px}
.fm-bk-log li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--t1)}
.fm-bk-log li b{font-weight:700}
.fm-bk-dot{width:8px;height:8px;border-radius:50%;background:var(--t3,#8a8f98);flex:none}
.fm-bk-log li.is-requested .fm-bk-dot{background:#ffb02e;box-shadow:0 0 6px #ffb02e}
.fm-bk-log li.is-accepted .fm-bk-dot{background:var(--play);box-shadow:0 0 6px var(--play)}
.fm-bk-log li.is-declined .fm-bk-dot,.fm-bk-log li.is-cancelled .fm-bk-dot{background:var(--alert);box-shadow:0 0 6px var(--alert)}
.fm-bk-reason{flex-basis:100%;padding-left:14px;color:var(--t2);font-style:italic}
.fm-bk-why{flex:1 1 260px}
.fm-bk-why .fx-field{height:32px;padding:0 10px;border-radius:8px}
.fm-bk-keys{align-items:flex-end}
html[data-theme] #artistPublicActionRow #artistPublicActionsRow2{grid-template-columns:repeat(3,minmax(0,1fr))!important}
html[data-theme] #artistPublicActionRow #artistPublicActionsRow2:has(>:nth-child(4)){grid-template-columns:repeat(3,minmax(0,1fr)) 40px!important}
/* ---------- lineup (event form, Bookings, event page, profiles) — 2026-10-09 ---------- */
.fm-lu{display:flex;flex-direction:column;gap:6px}
.fm-lu-row{display:grid;grid-template-columns:22px minmax(0,1fr) 120px 170px auto;gap:8px;align-items:start}
.fm-lu-n{height:34px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--t2)}
.fm-lu-name{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0}
.fm-lu-row .fx-field{height:34px!important;padding:0 10px!important;border-radius:8px!important;width:100%;box-sizing:border-box}
.fm-lu-tag{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fm-lu-pill{font-size:11px!important}
.fm-lu-keys{display:flex;gap:4px}
.fm-lu-sug{position:absolute;left:0;right:0;top:38px;z-index:5;display:flex;flex-direction:column;padding:4px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge);box-shadow:0 10px 24px rgba(0,0,0,.45)}
.fm-lu-sug[hidden]{display:none}
.fm-lu-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:var(--t1);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
.fm-lu-opt:hover{background:var(--inset-bg)}
.fm-lu-opt.is-note{cursor:default;color:var(--t2);font-size:12.5px}
.fm-lu-opt.is-note:hover{background:transparent}
.fm-lu-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}
.fm-lu-find{margin-bottom:10px!important}
.fm-lu-find .pf-plates{gap:6px}
.fm-lu-pub{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:11px;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);text-decoration:none}
.fm-lu-pub.is-linked:hover{border-color:var(--acc)}
.fm-lu-pub-av{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:800;background:#2a2d33 center/cover no-repeat;color:var(--t2)}
.fm-lu-pub-main{flex:1;min-width:0;display:flex;flex-direction:column}
.fm-lu-pub-main b{font-size:14.5px}
.pf-gig-thumb{width:44px;height:44px;border-radius:8px;flex:none;background:#111 center/cover no-repeat;border:1px solid var(--rub-edge)}
@media (max-width:768px){.fm-lu-row{grid-template-columns:18px minmax(0,1fr) auto}.fm-lu-act,.fm-lu-time{grid-column:2/3}}
/* ---------- profile tabs on the hardware frame (tracks, videos, merch, sets, beats, credits, info, events, messages) ---------- */
.pf-tab-panel{margin:0!important}
.pf-panel-scroll>.pf-tab-panel+.pf-tab-panel,.pf-panel-scroll>*+.pf-tab-panel,.pf-panel-scroll>.pf-tab-panel+*{margin-top:12px!important}
.pf-tab-body{padding:0 14px 14px;min-width:0}
.pf-tab-body>.fm-empty,.pf-tab-body .fm-empty{color:var(--t2)}
html[data-theme] .pf-tab-body input[type=text],html[data-theme] .pf-tab-body input[type=url],html[data-theme] .pf-tab-body textarea,
html[data-theme] .pf-msg-panel textarea{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;border-radius:8px!important;color:var(--t1)!important;font-family:inherit!important}
.pf-panel-scroll>div[style*="grid-template-columns:1fr 1fr"]{gap:12px!important}
.pf-panel-scroll>div[style*="grid-template-columns:1fr 1fr"]>.pf-tab-panel{margin:0!important}
.pf-msg-panel{overflow:hidden}
.pf-msg-send{width:100%;margin-top:8px;height:38px!important}
@media (max-width:768px){.pf-panel-scroll>div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}}
/* fan page on the frame */
#page-fan .pf-fan-own{display:flex;gap:6px}
#page-fan .pf-fan-own .fx-key{flex:1}
#page-fan .fm-fan-showcase.pf-tab-body{margin:0}
#page-fan .pf-pass-meta .fx-chip{margin:2px 0}
#fan-showcase-panel:has(#fan-showcase:empty){display:none}
#page-fan .fm-jb-picks{margin:12px 0 0!important;padding:0!important}
#page-fan .pf-overview-main>.fx-panel+.fx-panel,#page-fan .pf-overview-main>*+.fx-panel{margin-top:12px}
/* event page on hardware panels */
#page-event-detail .evt-hero{position:relative;overflow:hidden;min-height:240px;margin-bottom:16px;padding:0!important;border-radius:14px}
#page-event-detail .evt-panel{margin:0!important}
#page-event-detail .evt-panel>:not(.fx-panel-head){margin-left:14px;margin-right:14px}
#page-event-detail .evt-panel>:last-child{margin-bottom:14px}
#page-event-detail #evt-detail-content>div[style*="grid"]{gap:12px!important}
#page-event-detail #evt-detail-content>div[style*="grid"]>div{gap:12px!important}
#page-event-detail .evt-ticket-key{width:100%;justify-content:center;height:40px!important;margin-top:4px}
#page-event-detail #evt-detail-price{color:var(--play)!important}
#page-event-detail #evt-detail-category{background:rgba(0,0,0,.45)!important;color:var(--t1)!important;border-radius:6px!important}
/* ================= EVENT PAGE (#event/<id>) — marquee, channel strip, running order ================= */
#page-event-detail{padding-bottom:40px}
.evp{display:flex;flex-direction:column;gap:12px}
.evp-unavail{display:flex;flex-direction:column;align-items:center;gap:14px;padding:60px 20px!important;margin-top:24px}
/* marquee */
html[data-theme] .evp-bill{padding-top:72px!important}
.evp-stage{position:relative;height:clamp(380px,42vw,560px);background:#08090b}
.evp-bg{position:absolute;inset:-30px;background:#111 center/cover no-repeat;filter:blur(26px) saturate(1.25) brightness(.55);transform:scale(1.05)}
.evp-stage:not(.has-poster) .evp-bg{filter:none;inset:0;transform:none}
.evp-bg--gen{background:
  radial-gradient(ellipse 60% 90% at 78% 30%,color-mix(in srgb,var(--acc) 55%,transparent),transparent 60%),
  radial-gradient(ellipse 50% 70% at 12% 110%,color-mix(in srgb,var(--info) 45%,transparent),transparent 60%),
  repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px),
  linear-gradient(135deg,#15121c,#07080a)!important}
.evp-poster{position:absolute;right:5%;top:50%;transform:translateY(-50%) rotate(1.2deg);height:84%;aspect-ratio:4/5;z-index:1;
  background:#111 center/cover no-repeat;border-radius:6px;box-shadow:0 0 0 6px rgba(240,236,228,.92),0 0 0 7px rgba(0,0,0,.4),0 30px 60px rgba(0,0,0,.65),0 10px 20px rgba(0,0,0,.5)}
.evp-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(6,7,9,.92) 0%,rgba(6,7,9,.72) 38%,rgba(6,7,9,.15) 70%,transparent 100%),linear-gradient(0deg,rgba(6,7,9,.85),transparent 45%)}
.evp-hero{position:absolute;left:clamp(20px,4vw,56px);right:clamp(20px,40%,46%);bottom:clamp(22px,3.4vw,46px);z-index:3;display:flex;flex-direction:column;gap:10px;color:#fff}
.evp-stage:not(.has-poster) .evp-hero{right:clamp(20px,8vw,120px)}
.evp-chips{display:flex;flex-wrap:wrap;gap:6px}
.evp-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:6px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.18);font-size:11.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#f3f1ec}
.evp-chip.is-red{border-color:var(--alert);color:#ffd9de}
.evp-chip.is-dim{opacity:.75}
.evp-date{font-size:15px;font-weight:700;letter-spacing:2.4px;color:#ffcf7a;text-shadow:0 0 18px rgba(255,176,46,.35)}
.evp-date b{color:#fff}
.evp-title{margin:0;font-size:clamp(36px,5.6vw,88px);line-height:.95;font-weight:800;letter-spacing:-.03em;color:#fff;text-wrap:balance;text-shadow:0 4px 30px rgba(0,0,0,.55)}
.evp-with{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:clamp(15px,1.4vw,19px);font-weight:600;color:#e9e6f2}
.evp-with i{font-style:normal;opacity:.45}
.evp-where{display:flex;align-items:center;gap:8px;font-size:14.5px;color:#d9d6e0}
.evp-own{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--t1)}
/* channel strip */
.evp-strip{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;padding:12px!important}
.evp-mod{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:130px;padding:10px 14px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 8px rgba(0,0,0,.85)}
.evp-mod--wide{min-width:220px}
.evp-mod-cap{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:800;letter-spacing:1.6px;color:color-mix(in srgb,var(--lcd,#3dff8a) 70%,#fff)}
.evp-mod-sub{font-size:11px;font-weight:700;letter-spacing:1.2px;color:rgba(255,255,255,.45)}
.evp-seg{display:inline-flex}
.evp-cd{display:inline-flex;align-items:flex-end;gap:6px}
.evp-cd i{font-style:normal;font-size:13px;font-weight:800;color:var(--lcd,#3dff8a);margin:0 6px 2px -2px}
.evp-price-row{display:inline-flex;align-items:center;gap:6px}
.evp-cur{font-size:22px;font-weight:800;color:var(--lcd,#3dff8a)}
.evp-meter{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;width:170px;height:16px}
.evp-meter i{border-radius:2px;background:rgba(255,255,255,.07)}
.evp-meter i.on{background:var(--play);box-shadow:0 0 6px var(--play)}
.evp-meter i.on.w{background:#ffb02e;box-shadow:0 0 6px #ffb02e}
.evp-strip-keys{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html[data-theme] .evp .fx-key:not(.fx-key--sm){display:inline-flex!important;align-items:center;justify-content:center;height:40px!important;padding:0 18px!important;border-radius:10px!important;font-size:14px!important;text-decoration:none}
html[data-theme] .evp .evp-tix{height:46px!important;padding:0 26px!important;font-size:15.5px!important;font-weight:800!important}
.evp-tix.is-off{opacity:.6;pointer-events:none}
.evp-tix.is-info{pointer-events:none}
.evp-ownerbar{display:flex;align-items:center;gap:10px;padding:10px 14px!important;flex-wrap:wrap}
.evp-ownerbar b{font-size:14px;color:var(--t1)}
/* body */
.evp-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;align-items:start}
.evp-main,.evp-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.evp-panel{margin:0!important}
.evp-pad{padding:0 14px 14px}
.evp-side-body{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px}
.evp-side-keys{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.evp-side-keys .fx-key{flex:1}
.evp-txt{margin:0;font-size:14px;line-height:1.55;color:var(--t1);white-space:pre-wrap}
.evp-fine{margin:4px 0 0}
.evp-price{padding:10px 14px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 8px rgba(0,0,0,.85);align-self:flex-start}
.evp-venue{font-size:17px;color:var(--t1)}
.evp-org{display:flex;align-items:center;gap:12px}
.evp-org-av{width:52px;height:52px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--acc),var(--info)) center/cover no-repeat;box-shadow:0 0 0 2px var(--rub-edge)}
.evp-org-main{display:flex;flex-direction:column;min-width:0}
.evp-org-main b{font-size:15.5px;color:var(--t1)}
.evp-about{font-size:16px;line-height:1.7;color:var(--t1);white-space:pre-wrap;max-width:72ch}
.evp-about::first-line{font-weight:600}
.evp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
/* running order */
.evp-ro{position:relative;display:flex;flex-direction:column;gap:8px}
.evp-ro::before{content:"";position:absolute;left:96px;top:14px;bottom:14px;width:2px;border-radius:2px;background:linear-gradient(var(--acc),color-mix(in srgb,var(--acc) 20%,transparent))}
.evp-ro-row{position:relative;display:grid;grid-template-columns:78px 18px 60px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px 10px 8px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);text-decoration:none}
.evp-ro-row.is-linked:hover{border-color:var(--acc)}
.evp-ro-time{display:flex;justify-content:flex-end}
.evp-ro-tba{font-size:12px;font-weight:800;letter-spacing:1.4px;color:var(--t2)}
.evp-ro-dot{width:14px;height:14px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px color-mix(in srgb,var(--acc) 25%,transparent),0 0 12px var(--acc);justify-self:center;z-index:1}
.evp-ro-av{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;background:#2a2d33 center/cover no-repeat;box-shadow:0 0 0 2px var(--rub-edge)}
.evp-tone-0{background:linear-gradient(135deg,#7b2fff,#e91e8c)}.evp-tone-1{background:linear-gradient(135deg,#1e88e5,#00c6ae)}.evp-tone-2{background:linear-gradient(135deg,#ff8a00,#e52e71)}.evp-tone-3{background:linear-gradient(135deg,#00b37a,#2f80ed)}
.evp-ro-main{display:flex;flex-direction:column;min-width:0}
.evp-ro-main b{font-size:clamp(17px,1.5vw,21px);font-weight:800;letter-spacing:-.01em}
/* gallery mosaic */
.evp-gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:8px}
.evp-gal-it{position:relative;border:0;padding:0;border-radius:10px;background:#111 center/cover no-repeat;cursor:zoom-in;box-shadow:0 0 0 1px var(--rub-edge)}
.evp-gal-it:first-child{grid-column:span 2;grid-row:span 2}
.evp-gal--1 .evp-gal-it{grid-column:1/-1;grid-row:span 3}
.evp-gal--2 .evp-gal-it{grid-column:span 2;grid-row:span 2}
.evp-gal-more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);border-radius:10px;font-size:26px;font-weight:800;color:#fff}
/* video */
.evp-vids{display:grid;gap:10px}
.evp-vids--2{grid-template-columns:1fr 1fr}
.evp-vid{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000;box-shadow:0 0 0 1px var(--rub-edge)}
.evp-vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* more nights */
.evp-more{gap:8px}
.evp-more-it{display:flex;align-items:center;gap:10px;padding:6px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);text-decoration:none}
.evp-more-it:hover{border-color:var(--acc)}
.evp-more-pic{width:64px;height:64px;border-radius:8px;flex:none;background:linear-gradient(135deg,#2a1d3f,#0e0f13) center/cover no-repeat}
.evp-more-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.evp-more-main b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
html[data-theme="pearl"] .evp-ro-row,html[data-theme="pearl"] .evp-more-it{background:var(--chan)}
@media (max-width:1100px){.evp-grid{grid-template-columns:1fr}.evp-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
@media (max-width:768px){
  .evp-stage{height:auto;min-height:520px}
  .evp-poster{right:50%;top:22px;transform:translateX(50%) rotate(1deg);height:240px}
  .evp-hero{left:16px;right:16px;bottom:18px}
  .evp-title{font-size:clamp(30px,9vw,44px)}
  .evp-strip{display:grid;grid-template-columns:1fr 1fr}
  .evp-mod,.evp-mod--wide{min-width:0}
  .evp-mod--wide,.evp-mod--meter{grid-column:1/-1}
  .evp-strip-keys{grid-column:1/-1;margin-left:0}
  .evp-strip-keys .fx-key{flex:1}
  .evp-ro::before{left:66px}
  .evp-ro-row{grid-template-columns:52px 14px 44px minmax(0,1fr);gap:8px}
  .evp-ro-row>.fx-key{display:none}
  .evp-ro-av{width:44px;height:44px;font-size:15px}
  .evp-gal{grid-template-columns:1fr 1fr;grid-auto-rows:120px}
  .evp-vids--2{grid-template-columns:1fr}
}
.evp-split{display:grid;grid-template-columns:1fr;gap:12px}
.evp-split.is-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.evp-gal--5 .evp-gal-it:first-child{grid-column:span 2;grid-row:span 2}
.evp-gal--3{grid-template-columns:2fr 1fr}.evp-gal--3 .evp-gal-it:first-child{grid-column:1;grid-row:span 2}
.evp-gal--4{grid-template-columns:2fr 1fr 1fr}.evp-gal--4 .evp-gal-it:first-child{grid-column:1;grid-row:span 2}.evp-gal--4 .evp-gal-it:nth-child(4){grid-column:2/4}
.evp-side{position:sticky;top:calc(var(--cs-chrome-top,72px) + 8px)}
.evp-fine{white-space:normal!important}
@media (max-width:1100px){.evp-side{position:static}.evp-split.is-two{grid-template-columns:1fr}}
.evp-vids--1 .evp-vid{aspect-ratio:21/9}
/* an event with little content: side panels spread across the width, no empty column */
.evp-grid.is-bare{grid-template-columns:1fr}
.evp-grid.is-bare .evp-main:not(:has(.evp-panel)){display:none}
.evp-grid.is-bare .evp-side{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:stretch}
.evp-grid.is-bare .evp-side>#evp-more:empty{display:none}
/* ================= profile tab components (pfComponents.js) ================= */
.pfc-deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.pfc-deck.is-video{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.pfc-tile{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);min-width:0}
.pfc-screen{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;cursor:pointer;background:#0b0c0f;overflow:hidden}
.pfc-art{position:absolute;inset:0;background:#0b0c0f center/cover no-repeat;transition:transform .35s ease}
.pfc-screen:hover .pfc-art{transform:scale(1.04)}
.pfc-art--soundcloud{background:linear-gradient(135deg,#ff7a00,#ff3d00 60%,#7a1d00)}
.pfc-art--mixcloud{background:linear-gradient(135deg,#5000ff,#2b0b8f 60%,#0e0630)}
.pfc-art--link,.pfc-art--vimeo{background:linear-gradient(135deg,#25303a,#0d1014)}
.pfc-bars{position:absolute;left:8%;right:8%;bottom:16%;top:30%;display:flex;align-items:flex-end;gap:3px}
.pfc-bars i{flex:1;border-radius:2px;background:rgba(255,255,255,.75);box-shadow:0 0 8px rgba(255,255,255,.25)}
.pfc-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 55%)}
.pfc-src{position:absolute;left:10px;top:10px;font-size:11px!important}
.pfc-play{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;
  background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--acc) 85%,#fff),var(--acc));box-shadow:0 0 0 4px rgba(0,0,0,.35),0 0 22px color-mix(in srgb,var(--acc) 60%,transparent);transition:transform .15s}
.pfc-screen:hover .pfc-play{transform:scale(1.08)}
.pfc-info{display:flex;align-items:center;gap:8px;padding:9px 11px}
.pfc-main{flex:1;min-width:0;display:flex;flex-direction:column}
.pfc-main b{font-size:14.5px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pfc-player-wrap{display:flex;flex-direction:column;gap:10px;padding:0 10px 10px}
.pfc-player{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000;box-shadow:0 0 0 1px var(--rub-edge)}
.pfc-player.is-audio{aspect-ratio:auto;height:420px}
.pfc-player.is-mix{aspect-ratio:auto;height:180px}
.pfc-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pfc-player-keys{display:flex;justify-content:flex-end}
/* merch shelf */
.pfc-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.pfc-prod{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);cursor:pointer;transition:border-color .15s,transform .15s}
.pfc-prod:hover{border-color:var(--acc);transform:translateY(-1px)}
.pfc-prod:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.pfc-prod-pic{position:relative;aspect-ratio:1;background:#111 center/cover no-repeat}
.pfc-prod-letter{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:800;color:rgba(255,255,255,.9)}
.pfc-prod-type{position:absolute;left:10px;top:10px;font-size:11px!important}
.pfc-prod-bd{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px}
.pfc-prod-bd b{font-size:15px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pfc-prod-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pfc-own{display:flex;gap:4px}
.pfc-tone-0{background:radial-gradient(ellipse at 30% 30%,#e91e8c,transparent 60%),linear-gradient(135deg,#3b1360,#0c0a12)}
.pfc-tone-1{background:radial-gradient(ellipse at 70% 30%,#00c6ae,transparent 60%),linear-gradient(135deg,#0f2b3a,#07090c)}
.pfc-tone-2{background:radial-gradient(ellipse at 30% 70%,#ffb02e,transparent 60%),linear-gradient(135deg,#3a1e08,#0d0805)}
.pfc-tone-3{background:radial-gradient(ellipse at 60% 40%,#7b2fff,transparent 60%),linear-gradient(135deg,#1a1440,#08070f)}
/* legacy owner forms inside a sheet */
.pfc-form{display:flex;flex-direction:column;gap:10px;margin:0 10px 10px;padding:12px;border-radius:11px;background:var(--chan);border:1px solid var(--rub-edge)}
.pfc-form [style*="text-transform:uppercase"]{color:var(--t2)!important;letter-spacing:.6px!important}
.pfc-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.pfc-form textarea,.pfc-form select{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;border-radius:8px!important;color:var(--t1)!important;font-family:inherit!important;min-height:36px}
.pfc-form .fm-btn{display:inline-flex!important;align-items:center;justify-content:center;height:36px!important;padding:0 16px!important;border-radius:10px!important;font-size:13.5px!important;font-weight:600!important;
  background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;color:var(--rub-text)!important;border:1px solid var(--rub-edge)!important;box-shadow:0 1px 0 rgba(255,255,255,.06) inset,0 2px 4px rgba(0,0,0,.35)!important}
.pfc-form .fm-btn-primary{border:2px solid var(--acc)!important;color:var(--t1)!important}
.pfc-form .fm-btn-danger{border:2px solid var(--alert)!important}
@media (max-width:768px){.pfc-deck,.pfc-deck.is-video{grid-template-columns:1fr}.pfc-shelf{grid-template-columns:1fr 1fr}}
/* event poster cards (organizer / club lists) */
.evc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.evc{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);cursor:pointer;transition:border-color .15s,transform .15s}
.evc:hover{border-color:var(--acc);transform:translateY(-1px)}
.evc:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.evc.is-past{opacity:.85}
.evc-pic{position:relative;aspect-ratio:4/3;background:radial-gradient(ellipse 70% 60% at 70% 30%,color-mix(in srgb,var(--acc) 50%,transparent),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px),linear-gradient(135deg,#17131f,#07080a);background-size:cover;background-position:center}
.evc-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent 50%)}
.evc-date{position:absolute;left:10px;bottom:10px;display:flex;flex-direction:column;align-items:center;min-width:54px;padding:6px 8px;border-radius:9px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.8);color:var(--lcd,#3dff8a);line-height:1}
.evc-date b{font-size:24px;font-weight:800;text-shadow:0 0 8px color-mix(in srgb,var(--lcd,#3dff8a) 60%,transparent)}
.evc-date span{font-size:11px;font-weight:800;letter-spacing:1.4px;margin-top:2px}
.evc-date i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:1.2px;color:rgba(255,255,255,.55);margin-top:3px}
.evc-tags{position:absolute;left:10px;top:10px;display:flex;flex-wrap:wrap;gap:6px}
.evc-tags .pf-win{font-size:11px!important}
.evc-bd{display:flex;flex-direction:column;gap:5px;padding:10px 12px 12px}
.evc-title{font-size:16px;font-weight:800;color:var(--t1);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.evc-lineup{font-size:13px;color:var(--t1);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.evc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}
.evc-keys{display:flex;gap:4px}
/* registered tracks (full list): certificate plates */
.pft-row{display:grid!important;grid-template-columns:auto 56px minmax(0,1fr) 300px;align-items:center;gap:14px;padding:12px 14px!important;margin:0 0 8px!important;border-radius:12px!important;background:var(--chan)!important;border:1px solid var(--rub-edge)!important;box-shadow:none!important}
.pft-main{display:flex;flex-direction:column;gap:5px;min-width:0}
.pft-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.pft-title b{font-size:16px;color:var(--t1)}
.pft-title .pf-win{font-size:10.5px!important}
.pft-main .hw-wf{width:100%!important;max-width:520px}
.pft-own{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.pft-cert{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 8px rgba(0,0,0,.85)}
.pft-cap{font-size:10px;font-weight:800;letter-spacing:1.6px;color:rgba(255,255,255,.5)}
.pft-code{font:800 18px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1.5px;color:var(--lcd,#3dff8a);text-shadow:0 0 10px color-mix(in srgb,var(--lcd,#3dff8a) 55%,transparent)}
.pft-hash{font:600 11px/1.2 ui-monospace,Menlo,monospace;color:rgba(61,255,138,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pft-keys{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}
.pft-lock{opacity:.45;cursor:default}
@media (max-width:1100px){.pft-row{grid-template-columns:auto 48px minmax(0,1fr)}.pft-cert{grid-column:1/-1}}
/* releases: sleeve cards with a vinyl edge */
.pfr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pfr{display:flex!important;flex-direction:column;padding:0!important;border-radius:12px!important;overflow:visible;background:var(--chan)!important;border:1px solid var(--rub-edge)!important;cursor:pointer;transition:border-color .15s}
.pfr:hover{border-color:var(--acc)!important}
.pfr-sleeve{position:relative;aspect-ratio:1;border-radius:12px 12px 0 0;background:#111 center/cover no-repeat;overflow:hidden}
.pfr-letter{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:72px;font-weight:800;color:rgba(255,255,255,.9)}
.pfr-vinyl{display:none}

.pfr-type{position:absolute;left:10px;top:10px;font-size:11px!important;z-index:1}
.pfr-bd{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px}
.pfr-title{font-size:16px;font-weight:800;color:var(--t1)}
.pfr-list{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.pfr-list li{display:flex;gap:8px;font-size:13px;color:var(--t1)}
.pfr-n{font:700 12px/1.4 ui-monospace,Menlo,monospace;color:var(--lcd,#3dff8a);min-width:18px}
.pfr-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pfr-more{color:var(--t2)!important}
.pfr-own{display:flex;align-items:center;gap:6px;margin-top:4px}
/* streaming links */
.pfs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.pfs-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);text-decoration:none;transition:border-color .15s}
.pfs-link:hover{border-color:var(--svc)}
.pfs-link b{flex:1;font-size:14.5px}
.pfs-led{width:10px;height:10px;border-radius:50%;background:var(--svc);box-shadow:0 0 8px var(--svc)}
/* ================= edit mode (all profiles) ================= */
.pfe .pfe-sec{margin:0 0 12px!important;padding:0!important;display:block}
.pfe .pfe-head{margin:0}
.pfe .pfe-body{padding:2px 14px 14px}
.pfe [style*="text-transform:uppercase"][style*="font-size:0.7"],.pfe [style*="text-transform:uppercase"][style*="font-size:0.68"]{color:var(--t2)!important;letter-spacing:.6px!important;font-weight:700!important}
.pfe input:not([type=checkbox]):not([type=radio]):not([type=file]),.pfe textarea,.pfe select{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;border-radius:8px!important;color:var(--t1)!important;font-family:inherit!important;box-shadow:var(--inset-shadow)!important}
.pfe input:focus,.pfe textarea:focus,.pfe select:focus{outline:none!important;border-color:var(--acc)!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.45),0 0 0 2px color-mix(in srgb,var(--acc) 35%,transparent)!important}
.pfe [style*="border:1px dashed"],.pfe [style*="border:2px dashed"]{border-color:var(--rub-edge)!important;background:var(--inset-bg)!important;border-radius:10px!important}
.pfe .gear-product-row{background:var(--chan)!important;border:1px solid var(--rub-edge)!important;border-radius:11px!important}
.pfe .fx-panel-head>.fx-panel-title{display:inline-flex;align-items:center;gap:8px}
/* edit layout: shortest-column masonry + full-width list editors */
.pfe.pfe-masonry{column-count:auto!important;columns:auto!important;display:grid!important;grid-template-columns:repeat(var(--pfe-n,2),minmax(0,1fr))!important;align-items:start;gap:12px}
.pfe-col{min-width:0;display:flex;flex-direction:column;gap:12px}
.pfe-col>*{margin:0!important;width:100%!important;display:block!important;break-inside:auto}
.pfe-masonry>.pfe-wide{grid-column:1/-1;margin:0!important;width:100%!important;display:block!important}
.pfe-wide #gear-edit-products-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:10px}
.pfe-wide #gear-edit-products-container>*{margin:0!important}
@media (max-width:900px){.pfe-wide #gear-edit-products-container{grid-template-columns:1fr}}
.pfe input[type=file]{color:var(--t3);font-size:12px;font-family:inherit}
.pfe input[type=file]::file-selector-button{margin-right:10px;padding:6px 12px;border-radius:8px;border:1px solid var(--rub-edge);background:linear-gradient(180deg,var(--rub-hi),var(--rub-lo));color:var(--rub-text);font-weight:700;font-size:11px;line-height:1;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;box-shadow:0 2px 0 rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08)}
.pfe input[type=file]::file-selector-button:hover{border-color:var(--acc)}
/* ---------- Info tab: front desk (clubs / gear / events) ---------- */
.pfi{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;align-items:stretch}
.pfi:empty{display:none}
.pfi>.pfi-panel{margin:0!important;display:flex;flex-direction:column;min-width:0}
.pfi-s12{grid-column:span 12}.pfi-s7{grid-column:span 7}.pfi-s5{grid-column:span 5}
.pfi-body{padding:4px 16px 16px;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}
.pfi-find{display:flex;flex-direction:column;gap:12px;flex:1}
.pfi-find-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.pfi-addr{display:flex;flex-direction:column;gap:4px;min-width:0}
.pfi-addr b{font-size:clamp(20px,1.6vw,28px);line-height:1.15;font-weight:800;letter-spacing:-.2px;color:var(--t1)}
.pfi-addr span{color:var(--t2);font-size:14px}
.pfi-map{position:relative;flex:1;min-height:260px;border-radius:12px;overflow:hidden;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 3px 10px rgba(0,0,0,.6),0 1px 0 rgba(255,255,255,.05)}
.pfi-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
html[data-theme]:not([data-theme="pearl"]) .pfi .pfi-map iframe{filter:invert(.9) hue-rotate(180deg) saturate(.5) brightness(.95) contrast(.9)!important}
.pfi-map::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),inset 0 0 40px rgba(0,0,0,.35)}
.pfi-now{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;padding:9px 14px;border-radius:9px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd);font-weight:800;font-size:13px;line-height:1;letter-spacing:1.2px;box-shadow:inset 0 2px 6px rgba(0,0,0,.55)}
.pfi-now.is-closed{color:#ffb02e}
.pfi-week{display:flex;flex-direction:column;gap:6px;flex:1}
.pfi-day{flex:1;display:flex;align-items:center;gap:14px;padding:8px 14px;min-height:40px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);min-width:0;flex-wrap:wrap}
.pfi-day-k{display:flex;align-items:center;gap:8px;width:62px;font-weight:800;font-size:12px;line-height:1;letter-spacing:1.2px;color:var(--t2)}
.pfi-day-k .fx-led{width:9px!important;height:9px!important}
.pfi .fx-led.is-off{--c:#3b3f47;box-shadow:none!important}
.pfi-day.is-today{border-color:var(--acc);box-shadow:inset 0 2px 5px rgba(0,0,0,.45),0 0 0 1px var(--acc),0 0 14px color-mix(in srgb,var(--acc) 30%,transparent)}
.pfi-day.is-today .pfi-day-k{color:var(--t1)}
.pfi-day-today{margin-left:auto;font-weight:800;font-size:10px;line-height:1;letter-spacing:1.2px;color:var(--acc)}
.pfi-day-t{color:var(--lcd);display:inline-flex}
.pfi-day-to{width:14px;height:2px;border-radius:2px;background:color-mix(in srgb,var(--lcd) 45%,transparent)}
.pfi-day-gap{width:10px}
.pfi-day-off{font-weight:700;font-size:11px;line-height:1;letter-spacing:1.2px;color:var(--t3)}
.pfi-day:not(.is-on){opacity:.7}
.pfi-hours-src{margin:0!important}
.pfi-screen{padding:14px 16px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd);font-weight:700;font-size:15px;line-height:1.6;letter-spacing:.4px;box-shadow:inset 0 2px 6px rgba(0,0,0,.55)}
.pfi-rows{display:flex;flex-direction:column;gap:8px}
.pfi-row .pf-win{min-width:74px;justify-content:center}
.pfi-specs{display:grid;grid-template-columns:repeat(var(--pfi-c,3),minmax(0,1fr));grid-auto-rows:1fr;gap:10px;flex:1}
@media (max-width:620px){.pfi-specs{grid-template-columns:1fr}.pfi-spec{grid-column:auto!important}}
.pfi-spec{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:11px;background:var(--chan);border:1px solid var(--rub-edge);min-width:0}
.pfi-spec-v{color:var(--t1);font-size:15px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.pfi-seg{display:inline-flex;align-self:flex-start;padding:8px 10px;border-radius:8px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd);box-shadow:inset 0 2px 6px rgba(0,0,0,.55)}
.pfi-chips{display:flex;flex-wrap:wrap;gap:6px}
.pfi-chip{padding:5px 10px;border-radius:7px;background:var(--inset-bg);border:1px solid var(--inset-edge);font-size:12.5px;font-weight:700;color:var(--t1)}
.pfi-todo-in{display:flex;align-items:center;gap:12px;padding:14px 16px}
.pfi-todo-in>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:3px}
@media (max-width:1100px){.pfi-s7,.pfi-s5{grid-column:span 12}}
@media (max-width:620px){.pfi-map{min-height:200px}}
.pfi .pfi-social{grid-template-columns:repeat(var(--pfi-c,6),minmax(0,1fr))}
@media (max-width:900px){.pfi .pfi-social{grid-template-columns:repeat(2,minmax(0,1fr))}.pfi .pfi-social>a{grid-column:auto!important}}
.pfi-rows.is-strip{display:grid;grid-template-columns:repeat(var(--pfi-c,2),minmax(0,1fr))}
@media (max-width:900px){.pfi-rows.is-strip{grid-template-columns:1fr}}
/* ---------- booking record, cancel reasons, new-date proposals ---------- */
.fm-bk-rec{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;background:var(--inset-bg);border:1px solid var(--inset-edge);font-size:13px;color:var(--t1);box-shadow:var(--inset-shadow)}
.fm-bk-rec .fx-led{width:9px!important;height:9px!important}
.fm-bk-rec .fx-label{margin-right:4px}
.fm-bk-rec.is-amber{border-color:color-mix(in srgb,#ffb02e 45%,var(--rub-edge))}
.fm-bk-me{margin:0 10px 10px;display:flex;flex-direction:column;gap:6px}
.fm-bk-rule{margin:0!important;padding:0 2px}
.fm-bk-rule a,.fm-bk-warn a{color:var(--acc)}
.fm-bk-prop{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;background:var(--inset-bg);border:1px dashed color-mix(in srgb,#ffb02e 55%,var(--rub-edge))}
.fm-bk-prop>span:last-child{display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:var(--t1)}
.fm-bk-cancel{flex:1 1 100%;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge)}
.fm-bk-alt{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;border-radius:9px;background:var(--chan);border:1px solid var(--rub-edge);font-size:13.5px;color:var(--t1)}
.fm-bk-reasons{display:flex;flex-wrap:wrap;gap:6px}
.fm-bk-reasons .fx-key.is-down{border-color:var(--acc)!important;color:var(--t1)!important;box-shadow:inset 0 2px 5px rgba(0,0,0,.5),0 0 0 1px var(--acc)!important}
.fm-bk-prop-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.fm-bk-prop-form .fx-field{height:32px;padding:0 10px;border-radius:8px}
.fm-bk-warn{margin:0;padding:8px 10px;border-radius:9px;background:var(--chan);border:1px solid var(--rub-edge);font-size:13px;color:var(--t2)}
.fm-bk-warn.is-alert{color:var(--t1);border-color:color-mix(in srgb,#ffb02e 55%,var(--rub-edge));background:color-mix(in srgb,#ffb02e 8%,var(--chan))}
.fm-bk-cancel .fm-bk-why{flex:none}
.fm-bk-rule{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.fm-bk-prop .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
/* ---------- Worlds: Hi-Fi / Car Audio ---------- */
.wld{display:flex;flex-direction:column;gap:12px}
html[data-theme] .wld-bill{padding-top:72px!important}
.wld-stage{position:relative;height:clamp(380px,32vw,480px);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(24px,4vw,64px)}
.wld-stage--hifi{background:
  radial-gradient(ellipse 55% 80% at 78% 50%,rgba(255,176,46,.30),transparent 70%),
  radial-gradient(ellipse 40% 60% at 10% 100%,rgba(255,120,40,.18),transparent 70%),
  repeating-linear-gradient(92deg,rgba(255,255,255,.025) 0 2px,transparent 2px 7px),
  linear-gradient(135deg,#2a1a0e 0%,#170f09 45%,#0b0805 100%)}
.wld-stage--car-audio{background:
  radial-gradient(ellipse 55% 80% at 78% 50%,rgba(255,40,70,.30),transparent 70%),
  radial-gradient(ellipse 40% 60% at 8% 100%,rgba(70,120,255,.16),transparent 70%),
  repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 3px,transparent 3px 6px),
  repeating-linear-gradient(-45deg,rgba(0,0,0,.35) 0 3px,transparent 3px 6px),
  linear-gradient(135deg,#16181d 0%,#0c0d10 55%,#060607 100%)}
.wld-hero{position:relative;z-index:3;display:flex;flex-direction:column;gap:12px;max-width:min(640px,52%)}
.wld-kicker{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:12px;line-height:1;letter-spacing:2.4px;color:rgba(255,255,255,.75)}
.wld-title{margin:0;font-size:clamp(64px,8vw,132px);line-height:.9;font-weight:900;letter-spacing:-3px;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.55)}
.wld--hifi .wld-title{background:linear-gradient(180deg,#fff7e6 0%,#ffcf7a 60%,#d98a1c 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.wld--car-audio .wld-title{background:linear-gradient(180deg,#fff 0%,#ff8aa0 55%,#ff2a4d 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.wld-tag{margin:0;font-size:clamp(15px,1.2vw,19px);line-height:1.45;color:rgba(255,255,255,.82);max-width:520px}
.wld-mods{display:flex;gap:8px;flex-wrap:wrap}
.wld-mod{display:flex;flex-direction:column;gap:6px;padding:9px 12px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 8px rgba(0,0,0,.8);color:var(--lcd)}
.wld-mod-cap{font-weight:800;font-size:10px;line-height:1;letter-spacing:1.6px;color:color-mix(in srgb,var(--lcd) 70%,transparent)}
.wld-art{position:relative;z-index:3;display:flex;gap:16px;flex:none}
.wld-vu{position:relative;width:clamp(200px,17vw,280px);aspect-ratio:200/150;border-radius:14px;padding:14px 14px 22px;
  background:radial-gradient(ellipse at 50% 30%,#fff3d0 0%,#f2d58f 55%,#c99a45 100%);
  border:3px solid #1b140c;box-shadow:inset 0 0 0 2px rgba(255,255,255,.25),inset 0 -14px 24px rgba(120,70,10,.35),0 18px 40px -12px rgba(0,0,0,.8),0 0 60px rgba(255,176,46,.25)}
.wld-vu svg{width:100%;height:auto;display:block;overflow:visible}
.wld-vu-arc{fill:none;stroke:#2b1d0d;stroke-width:2.5}
.wld-vu-red{fill:none;stroke:#c3221d;stroke-width:5}
.wld-vu-tick{stroke:#2b1d0d;stroke-width:2}
.wld-vu-label{font:900 20px/1 Epilogue,system-ui,sans-serif;fill:#2b1d0d;text-anchor:middle;letter-spacing:1px}
.wld-vu-needle line{stroke:#140d06;stroke-width:2.5;stroke-linecap:round}
.wld-vu-needle{transform-origin:100px 104px;transform-box:view-box;animation:wldNeedle 2.6s ease-in-out infinite alternate}
.wld-vu-needle--r{animation-duration:2.1s;animation-delay:-.7s}
.wld-vu-hub{fill:#140d06}
.wld-vu-ch{position:absolute;left:14px;bottom:6px;font-weight:900;font-size:11px;line-height:1;letter-spacing:1.4px;color:#2b1d0d}
@keyframes wldNeedle{0%{transform:rotate(-48deg)}35%{transform:rotate(-12deg)}55%{transform:rotate(-30deg)}80%{transform:rotate(18deg)}100%{transform:rotate(4deg)}}
.wld-spl{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border-radius:14px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 3px 12px rgba(0,0,0,.85),0 18px 40px -12px rgba(0,0,0,.8),0 0 60px rgba(255,40,70,.22);color:#ff3b5c}
.wld-spl-cap{font-weight:800;font-size:11px;line-height:1;letter-spacing:2px;color:rgba(255,59,92,.75)}
.wld-spl-seg{color:#ff3b5c;filter:drop-shadow(0 0 6px rgba(255,59,92,.55))}
.wld-eq{display:flex;align-items:flex-end;gap:4px;height:90px}
.wld-eq i{flex:1;min-width:6px;border-radius:2px;background:linear-gradient(0deg,#ff3b5c 0%,#ff8a3b 65%,#ffe14a 100%);transform-origin:bottom;animation:wldEq 1.2s ease-in-out infinite alternate;animation-delay:calc(var(--d) * -1);height:100%}
@keyframes wldEq{0%{transform:scaleY(.18)}50%{transform:scaleY(.7)}100%{transform:scaleY(.36)}}
@media (prefers-reduced-motion:reduce){.wld-vu-needle,.wld-eq i{animation:none}}
.wld-cats{display:flex;flex-wrap:wrap;gap:6px;align-self:flex-start}
.wld-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:12px;align-items:start}
.wld-main,.wld-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.wld-shops .pf-section-head,.wld-prods .pf-section-head{display:flex;justify-content:space-between;align-items:center}
.wld-shop-grid{display:grid;grid-template-columns:repeat(var(--wc,4),minmax(0,1fr));gap:10px;padding:0 14px 14px}
.wld-shop-grid.is-wide .wld-shop{flex-direction:row}
.wld-shop-grid.is-wide .wld-shop-pic{aspect-ratio:auto;width:46%;min-height:200px;flex:none}
.wld-shop-grid.is-wide .wld-shop-av{left:auto;right:-26px;bottom:auto;top:16px}
.wld-shop-grid.is-wide .wld-shop-bd{padding:16px 16px 16px 40px;flex:1}
.wld-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;align-items:stretch}
.wld-row>.fx-panel{margin:0!important}
.wld-evs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 14px 14px}
.wld-orgs .pf-plates{padding:0 14px 14px}
.wld-shop{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);color:var(--t1);text-decoration:none;transition:border-color .15s,transform .15s}
.wld-shop:hover{border-color:var(--acc);transform:translateY(-2px)}
.wld-shop-pic{position:relative;aspect-ratio:16/8;background:repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px),linear-gradient(135deg,#1b1712,#0b0a08);background-size:cover;background-position:center}
.wld--car-audio .wld-shop-pic{background:repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 3px,transparent 3px 6px),linear-gradient(135deg,#17191e,#08090b);background-size:cover;background-position:center}
.wld-shop-av{position:absolute;left:12px;bottom:-22px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--inset-bg) center/cover no-repeat;border:3px solid var(--chan);font-weight:800;font-size:16px;line-height:1;color:var(--t1);box-shadow:0 4px 12px rgba(0,0,0,.5)}
.wld-shop-ver{position:absolute;right:10px;top:10px}
.wld-shop-bd{display:flex;flex-direction:column;gap:6px;padding:28px 12px 12px}
.wld-shop-bd b{font-size:16px}
.wld-shop-cats{display:flex;flex-wrap:wrap;gap:5px}
.wld-shop-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:4px}
.wld-side .pf-plates{padding:0 14px 14px}
.wld-ev{text-decoration:none;color:inherit}
.wld-shelf{padding:0 14px 14px;display:grid!important;grid-template-columns:repeat(var(--wc,6),minmax(0,1fr))!important}
.wld-join-in{display:flex;align-items:center;gap:12px;padding:16px}
.wld-join-in>span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:3px}
.wld-join.is-empty .wld-join-in{padding:28px 20px}
.wld-join.is-empty b{font-size:20px}
@media (max-width:1100px){.wld-row{grid-template-columns:1fr}.wld-art{display:none}.wld-hero{max-width:100%}.wld-shop-grid,.wld-shelf{grid-template-columns:repeat(2,minmax(0,1fr))!important}.wld-evs{grid-template-columns:1fr}}
.wld-shelf .pfc-prod-pic{aspect-ratio:4/3!important}
.wld-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.wld-how-step{margin:0!important;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px!important}
.wld-how-step b{font-size:18px}
@media (max-width:1100px){.wld-how{grid-template-columns:1fr}}
.wld-spl{--fx-live:#ff3b5c;--fx-live-ghost:rgba(255,59,92,.08);--fx-live-glow:rgba(255,59,92,.6)}
.wld-how-step .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.5}
/* ---------- Events directory ---------- */
.evd{display:flex;flex-direction:column;gap:12px}
.evd .dr-filters{z-index:70}
.evd-dds{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.evd-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:12px;align-items:start}
.evd-main,.evd-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.evd-aside{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}
.evd-aside .dr-side-panel{flex:none;overflow:visible}
.evd-aside .dr-side-list{overflow:visible}
.evd-side-row{text-decoration:none;color:inherit}
.evd-host{gap:10px!important;align-items:flex-start}
.evd-host .fx-panel-meta{white-space:normal!important;line-height:1.5}
.evd-week{margin:0!important;padding:10px!important}
.evd-week-in{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.evd-day{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border-radius:11px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t2);cursor:pointer;font:inherit}
.evd-day:disabled{cursor:default;opacity:.55}
.evd-day.has-ev{color:var(--t1)}
.evd-day.has-ev:hover{border-color:var(--acc)}
.evd-day.is-down{border-color:var(--acc);box-shadow:inset 0 2px 6px rgba(0,0,0,.5),0 0 0 1px var(--acc),0 0 14px color-mix(in srgb,var(--acc) 30%,transparent)}
.evd-day-k{font-weight:800;font-size:11px;line-height:1;letter-spacing:1.4px}
.evd-day-d{color:var(--lcd)}
.evd-day:not(.has-ev) .evd-day-d{--fx-live:color-mix(in srgb,var(--lcd) 35%,transparent)}
.evd-day-n{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700}
.evd-day-n .fx-led{width:8px!important;height:8px!important}
.evd-spot{display:grid;grid-template-columns:repeat(var(--n,2),minmax(0,1fr));gap:12px}
.evs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:260px;border-radius:14px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);cursor:pointer;transition:border-color .15s,transform .15s;box-shadow:0 18px 40px -24px rgba(0,0,0,.8)}
.evs:hover{border-color:var(--acc);transform:translateY(-2px)}
.evs-pic{position:relative;background:radial-gradient(ellipse 70% 60% at 70% 30%,color-mix(in srgb,var(--acc) 55%,transparent),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px),linear-gradient(135deg,#17131f,#07080a);background-size:cover;background-position:center}
.evs-shade{position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,var(--chan) 100%)}
.evs-tag{position:absolute;left:12px;top:12px}
.evs-bd{display:flex;flex-direction:column;gap:8px;padding:18px 18px 16px;min-width:0}
.evs-date{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;padding:8px 12px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.8);color:var(--lcd);font-weight:800;font-size:12px;line-height:1;letter-spacing:1.4px}
.evs-date i{font-style:normal;opacity:.8}
.evs-title{font-size:clamp(20px,1.6vw,28px);line-height:1.15;font-weight:800;letter-spacing:-.4px}
.evs-with{font-size:14px;font-weight:700;color:var(--t2)}
.evs-row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}
.evd-gridp{margin:0!important;padding:12px!important}
.evd-grid{display:grid;grid-template-columns:repeat(var(--wc,4),minmax(0,1fr));gap:10px}
.evd-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;text-align:center}
.evd-empty b{font-size:18px}
.evd-org .wld-shop-pic{background:radial-gradient(ellipse 70% 60% at 70% 30%,color-mix(in srgb,var(--acc) 45%,transparent),transparent 70%),linear-gradient(135deg,#17131f,#07080a);background-size:cover;background-position:center}
@media (max-width:1100px){.evd-body{grid-template-columns:1fr}.evd-aside{position:static}.evd-spot{grid-template-columns:1fr}.evd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---------- Fans directory ---------- */
.fnd{display:flex;flex-direction:column;gap:12px}
.fnd-grid{display:grid;grid-template-columns:repeat(var(--wc,5),minmax(0,1fr));gap:10px}
.fnc{position:relative;display:flex;flex-direction:column;align-items:center;border-radius:14px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge);cursor:pointer;transition:border-color .15s,transform .15s;text-align:center}
.fnc:hover{border-color:var(--acc);transform:translateY(-2px)}
.fnc-pic{position:relative;align-self:stretch;height:96px;background:radial-gradient(ellipse 60% 90% at 50% 0%,color-mix(in srgb,var(--acc) 50%,transparent),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 2px,transparent 2px 9px),linear-gradient(180deg,#1a1422,#0b0a0e);background-size:cover;background-position:center}
.fnc-ver{position:absolute;right:8px;top:8px}
.fnc-av{width:84px;height:84px;margin-top:-46px;border-radius:50%;display:grid;place-items:center;background:var(--inset-bg) center/cover no-repeat;border:4px solid var(--chan);box-shadow:0 0 0 1px var(--rub-edge),0 8px 18px rgba(0,0,0,.5);font-weight:800;font-size:24px;line-height:1;color:var(--t1);position:relative;z-index:1}
.fnc-bd{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 12px 12px;align-self:stretch;flex:1}
.fnc-bd b{font-size:16px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fnc-row{display:flex;justify-content:space-between;align-items:center;gap:6px;align-self:stretch;margin-top:auto;padding-top:8px}
.fnc-row .pf-win{font-size:10px!important}
.fnd-do{text-decoration:none;color:inherit}
.fnd-what .fx-panel-meta,.fnd .evd-host .fx-panel-meta{white-space:normal!important}
@media (max-width:1100px){.fnd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---------- File Check ---------- */
.fck{display:flex;flex-direction:column;gap:12px}
html[data-theme] .fck-bill{padding-top:72px!important}
.fck-stage{position:relative;height:clamp(300px,24vw,380px);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(24px,4vw,64px);
  background:radial-gradient(ellipse 50% 80% at 80% 50%,rgba(61,255,138,.16),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px),linear-gradient(135deg,#0f1712,#08090a 60%)}
.fck-hero{position:relative;z-index:3;display:flex;flex-direction:column;gap:12px;max-width:min(680px,55%)}
.fck-title{margin:0;font-size:clamp(36px,3.6vw,60px);line-height:1;font-weight:900;letter-spacing:-1.5px;color:#fff}
.fck-tag{margin:0;font-size:clamp(15px,1.1vw,18px);line-height:1.5;color:rgba(255,255,255,.8)}
.fck-scope{position:relative;z-index:3;flex:none;width:clamp(320px,30vw,520px);display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:14px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 3px 12px rgba(0,0,0,.85),0 18px 40px -12px rgba(0,0,0,.8),0 0 50px rgba(61,255,138,.14)}
.fck-wave{display:flex;align-items:center;gap:3px;height:120px}
.fck-wave i{flex:1;height:var(--h);border-radius:2px;background:linear-gradient(180deg,var(--lcd),color-mix(in srgb,var(--lcd) 35%,transparent));opacity:.9;animation:fckWave 1.6s ease-in-out infinite alternate;animation-delay:calc(var(--d) * -1)}
@keyframes fckWave{0%{transform:scaleY(.35)}100%{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.fck-wave i{animation:none}}
.fck-scope-cap{font-weight:800;font-size:11px;line-height:1;letter-spacing:2px;color:color-mix(in srgb,var(--lcd) 70%,transparent)}
.fck-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:12px;align-items:stretch}
.fck-deck{margin:0!important;display:flex;flex-direction:column}
.fck-body{display:flex;flex-direction:column;gap:10px;padding:4px 16px 16px;flex:1}
html[data-theme] .fck-drop{flex:1;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:14px!important;border:2px dashed var(--rub-edge)!important;background:var(--inset-bg)!important;box-shadow:var(--inset-shadow)!important;cursor:pointer;color:var(--t2)}
html[data-theme] .fck-drop:hover,html[data-theme] .fck-drop.dragover{border-color:var(--acc)!important}
.fck-drop .icon{font-size:40px;line-height:1;color:var(--acc)}
.fck-drop p{margin:0;font-size:15px;color:var(--t1)}
.fck-drop .fck-drop-sub{font-size:13px;color:var(--t3)}
.fck-drop input[type=file]{display:none}
.fck-line{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge);font-size:14px;color:var(--t1)}
.fck-err{border-color:color-mix(in srgb,var(--alert) 55%,var(--rub-edge));color:var(--t1)}
.fck-result{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge)}
.fck-result.is-match{border-color:color-mix(in srgb,var(--play) 55%,var(--rub-edge))}
.fck-result.is-free{border-color:color-mix(in srgb,#ffb02e 55%,var(--rub-edge))}
.fck-verdict{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;padding:10px 14px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.6);color:var(--lcd);font-weight:800;font-size:14px;line-height:1;letter-spacing:1.6px}
.is-free .fck-verdict{color:#ffb02e}
.fck-note{margin:0!important;white-space:normal!important}
.fck-keys{display:flex;flex-wrap:wrap;gap:8px}
.fck-side{display:flex;flex-direction:column;gap:12px}
.fck-side>.fx-panel{margin:0!important}
.fck-steps{padding:0 14px 14px}
.fck-code{display:flex;gap:8px;padding:0 14px 14px}
.fck-code .fx-field{flex:1;height:34px;padding:0 12px;border-radius:9px;background:var(--inset-bg);border:1px solid var(--inset-edge);color:var(--t1);font:inherit;letter-spacing:1px}
.fck-own{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:0 14px 14px}
.fck-own .fx-panel-meta{white-space:normal!important;line-height:1.5}
@media (max-width:1100px){.fck-grid{grid-template-columns:1fr}.fck-scope{display:none}.fck-hero{max-width:100%}}
html[data-theme] #checkDropZone{border:2px dashed color-mix(in srgb,var(--t3) 55%,transparent)!important}
html[data-theme] #checkDropZone:hover,html[data-theme] #checkDropZone.dragover{border-color:var(--acc)!important}
/* ---------- Protection (upload) ---------- */
.prt{display:flex;flex-direction:column;gap:12px}
.prt-stage{background:radial-gradient(ellipse 50% 80% at 80% 50%,rgba(150,90,255,.22),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px),linear-gradient(135deg,#15111f,#08080b 60%)}
.prt-cert{position:relative;z-index:3;flex:none;width:clamp(320px,28vw,460px);display:flex;flex-direction:column;gap:10px;padding:22px 24px;border-radius:14px;
  background:linear-gradient(160deg,#f6f1e6,#e6dcc6);color:#2a2418;border:1px solid #c9b78f;box-shadow:inset 0 0 0 6px rgba(255,255,255,.35),inset 0 0 0 7px rgba(140,110,60,.35),0 24px 50px -16px rgba(0,0,0,.85);transform:rotate(-2deg)}
.prt-cert-cap{font-weight:800;font-size:11px;line-height:1;letter-spacing:2px;color:#6b5a36}
.prt-cert-code{--fx-live:#2a2418;--fx-live-ghost:rgba(42,36,24,.06);--fx-live-glow:transparent}
.prt-cert-row{display:flex;justify-content:space-between;border-top:1px dashed rgba(107,90,54,.4);padding-top:8px;font-weight:700;font-size:12px;line-height:1;letter-spacing:1.2px}
.prt-cert-row i{font-style:normal;color:#6b5a36}
.prt-cert-seal{position:absolute;right:18px;bottom:-18px;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#b98aff,#5b2bb8 70%);color:#fff;font-weight:900;font-size:11px;line-height:1;letter-spacing:1.4px;box-shadow:0 6px 14px rgba(0,0,0,.5),inset 0 0 0 3px rgba(255,255,255,.35)}
.prt-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr);gap:12px;align-items:start}
.prt-main,.prt-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.prt-panel{margin:0!important}
.prt-panel .fx-panel-title .pf-win{margin-right:4px}
.prt-body{display:flex;flex-direction:column;gap:12px;padding:4px 16px 16px}
html[data-theme] #dropZone{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:14px!important;border:2px dashed color-mix(in srgb,var(--t3) 55%,transparent)!important;background:var(--inset-bg)!important;box-shadow:var(--inset-shadow)!important;cursor:pointer}
html[data-theme] #dropZone:hover,html[data-theme] #dropZone.dragover{border-color:var(--acc)!important}
html[data-theme] #dropZone p{margin:0;color:var(--t1)}
html[data-theme] #dropZone input[type=file]{display:none}
.prt-form .form-group{margin:0!important}
.prt-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.prt-form label{display:block;font-weight:800;font-size:11px;line-height:1.3;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);margin-bottom:6px}
.prt-form .form-check{display:inline-flex;align-items:center;gap:8px;text-transform:none;letter-spacing:0;font-weight:600;font-size:14px;color:var(--t1)}
.prt-form .form-check-options{display:flex;gap:16px;flex-wrap:wrap}
.prt-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.prt-form textarea,.prt-form select{width:100%;background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;border-radius:9px!important;color:var(--t1)!important;font:inherit!important;font-size:14px!important;padding:10px 12px!important;box-shadow:var(--inset-shadow)!important}
.prt-form input:focus,.prt-form textarea:focus,.prt-form select:focus{outline:none;border-color:var(--acc)!important}
.prt-go{width:100%;height:56px!important;font-size:17px!important;font-weight:800!important;display:flex!important;align-items:center;justify-content:center;gap:10px;border-radius:14px!important}
html[data-theme] .prt-status{margin:0!important;border-radius:14px!important}
.prt-side .fck-steps .fx-panel-meta{white-space:normal!important}
@media (max-width:1100px){.prt-grid{grid-template-columns:1fr}.prt-cert{display:none}.prt-form .form-row{grid-template-columns:1fr}}
.prt-cert-seal{right:-16px!important;top:-22px;bottom:auto!important}
.prt-side{position:sticky;top:12px}
.fck-side{align-self:start}
/* ---------- About ---------- */
.abt{display:flex;flex-direction:column;gap:12px}
.abt-stage{height:clamp(380px,30vw,480px)!important;background:radial-gradient(ellipse 50% 80% at 80% 50%,rgba(155,92,255,.20),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px),linear-gradient(135deg,#1a0f19,#08080b 60%)!important}
.abt-screen{position:relative;z-index:3;flex:none;width:clamp(360px,36vw,640px);aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000;border:1px solid var(--screen-edge);box-shadow:0 0 0 6px #0b0b0d,0 0 0 7px var(--rub-edge),0 24px 50px -16px rgba(0,0,0,.85)}
.abt-screen iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.abt-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:12px;align-items:stretch}
.abt-row>.fx-panel{margin:0!important}
.abt-body{padding:4px 18px 18px;display:flex;flex-direction:column;gap:10px}
.abt-body h3{margin:0;font-size:clamp(22px,1.8vw,30px);font-weight:900;letter-spacing:-.6px;line-height:1.15}
.abt-body p{margin:0;font-size:16px;line-height:1.65;color:var(--t2)}
.abt-person{align-items:center;text-align:center}
.abt-person .fx-panel-meta{white-space:normal!important;line-height:1.55}
.abt-av{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#b98aff,#7b2fff 80%);color:#fff;font-weight:900;font-size:26px;line-height:1;box-shadow:0 0 0 4px var(--chan),0 0 0 5px var(--rub-edge),0 10px 24px rgba(0,0,0,.5)}
.abt-person b{font-size:20px}
.abt-vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.abt-val{margin:0!important;padding:18px!important;display:flex;flex-direction:column;gap:10px}
.abt-val b{font-size:18px}
.abt-val .fx-panel-meta{white-space:normal!important;line-height:1.55;margin:0}
.abt-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
.abt-ico--violet{color:#a06eff}.abt-ico--red{color:var(--alert)}.abt-ico--green{color:var(--play)}.abt-ico--amber{color:#ffb02e}
.abt-roles{margin:0!important}
.abt-role-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0 14px 14px}
.abt-role{height:44px!important;display:flex!important;align-items:center;justify-content:center;gap:8px;font-weight:800!important}
@media (max-width:1100px){.abt-row{grid-template-columns:1fr}.abt-vals{grid-template-columns:1fr 1fr}.abt-screen{display:none}.abt-role-row{grid-template-columns:repeat(2,1fr)}}
/* ---------- Contact ---------- */
.ctc{display:flex;flex-direction:column;gap:12px}
.ctc-stage{background:radial-gradient(ellipse 50% 80% at 80% 50%,rgba(255,59,92,.18),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px),linear-gradient(135deg,#1a1012,#08080b 60%)!important}
.ctc-art{position:relative;z-index:3;flex:none;width:clamp(300px,26vw,440px);display:flex;flex-direction:column;gap:12px;padding:22px;border-radius:14px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 3px 12px rgba(0,0,0,.85),0 18px 40px -12px rgba(0,0,0,.8)}
.ctc-art-cap{font-weight:800;font-size:11px;letter-spacing:2px;color:color-mix(in srgb,var(--lcd) 70%,transparent)}
.ctc-art-line{height:10px;border-radius:4px;background:color-mix(in srgb,var(--lcd) 30%,transparent)}
.ctc-art-line.is-short{width:60%}
.ctc-art-send{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin-top:6px;font-weight:800;font-size:12px;letter-spacing:1.4px;color:var(--lcd)}
.ctc-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr);gap:12px;align-items:start}
.ctc-main{margin:0!important}
.ctc-body{padding:4px 16px 16px}
html[data-theme] .ctc-body .fm-contact-card{max-width:none!important;width:100%!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.ctc-side{display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}
.ctc-side>.fx-panel{margin:0!important}
.ctc-plate{display:flex;align-items:center;gap:10px;padding:0 14px 14px}
.ctc-mail{font-size:16px;font-weight:700;color:var(--t1);cursor:pointer}
@media (max-width:1100px){.ctc-grid{grid-template-columns:1fr}.ctc-art{display:none}.ctc-side{position:static}}
/* ---------- Music wall ---------- */
.msw{display:flex;flex-direction:column;gap:12px}
html[data-theme] #page-music .dr-shell{overflow:visible}
.msw-grid{display:grid;grid-template-columns:repeat(var(--wc,5),minmax(0,1fr));gap:10px}
.msw-card{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:var(--chan);border:1px solid var(--rub-edge)}
.msw-pic{position:relative;aspect-ratio:1;display:grid;place-items:center;background-size:cover;background-position:center}
.msw-tag{position:absolute;left:10px;top:10px}
.msw-bd{display:flex;flex-direction:column;gap:5px;padding:12px}
.msw-bd b{font-size:15px}
.msw-row{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:6px}
@media (max-width:1100px){.msw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* ---------- Home ---------- */
.hm{display:flex;flex-direction:column;gap:12px}
html[data-theme] .hm-bill{padding-top:72px!important}
.hm-stage{position:relative;height:clamp(440px,36vw,560px);display:flex;align-items:center;justify-content:space-between;gap:32px;padding:0 clamp(24px,4vw,72px);
  background:radial-gradient(ellipse 45% 70% at 78% 50%,rgba(155,92,255,.24),transparent 70%),radial-gradient(ellipse 40% 60% at 10% 90%,rgba(61,255,138,.10),transparent 70%),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 9px),linear-gradient(135deg,#17121c,#08080b 60%)}
.hm-hero{position:relative;z-index:3;display:flex;flex-direction:column;gap:16px;max-width:min(720px,56%)}
.hm-title{margin:0;font-size:clamp(56px,6.4vw,112px);line-height:.92;font-weight:900;letter-spacing:-3px;background:linear-gradient(180deg,#fff 0%,#eadcff 55%,#b98aff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hm-tag{margin:0;font-size:clamp(16px,1.3vw,20px);line-height:1.5;color:rgba(255,255,255,.82);max-width:560px}
.hm-keys{display:flex;flex-wrap:wrap;gap:10px}
.hm-key{height:46px!important;padding:0 20px!important;font-size:15px!important;font-weight:800!important;display:inline-flex!important;align-items:center}
.hm-console{position:relative;z-index:3;flex:none;width:clamp(340px,30vw,520px);display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:16px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 3px 12px rgba(0,0,0,.85),0 24px 50px -16px rgba(0,0,0,.85),0 0 60px color-mix(in srgb,var(--acc) 16%,transparent)}
.hm-console-cap{font-weight:800;font-size:11px;letter-spacing:2.4px;color:color-mix(in srgb,var(--lcd) 70%,transparent)}
.hm-mods{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.hm-mods:empty,.hm-mods[hidden]{display:none}
.hm-mod{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:10px;background:rgba(0,0,0,.35);border:1px solid var(--screen-edge);color:var(--lcd)}
.hm-mod-cap{font-weight:800;font-size:10px;letter-spacing:1.6px;color:color-mix(in srgb,var(--lcd) 70%,transparent)}
.hm-scope{display:flex;align-items:center;gap:3px;height:110px}
.hm-scope i{flex:1;height:var(--h);border-radius:2px;background:linear-gradient(180deg,#b98aff,color-mix(in srgb,#9b5cff 25%,transparent));box-shadow:0 0 8px color-mix(in srgb,#9b5cff 45%,transparent);animation:fckWave 1.8s ease-in-out infinite alternate;animation-delay:calc(var(--d) * -1)}
@media (prefers-reduced-motion:reduce){.hm-scope i{animation:none}}
.hm-live{margin:0!important}
.hm-live-row{display:grid;grid-template-columns:repeat(var(--wc,3),minmax(0,1fr));gap:8px;padding:0 14px 14px}
.hm-live-item{text-decoration:none;color:inherit}
.hm-row{display:grid;grid-template-columns:1fr;gap:12px}
.hm-row:empty{display:none}
.hm-row.is-two{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.hm-row>.fx-panel{margin:0!important}
.hm-row .pf-section-head,.hm-how .pf-section-head,.hm-live .pf-section-head{display:flex;justify-content:space-between;align-items:center}
.hm-artist-grid{display:grid;grid-template-columns:repeat(var(--wc,3),minmax(0,1fr));gap:10px;padding:0 14px 14px}
.hm-artist{text-decoration:none;color:inherit}
.hm-events .evd-grid{padding:0 14px 14px}
.hm-worlds{margin:0!important}
.hm-world-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 14px 14px}
.hm-world{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:170px;padding:18px;border-radius:14px;border:1px solid var(--rub-edge);cursor:pointer;text-align:left;color:#fff;font:inherit;overflow:hidden;transition:border-color .15s,transform .15s}
.hm-world:hover{border-color:var(--acc);transform:translateY(-2px)}
.hm-world b{font-size:clamp(26px,2.2vw,38px);font-weight:900;letter-spacing:-1px}
.hm-world .fx-panel-meta{color:rgba(255,255,255,.75)!important;white-space:normal!important}
.hm-world .fx-key{margin-top:auto}
.hm-world--music{background:radial-gradient(ellipse 60% 90% at 85% 20%,rgba(150,90,255,.4),transparent 70%),linear-gradient(135deg,#17121f,#09080c)}
.hm-world--hifi{background:radial-gradient(ellipse 60% 90% at 85% 20%,rgba(255,176,46,.35),transparent 70%),repeating-linear-gradient(92deg,rgba(255,255,255,.025) 0 2px,transparent 2px 7px),linear-gradient(135deg,#2a1a0e,#0b0805)}
.hm-world--car-audio{background:radial-gradient(ellipse 60% 90% at 85% 20%,rgba(255,40,70,.35),transparent 70%),repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 3px,transparent 3px 6px),linear-gradient(135deg,#16181d,#060607)}
.hm-how{margin:0!important}
.hm-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:0 14px 14px}
.hm-step{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge)}
.hm-step b{font-size:16px}
.hm-step .fx-panel-meta{white-space:normal!important;line-height:1.5}
.hm-role-row{grid-template-columns:repeat(8,minmax(0,1fr))!important}
@media (max-width:1100px){.hm-row.is-two,.hm-world-row,.hm-steps{grid-template-columns:1fr}.hm-console{display:none}.hm-hero{max-width:100%}.hm-live-row,.hm-artist-grid{grid-template-columns:1fr 1fr}.hm-role-row{grid-template-columns:repeat(2,1fr)!important}}
.hm-artist .fnc-pic{height:64px}
.hm-artist .fnc-av{width:72px;height:72px;margin-top:-38px}
.hm-row.is-two{align-items:stretch}
.hm-row.is-two .hm-artist-grid{align-content:start}
/* ---------- Legal pages ---------- */
.lgl{display:flex;flex-direction:column;gap:12px}
.lgl-head{margin:0!important;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 24px!important}
.lgl-head-in{display:flex;flex-direction:column;gap:10px}
.lgl-title{margin:0;font-size:clamp(32px,3vw,48px);font-weight:900;letter-spacing:-1px;line-height:1}
.lgl-upd{align-self:flex-start}
.lgl-grid{display:grid;grid-template-columns:300px minmax(0,1fr) 320px;gap:12px;align-items:start}
.lgl-toc,.lgl-side{position:sticky;top:12px}
.lgl-toc{margin:0!important;max-height:calc(100vh - 140px);overflow:auto}
.lgl-toc-list{list-style:none;margin:0;padding:0 10px 12px;display:flex;flex-direction:column;gap:4px;counter-reset:none}
.lgl-toc-key{width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--t2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;line-height:1.3}
.lgl-toc-key:hover{background:var(--chan);border-color:var(--rub-edge);color:var(--t1)}
.lgl-doc{margin:0!important;padding:8px clamp(20px,3vw,48px) 32px!important}
html[data-theme] .lgl-doc .fm-legal-page{max-width:960px!important;margin:0!important;padding:0!important}
html[data-theme] .lgl-doc .fm-legal-page p,html[data-theme] .lgl-doc .fm-legal-page li{font-size:16px;line-height:1.75;color:var(--t2)}
html[data-theme] .lgl-doc .fm-legal-page h2{font-size:20px;color:var(--t1);margin:32px 0 10px;scroll-margin-top:16px;padding-top:16px;border-top:1px solid var(--rub-edge)}
.lgl-side{display:flex;flex-direction:column;gap:12px}
.lgl-side>.fx-panel{margin:0!important}
@media (max-width:1300px){.lgl-grid{grid-template-columns:260px minmax(0,1fr)}.lgl-side{display:none}}
@media (max-width:900px){.lgl-grid{grid-template-columns:1fr}.lgl-toc{position:static;max-height:none}}
.lgl-toc{display:flex!important;flex-direction:column!important;align-items:stretch!important}
.lgl-toc .lgl-toc-list{display:flex!important;flex-direction:column!important}
.lgl-toc .lgl-toc-list li{display:block;margin:0;padding:0}
/* ---------- Registered tracks: waveform and certificate pressed into the panel, same gray as the tab wells ---------- */
html[data-theme] .pft-row .hw-wf{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;height:40px!important;padding:5px 8px!important;border-radius:8px}
html[data-theme] .pft-cert{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important}
html[data-theme] .pft-cap{color:var(--t3)!important}
html[data-theme] .pft-code{color:var(--t1)!important;text-shadow:none!important}
html[data-theme] .pft-hash{color:var(--t2)!important}
/* ---------- Page rhythm: space between the billboard, panels and columns on the rebuilt pages ---------- */
html[data-theme] .page.pf-app>.fx-app-shell:is(.wld,.evd,.fnd,.fck,.prt,.abt,.ctc,.hm,.lgl,.msw,.rgx){gap:16px!important}
html[data-theme] :is(.wld-grid,.wld-row,.wld-main,.wld-side,.wld-how,.evd-body,.evd-main,.evd-col,.evd-aside,.evd-spot,.fck-grid,.fck-side,.prt-grid,.prt-main,.prt-side,.abt-row,.abt-vals,.ctc-grid,.ctc-side,.hm-row,.lgl-grid,.lgl-side){gap:16px!important}
html[data-theme] :is(.wld-shop-grid,.evd-grid,.fnd-grid,.msw-grid,.hm-artist-grid,.hm-world-row,.hm-steps,.wld-evs){gap:12px!important}
/* Heroes a size smaller */
html[data-theme] .wld-stage{height:clamp(300px,24vw,380px)!important}
html[data-theme] .wld-title{font-size:clamp(52px,5.4vw,96px)!important;letter-spacing:-2px!important}
html[data-theme] .abt-stage{height:clamp(300px,24vw,380px)!important}
html[data-theme] .hm-stage{height:clamp(360px,28vw,460px)!important}
html[data-theme] .hm-title{font-size:clamp(48px,5vw,92px)!important}
/* Item counts and prices: pressed gray windows with white text instead of black */
html[data-theme] :is(.wld-shop-row,.pfc-prod-row,.evc-row,.evs-row,.msw-row)>.fx-status{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;color:var(--t1)!important;text-shadow:none!important}
html[data-theme] .wld-shelf .pfc-prod-pic{aspect-ratio:3/2!important}
html[data-theme] .hm-step>.fx-status{align-self:flex-start}
/* Event cards: price and keys sit on the bottom line even without a lineup */
html[data-theme] .evc-bd{flex:1 1 auto}
html[data-theme] .evc-row{margin-top:auto!important;padding-top:4px}
/* Registered tracks: PUBLIC + Protected together at the right end of the title line, level with the certificate */
html[data-theme] .pft-row{align-items:start!important}
html[data-theme] .pft-row>.fx-rkey,html[data-theme] .pft-row>.pf-track-cover{align-self:center}
html[data-theme] .pft-title{flex-wrap:nowrap!important;min-height:28px}
html[data-theme] .pft-title>b{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:28px}
html[data-theme] .pft-badges{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:8px}
html[data-theme] .pft-badges>*{height:28px!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;margin:0!important;padding:0 12px!important;line-height:1!important;vertical-align:top}
html[data-theme] .pft-badges>.hw-indicator{min-width:158px;justify-content:center}
html[data-theme] .pft-badges>.fm-track-pub-badge{min-width:76px;justify-content:center}
/* Registered tracks: rows lie raised in a dark tray, waveform and certificate pressed into each row (same balance as Contributors) */
html[data-theme] div:has(>.pft-row){padding:10px!important;border-radius:14px;background:var(--tray-bg)!important;box-shadow:var(--tray-shadow)!important;gap:8px!important}
html[data-theme] .pft-row{background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--rub-edge)!important;box-shadow:var(--raised-shadow)!important}
html[data-theme] div:has(>.pft-row)>.pft-row{margin:0!important}
/* Profile pages: every list of rows in a panel = dark tray with raised rows (same balance as Registered tracks / Contributors) */
html[data-theme] :is(#page-artist,.pf-app) .fx-panel>div:is(:has(>.fx-row),:has(>.pf-live-section)){margin:0 14px 14px!important;padding:10px!important;border-radius:14px;background:var(--tray-bg)!important;box-shadow:var(--tray-shadow)!important;gap:8px}
html[data-theme] :is(#page-artist,.pf-app) .fx-panel>div:is([id$="-list"]:has(>.fx-row),:has(>.pf-live-section)){display:flex!important;flex-direction:column}
html[data-theme] :is(#page-artist,.pf-app) .fx-panel>div:is(:has(>.fx-row),:has(>.pf-live-section)) .fx-row{margin:0!important;background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--rub-edge)!important;box-shadow:var(--raised-shadow)!important}
html[data-theme] :is(#page-artist,.pf-app) .fx-panel>div>.pf-live-section{margin:0!important;display:flex;flex-direction:column;gap:8px}
html[data-theme] :is(#page-artist,.pf-app) .fx-panel>div>.pf-live-section+.pf-live-section{margin-top:6px!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-live-section>.fx-label{padding:2px 4px 0;color:var(--t2)}
/* Tab and view key groups: on the dark panel the keys float (no well); on the white panel the pressed well stays */
html[data-theme="graphite"] :is(.fx-well.lv-tab-well,.pf-tab-well,.fx-well.lv-view-well),
html[data-theme="graphite"] :is(#page-artist,.pf-app,#page-discover,#page-live,#lrBrowse,.dr-shell,#jbDash) :is(.fx-well.lv-tab-well,.pf-tab-well,.fx-well.lv-view-well){background:transparent!important;border-color:transparent!important;box-shadow:none!important}
/* Profile Overview "Protected tracks": waveform on the darker gray, not on black */
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row .hw-wf{background:var(--tray-bg)!important;border:1px solid var(--rub-edge)!important;box-shadow:var(--tray-shadow)!important}
/* No corner screws anywhere */
html[data-theme] .hw-screws::after,html[data-theme] .hw-screws::before{display:none!important;content:none!important}
/* Jukebox deck: the waveform keeps one proportion on every screen (no stretching on tall monitors) */
html[data-theme] #now-sub-jukebox #jbRoom #jbWave{flex:0 0 auto!important;height:auto!important;min-height:0!important;aspect-ratio:12/5}
html[data-theme] #now-sub-jukebox #jbRoom .jbx-transport{margin-top:6px!important}
/* Registered tracks card — THE standard for every role and every viewer (Artist, DJ, Beatmaker, Studio; owner and visitor):
   [play][cover][title / meta / waveform][status chips over owner keys][certificate]
   chips line up with the certificate top, owner keys line up with the certificate keys. */
html[data-theme] .pft-row{grid-template-columns:auto 56px minmax(0,1fr) auto 300px!important;align-items:stretch!important;gap:14px!important}
html[data-theme] .pft-row>.fx-rkey,html[data-theme] .pft-row>.pf-track-cover{align-self:center!important}
html[data-theme] .pft-main{justify-content:center;gap:6px!important}
html[data-theme] .pft-title{min-height:0!important}
html[data-theme] .pft-title>b{line-height:1.3!important}
html[data-theme] .pft-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px;min-width:0}
html[data-theme] .pft-side .pft-badges{margin:0!important}
html[data-theme] .pft-side .pft-own{margin:0!important;justify-content:flex-end;flex-wrap:nowrap}
html[data-theme] .pft-cert{align-self:stretch;justify-content:space-between}
html[data-theme] .pft-cert .pft-keys{margin-top:auto!important}
@media (max-width:1100px){html[data-theme] .pft-row{grid-template-columns:auto 48px minmax(0,1fr)!important}html[data-theme] .pft-side{grid-column:1/-1;flex-direction:row;justify-content:space-between;align-items:center}}
/* Overview track rows: fixed columns, so waveform, Protected chip, plays and Verify line up row under row */
@media (min-width:769px){
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row{grid-template-columns:34px 46px minmax(0,1fr) 168px 92px 84px!important}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-protected{justify-self:stretch!important;justify-content:center!important;box-sizing:border-box}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row>.pf-track-verify{justify-self:stretch!important;justify-content:center!important;text-align:center}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row .pf-track-main{justify-content:space-between}
html[data-theme] :is(#page-artist,.pf-app) .pf-track-row .pf-track-main>.hw-wf{margin-left:auto}
}
/* Hero titles (Home, landing): white to silver, never pink; room for descenders */
html[data-theme] .hm-title{background:linear-gradient(180deg,#ffffff 0%,#e9ebef 45%,#a3a9b4 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;line-height:1!important;padding-bottom:.14em;margin-bottom:-.14em!important}
/* ---------- Copyright reports (report form, your reports, dispute view) on the platform frame ---------- */
.dsp{display:flex;flex-direction:column;gap:16px}
.dsp-head{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.dsp-kick{gap:6px}
.dsp-title{margin:0;font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--t1)}
.dsp-sub{margin:0;font-size:14px;line-height:1.6;color:var(--t2);max-width:860px}
.dsp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:16px;align-items:start}
.dsp-main,.dsp-side,.dsp-form{display:flex;flex-direction:column;gap:16px;min-width:0}
.dsp-side{position:sticky;top:12px}
html[data-theme] .dsp .fx-panel{margin:0!important}
.dsp .pf-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dsp-body{display:flex;flex-direction:column;gap:12px;padding:2px 18px 18px;font-size:14px;line-height:1.6;color:var(--t1)}
.dsp-body p{margin:0;color:var(--t2)}
.dsp-body label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2)}
.dsp-body label:has(input[type=checkbox]),.dsp-body label:has(input[type=radio]){flex-direction:row;align-items:flex-start;gap:10px;font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--t1);line-height:1.5;cursor:pointer}
.dsp-body label input[type=checkbox],.dsp-body label input[type=radio]{margin-top:3px;flex:none;accent-color:var(--acc)}
.dsp-form .dsp-body>div>div,.dsp-form .dsp-body>div{display:flex;flex-direction:column;gap:6px}
.dsp-detail .dsp-body>div>div+div{margin-top:4px}
.dsp-body div:has(>div>label[for="disputeClaimantName"]){display:grid;grid-template-columns:1fr 1fr;gap:16px}
html[data-theme] .dsp-body :is(input[type=text],input[type=email],textarea){width:100%;box-sizing:border-box;padding:11px 14px;border-radius:10px;font:inherit;font-size:14px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--t1);background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;outline:none;resize:vertical}
html[data-theme] .dsp-body :is(input,textarea)::placeholder{color:var(--t3)}
html[data-theme] .dsp-body :is(input,textarea):focus{border-color:var(--acc)!important}
.dsp-note{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:12px;background:var(--inset-bg);border:1px solid var(--inset-edge);border-left:3px solid #ffb02e;box-shadow:var(--inset-shadow);font-size:13.5px;line-height:1.6;color:var(--t1)}
.dsp-note p{margin:0;color:var(--t2)}
.dsp-note-cap{font-weight:800;color:var(--t1)}
.dsp-error{margin:0;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--alert) 50%,transparent);color:var(--alert);font-size:13.5px;line-height:1.5}
.dsp-state{padding:28px 18px;text-align:center;color:var(--t2);font-size:14px}
.dsp-listpanel{display:none}
.dsp-listpanel:has(>[style*="block"]){display:block}
.dsp-list{margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
.dsp-list:not([style*="none"]){display:flex!important;flex-direction:column;gap:8px}
html[data-theme] .dsp-list .fx-row{margin:0!important;background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--rub-edge)!important;box-shadow:var(--raised-shadow)!important}
.dsp-row{display:grid;grid-template-columns:150px minmax(0,1fr) 84px;align-items:center;gap:12px;padding:10px 12px}
.dsp-row>.fx-status{justify-content:center}
.dsp-row .pf-room-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.dsp-row>.fx-key{justify-self:stretch;justify-content:center}
.dsp-meta{font-size:14px;color:var(--t2)}
.dsp-meta strong{color:var(--t1)!important}
.dsp-detail:not([style*="none"]){display:flex!important;flex-direction:column;gap:16px}
.dsp-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.dsp-cards>#disputeDetailCounterBlock,.dsp-cards>#disputeDetailWithdrawWrap{grid-column:1/-1}
.dsp-submit .dsp-body{padding-top:18px}
.dsp .fm-btn{align-self:flex-start}
@media (max-width:1100px){.dsp-grid,.dsp-cards{grid-template-columns:1fr}.dsp-side{position:static}}
/* ---------- Settings on the platform frame ---------- */
.stg-inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.stg-inner>.dsp-head,.stg-inner>#settings-guest-hint,.stg-inner>#settings-notifications-panel,.stg-inner>#settings-danger-zone{grid-column:1/-1}
html[data-theme] .stg .fx-panel{margin:0!important}
html[data-theme] .stg :is(.settings-panel-desc,.settings-panel-note){margin:0;font-size:14px;line-height:1.6;color:var(--t2)}
html[data-theme] .stg .settings-dl{margin:0;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:12px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
html[data-theme] .stg .settings-dl>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px;padding:0;border:0}
html[data-theme] .stg .settings-dl dt{color:var(--t2);font-weight:600}
html[data-theme] .stg .settings-dl dd{margin:0;color:var(--t1);overflow:hidden;text-overflow:ellipsis}
html[data-theme] .stg .settings-form{display:flex;flex-direction:column;gap:12px;max-width:none}
html[data-theme] .stg .settings-form-row{display:flex;flex-direction:column;gap:6px;margin:0}
html[data-theme] .stg .settings-label{font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2)}
html[data-theme] .stg .settings-input{width:100%;max-width:none;box-sizing:border-box;padding:11px 14px;border-radius:10px;font:inherit;font-size:14px;color:var(--t1);background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important}
html[data-theme] .stg .settings-input:focus{border-color:var(--acc)!important;outline:none}
html[data-theme] .stg .settings-notif-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
html[data-theme] .stg .settings-notif-table :is(th,td){border-bottom:1px solid var(--line);color:var(--t1);background:transparent}
html[data-theme] .stg .settings-notif-table th{color:var(--t2)}
html[data-theme] .stg .fm-btn{align-self:flex-start}
html[data-theme] .stg-danger{border-color:color-mix(in srgb,var(--alert) 40%,var(--metal-edge))!important}
@media (max-width:1100px){.stg-inner{grid-template-columns:1fr}}
/* ---------- Sign in / sign up box: Fortis mark and the LED accent instead of the old purple ---------- */
html[data-theme] #gateOverlay .gate-mark{width:24px;height:28px;flex:none;display:inline-block;background:var(--t1);-webkit-mask:url(../assets/fortis-mark.svg) center/contain no-repeat;mask:url(../assets/fortis-mark.svg) center/contain no-repeat}
html[data-theme] #gateOverlay .gate-logo{display:flex;align-items:center;gap:10px;color:var(--t1)}
html[data-theme] #gateOverlay .fm-auth-tab.active{border-bottom-color:var(--acc)!important;color:var(--t1)!important}
html[data-theme] #gateOverlay [style*="#A06EFF"],html[data-theme] #gateOverlay .gate-terms-link{color:var(--acc)!important}
html[data-theme] #gateOverlay .gate-role-opt{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;color:var(--t2)!important}
html[data-theme] #gateOverlay .gate-role-opt.sel{border-color:var(--acc)!important;color:var(--t1)!important;box-shadow:inset 0 0 0 1px var(--acc)!important}
html[data-theme] #gateOverlay .gate-field input{background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;color:var(--t1)!important}
.stg-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.stg-inner>section[aria-labelledby="settings-persona-h"]{grid-column:1/-1}
html[data-theme] .stg input[type=checkbox]{accent-color:var(--acc)}
/* ---------- Join the Shield panel (guests only): brushed plate, bottom right ---------- */
html[data-theme] #floatPanel{top:auto!important;bottom:20px!important;right:20px!important;transform:none!important;width:330px!important;padding:18px!important;border-radius:16px!important;
 background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--metal-edge)!important;box-shadow:inset 0 1px 0 var(--face-hi),0 22px 44px -14px rgba(0,0,0,.65)!important;transition:opacity .35s ease!important}
html[data-theme] #floatPanel.visible:hover{width:330px!important}
html[data-theme] #floatPanel .fp-expanded{display:flex;flex-direction:column;gap:12px;font-family:Epilogue,sans-serif}
html[data-theme] #floatPanel .fp-brand{display:flex;align-items:center;gap:9px}
html[data-theme] #floatPanel .fp-mark{width:22px;height:26px;flex:none;background:var(--t1);-webkit-mask:url(../assets/fortis-mark.svg) center/contain no-repeat;mask:url(../assets/fortis-mark.svg) center/contain no-repeat}
html[data-theme] #floatPanel .fp-brand b{display:block;font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--t1);line-height:1}
html[data-theme] #floatPanel .fp-brand small{display:block;font-size:9.5px;letter-spacing:.16em;color:var(--t2);margin-top:2px}
html[data-theme] #floatPanel .fp-title{margin:0;font-size:20px;font-weight:800;color:var(--t1);line-height:1.15;letter-spacing:-.3px}
html[data-theme] #floatPanel .fp-sub{margin:-4px 0 0;font-size:13.5px;color:var(--t2);line-height:1.55}
html[data-theme] #floatPanel .fp-join{height:40px!important;width:100%;font-weight:800!important;font-size:14px!important;display:flex!important;align-items:center;justify-content:center}
html[data-theme] #floatPanel .fp-login{font-size:12.5px;color:var(--t2);text-align:center}
html[data-theme] #floatPanel .fp-login a{color:var(--t1);font-weight:700;text-decoration:underline;text-underline-offset:3px}
html[data-theme] #floatPanel .fp-close{top:12px!important;right:12px!important;color:var(--t2)!important}
html[data-theme] #floatPanel .fp-pitch{margin:-4px 0 0;font-size:13.5px;font-weight:700;line-height:1.45;color:var(--t1)}

/* ---------- Admin (command center) on the platform frame ---------- */
.adm-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.adm-head-keys{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.adm-hint{font-size:13px;color:var(--t2)}
.adm-hint .admin-btn{margin-left:8px}
.adm-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.adm-panel .pf-section-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.adm-panel .pf-section-head .fx-panel-meta{margin-right:auto}
.adm-pager{display:flex;align-items:center;gap:8px}
.adm-seg{display:inline-flex;gap:4px}
html[data-theme] #page-admin .admin-reports-filter-btn--active{border:2px solid var(--acc)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 10px color-mix(in srgb,var(--acc) 45%,transparent),0 2px 0 var(--rub-drop)!important}
/* role counters: one row of LCD windows; the pressed one filters the members list */
.adm-tiles{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:8px;padding:2px 14px 14px}
.adm-tile{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:0;padding:10px 11px;border-radius:12px;text-align:left;font:inherit;color:var(--t1);cursor:pointer;
 background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);box-shadow:var(--raised-shadow)}
.adm-tile--ro{cursor:default}
.adm-tile-k{font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-tile-f{font-size:11px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-lcd{display:flex;align-items:center;justify-content:flex-end;min-height:26px;padding:7px 10px;border-radius:9px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.6);color:var(--lcd);font:800 20px/1 ui-monospace,Menlo,monospace}
html[data-theme] .adm-tile[aria-pressed="true"]{border:2px solid var(--acc);padding:9px 10px;box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 14px color-mix(in srgb,var(--acc) 45%,transparent),var(--raised-shadow)}
/* lists: rows on raised metal in the see-through tray */
.adm-tray{margin:0 14px 14px;padding:4px 10px 8px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow);overflow-x:auto}
html[data-theme] #page-admin .adm-table{width:100%;min-width:0;border-collapse:separate;border-spacing:0 6px;font-size:13.5px;background:none}
html[data-theme] #page-admin .adm-table th{padding:8px 12px 0;text-align:left;font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);background:none;border:0;white-space:nowrap}
html[data-theme] #page-admin .adm-table td{padding:9px 12px;color:var(--t1);vertical-align:middle;background:linear-gradient(180deg,var(--metal-hi),var(--metal-lo));border:0;border-top:1px solid var(--rub-edge);border-bottom:1px solid var(--rub-edge)}
html[data-theme] #page-admin .adm-table td:first-child{border-left:1px solid var(--rub-edge);border-radius:10px 0 0 10px}
html[data-theme] #page-admin .adm-table td:last-child{border-right:1px solid var(--rub-edge);border-radius:0 10px 10px 0}
html[data-theme] #page-admin .adm-table td[colspan]{border-radius:10px;text-align:center;color:var(--t2)!important}
html[data-theme] #page-admin .adm-table tbody tr:hover{background:none}
html[data-theme] #page-admin .adm-table tbody tr:hover td{border-color:color-mix(in srgb,var(--acc) 45%,var(--rub-edge))}
html[data-theme] #page-admin .adm-table td small,html[data-theme] #page-admin .adm-table td div[style*="font-size"]{color:var(--t2)!important}
html[data-theme] #page-admin .admin-user-profile-link{color:var(--t1);font-weight:700;border-bottom:1px solid var(--rub-edge)}
html[data-theme] #page-admin .admin-user-profile-link:hover{border-bottom-color:var(--acc)}
html[data-theme] #page-admin .admin-role-pill{padding:3px 9px;border-radius:7px;font-size:11.5px;font-weight:700;color:var(--t1);background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
.adm-vis{display:inline-flex;align-items:center;gap:7px;color:var(--t2)}
.adm-vis.is-on{color:var(--t1)}
.adm-vis .fx-led{width:9px!important;height:9px!important}
.adm-vis .fx-led.is-off{background:var(--rub-edge)!important;box-shadow:none!important}
.adm-staff{font-weight:800;color:var(--alert)}
html[data-theme] #page-admin .admin-mod-cell{flex-direction:row;align-items:center;gap:10px;min-width:0}
html[data-theme] #page-admin .admin-mod-status{min-width:58px;font-size:12px;font-weight:800}
html[data-theme] #page-admin .admin-mod-status--active{color:var(--play)}
html[data-theme] #page-admin .admin-mod-status--suspended{color:#ffb02e}
html[data-theme] #page-admin .admin-mod-status--banned{color:var(--alert)}
html[data-theme] #page-admin .admin-mod-actions,html[data-theme] #page-admin .admin-report-actions{flex-wrap:nowrap;gap:6px}
/* every admin row key is a hardware key; delete keeps the red ring */
html[data-theme] #page-admin :is(.admin-btn,.admin-row-action,.admin-row-action-neutral,.admin-row-action-delete){height:28px;padding:0 12px;border-radius:9px;font:700 12px/1 Epilogue,sans-serif;white-space:nowrap;cursor:pointer;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important}
html[data-theme] #page-admin :is(.admin-row-action-delete,.admin-row-action){border:2px solid var(--alert)!important;box-shadow:0 0 8px color-mix(in srgb,var(--alert) 40%,transparent),0 2px 0 var(--rub-drop)!important}
html[data-theme] #page-admin .admin-btn-primary{border:2px solid var(--acc)!important}
html[data-theme] #page-admin .admin-report-status{padding:3px 9px;border-radius:7px;font-size:11.5px;background:var(--screen);border:1px solid var(--screen-edge)}
html[data-theme] #page-admin .admin-report-status--open{color:#ffb02e}
html[data-theme] #page-admin .admin-report-status--reviewed{color:var(--info)}
html[data-theme] #page-admin .admin-report-status--actioned{color:var(--alert)}
html[data-theme] #page-admin .adm-table a:not(.admin-user-profile-link){color:var(--t1);text-decoration:underline;text-underline-offset:3px}
/* prize form: inset fields on the panel */
.adm-body{padding:0 14px 12px}
html[data-theme] #page-admin .admin-prize-form{padding:0;border:0;background:none;box-shadow:none}
html[data-theme] #page-admin .admin-prize-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
html[data-theme] #page-admin .admin-prize-field{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2)}
html[data-theme] #page-admin .admin-prize-input{height:38px;padding:0 12px;border-radius:10px;background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow);color:var(--t1)!important;font-size:14px;letter-spacing:0;text-transform:none}
html[data-theme] #page-admin .admin-prize-input:focus{border-color:var(--acc)!important}
html[data-theme] #page-admin .admin-prize-check{flex-direction:row;align-items:center;padding-top:20px;font-size:13px;letter-spacing:0;text-transform:none;color:var(--t1)}
html[data-theme] #page-admin .admin-prize-check input{accent-color:var(--acc)}
html[data-theme] #page-admin .admin-prize-actions{margin-top:12px}
.adm-detail{margin:0 14px 14px;padding:14px 16px;border-radius:12px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);font-size:14px;line-height:1.6;color:var(--t1)}
@media (max-width:1500px){.adm-tiles{grid-template-columns:repeat(7,minmax(0,1fr))}.adm-two{grid-template-columns:1fr}}
@media (max-width:768px){.adm-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-theme] #page-admin .admin-prize-grid{grid-template-columns:1fr}}
.adm-prize-cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:4px;align-items:start}
.adm-prize-cols>.adm-tray{margin-left:0}
html[data-theme] #page-admin .adm-table a{color:var(--t1)!important;text-decoration:underline;text-underline-offset:3px}
@media (max-width:1500px){.adm-prize-cols{grid-template-columns:1fr}.adm-prize-cols>.adm-tray{margin-left:14px}}
html[data-theme] #page-admin .adm-panel>.pf-section-head{min-height:52px;box-sizing:border-box}
html[data-theme] #page-admin .admin-mod-status{display:inline-flex;justify-content:center;min-width:0;padding:3px 9px;border-radius:7px;font-size:11.5px;background:var(--screen);border:1px solid var(--screen-edge);white-space:nowrap}
html[data-theme] #page-admin .adm-table a{white-space:nowrap}

/* ---- collab room: compact certificate plate, recap beside it, stage fits the screen, video mode ---- */
#now-sub-collab .cs-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:12px}
#now-sub-collab .cs-top>*{grid-column:1/-1;min-width:0}
#now-sub-collab .cs-top:has(#csCertPanel:not([style*="none"])):has(#csRecapSection:not([style*="none"])) :is(#csCertPanel,#csRecapSection){grid-column:auto}
html[data-theme] #now-sub-collab .cs-cert-panel{padding:14px 18px!important}
.cs-cert-plate{display:flex;align-items:center;gap:16px}
.cs-cert-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.cs-cert-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
html[data-theme] #now-sub-collab .cs-cert-panel-label{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--t2)}
html[data-theme] #now-sub-collab .cs-cert-code{padding:6px 10px;border-radius:8px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd);font:800 15px/1 ui-monospace,Menlo,monospace;letter-spacing:1px}
.cs-cert-keys{display:flex;gap:8px;flex-wrap:wrap}
.cs-cert-pending{margin:0;font-size:13px;color:var(--t2)}
.cs-cert-qr{flex:none;flex-direction:column;align-items:center;gap:6px}
#csCertQrWrap #csCertQr{width:84px!important;height:84px!important;padding:4px;box-sizing:border-box;background:#fff;border-radius:8px;box-shadow:0 0 0 1px var(--metal-edge)}
html[data-theme] #now-sub-collab .cs-recap-section{padding:14px 18px!important}
html[data-theme] #now-sub-collab .cs-recap-placeholder{margin:6px 0 0;padding:0;text-align:left;font-size:13px;color:var(--t2)}
html[data-theme] #now-sub-collab .cs-recap-title{font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--t2)}
/* stage keys + stage: every video keeps 16:9; JS picks the tile size that fits the room left on screen
   (--cv-c columns x --cv-r rows of --cv-u wide tiles); the host takes 2x2 tiles when there are 3 or 5. */
.cs-stage-keys{display:flex;justify-content:flex-end;gap:8px;margin:0 0 8px}
html[data-theme] #now-sub-collab #csVideoGrid.cv-grid-wrap{height:auto;box-sizing:border-box;margin-bottom:12px;justify-content:center;align-content:center;
 grid-template-columns:repeat(var(--cv-c,2),var(--cv-u,minmax(0,1fr)));grid-template-rows:var(--cv-rows,auto)}
html[data-theme] #now-sub-collab #csVideoGrid .cv-grid-panel{height:100%;min-height:0;min-width:0}
html[data-theme] #now-sub-collab #csVideoGrid .cv-cam{height:100%;min-height:0}
html[data-theme] #now-sub-collab #csVideoGrid .cv-cam-feed{aspect-ratio:auto!important;flex:1 1 auto!important;min-height:0!important;height:auto}
@media (min-width:2200px){html[data-theme] #now-sub-collab .cs-body{grid-template-columns:minmax(0,1fr) 460px!important}html[data-theme] #now-sub-collab .cs-col-chat{width:460px!important}}
/* video mode: only the videos (and the chat) */
#now-sub-collab.cs-video-mode :is(.cs-tips-bar,#csCertPanel,#csRecapSection,.cs-session-row,#csCollabStatusBadge,#csCollabResumeCountdown){display:none!important}
html[data-theme] #now-sub-collab.cs-video-mode #csTheaterBtn{border:2px solid var(--acc)!important}
/* full screen: only the videos, edge to edge */
html[data-theme] #now-sub-collab #csVideoGrid.cv-grid-wrap:fullscreen{height:100vh!important;width:100vw;margin:0;border-radius:0!important;padding:12px!important;background:#050506!important;border:0!important;box-sizing:border-box}
html[data-theme] #now-sub-collab .cs-top>:is(#csCertPanel,#csRecapSection){margin-bottom:0!important}
html[data-theme] #now-sub-collab .cs-top:has(#csCertPanel:not([style*="none"])) .cs-tips-bar{margin-bottom:12px!important}

/* ---------- Release page (EP / album) on the platform frame ---------- */
.rel-content{display:flex;flex-direction:column;gap:16px}
html[data-theme] .rel-sleeve{display:flex!important;align-items:center;gap:28px;padding:22px!important;margin:0!important}
.rel-cover{flex:none;width:240px;height:240px;border-radius:12px;background:linear-gradient(135deg,#1b1d22,#0b0c0e);background-size:cover;background-position:center;display:grid;place-items:center;
 box-shadow:0 0 0 1px var(--metal-edge),0 18px 30px -16px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.04)}
.rel-cover-mark{width:64px;height:74px;background:rgba(255,255,255,.18);-webkit-mask:url(../assets/fortis-mark.svg) center/contain no-repeat;mask:url(../assets/fortis-mark.svg) center/contain no-repeat}
.rel-info{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.rel-type{gap:6px}
.rel-title{margin:2px 0 0;font-size:clamp(34px,3vw,52px);line-height:1.05;font-weight:900;letter-spacing:-1px;color:var(--t1)}
.rel-artists{font-size:17px;font-weight:700;color:var(--t1)}
.rel-meta{font-size:14px;color:var(--t2)}
.rel-keys{display:flex;align-items:center;gap:8px;margin-top:6px}
.rel-tracks{display:flex;flex-direction:column;gap:8px;margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
 background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);box-shadow:var(--raised-shadow)}
.rel-desc{font-size:14px;line-height:1.65;color:var(--t1);white-space:pre-wrap}
.rel-artist-list{display:flex;flex-direction:column;gap:8px;margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
.rel-artist-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:10px;background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);box-shadow:var(--raised-shadow)}
.rel-artist-name{background:none;border:0;padding:0;font:700 14.5px Epilogue,sans-serif;color:var(--t1)}
.rel-artist-name.is-link{cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rub-edge)}
.rel-artist-name.is-link:hover{text-decoration-color:var(--acc)}
.rel-verify-key{align-self:flex-start;text-decoration:none}
@media (max-width:720px){html[data-theme] .rel-sleeve{flex-direction:column;align-items:flex-start}.rel-cover{width:100%;height:auto;aspect-ratio:1}}
html[data-theme] .rel-keys .fx-status[style*="none"]{display:none!important}
.rel-artist-name{text-align:left}

.rel-tracks .pft-row{margin:0!important}

/* ---------- Older dialogs on the hardware look (same plate as the booking / report sheets) ---------- */
html[data-theme] :is(#ytConfirmOverlay,#fmEndRoomConfirm,#fmPauseRoomConfirm,#fmFinalizeConfirm,#fmLeaveCollabConfirm,#fmStreamLinkModal,#fmRecapLinkModal,#fmProtectDeclaration,#fmCreateRoomModal,#fmLegalModal){background:rgba(6,7,10,.62)!important;backdrop-filter:blur(3px)}
html[data-theme] :is(#ytConfirmOverlay,#fmEndRoomConfirm,#fmPauseRoomConfirm,#fmFinalizeConfirm,#fmLeaveCollabConfirm,#fmStreamLinkModal,#fmRecapLinkModal,#fmProtectDeclaration)>div,
html[data-theme] #fmCreateRoomModal .modal,html[data-theme] .fm-legal-modal-box{
 position:relative;background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--metal-edge)!important;border-radius:16px!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 28px 56px -18px rgba(0,0,0,.75)!important;color:var(--t1)!important;font-family:Epilogue,sans-serif}
html[data-theme] :is(#ytConfirmOverlay,#fmEndRoomConfirm,#fmPauseRoomConfirm,#fmFinalizeConfirm,#fmLeaveCollabConfirm,#fmStreamLinkModal,#fmRecapLinkModal,#fmProtectDeclaration,#fmCreateRoomModal,#fmLegalModal) :is(h2,h3){color:var(--t1)!important}
html[data-theme] :is(#ytConfirmOverlay,#fmEndRoomConfirm,#fmPauseRoomConfirm,#fmFinalizeConfirm,#fmLeaveCollabConfirm,#fmStreamLinkModal,#fmRecapLinkModal,#fmProtectDeclaration,#fmCreateRoomModal,#fmLegalModal) :is(p,li){color:var(--t2)!important}
html[data-theme] :is(#ytConfirmOverlay,#fmPauseRoomConfirm,#fmCreateRoomModal) label,html[data-theme] #ytConfirmOverlay>div>div:first-child,html[data-theme] #fmProtectDeclaration h3{color:var(--t2)!important}
html[data-theme] :is(#ytConfirmOverlay,#fmPauseRoomConfirm,#fmStreamLinkModal,#fmRecapLinkModal,#fmProtectDeclaration,#fmCreateRoomModal) :is(input[type=text],input[type=url],input[type=number],textarea,select){
 background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;color:var(--t1)!important;border-radius:10px!important}
html[data-theme] :is(#ytConfirmOverlay,#fmPauseRoomConfirm,#fmStreamLinkModal,#fmRecapLinkModal,#fmProtectDeclaration,#fmCreateRoomModal) :is(input,textarea)::placeholder{color:var(--t3)!important}
html[data-theme] :is(#ytConfirmOverlay,#fmProtectDeclaration,#fmCreateRoomModal) input[type=checkbox]{accent-color:var(--acc)}
/* declaration: head and foot sit on the plate, the text scrolls in an inset window */
html[data-theme] #fmProtectDeclScroll{margin:0 16px;padding:4px 16px 12px!important;border-radius:12px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
html[data-theme] #fmProtectDeclaration>div>div:last-child{border-top:0!important;background:none!important}
/* start a collab room: close key top right */
html[data-theme] #fmCreateRoomModal .modal{padding:24px 24px 22px!important}
html[data-theme] #fmCreateRoomModal .modal-close{position:absolute;top:14px;right:14px;left:auto;width:30px;height:30px;display:grid;place-items:center;padding:0;border-radius:9px;font-size:18px;line-height:1;
 background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important}
/* terms / privacy from sign-up */
html[data-theme] .fm-legal-modal-header{background:none!important;border-bottom:1px solid var(--rub-edge)!important}
html[data-theme] .fm-legal-modal-close{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(var(--rub-hi),var(--rub-lo))!important;border:1px solid var(--rub-edge)!important;color:var(--rub-text)!important;box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important}
html[data-theme] .fm-legal-modal-body{color:var(--t2)!important}
html[data-theme] .fm-legal-modal-body :is(h1,h2,h3,strong){color:var(--t1)!important}

/* ---------- PLANNED: one mark for everything that comes after investment (rule 16) ---------- */
.fm-planned{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:7px;flex:none;background:var(--screen);border:1px solid var(--screen-edge);
 color:#ffb02e;font:800 10px/1 Epilogue,sans-serif;letter-spacing:1.4px;white-space:nowrap;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)}
.fm-planned::before{content:"";width:7px;height:7px;border-radius:50%;background:#ffb02e;box-shadow:0 0 6px rgba(255,176,46,.8)}

/* ---------- What we're building ---------- */
.bld-stage{display:flex;align-items:center;justify-content:space-between;gap:32px}
.bld-meters{display:flex;gap:12px;position:relative;z-index:3;margin-right:clamp(16px,4vw,72px)}
.bld-meter{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:14px;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.08);min-width:150px}
.bld-meter span{font:800 10.5px/1 Epilogue,sans-serif;letter-spacing:1.6px;color:rgba(255,255,255,.7)}
.bld-lcd{display:block;padding:8px 12px;border-radius:9px;background:#050506;border:1px solid #000;text-align:right;color:var(--lcd);font:800 40px/1 ui-monospace,Menlo,monospace;text-shadow:0 0 12px color-mix(in srgb,var(--lcd) 55%,transparent)}
.bld-lcd--amber{color:#ffb02e;text-shadow:0 0 12px rgba(255,176,46,.55)}
.bld-flow{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow);counter-reset:st}
.bld-step{position:relative;display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:12px;background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);box-shadow:var(--raised-shadow)}
.bld-step b{font-size:15px;font-weight:800;letter-spacing:1.4px;color:var(--t1)}
.bld-step small{margin-left:auto;font-size:12px;font-weight:700;color:var(--play)}
.bld-step.is-plan small{color:#ffb02e}
.bld-step:not(:last-child)::after{content:"";position:absolute;right:-8px;top:50%;width:8px;height:2px;background:var(--rub-edge)}
.bld-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
.bld-card{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:12px;background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);box-shadow:var(--raised-shadow)}
.bld-card-top{display:flex;align-items:center;gap:9px}
.bld-card-top b{font-size:15.5px;font-weight:800;color:var(--t1);line-height:1.25}
.bld-card-top>:last-child{margin-left:auto}
.bld-live{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:7px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--play);font:800 10px/1 Epilogue,sans-serif;letter-spacing:1.4px}
.bld-card p{margin:0;font-size:13.5px;line-height:1.6;color:var(--t2)}
.bld-go{align-self:flex-start;margin-top:auto;text-decoration:none}
.bld-why{display:flex;flex-direction:column;gap:4px;margin-top:auto!important;padding:9px 11px;border-radius:9px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1)!important}
.bld-why i{font-style:normal;font-size:10px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase;color:var(--t2)}
@media (max-width:1400px){.bld-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1100px){.bld-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bld-flow{grid-template-columns:1fr}.bld-step::after{display:none}.bld-meters{display:none}}
@media (max-width:720px){.bld-grid{grid-template-columns:1fr}}
@media (min-width:1601px){.bld-grid--plan{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* ---------- Registered tracks: filter bar ---------- */
.tlf{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
.tlf-search{flex:1 1 240px;min-width:200px;display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t2)}
.tlf-search input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;color:var(--t1);font:500 14px Epilogue,sans-serif}
.tlf-search input::placeholder{color:var(--t3)}
.tlf-search:focus-within{border-color:var(--acc)}
.tlf-kinds,.tlf-view{display:inline-flex;gap:4px}
.tlf-kind i{font-style:normal;margin-left:4px;color:var(--t2);font-weight:700}
html[data-theme] .tlf [aria-pressed="true"]{border:2px solid var(--acc)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 10px color-mix(in srgb,var(--acc) 40%,transparent),0 2px 0 var(--rub-drop)!important}
.tlf-sel{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
html[data-theme] .tlf select{height:30px;padding:0 28px 0 10px;border-radius:9px;font:700 12.5px Epilogue,sans-serif;cursor:pointer;appearance:none;-webkit-appearance:none;
 background:linear-gradient(var(--rub-hi),var(--rub-lo)) padding-box,var(--rub-edge) border-box!important;border:1px solid transparent!important;color:var(--rub-text)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop);
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23999' stroke-width='1.6'/%3E%3C/svg%3E"),linear-gradient(var(--rub-hi),var(--rub-lo))!important;background-repeat:no-repeat!important;background-position:right 10px center,0 0!important}
.tlf-n{margin-left:auto;padding:5px 10px;border-radius:8px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd);font:700 12.5px/1 ui-monospace,Menlo,monospace;white-space:nowrap}
.tlf-n b{font-weight:800}
.tlf-empty{display:flex;align-items:center;justify-content:center;gap:12px;padding:24px;color:var(--t2);font-size:14px}
.tlf-group{display:flex;align-items:center;gap:12px;margin:14px 0 8px;padding:0 4px}
.tlf-group:first-child{margin-top:0}
.tlf-group b{font-size:16px;font-weight:800;color:var(--t1)}
.tlf-group .tlf-open{margin-left:auto}
.tlf-sleeve{width:40px;height:40px;flex:none;border-radius:7px;background:linear-gradient(135deg,#1b1d22,#0b0c0e);background-size:cover;background-position:center;box-shadow:0 0 0 1px var(--metal-edge),0 6px 12px -6px rgba(0,0,0,.6)}
.tlf-sleeve--loose{background:var(--inset-bg);box-shadow:var(--inset-shadow)}
@media (max-width:900px){.tlf-n{margin-left:0}}

/* ---------- Drop releases ---------- */
.fm-drop-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:7px;flex:none;background:var(--screen);border:1px solid var(--screen-edge);
 color:#ffb02e;font:800 10.5px/1 Epilogue,sans-serif;letter-spacing:1.4px;white-space:nowrap;box-shadow:inset 0 1px 3px rgba(0,0,0,.8)}
.fm-drop-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:#ffb02e;box-shadow:0 0 7px rgba(255,176,46,.85);animation:fmDropPulse 1.6s ease-in-out infinite}
.fm-drop-chip.is-out{color:var(--play)}
.fm-drop-chip.is-out::before{background:var(--play);box-shadow:0 0 7px color-mix(in srgb,var(--play) 80%,transparent)}
@keyframes fmDropPulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.fm-drop-chip::before{animation:none}}
.fm-drop-badge{display:inline-flex;align-items:center;height:26px;padding:0 11px;border-radius:999px;background:linear-gradient(135deg,#ffcf6b,#ff9d1a);color:#1a1205;font:900 10.5px/1 Epilogue,sans-serif;letter-spacing:1.4px;box-shadow:0 0 14px rgba(255,176,46,.45)}
.rel-drop-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:6px;padding:10px 12px;border-radius:12px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
.rel-drop-when{font-size:14px;font-weight:700;color:var(--t1)}
.rel-drop-lcd{display:inline-flex;align-items:center;padding:6px 10px;border-radius:9px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.6);color:#ffb02e}
.rel-drop-lcd .fx-seg-row{--seg-on:#ffb02e}
.rel-drop-wait{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--t2)}
.rel-drop-n{display:inline-flex;padding:4px 8px;border-radius:7px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd)}
.rel-drop-hint{font-size:13px;font-weight:700;color:#ffb02e}
.rel-drop-bar .fx-key{margin-left:auto}
.rel-drop-locked{opacity:.78}
.rel-drop-locked .fx-rkey{opacity:.35}
.rel-lock{display:grid;place-items:center;width:46px;height:46px;border-radius:8px;background:var(--inset-bg);box-shadow:var(--inset-shadow)}
.rel-lock::before{content:"";width:16px;height:18px;background:var(--t2);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1zm2 0h6V7a3 3 0 0 0-6 0v3z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V11a1 1 0 0 1 1-1h1zm2 0h6V7a3 3 0 0 0-6 0v3z'/%3E%3C/svg%3E") center/contain no-repeat}
.rel-drop-chat{display:flex;flex-direction:column;gap:8px;margin:0 14px 14px}
.rel-drop-msgs{display:flex;flex-direction:column;gap:6px;height:220px;overflow-y:auto;padding:10px;border-radius:12px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
.rel-drop-msg{display:flex;flex-direction:column;gap:2px;align-self:flex-start;max-width:78%;padding:7px 11px;border-radius:10px;background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);font-size:13.5px;color:var(--t1)}
.rel-drop-msg b{font-size:11.5px;color:var(--play)}
.rel-drop-msg.is-me{align-self:flex-end;border-color:color-mix(in srgb,var(--acc) 50%,var(--rub-edge))}
.rel-drop-compose{display:flex;gap:8px}
.rel-drop-compose input{flex:1;min-width:0;height:36px;padding:0 12px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:500 14px Epilogue,sans-serif;outline:none}
.rel-drop-compose input:focus{border-color:var(--acc)}
.rel-drop-owner input[type=datetime-local]{height:38px;padding:0 10px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:500 14px Epilogue,sans-serif;color-scheme:dark}
html[data-theme="pearl"] .rel-drop-owner input[type=datetime-local]{color-scheme:light}
.rel-drop-owner-keys{display:flex;gap:8px}
.pfr-drop{position:absolute;right:8px;top:8px;z-index:2}
/* Now dashboard */
.nd-drop-list{display:flex;flex-direction:column;gap:8px;margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
.nd-drop-list:empty{display:none}
.nd-drop-row{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;text-decoration:none;color:var(--t1);background:var(--raised-bg);background-size:var(--raised-size);border:1px solid var(--rub-edge);box-shadow:var(--raised-shadow)}
.nd-drop-row:hover{border-color:var(--acc)}
.nd-drop-sleeve{width:44px;height:44px;flex:none;border-radius:7px;background:linear-gradient(135deg,#1b1d22,#0b0c0e);background-size:cover;background-position:center;box-shadow:0 0 0 1px var(--metal-edge)}
.nd-drop-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nd-drop-mid b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nd-drop-when{font-size:13px;font-weight:700;color:var(--t2);white-space:nowrap}
#page-now .nd-section--drops{flex:none;margin-top:var(--fx-gap,12px);max-height:300px;overflow:hidden}
#page-now .nd-section--drops .nd-drop-list{margin:4px 0 0;overflow-y:auto}
.hw-deck-preview{margin-left:6px;padding:2px 6px;border-radius:5px;border:1px solid rgba(255,176,46,.6);color:#ffb02e;font:800 9.5px/1.2 Epilogue,sans-serif;letter-spacing:1px}
.hw-deck-preview[hidden]{display:none}

/* Preview window on the deck waveform (rule 17): the 60 s the listener hears stays lit, the rest dims. */
.hw-deck-wave{position:relative}
.hw-deck-pvwin{position:absolute;top:0;bottom:0;z-index:3;pointer-events:none;border-left:1px solid rgba(255,176,46,.85);border-right:1px solid rgba(255,176,46,.85);box-shadow:0 0 0 2000px rgba(0,0,0,.5)}

/* ---------- Brands (doc "Brendovi na Fortisu", phase 1) — js/modules/brands.js ---------- */
/* Gear page: Brands | Stores */
.gear-tab-well{margin-left:12px}
#page-gear:is([data-gear-tab="brands"],[data-gear-sub="offers"]) :is(#gsTabWell,#gsFiltersBar,#gsShell>.dr-body){display:none!important}
#page-gear[data-gear-tab="stores"] #gbBrands{display:none!important}
#page-gear:not([data-gear-sub="offers"]) #gsOffers{display:none!important}
.gear-sub-sep{margin:0 2px 0 10px;font-size:20px;font-weight:700;color:var(--t2)}
.gear-sub-well{margin-left:2px}
/* offers (Stores → Offers) */
.of-card{position:relative}
.of-main{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.of-main .pf-card-bd{padding-bottom:4px}
.of-price{margin-top:4px;font-size:17px;font-weight:800;color:var(--t1)}
.of-store{display:flex;flex-direction:column;gap:2px;padding:6px 11px 0;border-top:1px solid var(--rub-edge);margin:4px 0 0}
.of-store a{display:inline-flex;align-items:center;gap:6px;color:var(--t1);text-decoration:none;font-size:13.5px}
.of-store a:hover b{text-decoration:underline}
.of-keys{display:flex;gap:6px;padding:8px 11px 11px;margin-top:auto}
.of-keys .fx-primary{flex:1;justify-content:center}
.of-card:hover{border-color:var(--acc)}
.of-loc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 12px;padding:0 4px;font-size:13.5px;color:var(--t2)}
.of-loc b{color:var(--t1)}
.gb-brands{margin-top:4px}
/* brand page head */
html[data-theme] .brd-head{padding:0!important;margin:0!important;overflow:hidden}
.brd-banner{height:200px;background-size:cover;background-position:center;border-bottom:1px solid var(--rub-edge)}
/* default banner: Fortis marks (DESIGN_BASE rule 18) */
.brd-banner,.brd-bcard-top{position:relative}
.brd-bcard-top .brd-logo{z-index:1}
.brd-id{position:relative;z-index:1;display:flex;align-items:flex-end;gap:20px;padding:0 22px 20px;margin-top:-56px}
.brd-logo{flex:none;width:120px;height:120px;border-radius:18px;display:grid;place-items:center;background:var(--chan);background-size:cover;background-position:center;border:4px solid var(--metal-edge,#2a2c31);box-shadow:0 10px 24px -10px rgba(0,0,0,.7);font:900 48px/1 Epilogue,sans-serif;color:var(--t1)}
.brd-logo.has-img{background-color:#fff}
.brd-logo--sm{width:64px;height:64px;border-radius:12px;border-width:3px;font-size:26px}
.brd-id-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding-bottom:2px}
.brd-kick{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.brd-name{margin:0;font-size:clamp(30px,2.6vw,44px);line-height:1.05;font-weight:900;letter-spacing:-.8px;color:var(--t1);overflow-wrap:anywhere}
.brd-facts{font-size:14px;color:var(--t2)}
.brd-keys{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:52%}
.brd-official{gap:6px}
/* catalog */
.brd-cat-body{padding:0 14px 14px}
.brd-specs{margin-top:-4px}
.brd-specs-cap{font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);margin-right:2px}
.brd-grid{padding:0}
.dsp-panel>.brd-grid{padding:0 14px 14px}
.brd-card{text-decoration:none;color:inherit}
.brd-card-pic{height:190px;background-color:#f3f3f1}
.brd-card-pic.pf-card-pic--img{background-size:contain;background-origin:content-box;padding:14px;box-sizing:border-box}
.brd-card-pic .pf-card-letter{color:#9aa0a8}
.brd-card .pf-card-bd b{font-size:15px}
.brd-card .pf-card-bd b i{font-style:normal;font-weight:600;color:var(--t2);font-size:13px}
.brd-price{margin-top:4px;font-size:15px;font-weight:800;color:var(--t1)}
.brd-price small{font-size:11px;font-weight:600;color:var(--t2);letter-spacing:.3px}
.brd-hidden{align-self:flex-start;margin-top:4px}
.brd-st{gap:6px}
/* brand cards (Gear → Brands, worlds) */
.brd-bgrid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));padding:0 14px 14px}
.brd-bcard{text-decoration:none;color:inherit}
.brd-bcard-top{position:relative;height:78px;background-size:cover;background-position:center}
.brd-bcard-top .brd-logo{position:absolute;left:12px;bottom:-26px}
.brd-bcard .pf-card-bd{padding-top:32px}
.brd-bcard-row{display:flex;gap:6px;flex-wrap:wrap;min-height:0}
.brd-bcard-row:empty{display:none}
.brd-bcard-groups{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* side panels */
.brd-about{white-space:pre-wrap}
.brd-plans{gap:8px}
.brd-plan{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
html[data-theme=graphite] .brd-plan{background:#26282c}
.brd-plan-top{display:flex;align-items:center;gap:8px}
.brd-plan-top b{font-size:14px;color:var(--t1)}
.brd-plan-top .fm-planned{margin-left:auto}
.brd-plan p{margin:0;font-size:13px;line-height:1.5;color:var(--t2)}
/* product page */
html[data-theme] .prd-head{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;padding:22px!important;margin:0!important}
.prd-gal{display:flex;flex-direction:column;gap:10px;min-width:0}
.prd-main{position:relative;height:clamp(320px,34vw,540px);border-radius:14px;background-color:#f3f3f1;background-size:contain;background-repeat:no-repeat;background-position:center;background-origin:content-box;padding:18px;box-sizing:border-box;border:1px solid var(--rub-edge)}
.prd-main .pf-card-letter{color:#9aa0a8;font-size:88px}
.prd-main>.pf-win{position:absolute;left:12px;top:12px}
.prd-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.prd-thumb{width:68px;height:68px;border-radius:10px;border:2px solid var(--rub-edge);background:#f3f3f1 center/contain no-repeat;background-origin:content-box;padding:4px;box-sizing:border-box;cursor:pointer}
.prd-thumb.is-on{border-color:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 10px color-mix(in srgb,var(--acc) 35%,transparent)}
.prd-thumb:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.prd-info{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.prd-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--t1)}
.prd-brand b{font-size:15px}
.prd-brand-logo{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--chan);background-size:cover;background-position:center;border:1px solid var(--rub-edge);font-weight:900;color:var(--t1)}
.prd-brand-logo.has-img{background-color:#fff}
.prd-brand:hover b{text-decoration:underline}
.prd-name{margin:0;font-size:clamp(32px,2.6vw,46px);line-height:1.05;font-weight:900;letter-spacing:-.8px;color:var(--t1);overflow-wrap:anywhere}
.prd-sub{font-size:15px;font-weight:600;color:var(--t2)}
.prd-when{font-size:14px;color:var(--t2);font-weight:700}
.prd-when.is-soon{color:#ffb02e}
.prd-summary{margin:0;font-size:15px;line-height:1.55;color:var(--t1)}
.prd-price{display:flex;flex-direction:column;gap:6px}
.prd-lcd{display:inline-block;padding:8px 14px;border-radius:10px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--lcd);font:800 24px/1 ui-monospace,Menlo,monospace;letter-spacing:.5px}
.prd-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.prd-chips .fx-label{margin-right:4px}
.prd-keys{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.prd-tags{display:flex;gap:6px;flex-wrap:wrap}
.prd-desc{white-space:pre-wrap;color:var(--t1)!important}
.prd-specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.prd-spec{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
html[data-theme=graphite] .prd-spec{background:#26282c}
.prd-spec span{font-size:11px;font-weight:800;letter-spacing:1.1px;text-transform:uppercase;color:var(--t2)}
.prd-spec b{font-size:15px;color:var(--t1)}
.prd-wtb{display:flex;flex-direction:column;gap:8px}
.prd-wtb-row{display:flex;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;color:inherit;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
html[data-theme=graphite] .prd-wtb-row{background:#26282c}
.prd-wtb-row:hover{border-color:var(--acc)}
.prd-wtb-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.prd-wtb-main b{font-size:14.5px;color:var(--t1)}
/* owner product form */
.brd-phs{display:flex;flex-wrap:wrap;gap:8px}
.brd-ph{position:relative;width:104px;height:104px;border-radius:10px;border:1px solid var(--rub-edge);background:#f3f3f1 center/contain no-repeat;background-origin:content-box;padding:6px;box-sizing:border-box}
.brd-ph .pf-row-del{position:absolute;top:4px;right:4px;min-width:26px!important;height:26px!important;padding:0!important}
.brd-ph-main{position:absolute;left:4px;bottom:4px;padding:2px 6px;border-radius:5px;background:var(--screen);color:var(--lcd);font:800 9.5px/1.3 ui-monospace,Menlo,monospace;letter-spacing:1px}
.brd-ph-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--inset-bg);box-shadow:var(--inset-shadow);border-style:dashed;color:var(--t1);font-size:12.5px;font-weight:700;cursor:pointer;text-align:center}
.brd-ph-add small{font-weight:600;color:var(--t2)}
.brd-ph-add input{position:absolute;width:1px;height:1px;opacity:0}
.brd-ph-busy{display:grid;place-items:center;background:var(--inset-bg);color:var(--t2);font-size:12px}
.brd-wtb{display:flex;flex-direction:column;gap:6px}
.brd-wtb-row{display:grid;grid-template-columns:1fr .8fr 1.4fr auto;gap:6px;align-items:center}
.brd-checks{display:flex;flex-wrap:wrap;gap:6px 14px;padding-top:2px}
.brd-checks label{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--t1);cursor:pointer}
.brd-check{flex-direction:row!important;align-items:center;gap:8px;font-size:13.5px;color:var(--t1);cursor:pointer}
.brd-specs-form{padding:0;gap:10px 12px}
.brd-specs-form:empty{display:none!important}
.brd-del{margin-left:auto;color:var(--alert)!important}
/* admin */
.adm-brd-tray{display:flex;flex-direction:column;gap:8px}
.adm-brd-row{display:flex;align-items:center;gap:12px;padding:10px 12px}
.adm-brd-row .pf-room-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.adm-brd-row a{color:inherit}
/* worlds */
.wld-brands .brd-grid{padding:0 14px 14px}
@media (max-width:1100px){
  .brd-id{flex-wrap:wrap}
  .brd-keys{max-width:none;justify-content:flex-start;width:100%}
  html[data-theme] .prd-head{grid-template-columns:1fr}
}
@media (max-width:768px){
  .brd-banner{height:130px}
  .brd-logo{width:88px;height:88px;font-size:36px}
  /* the name goes under the logo, so a long name never climbs into the banner (pearl: dark text on a dark banner) */
  .brd-id-text{flex:1 1 100%}
  .brd-wtb-row{grid-template-columns:1fr 1fr}
}
html[data-theme] :is(.brd,.prd,.gb-brands) .fx-key:not(.fx-key--sm):not(.lv-tab-key){display:inline-flex!important;align-items:center;justify-content:center;height:38px!important;padding:0 16px!important;border-radius:10px!important;font-size:14px!important;font-weight:700;text-decoration:none;white-space:nowrap}
html[data-theme] :is(.brd,.prd,.gb-brands) .fx-key--sm{text-decoration:none}

.prd .evp-vids{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}
/* ---------- Preview part picker (js/core/previewPick.js) ---------- */
.ppk-host{margin-top:12px}
.ppk-host[hidden]{display:none}
.ppk{display:flex;flex-direction:column;gap:8px}
.ppk-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ppk-time{font:700 13px/1.3 ui-monospace,Menlo,monospace;color:var(--t1)}
.ppk-wave{position:relative;height:72px;box-sizing:border-box;border:4px solid #1a1c1f;border-radius:10px;background:var(--screen);box-shadow:inset 0 0 0 1px #000,0 1px 0 var(--face-hi);overflow:hidden;cursor:grab;touch-action:none;user-select:none}
.ppk-wave.is-drag{cursor:grabbing}
.ppk-wave:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.ppk-svg{position:absolute;inset:4px 0}
.ppk-svg.hw-wave .hw-wave-played,.ppk-svg .hw-wave-head{display:none}
.ppk-win{position:absolute;top:0;bottom:0;z-index:2;border:2px solid var(--lcd);border-radius:6px;box-sizing:border-box;box-shadow:0 0 0 2000px rgba(0,0,0,.55),0 0 12px color-mix(in srgb,var(--lcd) 45%,transparent);pointer-events:none}
.ppk-grip{position:absolute;left:50%;top:50%;width:18px;height:26px;margin:-13px 0 0 -9px;border-radius:5px;background:repeating-linear-gradient(90deg,var(--lcd) 0 2px,transparent 2px 5px);opacity:.85}
.ppk-wave.is-short{cursor:default}
.ppk-wave.is-short .ppk-grip{display:none}
.ppk-head{position:absolute;top:0;bottom:0;z-index:3;width:2px;margin-left:-1px;background:#ff3352;box-shadow:0 0 6px rgba(255,51,82,.7);opacity:0;pointer-events:none}
.ppk-head.is-on{opacity:1}
.ppk-keys{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ppk-hint{flex:1 1 260px}
.ppk-sheet{display:flex;flex-direction:column;gap:14px;padding:0 10px 10px}

/* ---------- Fortis Store (js/modules/store.js) ---------- */
.sto-shell #stoBody{margin-top:4px}
.sto-body{padding:14px}
.sto-grid{padding:0}
.sto-card{text-decoration:none}
.sto-main{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.sto-cover{position:relative;aspect-ratio:1/1;background:linear-gradient(135deg,#1b1d22,#0b0c0e);background-size:cover;background-position:center}

.sto-cover>.pf-win{position:absolute;left:8px;top:8px}
.sto-cover>.sto-drop{left:auto;right:8px}
.sto-card .pf-card-bd b{font-size:15px}
.sto-genre{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sto-foot{display:flex;align-items:center;gap:8px;padding:6px 11px 11px;margin-top:auto;border-top:1px solid var(--rub-edge)}
.sto-keys{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.sto-price{font-size:16px;font-weight:800;color:var(--t1);white-space:nowrap}
.sto-price.is-none,.sto-price.is-soon{font-size:12.5px;font-weight:700;color:var(--t2)}
.sto-price.is-soon{color:#ffb02e}
.sto-card:hover{border-color:var(--acc)}
.sto-tracks{display:flex;flex-direction:column;gap:8px}
.sto-trow{display:grid!important;grid-template-columns:auto 44px minmax(0,1.2fr) auto minmax(0,.8fr) auto;align-items:center;gap:12px;padding:8px 12px!important}
.sto-tcover{width:44px;height:44px;border-radius:8px;background:var(--inset-bg) center/cover no-repeat;box-shadow:0 0 0 1px var(--rub-edge)}
.sto-tmain{display:flex;flex-direction:column;gap:2px;min-width:0}
.sto-tmain b{font-size:14.5px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sto-tmain .fx-panel-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sto-trel{font-size:13.5px;color:var(--t1);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sto-trel .fx-label{color:var(--t2);margin-right:4px}
.sto-trel:hover{text-decoration:underline}
.sto-trel.is-none{color:var(--t2)}
/* buy sheet + release panel */
.sto-buy{display:flex;flex-direction:column;gap:12px;padding:0 10px 10px}
.sto-split,.sto-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.sto-split-it{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
html[data-theme=graphite] .sto-split-it{background:#26282c}
.sto-lcd{align-self:flex-start;padding:6px 10px;border-radius:8px;background:var(--screen);border:1px solid var(--screen-edge);color:var(--t1);font:800 17px/1 ui-monospace,Menlo,monospace;color:#e9ebef}
.sto-lcd.is-green{color:var(--lcd)}
.sto-buy-now,.sto-note{margin:0;font-size:13.5px;color:var(--t2)}
@media (max-width:1100px){.sto-trow{grid-template-columns:auto 44px minmax(0,1fr) auto}.sto-trel{display:none}}

/* ---------- Filters: full option lists, no counts in menus (Zoran, 2026-10-13) ---------- */
.lv-dd-item-n{display:none!important}
.lv-dd-group{padding:10px 12px 4px;font-size:10.5px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--t2)}
[data-rel-view="releases"] .pf-v-trk,[data-rel-view="tracks"] .pf-v-rel{display:none!important}
html[data-theme] .tlf .of-city{height:30px;width:150px;padding:0 10px;border-radius:9px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:600 12.5px Epilogue,sans-serif}
html[data-theme] .tlf .of-city:disabled{opacity:.55}
/* the part listeners hear, on every track row waveform (rule 17) */
html[data-theme] .hw-wf.has-pv{position:relative;overflow:hidden}
.hw-wf-pv{position:absolute;top:0;bottom:0;z-index:2;pointer-events:none;border-left:1px solid rgba(255,176,46,.85);border-right:1px solid rgba(255,176,46,.85);box-shadow:0 0 0 2000px rgba(0,0,0,.5)}

.sto-trow.is-playable{cursor:pointer}
.sto-trow.is-playable:hover{border-color:var(--acc)!important}
.sto-trow .hw-wf{width:330px!important}
@media (max-width:1100px){.sto-trow{grid-template-columns:auto 44px minmax(0,1fr) auto!important}}
.pft-row.is-playable{cursor:pointer}
.pft-row.is-playable:hover{border-color:color-mix(in srgb,var(--acc) 60%,var(--rub-edge))!important}

/* ---------- Empty banners and card tops: Fortis marks, drifting slowly (rule 18) ----------
   White marks plus a few in the LED colour the viewer picked; no pink. Images always cover it. */
html{--fm-marks-acc:url(../assets/fortis-pattern-acc-fortis.svg)}
html[data-led="amber"]{--fm-marks-acc:url(../assets/fortis-pattern-acc-amber.svg)}
html[data-led="ice"]{--fm-marks-acc:url(../assets/fortis-pattern-acc-ice.svg)}
html[data-theme] :is(.fm-profile-banner,.brd-banner:not(.has-img),.brd-bcard-top:not(.has-img),.dr-card-cover:not([style*="url("]),.gs-store-cover:not([style*="url("]),.fnc-pic:not([style*="url("]),.wld-shop-pic:not([style*="url("]),.lv-card-cover:not([style*="url("]),.sto-cover.is-empty){
 background:var(--fm-marks-acc) 0 0/420px 260px repeat,url(../assets/fortis-pattern.svg) 0 0/420px 260px repeat,radial-gradient(120% 140% at 85% 0%,rgba(255,255,255,.06),transparent 55%),linear-gradient(120deg,#131417,#202227 50%,#111214)!important;
 animation:fmMarksDrift 90s linear infinite}
html[data-theme] :is(.brd-bcard-top,.dr-card-cover,.gs-store-cover,.fnc-pic,.wld-shop-pic,.lv-card-cover,.sto-cover):not([style*="url("]){background-size:280px 173px,280px 173px,auto,auto!important;animation:none}
/* only the big banners drift (a card grid stays still); a banner with a picture does not move */
html[data-theme] .fm-profile-banner:has(.fm-profile-banner-bg[style*="url("]){animation:none}
@keyframes fmMarksDrift{from{background-position:0 0,0 0,0 0,0 0}to{background-position:420px 260px,-420px 260px,0 0,0 0}}
@media (prefers-reduced-motion:reduce){html[data-theme] :is(.fm-profile-banner,.brd-banner,.brd-bcard-top,.dr-card-cover,.gs-store-cover,.fnc-pic,.wld-shop-pic,.lv-card-cover,.sto-cover){animation:none!important}}
/* segment digits: upright like a real LCD (the beveled shapes are in js/utils/fmSeg.js) */
html[data-theme] .fx-seg,html[data-theme] .fx-seg-colon i{transform:none!important}
html[data-theme] .fx-seg polygon:not(.on),html[data-theme] .fx-seg rect:not(.on){fill:color-mix(in srgb,var(--fx-live,var(--lcd)) 13%,rgba(255,255,255,.03))}
html[data-theme] .fx-seg rect:not(.on){fill:transparent}
html[data-theme] .fx-seg--14 polygon:not(.on){fill:var(--fx-live-ghost)}

/* ---------- Hi-Fi power meter on black glass (fmWorld heroArt) ---------- */
.wld-amp{display:flex;align-items:center;gap:22px;padding:22px 24px;border-radius:14px;background:linear-gradient(180deg,#0b0c0e,#050506 60%,#0a0b0d);
  border:1px solid #2a2c31;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 0 6px #121316,0 24px 50px -16px rgba(0,0,0,.85);position:relative;overflow:hidden}
.wld-amp::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(160deg,rgba(255,255,255,.07),transparent 38%)}
.wld-pm{width:clamp(220px,16vw,300px);padding:10px 12px 8px;border-radius:6px;background:#000;box-shadow:inset 0 0 0 1px #1a1b1e,inset 0 6px 20px rgba(0,0,0,.9)}
.wld-pm{overflow:hidden}
.wld-pm svg{display:block;width:100%;height:auto;overflow:hidden}
.wld-pm-band{fill:none;stroke:var(--lcd);stroke-width:7;opacity:.85;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--lcd) 70%,transparent))}
.wld-pm-band.is-hot{stroke:color-mix(in srgb,var(--lcd) 40%,#fff);stroke-width:2;opacity:.6;filter:none}
.wld-pm-tick{stroke:var(--lcd);stroke-width:1;opacity:.75}
.wld-pm-tick.is-big{stroke-width:1.8;opacity:1}
.wld-pm-num{fill:var(--lcd);font:700 9px/1 Epilogue,system-ui,sans-serif;text-anchor:middle;dominant-baseline:middle;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--lcd) 60%,transparent))}
.wld-pm-num.is-db{font-size:8.5px;opacity:.9}
.wld-pm-cap{fill:var(--lcd);font:700 7.5px/1 Epilogue,system-ui,sans-serif;letter-spacing:1.6px;text-anchor:middle;opacity:.9}
.wld-pm-ol{fill:#ff3352;filter:drop-shadow(0 0 3px #ff3352);opacity:.55;animation:wldOl 2.6s steps(1) infinite}
.wld-pm-needle line{stroke:color-mix(in srgb,var(--lcd) 55%,#fff);stroke-width:1.6;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--lcd))}
.wld-pm-needle{transform-origin:120px 196px;transform-box:view-box;animation:wldPmNeedle 2.8s ease-in-out infinite alternate}
.wld-pm-needle--r{animation-duration:2.3s;animation-delay:-.8s}
.wld-amp-mid{display:flex;flex-direction:column;align-items:center;gap:14px}
.wld-amp-mark{width:16px;height:20px;background:color-mix(in srgb,var(--lcd) 70%,#fff);opacity:.75;-webkit-mask:url(../assets/fortis-mark.svg) center/contain no-repeat;mask:url(../assets/fortis-mark.svg) center/contain no-repeat;filter:drop-shadow(0 0 4px var(--lcd))}
.wld-amp-dot{width:14px;height:14px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--lcd) 55%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--lcd) 35%,transparent)}
@keyframes wldPmNeedle{0%{transform:rotate(-34deg)}30%{transform:rotate(-8deg)}55%{transform:rotate(-20deg)}80%{transform:rotate(22deg)}100%{transform:rotate(6deg)}}
@keyframes wldOl{0%,86%{opacity:.25}87%,100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.wld-pm-needle,.wld-pm-ol{animation:none}}
.wld-pm-num.is-end{text-anchor:end}
.brd-tlf select{max-width:230px}
/* the owner's "Add a banner" note sits on the Fortis marks, not on a grey plate */
html[data-theme] .fx-billboard-empty{background:transparent!important;color:rgba(255,255,255,.82)!important;text-shadow:0 1px 3px rgba(0,0,0,.8)}

/* ===== Labels (js/modules/labels.js) — label page reuses the brand head (.brd-*) ===== */
.lbl-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:14px 14px 10px}
.lbl-tabs .lv-tab-key .fm-planned{margin-left:6px;transform:scale(.86);transform-origin:left center}
.lbl-main #lblList{min-height:120px}
.lbl-main .tlf-empty{padding:26px 6px}
.lbl-roster{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));padding:0}
.lbl-artist{display:flex;align-items:center;gap:10px;padding:10px 12px}
.lbl-artist-main{display:flex;align-items:center;gap:12px;flex:1;min-width:0;text-decoration:none;color:inherit}
.lbl-artist-main .pf-card-bd{padding:0;gap:2px}
.lbl-artist-main b{font-size:15px;color:var(--t1)}
.lbl-artist-main:hover b{text-decoration:underline}
.lbl-artist-av{flex:none;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--chan) center/cover no-repeat;border:2px solid var(--rub-edge);font-weight:900;font-size:20px;color:var(--t1)}
.lbl-end{flex:none}
.lbl-demos{display:flex;flex-direction:column;gap:8px;padding:0 14px 14px}
/* pick lists in sheets (invite artist, add release, requests) */
.lbl-pick-wrap{display:flex;flex-direction:column;gap:12px;padding:4px 16px 16px}
.lbl-pick-search{max-width:none}
.lbl-pick-list,.lbl-inbox{display:flex;flex-direction:column;gap:8px;max-height:min(52vh,520px);overflow:auto}
.lbl-inbox{max-height:none;padding:4px 16px 16px}
.lbl-pick{display:flex;align-items:center;gap:12px;padding:10px 12px}
.lbl-pick .lbl-artist-av{width:40px;height:40px;font-size:16px}
.lbl-pick .pf-room-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.lbl-pick .pf-room-main b{color:var(--t1)}
.lbl-pick .pf-head-keys{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.lbl-req-line{font-size:14px;color:var(--t2)}
.lbl-req-line b{color:var(--t1)}
.lbl-inbox-cap{display:flex;align-items:center;gap:8px;margin:6px 0 0;font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2)}
/* "Signed to" on passports and the Label panel on a release */
.lbl-pass-list{display:flex;flex-direction:column;gap:8px}
.lbl-pass-it{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:var(--chan);border:1px solid var(--rub-edge);text-decoration:none;color:inherit}
html[data-theme=graphite] .lbl-pass-it{background:#26282c}
.lbl-pass-it:hover{border-color:var(--acc)}
.brd-logo.lbl-pass-logo{width:40px;height:40px;border-radius:10px;border-width:2px;font-size:17px;box-shadow:none}
.lbl-pass-tx{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.lbl-pass-tx b{font-size:14px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lbl-pass-keys{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pf-pass-empty{margin:0;font-size:13px;color:var(--t2)}
#relLabelPanel .rel-drop-owner-keys{margin-top:10px}
@media (max-width:768px){.lbl-tabs{padding:10px 10px 8px}.lbl-roster{grid-template-columns:1fr}}
html[data-theme] .pf-app .lbl-pass>.lbl-pass-list,html[data-theme] .pf-app .lbl-pass>.lbl-pass-keys,html[data-theme] .pf-app .lbl-pass>.pf-pass-empty{padding:0 var(--fx-pf-pass-pad-x,16px)}
html[data-theme] .pf-app .lbl-pass>.lbl-pass-keys{padding-bottom:6px}

/* ===== Music Store = directory page (Zoran, 2026-10-13): fixed shell, no footer, the filter bar stays,
   the list scrolls in its own window (the footer used to slide over the list) ===== */
html:has(#page-store.active) footer{display:none!important}
#page-store.page{padding:0!important;min-height:0;height:0;margin:0;overflow:visible;animation:none;background:transparent}
#page-store.page.active{z-index:50}
#page-store .dr-shell{display:flex;flex-direction:column;gap:var(--fx-gap);min-height:0;overflow:hidden}
#page-store #stoBody{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:0}
#page-store #stoBody>.dsp-panel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
#page-store #stoBody .sto-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
#page-store #stoBody [data-sto-bar]{flex:none}
#page-store #stoBody [data-sto-grid]{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;align-content:start;padding-bottom:14px;scrollbar-gutter:stable}

/* ===== Store track rows: the same columns on every row, so waveforms line up (Zoran, 2026-10-13) ===== */
#page-store .sto-tracks{gap:6px}
#page-store :is(.sto-trow,.sto-thead){display:grid!important;grid-template-columns:40px 44px minmax(180px,1fr) 128px 52px 84px 50px 300px 160px 150px!important;align-items:center;column-gap:12px}
#page-store .sto-thead{padding:0 12px 2px;position:sticky;top:0;z-index:3;background:var(--tray-bg,transparent)}
#page-store .sto-thead span{font-size:10.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);white-space:nowrap}
#page-store .sto-thead .sto-thead-r{text-align:right}
#page-store .sto-trow .hw-wf{width:300px!important;justify-self:stretch}
#page-store .sto-wave-none{display:block!important;width:300px;height:38px}
.sto-tmain b i{font-style:normal;font-weight:600;color:var(--t2)}
.sto-c{font-size:13px;font-weight:700;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.sto-c.is-none{color:var(--t3);font-weight:600}
.sto-c-genre{font-weight:600;color:var(--t2)}
.sto-c-bpm,.sto-c-key,.sto-c-len{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
#page-store .sto-keys{display:flex;align-items:center;justify-content:flex-end;gap:8px}
#page-store .sto-trow .sto-price{font-size:14px;white-space:nowrap}
#page-store .sto-trow .sto-price.is-none{font-size:12.5px}
/* BPM range in the filter bar */
.sto-bpm-pair{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 4px 0 10px;border-radius:9px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
.sto-bpm-cap{font:800 11px Epilogue,sans-serif;letter-spacing:1px;color:var(--t2);margin-right:2px}
html[data-theme] .sto-bpm{width:54px;height:24px;padding:0 6px;border-radius:6px;border:0;background:transparent;color:var(--t1);font:700 12.5px ui-monospace,Menlo,monospace;-moz-appearance:textfield}
.sto-bpm::-webkit-outer-spin-button,.sto-bpm::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sto-bpm::placeholder{color:var(--t3)}
.sto-bpm-dash{color:var(--t3)}
@media (max-width:1600px){#page-store :is(.sto-trow,.sto-thead){grid-template-columns:40px 44px minmax(160px,1fr) 52px 84px 50px 260px 140px 140px!important}#page-store .sto-c-genre,#page-store .sto-thead span:nth-child(4){display:none}#page-store .sto-trow .hw-wf,#page-store .sto-wave-none{width:260px!important}}
@media (max-width:1280px){#page-store :is(.sto-trow,.sto-thead){grid-template-columns:40px 44px minmax(140px,1fr) 52px 84px 50px 140px!important}#page-store .sto-trow .hw-wf,#page-store .sto-wave-none,#page-store .sto-trel,#page-store .sto-thead span:nth-child(8),#page-store .sto-thead span:nth-child(9){display:none!important}}

/* ===== Segment colons: small dots that follow the digit height, the same on every clock (Zoran, 2026-10-13) ===== */
html[data-theme] .fx-seg-colon{gap:var(--fx-colon-gap,4px)!important;padding:0 var(--fx-colon-pad-x,2px)!important;align-self:center;justify-content:center}
html[data-theme] .fx-seg-colon i{width:var(--fx-colon-dot,4px)!important;height:var(--fx-colon-dot,4px)!important;box-shadow:0 0 4px var(--fx-live)!important}

/* ===== Drop waiting room in the side column (Zoran, 2026-10-13) ===== */
#page-release .dsp-side .rel-drop-room .rel-drop-msgs{height:260px}
.rel-drop-room-note{margin:-4px 14px 10px;font-size:12.5px;line-height:1.45;color:var(--t2)}
.rel-drop-compose{display:flex;gap:6px}
.rel-drop-compose input{flex:1;min-width:0}
.rel-drop-unit{margin:0 8px 0 4px;align-self:flex-end;padding-bottom:3px;font:800 10px/1 Epilogue,sans-serif;letter-spacing:1.2px;color:#ffb02e;opacity:.85}
.rel-drop-lcd{gap:0}
.rel-drop-hint-note{font-size:12.5px;color:var(--t2)}

/* ===== Protect: BPM, key, version and who can hear it (Zoran, 2026-10-13) ===== */
.prt-form .form-row.prt-mix-row{grid-template-columns:1fr 1.4fr 1.4fr}
.prt-mix-note{margin:-4px 0 12px!important}
.prt-aud-opts{display:flex;flex-wrap:wrap;gap:8px 18px}
.prt-aud-note{margin:8px 0 0;padding:9px 12px;border-radius:10px;font-size:12.5px;line-height:1.5;color:var(--t2);background:var(--inset-bg);border:1px solid var(--inset-edge)}
.prt-aud-note.is-drop{color:var(--t1);border-color:color-mix(in srgb,#ffb02e 55%,var(--inset-edge))}
.prt-aud-note.is-public{border-color:color-mix(in srgb,var(--acc) 45%,var(--inset-edge))}

/* ===== Studio credits (js/modules/studioCredits.js) ===== */
.sc-list{display:flex;flex-direction:column;gap:8px}
.sc-row{display:flex;align-items:center;gap:8px}
.sc-row .lbl-pass-it{flex:1;min-width:0}
.sc-row .lbl-pass-tx .fx-panel-meta{font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase}
.sc-made .pf-tab-body{display:flex;flex-direction:column;gap:12px}
.sc-made .sc-tabs{padding:0}
.sc-made .tlf{margin:0}
.sto-cover>.sc-role{top:auto;left:8px;bottom:8px;color:#7fd1ff}
.sc-row .lbl-pass-tx .fx-panel-meta{white-space:normal}

/* ===== I was there: check-in (js/modules/checkin.js) ===== */
.ci-body p{margin:0;font-size:13.5px;line-height:1.5;color:var(--t2)}
.ci-count{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.ci-count .fx-seg-row{padding:3px 7px;border-radius:7px;background:var(--screen);border:1px solid var(--screen-edge)}
.ci-form{display:flex;gap:8px}
html[data-theme] .ci-form .fx-field{flex:1;min-width:0;height:38px;padding:0 12px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);color:var(--t1);font:800 16px ui-monospace,Menlo,monospace;letter-spacing:4px;text-transform:uppercase}
.ci-stamp{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--chan);border:1px dashed color-mix(in srgb,var(--acc) 60%,var(--rub-edge))}
html[data-theme=graphite] .ci-stamp{background:#26282c}
.ci-stamp>span:last-child{display:flex;flex-direction:column;gap:2px}
.ci-stamp b{color:var(--t1)}
.ci-stamp-mark{flex:none;width:38px;height:38px;border-radius:50%;border:3px double var(--acc);display:grid;place-items:center;transform:rotate(-12deg)}
.ci-stamp-mark::before{content:"";width:16px;height:9px;border-left:3px solid var(--acc);border-bottom:3px solid var(--acc);transform:rotate(-45deg) translate(1px,-2px)}
.ci-screen{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:center;padding:6px 16px 18px}
.ci-qr{background:#fff;border-radius:16px;padding:14px;display:grid;place-items:center;aspect-ratio:1/1;max-height:62vh}
.ci-qr img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.ci-side{display:flex;flex-direction:column;gap:8px}
.ci-code,.ci-n{display:inline-flex;align-self:flex-start;padding:10px 14px;border-radius:12px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.6)}
.ci-bar{height:6px;border-radius:3px;background:var(--inset-bg);overflow:hidden;margin-bottom:8px}
.ci-bar i{display:block;height:100%;width:100%;background:var(--acc);transition:width 1s linear}
@media (max-width:760px){.ci-screen{grid-template-columns:1fr}}

/* ===== Fan Pass (js/modules/fanPass.js) ===== */
html[data-theme] .pf-app :is(.fp-pass,.fp-topfans)>:not(.pf-pass-section-title){margin-left:var(--fx-pf-pass-pad-x,16px);margin-right:var(--fx-pf-pass-pad-x,16px)}
.fp-pass,.fp-topfans{display:flex;flex-direction:column;gap:10px;padding-bottom:6px}
.fp-level{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:var(--screen);border:1px solid var(--screen-edge);box-shadow:inset 0 2px 6px rgba(0,0,0,.55)}
.fp-level-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fp-level-name{font:900 16px/1.1 Epilogue,sans-serif;color:#e9ebef;letter-spacing:.2px}
.fp-pts{display:inline-flex;align-items:flex-end;gap:5px}
.fp-pts .fx-label{color:var(--lcd);opacity:.8;font-size:10px}
.fp-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.fp-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc),var(--acc2,var(--acc)));box-shadow:0 0 8px color-mix(in srgb,var(--acc) 60%,transparent)}
.fp-level .fx-panel-meta{color:#9ea3ad}
.fp-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.fp-count{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 4px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
html[data-theme=graphite] .fp-count{background:#26282c}
.fp-count b{font:800 16px/1 ui-monospace,Menlo,monospace;color:var(--t1)}
.fp-count span{font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--t2)}
.fp-top{display:flex;flex-direction:column;gap:6px}
.fp-top-it{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:10px;background:var(--chan);border:1px solid color-mix(in srgb,#ffb02e 45%,var(--rub-edge));text-decoration:none;color:inherit}
html[data-theme=graphite] .fp-top-it{background:#26282c}
.fp-top-rank{font:900 14px/1 ui-monospace,Menlo,monospace;color:#ffb02e}
.fp-top-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.fp-top-tx b{font-size:13.5px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-badges{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.fp-badge{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge);min-width:0}
html[data-theme=graphite] .fp-badge{background:#26282c}
.fp-badge.is-locked{opacity:.42;filter:grayscale(1)}
.fp-seal{flex:none;width:26px;height:26px;border-radius:50%;--c:var(--acc);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--c) 85%,#fff),var(--c) 55%,color-mix(in srgb,var(--c) 55%,#000));box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 35%,transparent),0 0 10px color-mix(in srgb,var(--c) 55%,transparent);position:relative}
.fp-seal::after{content:"";position:absolute;inset:8px 7px 9px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg)}
.fp-seal--violet{--c:var(--acc)} .fp-seal--amber{--c:#ffb02e} .fp-seal--blue{--c:#3aa0ff} .fp-seal--green{--c:#2ff07f} .fp-seal--red{--c:#ff4d6a}
.fp-badge-tx{display:flex;flex-direction:column;min-width:0}
.fp-badge-tx b{font-size:12px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-badge-tx span{font-size:10.5px;line-height:1.25;color:var(--t2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fp-how{margin:0;font-size:12px;line-height:1.45;color:var(--t2)}
/* stamps on Present at */
.fp-stamps{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.fp-stamp{display:flex;gap:12px;align-items:center;padding:10px;border-radius:12px;background:var(--chan);border:1px dashed color-mix(in srgb,var(--acc) 50%,var(--rub-edge));text-decoration:none;color:inherit}
html[data-theme=graphite] .fp-stamp{background:#26282c}
.fp-stamp:hover{border-style:solid;border-color:var(--acc)}
.fp-stamp-pic{flex:none;width:64px;height:64px;border-radius:10px;background:linear-gradient(135deg,#1b1d22,#0b0c0e) center/cover;display:grid;place-items:end;padding:4px;box-sizing:border-box}
.fp-stamp-pic .ci-stamp-mark{width:26px;height:26px;border-width:2px;background:rgba(0,0,0,.55)}
.fp-stamp-pic .ci-stamp-mark::before{width:10px;height:5px;border-width:2px}
.fp-stamp-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.fp-stamp-tx b{color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#fan-stamps .fp-stamps-panel{margin-bottom:14px}
/* top fans */
.fp-tf-list{display:flex;flex-direction:column;gap:6px}
.fp-tf{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge);text-decoration:none;color:inherit}
html[data-theme=graphite] .fp-tf{background:#26282c}
.fp-tf.is-me{border-color:var(--acc)}
.fp-tf-rank{width:18px;text-align:center;font:900 14px/1 ui-monospace,Menlo,monospace;color:#ffb02e}
.fp-tf-av{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--inset-bg) center/cover;font-weight:800;font-size:13px;color:var(--t1)}
.fp-tf-tx{display:flex;flex-direction:column;gap:0;flex:1;min-width:0}
.fp-tf-tx b{font-size:13px;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-tf-pts{font:800 12.5px ui-monospace,Menlo,monospace;color:var(--lcd);padding:3px 6px;border-radius:6px;background:var(--screen);border:1px solid var(--screen-edge)}
.ci-for{display:flex;flex-direction:column;gap:6px}
.ci-for-keys{display:flex;flex-wrap:wrap;gap:6px}
html[data-theme] .ci-for-key.is-on{border:2px solid var(--acc)!important;color:var(--t1)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 40%,transparent),0 0 10px color-mix(in srgb,var(--acc) 40%,transparent)!important}
.ci-here{width:100%;height:44px!important;font-size:15px!important}
.ci-alt summary{cursor:pointer;font-size:12.5px;color:var(--t2);margin-top:4px}
.ci-alt .ci-form{margin-top:8px}
.ci-host{display:flex;flex-direction:column;gap:6px;margin-top:4px;padding-top:10px;border-top:1px dashed var(--rub-edge)}
.ci-host .fx-panel-meta{white-space:normal;line-height:1.45}

/* ---- Fan level next to names in chats (2026-10-21, js/core/fanLevel.js; DESIGN_BASE rule 31) ---- */
.fx-chat-who{display:flex;align-items:center;gap:6px;min-width:0;margin:0 0 2px}
.fx-chat-who .fx-chat-name{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fx-fan-lvl{--c:var(--acc);display:inline-flex;align-items:center;flex:none;height:15px;padding:0 5px;border-radius:4px;
  font:800 9px/1 ui-monospace,Menlo,monospace;letter-spacing:.7px;color:var(--c);vertical-align:1px;white-space:nowrap;
  background:color-mix(in srgb,var(--c) 14%,transparent);border:1px solid color-mix(in srgb,var(--c) 55%,transparent);
  box-shadow:0 0 6px color-mix(in srgb,var(--c) 30%,transparent)}
.fx-fan-lvl--green{--c:#2ff07f} .fx-fan-lvl--blue{--c:#3aa0ff} .fx-fan-lvl--violet{--c:var(--acc)} .fx-fan-lvl--amber{--c:#ffb02e}
.fx-fan-lvl--legend{--c:#ffb02e;color:#1a1206;background:linear-gradient(135deg,#ffd27a,#ffb02e 55%,#e08a00);border-color:#ffb02e}
html[data-theme="pearl"] .fx-fan-lvl:not(.fx-fan-lvl--legend){color:color-mix(in srgb,var(--c) 62%,#000);background:color-mix(in srgb,var(--c) 12%,#fff);box-shadow:none}
.fx-chat--compact .fx-fan-lvl{margin-left:5px}
.rel-drop-who{display:flex;align-items:center;gap:6px;min-width:0}
.rel-drop-who b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* ---- Musicians thank their top fans (2026-10-22, js/modules/fanThanks.js; DESIGN_BASE rule 32) ---- */
.ft-who{flex-direction:row!important;align-items:center;gap:6px!important}
.ft-pick-list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,460px);overflow-y:auto;padding:2px}
.ft-pick{cursor:pointer}
.ft-pick input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--acc)}
.ft-pick input:disabled+.fp-tf-av{opacity:.5}
.ft-pick.is-on{border-color:var(--acc);box-shadow:0 0 0 1px color-mix(in srgb,var(--acc) 35%,transparent)}
#relThanksPanel .rel-drop-owner-keys{margin-top:10px;flex-wrap:wrap}
.gl-body{gap:12px}
.gl-offer{display:flex;flex-direction:column;gap:8px}
.gl-offer+.gl-offer{padding-top:12px;border-top:1px dashed var(--rub-edge)}
.gl-offer--new p{margin:0;font-size:13.5px;line-height:1.5;color:var(--t2)}
.gl-left{flex:none;padding:3px 6px;border-radius:7px;background:var(--screen);border:1px solid var(--screen-edge)}
.gl-note{margin:0;font-size:13px;line-height:1.45;color:var(--t2)}
.gl-keys{flex-wrap:wrap;align-items:center}
.gl-on{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--t1)}
.gl-names{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
.gl-names ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:var(--t1)}
.gl-names p{margin:0}
.gl-mine{display:flex;flex-direction:column;gap:12px}
.fp-thanks{display:flex;flex-direction:column;gap:6px}
.fp-thx-mark{flex:none;width:22px;text-align:center;font-size:15px;line-height:1;color:#ffb02e}
.gl-left-wrap{flex:none;display:flex;flex-direction:column;align-items:center;gap:3px}
.gl-left-wrap .fx-label{font-size:9px;letter-spacing:1px}
.ft-sheet{display:flex;flex-direction:column;gap:10px;padding:0 10px 10px}
.ft-sheet .sto-note{line-height:1.45}
.ft-sheet .pf-role-form-keys{align-items:center}
.ft-sheet .pf-role-form-keys>.fx-panel-meta{margin-right:auto}

/* ---------- Rights record (js/modules/rights.js, 2026-10-15) ---------- */
.rgt-host{display:flex;flex-direction:column;gap:12px}
.rgt-host:empty{display:none}
.rgt-hint{margin:6px 0 0!important;white-space:normal;font-size:12.5px!important;line-height:1.5!important;letter-spacing:0!important}
.rgt-tray{display:flex;flex-direction:column;gap:10px}
.rgt-author,.rgt-req{border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.rgt-author-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}
.rgt-author-head b,.rgt-req-head b{font-size:14px;color:var(--t1)}
.rgt-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rgt-grid3--share{grid-template-columns:minmax(0,1.6fr) minmax(0,1.3fr) 110px}
.rgt-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.rgt-host .rgt-grid3 .form-group,.rgt-host .rgt-grid4 .form-group,.rgt-sheet .rgt-grid3 .form-group,.rgt-sheet .rgt-grid4 .form-group{margin:0}
.rgt-acct{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--t1);font-size:13px}
.rgt-find{display:flex;flex-direction:column;gap:8px}
.rgt-find-list{display:flex;flex-direction:column;gap:6px;max-height:260px;overflow:auto}
.rgt-find-row{display:grid!important;grid-template-columns:minmax(0,1fr) 84px;align-items:center;gap:10px;padding:8px 10px;border-radius:10px}
.rgt-find-row .fx-key{justify-self:end}
.rgt-total{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rgt-total .fx-panel-meta{flex:1;min-width:140px}
.prt-form label.rgt-sub,.rgt-sub{display:flex;align-items:baseline;gap:8px;margin:4px 0 0}
.rgt-sub .fx-panel-meta{text-transform:none;letter-spacing:0;font-weight:600}
.rgt-list{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.rgt-row{display:grid;gap:10px 12px;align-items:end;width:100%}
.rgt-row--perf{grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) 130px 90px}
.rgt-row--credit{grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) 90px}
.rgt-row--sample{grid-template-columns:repeat(3,minmax(0,1fr))}
.rgt-row .form-group{margin:0}
.rgt-check{display:flex;align-items:center}
.rgt-row .rgt-check{min-height:36px}
.rgt-row-rm{justify-self:end;align-self:end;margin-bottom:6px}
.rgt-row--sample .rgt-row-rm{grid-column:3}
.rgt-empty{margin:0!important}
.rgt-sec{display:flex;flex-direction:column;gap:8px;padding:6px 0 14px;border-bottom:1px solid var(--inset-edge)}
.rgt-sec:last-child{border-bottom:0}
.rgt-sec-title{margin:0;font-family:var(--font-head);font-size:15px;font-weight:800;color:var(--t1);display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.rgt-sec-body{padding:4px 0 0!important}
.rgt-sheet{display:flex;flex-direction:column;gap:6px}
.rgt-err{margin:8px 0 0;color:var(--fx-red);font-size:13px;font-weight:700}
.rgt-summary{display:flex;flex-direction:column;gap:10px}
.rgt-declared{margin:0;font-size:13px;color:var(--t2);line-height:1.5}
.rgt-authors{display:flex;flex-direction:column;gap:6px}
.rgt-arow{display:grid!important;grid-template-columns:minmax(0,1fr) 72px 150px;align-items:center;gap:10px;padding:8px 12px;border-radius:10px}
.rgt-share-lcd{font-variant-numeric:tabular-nums;font-weight:800;font-size:14px;text-align:right;color:var(--t1)}
.rgt-chip{justify-self:end;height:28px;display:inline-flex!important;align-items:center}
.rgt-counts,.rgt-ver{margin:0!important;white-space:normal!important}
.rgt-ver code{font-size:12px}
.rgt-facts{display:grid;grid-template-columns:170px minmax(0,1fr);gap:6px 14px;margin:4px 0 0;font-size:13px}
.rgt-facts dt{font-weight:800;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);padding-top:2px}
.rgt-facts dd{margin:0;color:var(--t1);overflow-wrap:anywhere}
.rgt-req-head{display:flex;flex-direction:column;gap:2px}
.rgt-req-you{margin:0;font-size:14px;color:var(--t1)}
.rgt-note{width:100%;box-sizing:border-box;resize:vertical;font:inherit;font-size:14px;padding:10px 12px;border-radius:9px}
.rgt-req-keys{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
@media (max-width:760px){
  .rgt-grid3,.rgt-grid3--share,.rgt-grid4,.rgt-row--perf,.rgt-row--credit,.rgt-row--sample{grid-template-columns:1fr}
  .rgt-row-rm,.rgt-row--sample .rgt-row-rm{grid-column:auto;justify-self:start}
  .rgt-arow{grid-template-columns:minmax(0,1fr) 64px;grid-template-areas:"n s" "c c"}
  .rgt-arow .pf-room-main{grid-area:n}.rgt-arow .rgt-share-lcd{grid-area:s}.rgt-arow .rgt-chip{grid-area:c;justify-self:start}
  .rgt-facts{grid-template-columns:1fr}
}
.rgt-mrow{display:grid!important;grid-template-columns:minmax(0,1fr) 160px 76px;align-items:center;gap:10px;padding:8px 12px;border-radius:10px}
.rgt-mrow .fx-key{justify-self:end}
@media (max-width:760px){.rgt-mrow{grid-template-columns:minmax(0,1fr) 76px}.rgt-mrow .rgt-chip{grid-column:1;grid-row:2;justify-self:start}}
.rgt-reg{display:flex;flex-direction:column;gap:10px}
.rgt-reg-state{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rgt-grow{display:grid!important;grid-template-columns:56px minmax(0,1fr) 160px;align-items:center;gap:10px;padding:8px 12px;border-radius:10px}
.rgt-seq{font-variant-numeric:tabular-nums;font-weight:800;color:var(--t2)}
.rgt-hash{font-size:12px;color:var(--t2);justify-self:end}
@media (max-width:760px){.rgt-grow{grid-template-columns:48px minmax(0,1fr)}.rgt-grow .rgt-hash{grid-column:2;justify-self:start}}
.rgt-h{margin:18px 0 8px!important}
.rgt-summary+.sto-note{margin-top:10px}
.rgt-req .rgt-sub{font-weight:800;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2)}

/* ---------- Rights Registry hub (#rights) and its sub-tabs (js/modules/rightsHub.js, 2026-10-15) ---------- */
.rgx{display:flex;flex-direction:column;gap:16px}
.rgx-tabs-host:empty{display:none}
.rgx-tabs{display:inline-flex;flex-wrap:wrap;align-self:flex-start;max-width:100%}
.rgx-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,420px);gap:16px;align-items:start}
.rgx-main,.rgx-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.abt-ico--blue{color:var(--info)}
.rgx-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 16px 16px}
.rgx-act{border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;min-height:190px}
.rgx-act b{font-size:16px;color:var(--t1)}
.rgx-act p{margin:0;white-space:normal!important;line-height:1.45;flex:1}
.rgx-act .abt-ico{width:40px;height:40px}
.rgx-code{padding:0!important;width:100%}
.rgx-body{padding:4px 16px 16px;display:flex;flex-direction:column;gap:10px}
.rgx-list{display:flex;flex-direction:column;gap:8px}
.rgx-reg{display:grid!important;grid-template-columns:minmax(0,1fr) 150px 76px 104px;align-items:center;gap:10px;padding:10px 12px;border-radius:10px}
.rgx-reg .pf-room-main b{font-size:14px;color:var(--t1)}
.rgx-reg .rgt-chip{justify-self:start}
.rgx-reg .fx-key{justify-self:stretch;text-align:center;justify-content:center}
.rgx-guest{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rgx-guest .fm-empty{margin:0}
.rgx-keys{display:flex;justify-content:flex-end}
.rgx-holds{padding:4px 16px 16px}
@media (max-width:1100px){.rgx-grid{grid-template-columns:1fr}}
@media (max-width:760px){
  .rgx-acts{grid-template-columns:1fr}
  .rgx-act{min-height:0}
  .rgx-reg{grid-template-columns:minmax(0,1fr) 1fr 1fr}
  .rgx-reg .pf-room-main{grid-column:1/-1}
  .rgx-reg .rgt-chip{grid-column:1/-1}
}
.rgx-tabs a.lv-tab-key{text-decoration:none;display:inline-flex;align-items:center}
.rgx .rgt-ver{line-height:1.5}

/* ---------- Rights record: everyone on the recording (2026-10-15) ---------- */
.rgt-prow{border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px;width:100%;box-sizing:border-box}
.rgt-row--performers{grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) minmax(0,1fr) 90px}
.rgt-row--crew{grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) 120px 90px}
.rgt-row--agr{grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) 170px 90px}
.rgt-row--sample{grid-template-columns:repeat(4,minmax(0,1fr))}
.rgt-row--sample .rgt-row-rm{grid-column:4}
.rgt-guide{display:flex;flex-direction:column;gap:6px}
.rgt-guide .pf-room-row{padding:8px 12px!important}
.rgt-guide .fx-status{min-width:72px;justify-content:center}
.rgt-guide-t{white-space:normal!important;line-height:1.45;color:var(--t1)!important}
.rgt-h4{margin:12px 0 6px;font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--t2);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.rgt-h4 .fx-panel-meta{text-transform:none;letter-spacing:0;font-weight:600}
@media (max-width:760px){.rgt-row--performers,.rgt-row--crew,.rgt-row--agr,.rgt-row--sample{grid-template-columns:1fr}.rgt-row--sample .rgt-row-rm{grid-column:auto}}
.rgt-grid-pub{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px}
.rgt-grid-pub .form-group{margin:0}
.rgt-guide .fx-status{width:84px;min-width:84px;justify-content:center}
@media (max-width:760px){.rgt-grid-pub{grid-template-columns:1fr}}
@media (max-width:760px){.rgt-panel>.fx-panel-head{max-height:none}.rgt-panel>.fx-panel-head>.fx-panel-meta{display:none}.rgt-panel .fx-panel-title{white-space:normal!important;min-width:0;flex:1 1 auto}}
.rgt-del{display:flex;flex-direction:column;gap:12px}
.rgt-del .sto-note{margin:0;line-height:1.5}
.rgt-del .rgt-guide .fx-status{width:104px;min-width:104px}

/* ---------- Label demos and contacts (js/modules/labelDemos.js, 2026-10-16) ---------- */
.dmo{gap:12px}
.dmo-policy{display:flex;flex-direction:column;gap:6px}
.dmo-policy .fx-status{width:150px;min-width:150px;justify-content:center}
.dmo-guide{white-space:normal!important;line-height:1.45;color:var(--t1)!important}
.dmo-keys{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
.dsp-body.dmo>.dmo-keys{justify-content:flex-start}
.dmo-filters{align-self:flex-start;display:inline-flex;flex-wrap:wrap}
.dmo-list{display:flex;flex-direction:column;gap:8px}
.dmo-row{display:grid!important;grid-template-columns:minmax(0,1fr) 120px 400px;align-items:center;gap:10px;padding:10px 12px;border-radius:10px}
.dmo-row--mine{grid-template-columns:minmax(0,1fr) 120px 110px}
.dmo-row .pf-room-main b{font-size:14px;color:var(--t1)}
.dmo-row .pf-room-main a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.dmo-note{white-space:normal!important;font-style:italic}
.dmo-chip{justify-self:start;height:28px;display:inline-flex!important;align-items:center}
.dmo-audio{grid-column:1/-1;width:100%;height:36px}
.lbl-ct{width:84px;min-width:84px;justify-content:center}
.lbl-mail{color:inherit;text-decoration:none;overflow-wrap:anywhere}
.lbl-mail:hover,.lbl-mail:focus-visible{text-decoration:underline}
.lbl-ct-keys{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:900px){.dmo-row,.dmo-row--mine{grid-template-columns:minmax(0,1fr) 120px}.dmo-row .dmo-keys{grid-column:1/-1;justify-content:flex-start}}
@media (max-width:760px){.dmo-policy .pf-role-row{flex-direction:column;align-items:flex-start!important;gap:6px}.dmo-policy .fx-status{width:auto;min-width:0}.dmo-policy .pf-room-main{width:100%}.dmo-policy .pf-room-title,.dmo-policy .fx-panel-meta{white-space:normal!important;overflow:visible;text-overflow:clip}}
/* chat: a profile that takes no messages from new contacts — a plain notice, not an error */
#chatMsgError.is-info{color:var(--t2)!important;line-height:1.4}
/* Discover on phones: the role keys wrap, so Labels is never off screen */
@media (max-width:768px){html[data-theme] #drTabWell{flex-wrap:wrap!important;max-width:100%;overflow:visible!important}}
/* Labels directory: its own page (#labels) and the Labels tab of Discover Artists (js/modules/labelsDir.js) */
.dr-labels-cta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.dr-labels-cta:empty{display:none}
.ldr-shell #ldrBody{margin-top:4px}
.dr-labels{display:flex;flex-direction:column;gap:12px}
.dr-labels[hidden]{display:none!important}
.dr-shell--labels>.dr-filters,.dr-shell--labels>.dr-body{display:none!important}
@media (max-width:768px){.ldr-shell .dr-title-row{flex-wrap:wrap}.dr-labels-cta{justify-content:flex-start}}
html[data-theme] .dr-labels-cta .fx-key{display:inline-flex!important;align-items:center;justify-content:center;height:38px!important;padding:0 16px!important;border-radius:10px!important;font-size:14px!important;font-weight:700;text-decoration:none;white-space:nowrap}
/* Top bar on laptops (Zoran, 2026-10-16): the links get tighter as the window narrows, and if they still do not fit
   they scroll sideways, so the theme switches, bell and avatar on the right are never cut off. */
@media (min-width:769px){
  nav.hw-faceplate .nav-logo{flex:none}
  nav.hw-faceplate .nav-links{flex:0 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
  nav.hw-faceplate .nav-links::-webkit-scrollbar{display:none}
}
@media (min-width:769px) and (max-width:1700px){nav.hw-faceplate .nav-links a{padding-left:8px;padding-right:8px}}
@media (min-width:769px) and (max-width:1440px){nav.hw-faceplate .nav-links{gap:1px}nav.hw-faceplate .nav-links a{padding-left:5px;padding-right:5px}}
@media (min-width:769px) and (max-width:1320px){nav.hw-faceplate .nav-links{gap:0}nav.hw-faceplate .nav-links a{padding-left:4px;padding-right:4px}}
/* when the links still do not fit, a soft edge shows there is more to scroll (app.js sets .is-scroll) */
@media (min-width:769px){nav.hw-faceplate .nav-links.is-scroll{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}}
@media (min-width:769px) and (max-width:1320px){nav.hw-faceplate .nav-auth-area{gap:8px}}
@media (min-width:769px) and (max-width:1320px){nav.hw-faceplate .nav-links{margin-left:10px}}
@media (max-width:768px){.tlf-sel{min-width:0;max-width:100%}.tlf-sel select{max-width:100%;min-width:0}}
/* Messages always on top (Zoran, 2026-10-16): a toast sat under open sheets (z 9000) and the login screen (z 99999),
   so a form that refused to save looked like it did nothing. The toast never takes clicks. */
#toast.toast,.toast{z-index:100002!important}
/* a field the form refused, until the person edits it */
html[data-theme] .fx-field[aria-invalid="true"]{border-color:var(--alert)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--alert) 35%,transparent)!important}
html[data-theme] .toast.error{border-color:color-mix(in srgb,var(--alert) 60%,transparent)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--alert) 22%,transparent),0 8px 28px rgba(0,0,0,.28)!important}
/* Tree select (js/core/treeSelect.js): genres and categories open by arrow, never as one long list */
.fm-tree-native{display:none!important}
.fm-tree{display:inline-flex;min-width:0;vertical-align:middle}
.ftp-host.fm-tree:not(.fm-tree--field){width:auto}
.fm-tree:not(.fm-tree--field) .lv-dd-btn{width:auto}
.fm-tree .lv-dd{display:inline-flex!important;align-items:center;gap:4px;min-width:0}
.fm-tree .lv-dd-btn{display:inline-flex;align-items:center;justify-content:space-between}
.fm-tree--field{display:flex;width:100%}
.fm-tree--field .lv-dd{flex:1 1 auto;width:100%}
.fm-tree--field .lv-dd-btn{flex:1 1 auto;width:100%;max-width:none!important;justify-content:space-between;text-align:left;cursor:pointer;transform:none!important}
html[data-theme] .ftp-host .lv-dd-btn.fm-tree-fbtn{height:34px!important;min-height:34px;padding:0 10px!important;font:inherit;font-weight:inherit!important;color:inherit}
html[data-theme] .ftp-host .lv-dd-btn.fm-tree-fbtn.has-value{color:inherit}
.fm-tree-fbtn .lv-dd-label{flex:1 1 auto;text-align:left}
.fm-tree-x{flex:none;width:26px;height:26px;border-radius:8px;border:1px solid var(--rub-edge);background:var(--chan);color:var(--t2);font-size:16px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.fm-tree-x:hover,.fm-tree-x:focus-visible{color:var(--t1);border-color:var(--acc);outline:none}
.fm-tree-x[hidden]{display:none!important}
.fm-tree-pop{position:fixed;inset:0 auto auto 0;width:0;height:0;z-index:100001}
.fm-tree-pop .lv-dd-menu{position:fixed!important;z-index:100001!important;max-width:calc(100vw - 16px)}
/* tree select inside a filter bar looks exactly like the other filter menus there */
html[data-theme] .tlf .fm-tree .lv-dd-btn.fm-tree-tbtn{display:inline-flex;align-items:center;cursor:pointer;white-space:nowrap;height:30px!important;padding:0 10px!important;gap:10px;border-radius:9px!important;font:700 12.5px Epilogue,sans-serif!important;max-width:230px;
 background:linear-gradient(var(--rub-hi),var(--rub-lo)) padding-box,var(--rub-edge) border-box!important;border:1px solid transparent!important;color:var(--rub-text)!important;
 box-shadow:inset 0 1px 0 var(--face-hi),0 2px 0 var(--rub-drop)!important;transform:none!important}
html[data-theme] .tlf .fm-tree .lv-dd-chev{color:#999}
html[data-theme] .tlf .fm-tree-x{width:24px;height:24px;border-radius:7px}
@media (max-width:768px){html[data-theme] .tlf .fm-tree{max-width:100%}html[data-theme] .tlf .fm-tree .lv-dd-btn{max-width:100%}}
/* Terms notice (js/modules/termsNotice.js): small, above the page, below sheets and toasts */
.fm-terms-notice{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:8000;width:min(760px,calc(100vw - 32px));box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:12px 14px!important;border-radius:14px}
.fm-terms-notice-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.4;color:var(--t2)}
.fm-terms-notice-text b{color:var(--t1);font-size:13.5px}
.fm-terms-notice-keys{display:flex;gap:6px;flex:none}
@media (max-width:768px){.fm-terms-notice{bottom:calc(var(--fx-nav-top,8px) + 62px + 16px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}.fm-terms-notice>.fx-led{display:none}.fm-terms-notice-keys{width:100%;justify-content:flex-end}}
/* Help (#help, js/modules/helpPage.js) */
.hlp{display:flex;flex-direction:column;gap:var(--fx-gap,16px)}
.hlp-search{margin-top:14px;max-width:560px;width:100%;height:42px!important;min-height:0!important;flex:none!important;box-sizing:border-box}
.hlp-search input{flex:1 1 auto;min-width:0;height:100%;border:0;background:transparent;color:var(--t1);font:500 14px Epilogue,sans-serif;outline:none}
.hlp-start-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 14px 14px}
.hlp-role{padding:12px 14px;border-radius:12px}
.hlp-role-t{margin:0 0 6px;font:700 14px/1.3 Epilogue,sans-serif;color:var(--t1)}
.hlp-role ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.45;color:var(--t2)}
.hlp-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--fx-gap,16px);align-items:start}
.hlp-nav{position:sticky;top:calc(var(--fx-nav-top,8px) + var(--fx-nav-h,52px) + 12px);display:flex;flex-direction:column;gap:2px;padding:10px!important}
.hlp-nav-title{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--t2);padding:4px 8px 6px}
.hlp-nav-k{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 8px;border:0;border-radius:8px;background:transparent;color:var(--t1);font:600 13px/1.3 Epilogue,sans-serif;cursor:pointer}
.hlp-nav-k:hover,.hlp-nav-k:focus-visible{background:var(--chan);outline:none}
.hlp-nav-k.is-on{background:var(--chan);color:var(--t1);box-shadow:inset 3px 0 0 var(--acc)}
.hlp-main{display:flex;flex-direction:column;gap:var(--fx-gap,16px);min-width:0}
.hlp-intro{margin:0;padding:0 16px 10px;font-size:13.5px;line-height:1.55;color:var(--t2)}
.hlp-guides{display:flex;flex-direction:column;gap:6px;padding:0 14px 14px}
.hlp-guide{border-radius:10px;background:var(--chan);border:1px solid var(--rub-edge)}
.hlp-guide summary{list-style:none;display:flex;align-items:center;gap:10px;justify-content:space-between;padding:11px 14px;cursor:pointer}
.hlp-guide summary::-webkit-details-marker{display:none}
.hlp-guide summary::after{content:'';flex:none;width:8px;height:8px;border-right:2px solid var(--t2);border-bottom:2px solid var(--t2);transform:rotate(45deg);margin-top:-4px;transition:transform .15s}
.hlp-guide[open] summary::after{transform:rotate(225deg);margin-top:4px}
.hlp-q{flex:1 1 auto;font:700 14px/1.35 Epilogue,sans-serif;color:var(--t1)}
.hlp-who{flex:none;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--t2);text-transform:uppercase}
.hlp-body{padding:0 16px 14px;font-size:13.5px;line-height:1.55;color:var(--t1)}
.hlp-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.hlp-notes{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px;color:var(--t2)}
.hlp-key{font-weight:700;color:var(--t1);padding:0 4px;border-radius:5px;background:color-mix(in srgb,var(--acc) 14%,transparent)}
.hlp-go{margin-top:12px}
.hlp-none{padding:16px}
.hlp-foot{margin:0 0 8px;text-align:center;font-size:13px;color:var(--t2)}
.hlp-foot a{color:inherit}
@media (max-width:1100px){.hlp-start-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.hlp-start-grid{grid-template-columns:1fr}}
@media (max-width:900px){.hlp-grid{grid-template-columns:1fr}.hlp-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}.hlp-nav-title{width:100%}.hlp-nav-k{width:auto;padding:6px 10px;border:1px solid var(--rub-edge);background:var(--chan)}.hlp-nav-k.is-on{box-shadow:inset 0 0 0 1px var(--acc)}}
@media (max-width:600px){.hlp-guide summary{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:4px;column-gap:10px}.hlp-q{grid-column:1;grid-row:1}.hlp-guide summary::after{grid-column:2;grid-row:1}.hlp-who{grid-column:1;grid-row:2;white-space:normal}}
/* Go live: an access option that comes with card payments (PLANNED) */
.lvn-choice.is-planned{opacity:.6;cursor:not-allowed}
.lvn-choice-name .fm-planned{margin-left:8px;vertical-align:middle;height:18px;padding:0 7px;font-size:9px}
.rgx-act-keys{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* Go live on phones: one column, each panel as tall as its content, the column list scrolls (was: three panels squeezed into the screen, content spilling over the next panel) */
@media (max-width:768px){#page-live-new .lvn-cols{grid-auto-rows:max-content;grid-template-rows:none;align-content:start}#page-live-new .lvn-col{min-height:auto}}
/* Events spotlight (2026-10-19): description and chips fill the card; the date display shows digits only */
.evs-date b{font-size:12px}
.evs-desc{font-size:13.5px;line-height:1.5;color:var(--t2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:68ch}
.evs-chips{display:flex;flex-wrap:wrap;gap:6px}
.evd-gridp[hidden]{display:none!important}
/* Event form: tags as chips, hints */
.evt-tagbox{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px;min-height:42px;height:auto!important;padding:6px 8px!important;cursor:text;box-sizing:border-box;width:100%}
.evt-tag{display:inline-flex;align-items:center;gap:4px;padding-right:4px!important}
.evt-tag button{border:0;background:transparent;color:inherit;font:700 14px/1 Epilogue,sans-serif;cursor:pointer;padding:0 4px;border-radius:5px;opacity:.75}
.evt-tag button:hover,.evt-tag button:focus-visible{opacity:1;background:var(--chan);outline:none}
.evt-tag-in{flex:1 1 120px;min-width:100px;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--t1);font:500 14px Epilogue,sans-serif;outline:none;padding:4px 2px!important;height:auto!important}
.evt-tag-hint{font-size:11.5px;color:var(--t2);margin-top:6px;line-height:1.4}
.evs-pic{overflow:hidden}
.evs-pic.has-img{background:#050506}
.evs-pic.has-img::before{content:"";position:absolute;inset:-24px;background:var(--evs-img) center/cover no-repeat;filter:blur(24px) brightness(.5) saturate(1.2)}
.evs-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
.evs-pic .evs-shade{z-index:2}
.evs-pic .evs-tag{z-index:3}
/* Events on phones: spotlight picture on top, the week strip scrolls sideways with full day names */
@media (max-width:700px){
  .evs{grid-template-columns:1fr;min-height:0}
  .evs-pic{aspect-ratio:16/9;min-height:180px}
  .evs-pic .evs-shade{background:linear-gradient(180deg,transparent 60%,var(--chan) 100%)}
  .evs-row{flex-wrap:wrap}
  .evs-row .evc-keys{display:flex;flex-wrap:wrap;gap:6px}
  .evd-week-in{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(84px,1fr);overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .evd-week-in::-webkit-scrollbar{display:none}
  .evd-day-k{font-size:10px;letter-spacing:.8px;white-space:nowrap}
}
/* Event page poster frame follows the picture's shape */
.evp-poster.is-fit{aspect-ratio:var(--ar)}
.evp-poster.is-wide{height:auto;width:min(42%,640px)}
@media (max-width:768px){.evp-poster.is-wide{width:calc(100% - 40px);max-width:560px;height:auto;max-height:220px}}
@media (max-width:768px){
  .evp-poster{z-index:2}
  .evp-shade{background:linear-gradient(0deg,rgba(6,7,9,.94) 0%,rgba(6,7,9,.7) 42%,transparent 72%)}
  .evp-strip-keys .fx-key{white-space:nowrap}
}
html[data-theme] .evt-genre .fm-tree .lv-dd-btn.fm-tree-fbtn,html[data-theme] .evt-genre .fm-tree-fbtn{height:36px!important;min-height:0!important;font-size:14.4px!important;padding:0 14px!important;border-radius:10px}
html[data-theme] .evt-tagbox input.evt-tag-in{border:0!important;background:transparent!important;box-shadow:none!important;padding:4px 2px!important;height:auto!important;min-height:0!important;border-radius:0!important}
html[data-theme] .evt-tagbox{border-radius:10px}
/* Event cards and "More from": the whole picture on a blurred copy (posters tall, banners wide) */
.evc-pic,.evp-more-pic{overflow:hidden}
.evc-pic.has-img,.evp-more-pic.has-img{position:relative;background:#050506}
.evc-pic.has-img::before,.evp-more-pic.has-img::before{content:"";position:absolute;inset:-24px;background:var(--evs-img) center/cover no-repeat;filter:blur(20px) brightness(.5) saturate(1.2)}
.evc-pic .evs-img,.evp-more-pic .evs-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:1}
.evc-pic .evc-shade{z-index:2}.evc-pic .evc-date,.evc-pic .evc-tags{z-index:3}
/* Events like Discover Artists (Zoran, 2026-10-19): one plate down to the bottom of the screen, cards of one size,
   six in a row on a wide screen; the spotlight (8+ events) sits inside the plate on top */
#page-events .evd-gridp{display:flex;flex-direction:column;gap:12px;box-sizing:border-box}
#page-events .evd-gridp .dr-showing{margin-top:auto;padding-top:10px}
.evd-spot:empty{display:none}
.evd-spot .evs{min-height:210px}
#page-events .evd-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;align-content:start}
@media (max-width:1700px){#page-events .evd-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
@media (max-width:1450px){#page-events .evd-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media (max-width:1100px){#page-events .evd-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media (max-width:768px){#page-events .evd-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:480px){#page-events .evd-grid{grid-template-columns:1fr!important}}
@media (max-width:1100px){#page-events .evd-body{grid-template-columns:minmax(0,1fr)}#page-events .evd-aside{min-width:0}}
/* an empty list says so across the whole plate, centred, like Discover ("No profiles match") */
.pf-card-grid>.tlf-empty,.sto-labels>.tlf-empty{grid-column:1/-1;flex-direction:column;padding:48px 20px;text-align:center}
/* Go live chooser (profile / Dashboard): two big keys, name on top, one line of what it is */
html[data-theme] .fm-golive-pick{display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center;gap:4px;width:100%;height:auto!important;min-height:64px;padding:12px 16px!important;text-align:left;white-space:normal;grid-column:1/-1}
html[data-theme] .fm-golive-pick .lvn-choice-name{font:800 15px/1.2 Epilogue,sans-serif;color:var(--t1)}
html[data-theme] .fm-golive-pick .lvn-choice-detail{font:500 13px/1.4 Epilogue,sans-serif;color:var(--t2)}
html[data-theme] .fm-golive-pick:hover{border-color:var(--acc)}
/* Rights form: who gets what under each author, and the song's publisher taken from the authors */
.rgt-split-line{margin:8px 0 2px;font-size:13px;line-height:1.45;color:var(--t2)}
.rgt-split-line:empty{display:none}
.rgt-songpub{display:flex;flex-direction:column;gap:6px;margin:12px 0 4px}
.rgt-songpub-v{font-size:14px;font-weight:700;color:var(--t1)}
.rgt-songpub-v .fx-panel-meta{font-weight:500;margin-left:6px}
/* Protect a track: the file is checked against the registry as soon as it is chosen (app.js _fmProtectEarlyCheck) */
.prt-filecheck{display:flex;align-items:flex-start;gap:12px;margin-top:10px;padding:12px 16px;border-radius:16px;border:1px solid var(--line);background:var(--well);color:var(--t1);font-size:14px;line-height:1.45}
.prt-filecheck[hidden]{display:none}
.prt-filecheck .fx-led{flex:0 0 auto;margin-top:5px}
.prt-filecheck-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.prt-filecheck-body>span{color:var(--t2);font-size:13px}
.prt-filecheck-keys{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.prt-filecheck.is-taken{border-color:color-mix(in srgb,var(--alert) 55%,transparent)}
.prt-filecheck.is-mine{border-color:color-mix(in srgb,#ffb02e 55%,transparent)}
.prt-filecheck.is-free{border-color:color-mix(in srgb,var(--play) 40%,transparent)}
.prt-filecheck.is-taken>.prt-filecheck-body>b{color:var(--alert)}
html[data-theme="pearl"] #fileInfo>span:first-child{color:#0f8a46!important}
/* studio: Credit a release (studioCredits.js fmStudioCreditFind) */
.sc-find-top{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:12px;align-items:end}
.sc-find-top .pf-role-field{margin:0}
@media (max-width:640px){.sc-find-top{grid-template-columns:minmax(0,1fr)}}
/* collecting societies: chooser in the rights form (rights.js societiesHtml) and the OFPS submission (societies.js) */
.rgt-soc-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:8px 0 4px}
.rgt-soc>span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.rgt-soc>span:last-child .fx-panel-meta{white-space:normal;overflow-wrap:anywhere}
.rgt-soc{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--well);margin:0!important}
.rgt-soc b{color:var(--t1);font-size:15px}
.rgt-soc.is-planned{opacity:.75}
.rgt-soc-body{margin-top:12px;padding:12px 14px;border-radius:14px}
.rgt-soc-title{display:block;margin-bottom:4px;color:var(--t1)}
.rgt-soc-warn{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:13px;color:var(--t1)}
.rgt-soc-body+.rgt-soc-body{margin-top:12px}
.rgt-soc-body .rgt-grid3,.rgt-soc-body .form-row{margin:10px 0}
.rgt-span2{grid-column:span 2}
.rgt-soc-title-row{grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;align-items:end;margin:8px 0}
.rgt-soc-rm{align-self:end}
@media (max-width:760px){
  .rgt-span2{grid-column:auto}
  .rgt-soc-title-row{grid-template-columns:1fr}
  .rgt-soc-rm{justify-self:start}
}
.rgx-keys .fx-panel-meta{align-self:center;margin-left:10px}
.soc-wrap{display:flex;flex-direction:column;gap:12px;padding:4px 16px 16px}
.soc-item{padding:12px 14px;border-radius:14px}
.soc-item-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.soc-item-head b{color:var(--t1);margin-right:auto}
.soc-issues{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.soc-issue{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--t2);overflow-wrap:anywhere}
.soc-issue .fx-led{flex:0 0 auto;margin-top:4px}
.soc-issue.is-block span:last-child{color:var(--t1);font-weight:600}
.soc-row-wrap{overflow-x:auto}
.soc-row{width:100%;border-collapse:collapse;font-size:12.5px}
.soc-row th{width:46%;text-align:left;font-weight:600;color:var(--t2);padding:5px 8px;border-top:1px solid var(--line);vertical-align:top}
.soc-row td{color:var(--t1);padding:5px 8px;border-top:1px solid var(--line);overflow-wrap:anywhere}
@media (max-width:640px){.soc-row th{width:52%}.rgx-keys{flex-wrap:wrap}}
/* Bitcoin timestamp block (js/modules/anchors.js), on the Rights sheet and the verify page */
.anc-box{display:flex;flex-direction:column;gap:6px}
.anc-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.anc-text{flex:1 1 260px;min-width:0;font-size:13.5px;line-height:1.45;color:var(--t2)}
.anc-text b{color:var(--t1)}
.anc-led{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--t3)}
.anc-led.is-on{background:var(--play);box-shadow:0 0 8px color-mix(in srgb,var(--play) 60%,transparent)}
.anc-led.is-wait{background:#ffb02e;box-shadow:0 0 8px rgba(255,176,46,.5)}
.anc-note{margin:0;font-size:12.5px;line-height:1.5;color:var(--t2)}
.anc-note a{color:var(--t1);text-decoration:underline}

/* ---------- Confirmation by e-mail (js/modules/emailConfirm.js, confirm.html) ---------- */
.rgt-chip--mail{height:auto!important;min-height:28px;padding-top:3px!important;padding-bottom:3px!important}
.rgt-chip-txt{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.05}
.rgt-chip-txt small{font-size:8.5px;letter-spacing:.08em;opacity:.85;margin-top:1px}
.eml-list{display:flex;flex-direction:column;gap:6px}
.eml-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-radius:10px}
.eml-row [hidden]{display:none!important}
.eml-main{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:2px}
.eml-main b{color:var(--t1);font-size:14px}
.eml-state{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;line-height:1.4;color:var(--t2)}
.eml-form{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.eml-form .form-group{flex:1 1 260px;margin:0!important}
.eml-keys{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Source files: fingerprints of stems, vocals, project files (js/modules/sourceFiles.js) ---------- */
.src-list,.src-review{display:flex;flex-direction:column;gap:6px}
.src-set{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border-radius:10px}
.src-set [hidden],.src-work[hidden]{display:none!important}
.src-main{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:2px}
.src-main b{color:var(--t1);font-size:14px}
.src-sha{font-size:12px;color:var(--t2)}
.src-sha code,.src-file code{font-size:11.5px;color:var(--t2)}
.src-keys,.src-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.src-actions{margin-top:2px}
.src-files{flex:1 1 100%;display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto;padding-top:4px;border-top:1px solid var(--rub-edge)}
.src-file{display:flex;align-items:center;gap:10px;min-width:0;font-size:13px;color:var(--t1)}
.src-fname{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.src-file .fx-panel-meta{flex:0 1 auto;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.src-file--edit select{flex:0 0 150px;height:32px}
.src-review{max-height:320px;overflow:auto}
.src-progress{margin:0;font-size:13.5px;color:var(--t2)}
.src-progress b{color:var(--t1)}
.src-err{margin:0;font-size:13.5px;font-weight:600;color:var(--alert,#e5484d)}
.src-note{margin:0!important;max-width:520px}
@media (max-width:620px){.src-file{flex-wrap:wrap}.src-fname{flex:1 1 calc(100% - 24px);white-space:normal;overflow-wrap:anywhere}.src-file .fx-panel-meta{flex:1 1 100%;padding-left:0}.src-file--edit select{flex:1 1 150px}}

/* ---------- Society portal: sharing with OFPS and the OFPS desk (js/modules/societyPortal.js) ---------- */
.soc-share{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.soc-share-one+.soc-share-one{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.soc-share .anc-text{flex:1 1 280px}
.soc-changed{color:#ffb02e;font-weight:600}
.soc-desk{display:flex;flex-direction:column;gap:12px}
.soc-desk-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border-radius:12px}
.soc-desk-tabs .lv-tab-key{height:34px;padding:0 12px}
.soc-n{opacity:.7;font-variant-numeric:tabular-nums;margin-left:4px}
.soc-desk-list{display:flex;flex-direction:column;gap:6px}
.soc-desk-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border-radius:10px}
.soc-desk-row [hidden]{display:none!important}
.soc-desk-pick{width:18px;height:18px;flex:0 0 auto}
.soc-desk-main{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:2px}
.soc-desk-main b{color:var(--t1);font-size:14px}
.soc-desk-main .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.soc-desk-ok{font-size:12.5px;font-weight:600;color:var(--play)}
.soc-desk-bad{font-size:12.5px;font-weight:600;color:#ffb02e}
.soc-desk-keys{display:flex;gap:8px;flex-wrap:wrap}
.soc-desk-set{flex:1 1 100%;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.soc-desk-set select{height:34px;flex:0 0 220px}
.soc-desk-set input{height:34px;flex:1 1 260px;min-width:0;padding:0 10px;border-radius:8px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:inherit;font-size:13.5px}
@media (max-width:620px){.soc-desk-set select{flex:1 1 100%}}
html[data-theme="pearl"] .soc-desk-ok{color:#13753c}
html[data-theme="pearl"] .soc-desk-bad,html[data-theme="pearl"] .soc-changed{color:#9a4f00}

/* ---------- Admin: collecting society access (js/modules/orgAdmin.js) ---------- */
.org-adm-list{display:flex;flex-direction:column;gap:6px;padding:10px}
.org-adm-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;border-radius:10px}
.org-adm-main{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:2px}
.org-adm-main b{color:var(--t1)}
.org-adm-main .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.org-adm-keys{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.org-adm-keys input{height:32px;min-width:200px;padding:0 10px;border-radius:8px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:inherit;font-size:13px}

/* Organizations tab (#page-organizations, js/modules/orgPage.js) — Zoran, 2026-10-26 */
#page-organizations [hidden],#gateOverlay [hidden]{display:none!important}
.org-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,400px);gap:16px;align-items:start}
.org-side{display:flex;flex-direction:column;gap:16px}
.org .pf-section-head .fx-panel-meta{overflow-wrap:anywhere}
.org-rows{display:flex;flex-direction:column;gap:8px;margin:0 14px 14px;padding:10px;border-radius:14px;background:var(--tray-bg);box-shadow:var(--tray-shadow)}
html[data-theme] .org-rows .fx-row{margin:0!important;background:var(--raised-bg)!important;background-size:var(--raised-size)!important;border:1px solid var(--rub-edge)!important;box-shadow:var(--raised-shadow)!important}
.org-row{display:flex;align-items:center;gap:12px;padding:10px 12px}
.org-row .fx-status{min-width:92px;justify-content:center}
.org-row .pf-room-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.org-row .pf-room-title{overflow-wrap:anywhere}
html[data-theme] .org-row .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
.org-text{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:0 14px 16px}
.org-text p{margin:0;font-size:14px;line-height:1.55;color:var(--t2)}
.org-text p b{color:var(--t1)}
.org-text a:not(.fx-key){color:var(--t1);text-decoration:underline}
.org-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;width:100%}
.org-note{width:100%;box-sizing:border-box;margin:0}
.org-wide{grid-column:1/-1}
.org-note label{display:block;margin:0 0 6px;font-size:13px;font-weight:600;color:var(--t1)}
html[data-theme] .org-note :is(input,select){width:100%;box-sizing:border-box;height:40px;padding:0 12px;border-radius:9px;font:inherit;font-size:14px;
  background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;color:var(--t1)!important}
html[data-theme] .org-note textarea{width:100%;box-sizing:border-box;min-height:76px;resize:vertical;padding:10px 12px;border-radius:9px;font:inherit;font-size:14px;
  background:var(--inset-bg)!important;border:1px solid var(--inset-edge)!important;box-shadow:var(--inset-shadow)!important;color:var(--t1)!important}
html[data-theme] .org-note :is(input,textarea)::placeholder{color:var(--t3)}
html[data-theme] .org-code input{max-width:180px;font-size:20px;letter-spacing:.25em;font-variant-numeric:tabular-nums}
.org-hint{margin:6px 0 0!important;font-size:12.5px!important;color:var(--t3)!important}
.org-check{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45;color:var(--t2)}
.org-check input{margin-top:3px;flex:0 0 auto}
.org-check a{color:var(--t1);text-decoration:underline}
.org-err{margin:0!important;font-size:13.5px!important;font-weight:600;color:var(--alert,#e5484d)!important}
.org-keys{display:flex;flex-wrap:wrap;gap:10px}
.org-small{font-size:12.5px!important;color:var(--t3)!important;margin:0}
@media (max-width:1000px){.org-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.org-form{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.org-row{flex-direction:column;align-items:flex-start;gap:6px}.org-row .fx-status{min-width:0}}
/* sign-up: Organization leads to the Organizations tab */
.gate-org{display:flex;flex-direction:column;gap:12px}
.gate-org-title{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--t1,#fff)}
.gate-org p{margin:0;font-size:0.86rem;line-height:1.5;color:var(--t2,rgba(220,210,255,.9))}
.gate-org-foot{margin-top:8px!important;line-height:1.5}
html[data-theme] .org-row .pf-room-title{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}

/* ---------- Unclaimed recordings (js/modules/unclaimed.js) ---------- */
#rgxUnidBody{display:flex;flex-direction:column;gap:10px}
.unid-lists{margin:0;white-space:normal!important}
.unid-lists a{color:inherit;text-decoration:underline}
.unid-search{display:flex;gap:8px;flex-wrap:wrap}
.unid-search .fx-field{flex:1 1 240px;min-width:0;height:38px}
.unid-h{margin:6px 0 0;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--t2)}
.unid-list{display:flex;flex-direction:column;gap:6px}
.unid-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:9px 12px;border-radius:10px}
.unid-main{flex:1 1 240px;min-width:0;display:flex;flex-direction:column;gap:2px}
.unid-main b{color:var(--t1);font-size:14px;overflow-wrap:anywhere}
.unid-main .fx-panel-meta,.unid-why{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere}
.unid-why{flex:1 1 100%;order:3}
.unid-claim{display:flex;flex-direction:column;gap:12px}
.unid-roles{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;color:var(--t1);font-size:14px}
.unid-roles legend{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--t2);margin-bottom:6px}
.unid-roles label{display:flex;align-items:center;gap:8px}
.unid-lbl{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--t2)}
.unid-lbl input,.unid-lbl select,.unid-lbl textarea{min-height:38px;padding:8px 10px;border-radius:8px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:inherit;font-size:14px;font-weight:400;width:100%;box-sizing:border-box}
.unid-imp{display:flex;flex-direction:column;gap:10px}
.unid-hist summary{cursor:pointer;font-size:12.5px;color:var(--t2)}
.unid-hist p{margin:4px 0 0;white-space:normal!important}
#unidImpState{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.45}
#unidPageBody{display:flex;flex-direction:column;gap:10px}
#rgxUnidBody{gap:8px}
.unid-socs{display:flex;flex-wrap:wrap;gap:6px;padding:6px;border-radius:12px}
.unid-socs .lv-tab-key{height:34px;padding:0 12px}
.unid-card-hit{margin:0;font-size:14px;color:var(--t1);line-height:1.45}
.unid-card-hit b{color:#ffb02e}
html[data-theme="pearl"] .unid-card-hit b{color:#9a4f00}
#page-unclaimed .rgx-holds .fx-panel-meta,#unidSocLists .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}

/* ---------- Society desk: history, messages, tools, report (js/modules/societyPortal.js) ---------- */
.soc-th-host{flex:1 1 100%;margin-top:6px;padding:10px 12px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow)}
.soc-th-host[hidden]{display:none!important}
.soc-th{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.soc-th li{display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:var(--t1);padding-left:10px;border-left:2px solid var(--line)}
.soc-th li.is-staff{border-left-color:#4aa3ff}
.soc-th li.soc-th-message{border-left-color:#a06eff}
.soc-th-when{font-size:12px;color:var(--t2)}
.soc-th-note{white-space:pre-wrap;overflow-wrap:anywhere}
.soc-th-send{display:flex;gap:8px;align-items:flex-end;margin-top:10px;flex-wrap:wrap}
.soc-th-send textarea{flex:1 1 240px;min-width:0;min-height:44px;padding:8px 10px;border-radius:8px;background:var(--inset-bg);border:1px solid var(--inset-edge);color:var(--t1);font:inherit;font-size:13.5px;resize:vertical}
.soc-desk-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.soc-desk-tools input[type=search]{flex:1 1 220px;min-width:0;height:34px;padding:0 10px;border-radius:8px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);color:var(--t1);font:inherit;font-size:13.5px}
.soc-desk-tools label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--t2)}
.soc-desk-tools input[type=date]{height:34px;padding:0 8px;border-radius:8px;background:var(--inset-bg);border:1px solid var(--inset-edge);color:var(--t1);font:inherit;font-size:13px}
.soc-desk-set select[data-soc-reason]{flex:0 0 260px}
@media (max-width:620px){.soc-desk-set select[data-soc-reason]{flex:1 1 100%}}
.soc-report{display:flex;flex-direction:column;gap:12px}
.soc-report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.soc-report-cell{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:10px;background:var(--inset-bg);border:1px solid var(--inset-edge)}
.soc-report-cell b{font-size:22px;color:var(--t1);font-variant-numeric:tabular-nums}
.soc-report-cell span{font-size:12.5px;color:var(--t2);line-height:1.35}

/* ---------- Possibly registered twice (js/modules/duplicates.js) ---------- */
#rgtDupWrap{margin-bottom:12px}
.dup-box{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,176,46,.45);background:rgba(255,176,46,.08)}
.dup-box .fx-led{margin-top:4px;flex:0 0 auto}
.dup-text{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13.5px;color:var(--t1)}
.dup-title{font-size:14px}
.dup-text ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.dup-text a{color:inherit;text-decoration:underline}
.dup-text .fx-panel-meta{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
.soc-desk-dup{flex:1 1 100%}
html[data-theme="pearl"] .dup-box{border-color:rgba(154,79,0,.45);background:rgba(154,79,0,.07)}

/* ---------- EN / SR switch (js/core/i18n.js) ---------- */
.fm-lang{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--inset-bg);border:1px solid var(--inset-edge);box-shadow:var(--inset-shadow);vertical-align:middle}
.fm-lang-k{border:0;background:transparent;color:var(--t2);font:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;padding:4px 10px;border-radius:999px;cursor:pointer;min-height:26px}
.fm-lang-k.is-on{background:var(--t1);color:var(--bg,#0b0b10)}
html[data-theme="pearl"] .fm-lang-k.is-on{color:#fff}
.unid-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.org-topbar{justify-content:flex-end;margin:0 0 12px}
.fm-lang-foot{display:inline-flex;margin-left:6px}
