@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root {
  --pink-1: #112844;
  --pink-2: #081427;
  --ink-0: #081427;
  --ink-1: #0e2036;
  --ink-2: #112844;
  --brown-1: #2c527a;
  --brown-2: #18324f;
  --brown-3: #081427;
  --brown-edge-light: #2c527a;
  --brown-edge-dark: #081427;
  --panel-bg: #0e2036;
  --panel-line: #2c527a;
  --text-main: #e9e1d2;
  --text-muted: #b8a88e;
  --text-active: #f6b23c;
  --alert: #d95c4a;
  --ok: #78b7ff;
  --window-shadow: 0 16px 30px rgba(0, 0, 0, 0.38);
  --focus-outline: #f6b23c;
  --highlight-ring: rgba(246, 178, 60, 0.45);
  --icon-active-shadow: rgba(246, 178, 60, 0.48);
  --interactive-fill-start: #f6b23c;
  --interactive-fill-end: #d97a1e;
  --interactive-fill-text: #081427;
  --desktop-wallpaper: url("/static/img/desktop/monkey-barrel.png?v=1");
  --menu-panel-start: #112844;
  --menu-panel-end: #081427;
  --menu-link-start: #112844;
  --menu-link-end: #0e2036;
  --menu-link-border: #2c527a;
  --status-pill-bg: #112844;
  --status-pill-text: #e9e1d2;
  --status-pill-border: #2c527a;
  --status-clock-font-family: "IBM Plex Mono", "Courier New", monospace;
  --status-clock-font-size: 0.68rem;
  --status-clock-letter-spacing: 0.07em;
  --status-clock-font-weight: 600;
  --status-pill-size: 0.68rem;
  --status-pill-letter-spacing: 0.07em;
  --window-frame-start: #112844;
  --window-frame-end: #081427;
  --window-title-start: #112844;
  --window-title-end: #081427;
  --window-title-border: #18324f;
  --window-title-text: #ffd36a;
  --window-control-bg: #081427;
  --window-control-border-light: #2c527a;
  --window-control-text: #ffd36a;
  --window-content-start: #0e2036;
  --window-content-end: #081427;
  --window-content-border: #18324f;
  --window-sidebar-start: #112844;
  --window-sidebar-end: #0e2036;
  --surface-card-border: #2c527a;
  --surface-card-bg: #0e2036;
  --surface-item-border: #2c527a;
  --surface-item-bg: #112844;
  --surface-title-text: #e9e1d2;
  --surface-muted-text: #b8a88e;
  --link-chip-border: #2c527a;
  --link-chip-bg: #112844;
  --link-chip-text: #e9e1d2;
  --button-border-main: #18324f;
  --button-border-light: #2c527a;
  --button-start: #112844;
  --button-end: #0e2036;
  --button-text: #e9e1d2;
  --form-field-border: #2c527a;
  --form-field-bg: #112844;
  --form-label: #b8a88e;
  --fieldset-border: #18324f;
  --fieldset-bg: rgba(17, 40, 68, 0.72);
  --fieldset-legend: #ffd36a;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #112844;
  --dock-end: #081427;
  --dock-border: #2c527a;
  --dock-btn-start: #18324f;
  --dock-btn-end: #112844;
  --dock-btn-border-light: #2c527a;
  --dock-btn-border-dark: #081427;
  --dock-label: #e9e1d2;
  --dock-label-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
  --dock-label-size: 0.68rem;
  --dock-label-active: #f6b23c;
  --dock-base-bg: #0e2036;
  --dock-base-text: #b8a88e;
  --dock-height: 106px;
  --base-height: 0px;
  --header-height: 42px;
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "VT323", "Courier New", monospace;
  --settings-lead-size: 0.74rem;
  --settings-label-size: 0.62rem;
  --settings-btn-size: 0.72rem;
  --settings-palette-btn-size: 0.82rem;
  --settings-tagline-size: 0.62rem;
  --settings-btn-letter-spacing: 0.03em;
  --settings-label-letter-spacing: 0.05em;
  --window-lead-size: 0.74rem;
  --window-item-title-size: 1.3rem;
  --window-item-meta-size: 0.7rem;
  --window-empty-size: 0.78rem;
  --home-summary-count-size: 2.2rem;
  --window-title-font-size: 22px;
  --window-title-font-size-mobile: 18px;
  --home-carousel-frame-aspect-ratio: 104 / 23;
  --dot-matrix-panel-step: 3px;
  --dot-matrix-control-step: 3px;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-panel-opacity: 0.62;
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --dot-matrix-control-opacity: 0.56;
  --scrollbar-size: 12px;
  --scrollbar-track: rgba(74, 88, 108, 0.45);
  --scrollbar-track-edge: rgba(213, 221, 233, 0.26);
  --scrollbar-thumb-start: rgba(232, 236, 242, 0.9);
  --scrollbar-thumb-end: rgba(188, 197, 210, 0.92);
  --scrollbar-thumb-border: rgba(43, 55, 72, 0.75);
  --scrollbar-thumb-hover-start: rgba(245, 248, 252, 0.96);
  --scrollbar-thumb-hover-end: rgba(203, 213, 226, 0.96);
  --boot-screen-bg: #081427;
  --cursor-arrow-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http://www.w3.org/2000/svg%27%20width%3D%2716%27%20height%3D%2724%27%20viewBox%3D%270%200%2016%2024%27%20shape-rendering%3D%27crispEdges%27%3E%3Cpath%20d%3D%27M1%201L1%2019L5%2015L8%2023L11%2022L8%2014H15L1%201Z%27%20fill%3D%27%23ffffff%27%20stroke%3D%27%23000000%27%20stroke-width%3D%271%27%20stroke-linejoin%3D%27miter%27/%3E%3C/svg%3E");
  --cursor-pointer-image: var(--cursor-arrow-image);
  --cursor-window-close-image: url("/static/img/icons/system/3floppy_unmount_mirror.png");
  --cursor-mic-image: url("/static/img/icons/system/cursor-mic-32-left.png");
  --cursor-s-image: url("/static/img/icons/system/middle-s-icon-cursor.png");
  --cursor-trail-image: var(--cursor-arrow-image);
  --cursor-trail-width: 16px;
  --cursor-trail-height: 24px;
  --cursor-trail-size: 16px 24px;
}

body[data-palette="midnight"] {
  --pink-1: #0f1624;
  --pink-2: #141f32;
  --ink-0: #06090f;
  --ink-1: #0a1020;
  --ink-2: #0e1830;
  --brown-1: #21354f;
  --brown-2: #152535;
  --brown-3: #0f1a28;
  --brown-edge-light: #527099;
  --brown-edge-dark: #07101d;
  --panel-bg: #0f1828;
  --panel-line: #264164;
  --text-main: #e9eef8;
  --text-muted: #9fb2cb;
  --text-active: #8dd1ff;
  --focus-outline: #8dd1ff;
  --highlight-ring: rgba(141, 209, 255, 0.45);
  --icon-active-shadow: rgba(141, 209, 255, 0.52);
  --interactive-fill-start: #26496f;
  --interactive-fill-end: #153250;
  --interactive-fill-text: #e4f2ff;
  --desktop-wallpaper: url("/static/img/desktop/middle-s-midnight-90.png?v=3");
  --menu-panel-start: #11233b;
  --menu-panel-end: #0b1626;
  --menu-link-start: #284b74;
  --menu-link-end: #17314d;
  --menu-link-border: #1b3550;
  --status-pill-bg: #0b1a2d;
  --status-pill-text: #d7ebff;
  --status-pill-border: #3e6b95;
  --window-frame-start: #1f3856;
  --window-frame-end: #13263e;
  --window-title-start: #244265;
  --window-title-end: #173150;
  --window-title-border: #0c1d31;
  --window-title-text: #dcedff;
  --window-control-bg: #0d1828;
  --window-control-border-light: #4f78a2;
  --window-control-text: #d9eeff;
  --window-content-start: #0d1a2b;
  --window-content-end: #09121e;
  --window-content-border: #16273d;
  --window-sidebar-start: #0e1a2b;
  --window-sidebar-end: #081321;
  --surface-card-border: #2a4766;
  --surface-card-bg: #0f2033;
  --surface-item-border: #2b4765;
  --surface-item-bg: #101f30;
  --surface-title-text: #eff6ff;
  --surface-muted-text: #9fb4cd;
  --link-chip-border: #385574;
  --link-chip-bg: #12263b;
  --link-chip-text: #8fd1ff;
  --button-border-main: #081321;
  --button-border-light: #5b83af;
  --button-start: #26496f;
  --button-end: #153250;
  --button-text: #e4f2ff;
  --form-field-border: #375679;
  --form-field-bg: #11253b;
  --form-label: #bcd2ea;
  --fieldset-border: #355a82;
  --fieldset-bg: rgba(11, 27, 46, 0.7);
  --fieldset-legend: #a9d6ff;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #12233a;
  --dock-end: #0d1728;
  --dock-border: #315377;
  --dock-btn-start: #224162;
  --dock-btn-end: #142d48;
  --dock-btn-border-light: #4e749d;
  --dock-btn-border-dark: #0f2339;
  --dock-label: #e9f2ff;
  --dock-label-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
  --dock-label-size: 0.68rem;
  --dock-label-active: #8dd1ff;
  --dock-base-bg: #0f1b2a;
  --dock-base-text: #95acc7;
  --window-lead-size: 0.72rem;
  --window-item-title-size: 1.08rem;
  --window-item-meta-size: 0.66rem;
  --window-empty-size: 0.74rem;
  --home-summary-count-size: 2.08rem;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --scrollbar-track: rgba(10, 17, 30, 0.88);
  --scrollbar-track-edge: rgba(87, 120, 157, 0.42);
  --scrollbar-thumb-start: #4c79a8;
  --scrollbar-thumb-end: #2e4f74;
  --scrollbar-thumb-border: rgba(194, 224, 255, 0.4);
  --scrollbar-thumb-hover-start: #5b8cc0;
  --scrollbar-thumb-hover-end: #385f8a;
}

body[data-palette="mint"] {
  --pink-1: #c9f2e1;
  --pink-2: #bde8d7;
  --ink-0: #0f1c19;
  --ink-1: #122624;
  --ink-2: #1a332f;
  --brown-1: #1f4c43;
  --brown-2: #183c35;
  --brown-3: #122e28;
  --brown-edge-light: #6ca597;
  --brown-edge-dark: #0c1f1c;
  --panel-bg: #122923;
  --panel-line: #2f6a5c;
  --text-main: #eaf8f3;
  --text-muted: #b2d8cb;
  --text-active: #8fd3bf;
  --focus-outline: #8fd3bf;
  --highlight-ring: rgba(143, 211, 191, 0.48);
  --icon-active-shadow: rgba(143, 211, 191, 0.56);
  --interactive-fill-start: #5a9383;
  --interactive-fill-end: #3e7062;
  --interactive-fill-text: #e7fff7;
  --desktop-wallpaper: url("/static/img/desktop/mint_white_pink_gradient_8k.png?v=2");
  --menu-panel-start: #2d5d52;
  --menu-panel-end: #21473f;
  --menu-link-start: #5f9585;
  --menu-link-end: #3c6d61;
  --menu-link-border: #2f5f53;
  --status-pill-bg: #2a5a4d;
  --status-pill-text: #ddf7ef;
  --status-pill-border: #7aaf9f;
  --window-frame-start: #5e9c8a;
  --window-frame-end: #3f7063;
  --window-title-start: #659f8e;
  --window-title-end: #447568;
  --window-title-border: #2f5b50;
  --window-title-text: #e7fff6;
  --window-control-bg: #315d52;
  --window-control-border-light: #9cc8bb;
  --window-control-text: #e4fff8;
  --window-content-start: #2f5a4f;
  --window-content-end: #23483f;
  --window-content-border: #315e52;
  --window-sidebar-start: #315f53;
  --window-sidebar-end: #244a40;
  --surface-card-border: #4f8878;
  --surface-card-bg: #305e52;
  --surface-item-border: #4a8172;
  --surface-item-bg: #315f54;
  --surface-title-text: #ecfff9;
  --surface-muted-text: #c3ddd4;
  --link-chip-border: #5f9988;
  --link-chip-bg: #37685c;
  --link-chip-text: #d8f5ea;
  --button-border-main: #2b564b;
  --button-border-light: #97c6b9;
  --button-start: #5a9383;
  --button-end: #3e7062;
  --button-text: #e7fff7;
  --form-field-border: #5b9384;
  --form-field-bg: #35675a;
  --form-label: #d3ece4;
  --fieldset-border: #588f80;
  --fieldset-bg: rgba(35, 84, 72, 0.72);
  --fieldset-legend: #c8e9de;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #3b6f61;
  --dock-end: #275347;
  --dock-border: #4f8a7a;
  --dock-btn-start: #5e9686;
  --dock-btn-end: #3f7062;
  --dock-btn-border-light: #9ccbbd;
  --dock-btn-border-dark: #2f5d52;
  --dock-label: #e8fff7;
  --dock-label-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
  --dock-label-size: 0.68rem;
  --dock-label-active: #8fd3bf;
  --dock-base-bg: #25493f;
  --dock-base-text: #c4e4d9;
  --status-clock-font-size: 0.685rem;
  --status-pill-size: 0.685rem;
  --window-lead-size: 0.77rem;
  --window-item-title-size: 1.34rem;
  --window-item-meta-size: 0.72rem;
  --window-empty-size: 0.8rem;
  --home-summary-count-size: 2.25rem;
  --settings-lead-size: 0.76rem;
  --settings-label-size: 0.63rem;
  --settings-btn-size: 0.73rem;
  --settings-palette-btn-size: 0.83rem;
  --settings-tagline-size: 0.63rem;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --scrollbar-track: rgba(26, 56, 49, 0.85);
  --scrollbar-track-edge: rgba(132, 182, 166, 0.46);
  --scrollbar-thumb-start: #78b9a6;
  --scrollbar-thumb-end: #4f8f7d;
  --scrollbar-thumb-border: rgba(223, 248, 239, 0.44);
  --scrollbar-thumb-hover-start: #8cd1bc;
  --scrollbar-thumb-hover-end: #5fa592;
}

body[data-palette="nes"] {
  --pink-1: #d9d8d1;
  --pink-2: #c6c4bc;
  --ink-0: #171719;
  --ink-1: #212125;
  --ink-2: #2a2a2f;
  --brown-1: #e7e6de;
  --brown-2: #d2d1c9;
  --brown-3: #bbb9b1;
  --brown-edge-light: #f6f5ee;
  --brown-edge-dark: #676660;
  --panel-bg: #dddcd4;
  --panel-line: #7f7e78;
  --text-main: #18181b;
  --text-muted: #504f49;
  --text-active: #c93b33;
  --focus-outline: #cf3f37;
  --highlight-ring: rgba(201, 59, 51, 0.42);
  --icon-active-shadow: rgba(201, 59, 51, 0.4);
  --interactive-fill-start: #f4f3ec;
  --interactive-fill-end: #cecdc5;
  --interactive-fill-text: #17171a;
  --desktop-wallpaper: url("/static/img/desktop/denver-8bit.png?v=1");
  --menu-panel-start: #ecebe3;
  --menu-panel-end: #cac9c1;
  --menu-link-start: #f7f6ef;
  --menu-link-end: #d6d5cd;
  --menu-link-border: #6d6c66;
  --status-pill-bg: #e5e4dc;
  --status-pill-text: #1b1b1f;
  --status-pill-border: #77766f;
  --window-frame-start: #e9e8e0;
  --window-frame-end: #c7c6be;
  --window-title-start: #e0ded6;
  --window-title-end: #bab8b0;
  --window-title-border: #6f6e68;
  --window-title-text: #1b1b1e;
  --window-control-bg: #e4e3db;
  --window-control-border-light: #f7f6ef;
  --window-control-text: #17171a;
  --window-content-start: #efeee7;
  --window-content-end: #d7d5cc;
  --window-content-border: #7e7d77;
  --window-sidebar-start: #e7e6de;
  --window-sidebar-end: #d1d0c8;
  --surface-card-border: #7e7d77;
  --surface-card-bg: #e9e8e0;
  --surface-item-border: #8b8a83;
  --surface-item-bg: #dfded6;
  --surface-title-text: #111114;
  --surface-muted-text: #4f4e48;
  --link-chip-border: #77766f;
  --link-chip-bg: #d6d5cd;
  --link-chip-text: #1c1c1f;
  --button-border-main: #5f5e58;
  --button-border-light: #f6f5ee;
  --button-start: #f4f3ec;
  --button-end: #cecdc5;
  --button-text: #17171a;
  --form-field-border: #75746e;
  --form-field-bg: #f4f3ec;
  --form-label: #44433e;
  --fieldset-border: #7d7c76;
  --fieldset-bg: rgba(229, 228, 219, 0.84);
  --fieldset-legend: #242428;
  --dock-shell-bg: transparent;
  --dock-shell-border: transparent;
  --dock-start: #cdcbc4;
  --dock-end: #b2b0a8;
  --dock-border: #76756e;
  --dock-btn-start: #f2f1ea;
  --dock-btn-end: #c8c7bf;
  --dock-btn-border-light: #faf9f3;
  --dock-btn-border-dark: #66645f;
  --dock-label: #18181c;
  --dock-label-shadow: none;
  --dock-label-size: 0.78rem;
  --dock-label-active: #121216;
  --dock-base-bg: #b3b2aa;
  --dock-base-text: #1e1e22;
  --status-clock-font-size: 0.67rem;
  --status-pill-size: 0.66rem;
  --window-lead-size: 0.68rem;
  --window-item-title-size: 0.8rem;
  --window-item-meta-size: 0.58rem;
  --window-empty-size: 0.7rem;
  --home-summary-count-size: 1.95rem;
  --settings-lead-size: 0.72rem;
  --settings-label-size: 0.61rem;
  --settings-btn-size: 0.71rem;
  --settings-palette-btn-size: 0.84rem;
  --settings-tagline-size: 0.61rem;
  --cursor-arrow-image: url("/static/img/icons/system/NES/cursor.png");
  --cursor-pointer-image: url("/static/img/icons/system/NES/cursor-click.png");
  --settings-btn-letter-spacing: 0.03em;
  --settings-label-letter-spacing: 0.05em;
  --nes-frame-light: #f6f6ef;
  --nes-frame-mid: #b8b7b0;
  --nes-frame-dark: #6f6e68;
  --nes-accent-red: #c93b33;
  --nes-accent-red-dark: #8f241f;
  --window-shadow: 0 0 0 2px rgba(27, 27, 30, 0.95), 10px 10px 0 rgba(0, 0, 0, 0.36);
  --dot-matrix-panel-step: 3px;
  --dot-matrix-control-step: 3px;
  --dot-matrix-panel-light: rgba(220, 226, 235, 0.26);
  --dot-matrix-panel-dark: rgba(165, 173, 184, 0.16);
  --dot-matrix-control-light: rgba(228, 233, 240, 0.34);
  --dot-matrix-control-dark: rgba(172, 180, 192, 0.2);
  --dot-matrix-panel-opacity: 0.62;
  --dot-matrix-control-opacity: 0.56;
  --scrollbar-track: rgba(190, 189, 180, 0.9);
  --scrollbar-track-edge: rgba(108, 107, 100, 0.5);
  --scrollbar-thumb-start: #f0efe7;
  --scrollbar-thumb-end: #c8c7bf;
  --scrollbar-thumb-border: rgba(108, 107, 100, 0.7);
  --scrollbar-thumb-hover-start: #f7f6ef;
  --scrollbar-thumb-hover-end: #d5d4cc;
}

/* Palette now owns typography and shell styling (replaces separate OS skin mode). */
body[data-palette="midnight"] {
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "IBM Plex Mono", "Courier New", monospace;
  --window-title-font-size: 20px;
  --window-title-font-size-mobile: 16px;
}

body[data-palette="mint"] {
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "VT323", "Courier New", monospace;
  --window-title-font-size: 23px;
  --window-title-font-size-mobile: 19px;
}

body[data-palette="nes"] {
  --font-ui: "IBM Plex Mono", "Courier New", monospace;
  --font-display: "Press Start 2P", "VT323", "Courier New", monospace;
  --window-title-font-size: 18px;
  --window-title-font-size-mobile: 15px;
  --status-clock-letter-spacing: 0.06em;
}

body[data-palette="copper"] {
  --pink-1: #b7632d;
  --pink-2: #4b250f;
  --ink-0: #2a1408;
  --ink-1: #3a1d0b;
  --ink-2: #4a2711;
  --brown-1: #bf6e2d;
  --brown-2: #8f4a1c;
  --brown-3: #4d260f;
  --brown-edge-light: #e3a55a;
  --brown-edge-dark: #4a220f;
  --panel-bg: #4a2812;
  --panel-line: #c47a34;
  --text-main: #ffe5b4;
  --text-muted: #e7c089;
  --text-active: #ffbf00;
  --alert: #e97451;
  --ok: #ffd36a;
  --focus-outline: #ffd86f;
  --highlight-ring: rgba(255, 191, 0, 0.45);
  --icon-active-shadow: rgba(255, 191, 0, 0.56);
  --interactive-fill-start: #ffbf00;
  --interactive-fill-end: #e97451;
  --interactive-fill-text: #2f1508;
  --menu-panel-start: #6a3415;
  --menu-panel-end: #3f1f0d;
  --menu-link-start: #82411c;
  --menu-link-end: #5a2b12;
  --menu-link-border: #c47a34;
  --status-pill-bg: #5a2d14;
  --status-pill-text: #ffe5b4;
  --status-pill-border: #c67a34;
  --window-frame-start: #7b3d17;
  --window-frame-end: #51260e;
  --window-title-start: #995022;
  --window-title-end: #653014;
  --window-title-border: #c47a34;
  --window-title-text: #ffe4a9;
  --window-control-bg: #4a220f;
  --window-control-border-light: #d89a4e;
  --window-control-text: #ffe4a9;
  --window-content-start: #3f210f;
  --window-content-end: #2c170a;
  --window-content-border: #8f4f23;
  --window-sidebar-start: #4e2912;
  --window-sidebar-end: #351b0c;
  --surface-card-border: #b86f2f;
  --surface-card-bg: #3f220f;
  --surface-item-border: #c67a34;
  --surface-item-bg: #4b2913;
  --surface-title-text: #fff0d2;
  --surface-muted-text: #e1bb93;
  --link-chip-border: #c67a34;
  --link-chip-bg: #5a3016;
  --link-chip-text: #ffe5bf;
  --button-border-main: #6f3515;
  --button-border-light: #e0a55a;
  --button-start: #c86b2f;
  --button-end: #a24e1f;
  --button-text: #fff1dd;
  --form-field-border: #c67a34;
  --form-field-bg: #5a3118;
  --form-label: #edc59d;
  --fieldset-border: #9c5828;
  --fieldset-bg: rgba(91, 49, 24, 0.76);
  --fieldset-legend: #ffd999;
  --dock-start: #613217;
  --dock-end: #3f1f0d;
  --dock-border: #b66f2f;
  --dock-btn-start: #8f4b23;
  --dock-btn-end: #5d2d14;
  --dock-btn-border-light: #e0a35a;
  --dock-btn-border-dark: #4a220f;
  --dock-label: #ffe8c7;
  --dock-label-active: #ffd264;
  --dock-base-bg: #3b1c0c;
  --dock-base-text: #d8aa7c;
  --scrollbar-track: rgba(35, 16, 8, 0.9);
  --scrollbar-track-edge: rgba(213, 145, 67, 0.48);
  --scrollbar-thumb-start: #c08a1f;
  --scrollbar-thumb-end: #8f6316;
  --scrollbar-thumb-border: rgba(255, 209, 127, 0.5);
  --scrollbar-thumb-hover-start: #d89d24;
  --scrollbar-thumb-hover-end: #a07118;
  background-color: #2f1609;
  background-image: url("/static/img/desktop/monkey-barrel.png?v=1");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

body[data-palette="midnight"] {
  background-color: #0c1524;
  background-image: url("/static/img/desktop/middle-s-midnight-90.png?v=3");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

body[data-palette="mint"] {
  background-color: #d8ede6;
  background-image: url("/static/img/desktop/mint_white_pink_gradient_8k.png?v=2");
  /* Anchor full gradient to the viewport bottom so pink is always present. */
  background-position: center bottom !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-attachment: fixed !important;
}

@media (max-width: 980px) {
  body[data-palette="copper"] {
    background-image: url("/static/img/desktop/monkey-barrel-mobile.png?v=1");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  body[data-palette="midnight"] {
    background-image: url("/static/img/desktop/middle-s-midnight-90-mobile.png?v=1");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }

  body[data-palette="nes"] {
    background-image: url("/static/img/desktop/denver-8bit-mobile.png?v=1");
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
  }
}

body[data-palette="midnight"] .desktop-window,
body[data-palette="mint"] .desktop-window,
body[data-palette="nes"] .desktop-window {
  border-radius: 0;
}

* {
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

*::-webkit-scrollbar {
  width: var(--scrollbar-size);
  height: var(--scrollbar-size);
}

*::-webkit-scrollbar-track {
  background: linear-gradient(180deg, var(--scrollbar-track), rgba(35, 44, 58, 0.58));
  border-left: 1px solid var(--scrollbar-track-edge);
  border-right: 1px solid rgba(11, 19, 28, 0.5);
}

*::-webkit-scrollbar-thumb {
  border: 1px solid var(--scrollbar-thumb-border);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
}

*::-webkit-scrollbar-corner {
  background: var(--scrollbar-track);
}

html,
body {
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-height: 100vh;
  background-color: var(--pink-2);
  background-image:
    var(--desktop-wallpaper),
    linear-gradient(180deg, var(--pink-1) 0%, var(--pink-2) 100%);
  background-attachment: fixed, fixed;
  color: var(--text-main);
  font-family: var(--font-ui);
  overflow-x: hidden;
  isolation: isolate;
  filter: none;
  transition: filter 120ms ease;
}

/* Home desktop boot splash */
html.desktop-boot-pending body {
  background: var(--boot-screen-bg);
}

html.desktop-boot-pending body > :not(.desktop-boot-overlay) {
  visibility: hidden;
}

.desktop-boot-overlay {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: var(--boot-screen-bg);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 520ms ease, visibility 520ms step-end;
}

html.desktop-boot-pending .desktop-boot-overlay {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.desktop-boot-overlay.is-exiting {
  opacity: 0;
  visibility: visible;
  pointer-events: none;
}

.orientation-landscape-guard {
  position: fixed;
  inset: 0;
  z-index: 7000;
  display: none;
  place-items: center;
  padding: 1rem;
  background: rgba(3, 8, 18, 0.84);
  backdrop-filter: blur(3px);
}

.orientation-landscape-guard-card {
  width: min(460px, 94vw);
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
  padding: 0.86rem;
  display: grid;
  gap: 0.6rem;
}

.orientation-landscape-guard-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.12rem, 3.6vw, 1.46rem);
  letter-spacing: 0.05em;
  color: var(--window-title-text);
}

.orientation-landscape-guard-copy {
  margin: 0;
  color: var(--surface-title-text);
  font-size: 0.76rem;
  line-height: 1.4;
}

.orientation-landscape-guard-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.4rem;
}

body.mobile-landscape-warning .orientation-landscape-guard {
  display: grid;
}

body.mobile-landscape-blocked {
  overflow: hidden;
}

body.mobile-landscape-blocked > :not(.orientation-landscape-guard) {
  pointer-events: none;
  user-select: none;
  filter: blur(1px) saturate(0.72);
}

.desktop-boot-card {
  width: min(460px, 92vw);
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
  padding: 1rem 1rem 0.9rem;
  display: grid;
  justify-items: center;
  gap: 0.64rem;
  text-align: center;
}

.desktop-boot-mark {
  position: relative;
  width: 164px;
  height: 164px;
  display: grid;
  place-items: center;
}

.desktop-boot-mark img {
  width: 164px;
  height: 164px;
  object-fit: contain;
  border-radius: 50%;
  display: block;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.4);
}

.desktop-boot-ring {
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.24);
  pointer-events: none;
}

.desktop-boot-ring::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 4px solid transparent;
  border-top-color: var(--text-active);
  border-right-color: var(--ok);
  filter: drop-shadow(0 0 10px rgba(241, 171, 197, 0.34));
  animation: desktop-boot-spin 1.15s linear infinite;
}

.desktop-boot-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.8vw, 1.9rem);
  letter-spacing: 0.05em;
  color: var(--window-title-text);
}

.desktop-boot-subtitle {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.73rem;
  letter-spacing: 0.06em;
  text-transform: none;
}

.desktop-boot-progress {
  width: min(360px, 84vw);
  height: 16px;
  padding: 2px;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
}

.desktop-boot-progress-fill {
  width: 100%;
  height: 100%;
  display: block;
  transform-origin: left center;
  transform: scaleX(0);
  background:
    repeating-linear-gradient(
      90deg,
      rgba(16, 24, 36, 0.18) 0,
      rgba(16, 24, 36, 0.18) 8px,
      rgba(16, 24, 36, 0) 8px,
      rgba(16, 24, 36, 0) 10px
    ),
    linear-gradient(90deg, var(--ok) 0%, var(--text-active) 100%);
  transition: transform 180ms linear;
}

.desktop-boot-progress-label {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
}

@keyframes desktop-boot-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .desktop-boot-overlay {
    transition: none;
  }

  .desktop-boot-ring::after {
    animation: none;
  }

  .desktop-boot-progress-fill {
    transition: none;
  }
}

body[data-display-mode="invert"] {
  /* True color inversion for the full rendered app surface. */
  filter: invert(1) hue-rotate(180deg);
}

body[data-cursor-mode="classic"],
body[data-cursor-mode="laggy"] {
  cursor: var(--cursor-arrow-image) 1 1, default;
}

body[data-cursor-mode="mic"] {
  cursor: var(--cursor-mic-image) 2 12, default;
}

body[data-cursor-mode="s"] {
  cursor: var(--cursor-s-image) 2 2, default;
  --cursor-trail-image: var(--cursor-s-image);
  --cursor-trail-width: 24px;
  --cursor-trail-height: 24px;
  --cursor-trail-size: 24px 24px;
}

body[data-cursor-mode="classic"] a,
body[data-cursor-mode="classic"] button,
body[data-cursor-mode="classic"] summary,
body[data-cursor-mode="classic"] select,
body[data-cursor-mode="laggy"] a,
body[data-cursor-mode="laggy"] button,
body[data-cursor-mode="laggy"] summary,
body[data-cursor-mode="laggy"] select,
body[data-cursor-mode="s"] a,
body[data-cursor-mode="s"] button,
body[data-cursor-mode="s"] summary,
body[data-cursor-mode="s"] select {
  cursor: var(--cursor-pointer-image) 1 1, pointer;
}

body[data-cursor-mode="mic"] a,
body[data-cursor-mode="mic"] button,
body[data-cursor-mode="mic"] summary,
body[data-cursor-mode="mic"] select {
  cursor: var(--cursor-mic-image) 2 12, pointer;
}

body[data-cursor-mode="classic"] input[type="text"],
body[data-cursor-mode="classic"] input[type="search"],
body[data-cursor-mode="classic"] input[type="email"],
body[data-cursor-mode="classic"] input[type="password"],
body[data-cursor-mode="classic"] input[type="number"],
body[data-cursor-mode="classic"] input[type="url"],
body[data-cursor-mode="classic"] textarea,
body[data-cursor-mode="laggy"] input[type="text"],
body[data-cursor-mode="laggy"] input[type="search"],
body[data-cursor-mode="laggy"] input[type="email"],
body[data-cursor-mode="laggy"] input[type="password"],
body[data-cursor-mode="laggy"] input[type="number"],
body[data-cursor-mode="laggy"] input[type="url"],
body[data-cursor-mode="laggy"] textarea,
body[data-cursor-mode="s"] input[type="text"],
body[data-cursor-mode="s"] input[type="search"],
body[data-cursor-mode="s"] input[type="email"],
body[data-cursor-mode="s"] input[type="password"],
body[data-cursor-mode="s"] input[type="number"],
body[data-cursor-mode="s"] input[type="url"],
body[data-cursor-mode="s"] textarea,
body[data-cursor-mode="mic"] input[type="text"],
body[data-cursor-mode="mic"] input[type="search"],
body[data-cursor-mode="mic"] input[type="email"],
body[data-cursor-mode="mic"] input[type="password"],
body[data-cursor-mode="mic"] input[type="number"],
body[data-cursor-mode="mic"] input[type="url"],
body[data-cursor-mode="mic"] textarea {
  cursor: text;
}

.cursor-trail-layer {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 15;
  display: none;
}

.cursor-trail-layer.is-active {
  display: block;
}

.cursor-trail-node {
  position: fixed;
  left: 0;
  top: 0;
  width: var(--cursor-trail-width);
  height: var(--cursor-trail-height);
  background-image: var(--cursor-trail-image);
  background-size: var(--cursor-trail-size);
  background-repeat: no-repeat;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  opacity: 0;
  transform: translate3d(-120px, -120px, 0);
  will-change: transform, opacity;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

.container {
  width: calc(100% - 1rem);
  max-width: none;
  margin: 0 auto;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

[hidden] {
  display: none !important;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: -9999px;
  background: var(--brown-1);
  color: #fff;
  padding: 0.45rem 0.7rem;
  border-radius: 0.2rem;
  z-index: 300;
}

.skip-link:focus {
  left: 0.8rem;
  top: 0.8rem;
}

.site-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 130;
  pointer-events: none;
}

.site-footer-inner {
  margin: 0 auto;
  width: min(1160px, calc(100vw - 1rem));
  border: 1px solid var(--surface-card-border);
  background:
    linear-gradient(180deg, rgba(8, 18, 28, 0.82), rgba(5, 11, 18, 0.9)),
    var(--surface-card-bg);
  padding: 0.24rem 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
  flex-wrap: wrap;
  pointer-events: auto;
}

.site-footer-copy {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.site-footer-nav {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.site-footer-nav a {
  color: var(--text-main);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  text-transform: uppercase;
  border-bottom: 1px solid transparent;
}

.site-footer-nav a:hover,
.site-footer-nav a:focus-visible {
  color: var(--text-active);
  border-bottom-color: currentColor;
}

body[data-active-window="home"] .site-footer--desktop {
  bottom: calc(var(--dock-height) + var(--base-height) + 4px);
}

@media (max-width: 980px) {
  .site-footer {
    bottom: calc(env(safe-area-inset-bottom));
  }

  body[data-active-window="home"] .site-footer--desktop {
    display: none;
  }

  .site-footer-inner {
    width: calc(100vw - 0.58rem);
    padding: 0.24rem 0.34rem;
    gap: 0.35rem;
  }

  .site-footer-copy {
    font-size: 0.54rem;
  }

  .site-footer-nav {
    gap: 0.34rem;
  }

  .site-footer-nav a {
    font-size: 0.58rem;
  }
}

/* Dot-matrix texture layer for retro UI depth. */
.window-titlebar {
  position: relative;
  overflow: hidden;
}

.window-titlebar::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 1px 1px, var(--dot-matrix-control-light) 0.65px, transparent 0.85px),
    radial-gradient(circle at 2px 2px, var(--dot-matrix-control-dark) 0.65px, transparent 0.85px);
  background-size:
    var(--dot-matrix-control-step) var(--dot-matrix-control-step),
    var(--dot-matrix-control-step) var(--dot-matrix-control-step);
  opacity: var(--dot-matrix-control-opacity);
  z-index: 0;
}

.window-titlebar h2,
.window-titlebar .window-controls {
  position: relative;
  z-index: 1;
}

.window-content,
.window-body {
  position: relative;
}

.window-content::before,
.window-body::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 1px 1px, var(--dot-matrix-panel-light) 0.65px, transparent 0.9px),
    radial-gradient(circle at 2px 2px, var(--dot-matrix-panel-dark) 0.65px, transparent 0.9px);
  background-size:
    var(--dot-matrix-panel-step) var(--dot-matrix-panel-step),
    var(--dot-matrix-panel-step) var(--dot-matrix-panel-step);
  opacity: var(--dot-matrix-panel-opacity);
  z-index: 0;
}

.window-content > *,
.window-body > * {
  position: relative;
  z-index: 1;
}

.window-body.game-window-body::before {
  content: none;
}

.top-strip {
  position: sticky;
  top: 0;
  z-index: 6200;
  height: var(--header-height);
  padding-top: 5px;
  background: transparent;
  border-bottom: 0;
  isolation: isolate;
}

.top-strip-inner {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.status-cluster {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: 0;
}

.status-cluster--left {
  justify-content: flex-start;
}

.status-cluster--right {
  margin-left: auto;
  justify-content: flex-end;
}

.status-auth {
  justify-content: center;
}

.status-auth-btn {
  gap: 0;
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  justify-content: center;
  align-items: center;
  padding: 0;
  line-height: 0;
  cursor: pointer;
  box-sizing: border-box;
  transition:
    filter 120ms steps(2, end),
    box-shadow 120ms steps(2, end),
    transform 120ms steps(2, end);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.status-auth-btn:hover,
.status-auth-btn:focus-visible {
  filter: brightness(1.08);
  box-shadow: inset 0 0 0 1px var(--highlight-ring), 0 0 0 1px var(--highlight-ring);
}

.status-auth-btn:active {
  filter: brightness(0.96);
  transform: translateY(1px);
}

.status-auth-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: contrast(1.08) saturate(1.04);
}

.status-auth-icon--preview {
  width: 24px;
  height: 24px;
}

.system-menu {
  position: relative;
}

.system-menu-trigger {
  list-style: none;
  cursor: pointer;
}

.system-menu-trigger::-webkit-details-marker {
  display: none;
}

.system-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 0.35rem);
  width: min(320px, 92vw);
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--menu-panel-start), var(--menu-panel-end));
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
  padding: 0.52rem;
  z-index: 230;
}

.system-menu-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.34rem;
  margin-bottom: 0.5rem;
}

.system-menu-link {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--menu-link-border);
  background: linear-gradient(180deg, var(--menu-link-start), var(--menu-link-end));
  color: var(--button-text);
  font-size: 0.66rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.system-menu-inline-form {
  margin: 0;
}

.system-menu-inline-form .system-menu-link {
  width: 100%;
  font-family: inherit;
  cursor: pointer;
}

.system-menu-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.64rem;
}

.desktop-context-menu {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 6100;
  min-width: 168px;
  display: grid;
  gap: 0.22rem;
  padding: 0.34rem;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--menu-panel-start), var(--menu-panel-end));
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.4);
}

.desktop-context-menu[hidden] {
  display: none !important;
}

.desktop-context-item {
  min-height: 30px;
  border: 1px solid var(--menu-link-border);
  background: linear-gradient(180deg, var(--menu-link-start), var(--menu-link-end));
  color: var(--button-text);
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 0.54rem;
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
}

.desktop-context-item:hover,
.desktop-context-item:focus-visible {
  filter: brightness(1.07);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.system-control {
  display: grid;
  gap: 0.38rem;
  padding: 0.42rem 0.46rem;
  border: 1px solid var(--fieldset-border);
  background: var(--fieldset-bg);
}

.system-control--wide {
  grid-column: 1 / -1;
}

.system-control span {
  display: block;
  color: var(--form-label);
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.system-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.36rem;
}

.system-choice-grid--dual {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.system-choice-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.system-choice-grid--palette {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.44rem;
}

.system-choice-grid--icons {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

[data-system-cursor-grid] {
  position: relative;
}

body[data-palette="nes"] [data-system-cursor-grid][data-nes-lock-message]::after {
  content: attr(data-nes-lock-message);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  transform: translateX(-50%);
  z-index: 5;
  padding: 0.2rem 0.36rem;
  border: 1px solid #6f6e68;
  background: linear-gradient(180deg, #313136 0%, #25252a 100%);
  color: #f6f6ef;
  font-size: 0.56rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: 0 0 0 1px #111115;
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms steps(2, end);
}

body[data-palette="nes"] [data-system-cursor-grid][data-nes-lock-message]:hover::after {
  opacity: 1;
}

[data-window="settings-window"] .system-choice-grid.system-choice-grid--icons {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.system-choice-btn {
  min-height: 34px;
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  color: var(--text-main);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
}

.system-choice-btn:disabled,
.system-choice-btn.is-disabled {
  cursor: not-allowed;
  opacity: 0.46;
  pointer-events: none;
  color: var(--surface-muted-text);
  border-color: var(--surface-item-border);
  box-shadow: none;
}

.system-choice-btn:disabled .system-choice-icon,
.system-choice-btn.is-disabled .system-choice-icon {
  filter: grayscale(1) brightness(0.72);
  opacity: 0.78;
}

.system-choice-grid--palette .system-choice-btn {
  min-height: 40px;
  padding: 0.24rem 0.4rem;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.system-choice-btn.is-active {
  border-color: var(--highlight-ring);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
  color: var(--text-active);
}

.system-choice-btn--icon {
  min-height: 42px;
  padding: 0.2rem;
}

.system-choice-icon {
  width: 22px;
  height: 22px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.system-choice-icon--palette {
  width: 16px;
  height: 16px;
  object-fit: contain;
}

.system-choice-icon--cursor {
  width: 16px;
  height: 24px;
  background-image: var(--cursor-arrow-image);
  background-size: 16px 24px;
  background-repeat: no-repeat;
  background-position: center;
  filter: none;
}

.system-choice-icon--controller {
  transform: scale(1.05);
  filter: drop-shadow(0 0 2px rgba(255, 232, 160, 0.35));
}

.system-choice-icon--mic {
  width: 24px;
  height: 24px;
  image-rendering: auto;
  filter: drop-shadow(0 0 2px rgba(255, 214, 78, 0.75));
}

.system-choice-icon--school-s {
  width: 24px;
  height: 24px;
  background-image: var(--cursor-s-image);
  background-size: 24px 24px;
  background-repeat: no-repeat;
  background-position: center;
  filter: none;
}

.system-menu-link--icon {
  gap: 0.25rem;
}

.system-menu-link-icon {
  width: 14px;
  height: 14px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.system-tagline {
  margin: 0.5rem 0 0;
  color: var(--text-active);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: none;
}

[data-window="settings-window"] .window-lead {
  font-size: var(--settings-lead-size);
}

[data-window="settings-window"] .system-control span {
  font-size: var(--settings-label-size);
  letter-spacing: var(--settings-label-letter-spacing);
}

[data-window="settings-window"] .system-choice-btn {
  font-size: var(--settings-btn-size);
  letter-spacing: var(--settings-btn-letter-spacing);
}

[data-window="settings-window"] .system-choice-grid--palette .system-choice-btn {
  font-size: var(--settings-palette-btn-size);
}

[data-window="settings-window"] .system-tagline {
  font-size: var(--settings-tagline-size);
}

[data-window="settings-window"] .settings-window-body {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

[data-window="settings-window"] .settings-window-footer {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

[data-window="settings-window"] .settings-window-footer .system-tagline {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1 1 auto;
}

[data-window="settings-window"] .settings-legal-links {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.38rem 0.56rem;
}

[data-window="settings-window"] .settings-legal-links a {
  color: var(--surface-muted-text);
  font-size: 0.56rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

[data-window="settings-window"] .settings-legal-links a:hover,
[data-window="settings-window"] .settings-legal-links a:focus-visible {
  color: var(--window-title-text);
}

[data-window="settings-window"] .settings-footer-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.3rem;
  flex-wrap: nowrap;
}

[data-window="settings-window"] .settings-window-action-btn {
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  border: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

[data-window="settings-window"] .settings-window-action-btn:active,
[data-window="settings-window"] .settings-window-action-btn.is-active {
  border: 0;
  background: transparent;
  box-shadow: none;
}

[data-window="settings-window"] .settings-window-action-icon {
  width: 34px;
  height: 34px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

[data-window="settings-window"] .settings-terminal-btn {
  width: 36px;
}

.about-window .about-window-body {
  padding: 0.5rem;
  overflow: hidden;
  display: flex;
  align-items: stretch;
}

.about-window-canvas {
  position: relative;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  padding: 0.32rem;
  border: 1px solid var(--surface-item-border);
  background: #0d1219;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.about-window-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.about-window-audio {
  display: none;
}

.about-window-copyright {
  position: absolute;
  right: 0.42rem;
  bottom: 0.38rem;
  margin: 0;
  padding: 0.12rem 0.28rem;
  border: 1px solid color-mix(in srgb, var(--surface-item-border) 75%, transparent 25%);
  background: color-mix(in srgb, #000 58%, transparent 42%);
  color: var(--surface-muted-text);
  font-size: 0.56rem;
  letter-spacing: 0.06em;
  line-height: 1;
}

.status-pill {
  margin: 0;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  line-height: 1.15;
  padding: 0 0.55rem;
  background: var(--status-pill-bg);
  color: var(--status-pill-text);
  border-top: 1px solid var(--status-pill-border);
  border-left: 1px solid var(--status-pill-border);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  text-transform: uppercase;
  font-size: var(--status-pill-size);
  letter-spacing: var(--status-pill-letter-spacing);
}

.status-time {
  margin-left: auto;
  font-family: var(--status-clock-font-family);
  font-size: var(--status-clock-font-size);
  letter-spacing: var(--status-clock-letter-spacing);
  font-weight: var(--status-clock-font-weight);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.status-cluster .status-time {
  margin-left: 0;
}

.status-time-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.status-time-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.status-time-label {
  display: inline-block;
  white-space: nowrap;
}

.desktop-main {
  min-height: calc(100vh - var(--header-height) - var(--dock-height) - var(--base-height));
  padding: 0.4rem 0 0.9rem;
}

body[data-active-window="home"] .desktop-main {
  padding-top: 0.08rem;
}

.desktop-canvas {
  position: relative;
  width: 100%;
  padding: 0 0.4rem;
  min-height: calc(100vh - var(--header-height) - var(--dock-height) - var(--base-height) - 1.3rem);
}

.home-desktop {
  min-height: calc(100vh - var(--header-height) - var(--dock-height) - var(--base-height) - 1.3rem);
  padding: 0.45rem;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}

body[data-active-window="admin"] .desktop-main {
  min-height: calc(100vh - var(--header-height) - var(--base-height));
}

body[data-active-window="admin"] .desktop-canvas {
  min-height: calc(100vh - var(--header-height) - var(--base-height) - 1.3rem);
}

body:not([data-active-window="home"]) .desktop-main {
  min-height: calc(100vh - var(--header-height) - var(--base-height));
}

body:not([data-active-window="home"]) .desktop-canvas {
  min-height: calc(100vh - var(--header-height) - var(--base-height) - 1.3rem);
}

.home-hint {
  max-width: 300px;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  padding: 0.42rem 0.5rem;
}

.home-hint-title {
  margin: 0;
  color: var(--window-title-text);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-hint-copy {
  margin: 0.2rem 0 0;
  color: var(--surface-muted-text);
  font-size: 0.7rem;
}

.home-hint-links {
  margin: 0.32rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem 0.62rem;
}

.home-hint-links a {
  color: var(--window-title-text);
  font-size: 0.66rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.home-hint-links a:hover,
.home-hint-links a:focus-visible {
  color: var(--surface-title-text);
}

.home-legal-links {
  margin: 0.35rem 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.45rem 0.65rem;
}

.home-legal-links a {
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.home-legal-links a:hover,
.home-legal-links a:focus-visible {
  color: var(--window-title-text);
}

.full-page-shell {
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 0.55rem 0.2rem 1rem;
  display: grid;
  gap: 0.75rem;
}

.page-hero {
  padding: 0.9rem;
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
}

.page-kicker {
  margin: 0;
  color: var(--form-label);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.page-title {
  margin: 0.2rem 0;
  font-family: var(--font-display);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  line-height: 0.95;
  letter-spacing: 0.05em;
  color: var(--window-title-text);
}

.page-subtitle {
  margin: 0;
  max-width: 70ch;
  color: var(--surface-muted-text);
  font-size: 0.85rem;
  line-height: 1.35;
}

.page-grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
}

.page-panel {
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: var(--window-shadow);
  padding: 0.45rem;
}

.page-panel-title {
  margin: 0;
  color: var(--window-title-text);
  font-family: var(--font-display);
  font-size: 1.65rem;
  letter-spacing: 0.04em;
}

.page-panel .window-lead {
  margin-top: 0.3rem;
}

.page-panel .window-list {
  margin-top: 0.45rem;
}

.legal-desktop-return {
  display: flex;
  justify-content: center;
}

.legal-desktop-return-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 170px;
  text-transform: uppercase;
}

.legal-desktop-return-icon {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-control-grid {
  grid-template-columns: minmax(188px, 248px) minmax(0, 1fr);
  gap: 0.72rem;
  align-items: start;
  position: relative;
}

.admin-nav-shell {
  position: sticky;
  top: 0.4rem;
  max-height: calc(100dvh - 1.1rem);
  overflow: auto;
  display: grid;
  gap: 0.6rem;
}

.admin-nav-group {
  display: grid;
  gap: 0.34rem;
}

.admin-workspace-picker {
  display: none;
  gap: 0.24rem;
  position: relative;
}

.admin-workspace-picker-label {
  margin: 0;
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--surface-muted-text);
}

.admin-workspace-select {
  width: 100%;
  min-height: 36px;
  font-size: 0.73rem;
  line-height: 1.15;
  letter-spacing: 0.015em;
  padding: 0 2.2rem 0 0.62rem;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 1rem) calc(50% - 0.02rem) / 0.34rem 0.34rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.76rem) calc(50% - 0.02rem) / 0.34rem 0.34rem no-repeat,
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.12) 100%),
    linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 0;
  box-shadow:
    inset 0 0 0 1px rgba(7, 13, 23, 0.22),
    0 1px 0 rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    filter 110ms steps(2, end);
}

.admin-workspace-select:hover {
  filter: brightness(1.05);
  border-color: var(--focus-outline);
}

.admin-workspace-select:focus-visible {
  filter: brightness(1.08);
  outline: 0;
  box-shadow:
    inset 0 0 0 1px rgba(7, 13, 23, 0.22),
    0 0 0 1px var(--focus-outline);
}

.admin-workspace-select::-ms-expand {
  display: none;
}

.admin-workspace-select option {
  color: var(--text-main);
  background: var(--form-field-bg);
}

.admin-panel-shell {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 0.56rem;
}

.admin-panel-shell-head {
  display: none;
}

.admin-panel-backdrop {
  display: none;
  border: 0;
  padding: 0;
  margin: 0;
  background: rgba(7, 11, 19, 0.58);
  backdrop-filter: blur(2px);
}

.admin-panel-wide {
  grid-column: auto;
}

.admin-panel-window {
  grid-column: auto;
  margin: 0;
  display: grid;
  align-content: start;
  gap: 0.58rem;
}

.admin-panel-window[hidden] {
  display: none !important;
}

.admin-editor-shell {
  display: grid;
  gap: 0.56rem;
  min-width: 0;
}

.admin-editor-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.34rem;
  max-width: min(360px, 100%);
}

.admin-editor-tab {
  min-height: 32px;
  border: 1px solid var(--button-border);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  font-family: inherit;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0 0.48rem;
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end),
    color 110ms steps(2, end);
}

.admin-editor-tab:hover,
.admin-editor-tab:focus-visible {
  border-color: var(--button-border-hover);
  color: var(--button-text-hover);
}

.admin-editor-tab.is-active {
  border-color: var(--highlight-ring);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
  color: var(--text-active);
}

.admin-editor-panel {
  display: grid;
  gap: 0.56rem;
  min-width: 0;
}

.admin-editor-panel[hidden] {
  display: none !important;
}

.admin-event-editor-modal {
  position: fixed;
  inset: 0;
  z-index: 1260;
  display: grid;
  place-items: center;
  padding: calc(var(--header-height) + 0.28rem) 0.62rem 0.62rem;
}

.admin-event-editor-modal[hidden] {
  display: none !important;
}

.admin-event-editor-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(6, 10, 19, 0.72);
  backdrop-filter: blur(2px);
}

.admin-event-editor-shell {
  position: relative;
  width: min(1200px, calc(100vw - 0.82rem));
  max-height: calc(100dvh - var(--header-height) - 0.28rem);
  border-top: 1px solid var(--window-title-border);
  border-left: 1px solid var(--window-title-border);
  border-right: 1px solid var(--window-content-border);
  border-bottom: 1px solid var(--window-content-border);
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  box-shadow: 0 24px 46px rgba(0, 0, 0, 0.56);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  transform: translateY(14px);
  opacity: 0;
  transition: transform 140ms ease, opacity 140ms ease;
}

.admin-event-editor-modal.is-open .admin-event-editor-shell {
  transform: translateY(0);
  opacity: 1;
}

.admin-event-editor-titlebar {
  cursor: default;
  touch-action: auto;
  padding-right: 0.48rem;
}

.admin-event-editor-titlebar h2 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-event-editor-body {
  margin: 0;
  border: 0;
  max-height: none;
  overflow: auto;
  padding: 0.4rem 0.44rem 0.5rem;
}

.admin-event-editor-shell.is-loading .admin-event-editor-body {
  opacity: 0.62;
  pointer-events: none;
}

body.has-admin-event-editor-open {
  overflow: hidden;
}

.admin-launcher-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.4rem;
}

.admin-launcher-grid--stack {
  grid-template-columns: 1fr;
}

.admin-launcher-grid--stack .window-action-btn {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  min-height: 38px;
  padding: 0.44rem 0.68rem;
  font-size: 0.73rem;
  letter-spacing: 0.04em;
  line-height: 1.16;
  transition:
    filter 110ms steps(2, end),
    transform 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-launcher-grid--stack .window-action-btn.is-active {
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.15),
    0 0 0 1px var(--focus-outline);
}

body:not([data-palette="nes"]) .admin-launcher-grid--stack .window-action-btn:hover,
body:not([data-palette="nes"]) .admin-launcher-grid--stack .window-action-btn:focus-visible {
  filter: brightness(1.06);
  transform: translateX(1px);
}

.admin-launcher-grid .window-action-btn {
  min-height: 38px;
}

.window-action-btn.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.admin-summary-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 0.45rem;
}

.admin-metric-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.5rem;
}

.admin-record-list {
  display: grid;
  gap: 0.42rem;
}

.admin-bulk-form {
  margin-bottom: 0.45rem;
}

.admin-bulk-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  padding: 0.42rem 0.48rem;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
}

.admin-bulk-toolbar-main,
.admin-bulk-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.admin-bulk-toolbar-main .window-item-meta {
  margin: 0;
}

.admin-bulk-toolbar-actions select {
  min-height: 30px;
  border: 1px solid var(--form-field-border);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.92rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.7rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
  color: var(--text-main);
  padding: 0 1.9rem 0 0.42rem;
  font-size: 0.7rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

.admin-bulk-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.68rem;
  color: var(--surface-muted-text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-bulk-checkbox input[type="checkbox"] {
  width: 15px;
  height: 15px;
}

.admin-bulk-checkbox--summary span {
  font-size: 0.62rem;
}

.admin-record {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.4rem 0.48rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-record > summary {
  cursor: pointer;
  list-style: none;
  display: grid;
  gap: 0.12rem;
}

.admin-record > summary:hover,
.admin-record > summary:focus-visible {
  outline: 0;
}

.admin-record[open] {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

body:not([data-palette="nes"]) .admin-record > summary:hover,
body:not([data-palette="nes"]) .admin-record > summary:focus-visible {
  color: var(--surface-title-text);
}

.admin-record-summary-row {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.admin-record > summary::-webkit-details-marker {
  display: none;
}

.admin-record-body {
  margin-top: 0.45rem;
  display: grid;
  gap: 0.48rem;
}

.admin-contact-list {
  max-height: clamp(320px, 62vh, 640px);
  overflow: auto;
}

.admin-message-console .admin-contact-list,
.admin-message-console .admin-community-list {
  max-height: clamp(210px, 34vh, 360px);
}

.admin-message-console-layout {
  position: relative;
  min-height: clamp(420px, 56vh, 740px);
}

.admin-message-console-feed {
  display: grid;
  gap: 0.82rem;
}

.admin-message-console-layout.is-drawer-open .admin-message-console-feed {
  padding-right: clamp(300px, 44%, 430px);
}

.admin-message-row-list {
  display: grid;
  gap: 0.26rem;
}

.admin-message-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.38rem;
  align-items: stretch;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.26rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-message-row.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-message-row-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  display: grid;
  gap: 0.12rem;
  text-align: left;
  align-content: start;
  cursor: pointer;
  padding: 0.14rem 0.18rem;
}

.admin-message-row-trigger:hover,
.admin-message-row-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.05);
}

.admin-message-row-title {
  font-family: var(--font-display);
  font-size: 0.88rem;
  color: var(--surface-title-text);
  line-height: 1.08;
}

.admin-message-row-meta {
  font-size: 0.62rem;
  color: var(--surface-muted-text);
  line-height: 1.18;
}

.admin-message-row-preview {
  font-size: 0.73rem;
  color: var(--surface-title-text);
  line-height: 1.24;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-message-row-delete {
  margin: 0;
  display: flex;
  align-items: center;
}

.admin-message-console-drawer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: clamp(300px, 44%, 430px);
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035) 0%, rgba(0, 0, 0, 0.15) 100%),
    linear-gradient(180deg, var(--window-sidebar-start), var(--window-sidebar-end));
  box-shadow:
    -14px 0 24px rgba(0, 0, 0, 0.32),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  z-index: 3;
}

.admin-message-console-drawer-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.52rem 0.58rem 0.44rem;
  border-bottom: 1px solid var(--surface-item-border);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.1) 100%);
}

.admin-message-console-drawer-head .window-lead {
  margin: 0;
}

.admin-message-console-drawer-body {
  overflow: auto;
  padding: 0.58rem;
}

.admin-message-detail-card {
  display: grid;
  gap: 0.4rem;
  align-content: start;
}

.admin-message-detail-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
}

.admin-message-detail-head .window-lead,
.admin-message-detail-head .window-item-title,
.admin-message-detail-head .window-item-meta {
  margin: 0;
}

.admin-message-detail-body {
  margin: 0;
  color: var(--surface-title-text);
  font-size: 0.75rem;
  line-height: 1.42;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-contact-item {
  align-items: flex-start;
  justify-content: flex-start;
  display: grid;
  gap: 0.28rem;
}

.admin-item-select-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-item-select-row form {
  margin: 0;
}

.admin-contact-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-contact-head .window-item-meta {
  white-space: nowrap;
}

.admin-contact-message {
  margin: 0.12rem 0 0;
  color: var(--surface-title-text);
  font-size: 0.76rem;
  line-height: 1.4;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-community-list {
  max-height: clamp(320px, 62vh, 700px);
  overflow: auto;
}

.admin-community-item {
  display: grid;
  gap: 0.3rem;
  align-items: flex-start;
}

.admin-community-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-community-details {
  margin: 0.08rem 0;
  color: var(--surface-title-text);
  font-size: 0.75rem;
  line-height: 1.42;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.admin-community-actions {
  display: grid;
  gap: 0.4rem;
}

.admin-community-status-form {
  margin-top: 0.05rem;
}

.admin-media-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
}

.admin-media-item-main {
  display: flex;
  align-items: flex-start;
  gap: 0.52rem;
  min-width: 0;
}

.admin-media-thumb-link {
  display: inline-flex;
  width: 74px;
  height: 74px;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  overflow: hidden;
  flex-shrink: 0;
}

.admin-media-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-media-item-actions {
  display: grid;
  gap: 0.32rem;
  justify-items: end;
  align-content: start;
}

.admin-media-carousel-picker {
  width: min(440px, 78vw);
}

.admin-media-edit-details,
.admin-carousel-media-edit-details {
  margin-top: 0.32rem;
}

.admin-media-label-with-icon,
.admin-media-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.admin-media-action-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-media-edit-details > summary,
.admin-carousel-media-edit-details > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
}

.admin-media-edit-details > summary::-webkit-details-marker,
.admin-carousel-media-edit-details > summary::-webkit-details-marker {
  display: none;
}

.admin-media-edit-form,
.admin-carousel-media-edit-form {
  margin-top: 0.32rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.38rem;
}

.admin-media-edit-form .desktop-form-grid,
.admin-carousel-media-edit-form .desktop-form-grid {
  gap: 0.34rem;
}

.admin-media-carousel-picker > summary {
  list-style: none;
  cursor: pointer;
}

.admin-media-carousel-picker > summary::-webkit-details-marker {
  display: none;
}

.admin-media-carousel-form {
  margin-top: 0.38rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.42rem;
}

.admin-media-carousel-form .desktop-form-grid {
  gap: 0.45rem;
}

.admin-carousel-capture-form {
  margin-bottom: 0.55rem;
}

.admin-media-upload-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: min(100%, 420px);
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.admin-media-upload-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}

.admin-media-upload-crop {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  width: min(100%, 420px);
  padding: 0.42rem 0.45rem;
  display: grid;
  gap: 0.35rem;
}

.admin-media-upload-crop > label {
  display: grid;
  gap: 0.18rem;
}

.admin-media-upload-crop > label > output {
  justify-self: end;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  letter-spacing: 0.05em;
}

.admin-media-upload-actions {
  justify-content: flex-start;
}

.admin-carousel-capture-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: min(100%, 420px);
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.admin-carousel-capture-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.admin-carousel-capture-actions {
  justify-content: flex-start;
}

.admin-carousel-manager-form {
  display: grid;
  gap: 0.55rem;
}

.admin-carousel-pagination {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
}

.admin-carousel-pagination .window-item-meta {
  margin: 0;
  text-align: center;
  line-height: 1.35;
}

.admin-carousel-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 0.45rem;
}

.admin-carousel-media-card {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.4rem;
  display: grid;
  gap: 0.36rem;
  align-content: start;
  min-width: 0;
  overflow: hidden;
  cursor: pointer;
}

.admin-carousel-media-card.is-selected {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-carousel-media-card input[type="checkbox"] {
  margin: 0;
}

.admin-carousel-media-select-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.4rem;
}

.admin-carousel-media-select-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
  margin-left: auto;
  flex-wrap: nowrap;
  justify-content: flex-end;
  max-width: 100%;
}

.admin-carousel-media-select {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.68rem;
  color: var(--surface-muted-text);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-carousel-media-select span {
  line-height: 1;
}

.admin-carousel-crop-open {
  min-height: 26px;
  min-width: 44px;
  padding: 0 0.35rem;
  font-size: 0.64rem;
}

.admin-carousel-media-delete-btn {
  min-height: 26px;
  min-width: 26px;
  width: 26px;
  padding: 0;
  font-size: 0.64rem;
  line-height: 0;
}

.admin-carousel-media-delete-btn .guestbook-delete-icon {
  width: 11px;
  height: 11px;
}

.admin-carousel-media-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: 100%;
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  min-height: 74px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  contain: paint;
  display: block;
}

.admin-carousel-media-preview img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  display: block;
  transform: translateZ(0) scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
}

.admin-carousel-media-meta {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.admin-carousel-overlay-toggle {
  margin-top: 0.14rem;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.admin-carousel-card-crop-editor {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(3, 8, 17, 0.78);
  z-index: 1400;
  padding: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.admin-carousel-card-crop-editor-shell {
  width: min(860px, 100%);
  max-height: calc(100dvh - 2rem);
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, var(--window-shell-start), var(--window-shell-end));
  box-shadow: var(--window-shadow);
  padding: 0.6rem;
  display: grid;
  gap: 0.55rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.admin-carousel-card-crop-editor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.admin-carousel-card-crop-editor-head .window-item-title {
  margin: 0;
}

.admin-carousel-card-crop-editor-workspace {
  position: relative;
  width: 100%;
  min-height: 280px;
  height: min(56vh, 460px);
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(45deg, rgba(5, 12, 24, 0.88) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(5, 12, 24, 0.88) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(5, 12, 24, 0.88) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(5, 12, 24, 0.88) 75%),
    var(--surface-card-bg);
  background-size: 18px 18px;
  background-position: 0 0, 0 9px, 9px -9px, -9px 0;
  overflow: hidden;
  touch-action: none;
  user-select: none;
  cursor: crosshair;
}

.admin-carousel-card-crop-editor-workspace img {
  position: absolute;
  max-width: none;
  max-height: none;
  pointer-events: none;
  display: block;
}

.admin-carousel-card-crop-frame {
  position: absolute;
  margin: 0;
  border: 2px solid rgba(255, 255, 255, 0.96);
  box-shadow:
    0 0 0 9999px rgba(0, 0, 0, 0.44),
    inset 0 0 0 1px rgba(7, 16, 30, 0.78);
  background: rgba(255, 255, 255, 0.03);
  padding: 0;
  touch-action: none;
  cursor: grab;
}

.admin-carousel-card-crop-frame:active {
  cursor: grabbing;
}

.admin-carousel-card-crop-frame::before,
.admin-carousel-card-crop-frame::after {
  content: "";
  position: absolute;
  width: 11px;
  height: 11px;
  border: 2px solid rgba(255, 255, 255, 0.94);
}

.admin-carousel-card-crop-frame::before {
  top: -2px;
  left: -2px;
  border-right: 0;
  border-bottom: 0;
}

.admin-carousel-card-crop-frame::after {
  right: -2px;
  bottom: -2px;
  border-left: 0;
  border-top: 0;
}

.admin-carousel-card-crop-editor-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: min(100%, 560px);
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  overflow: hidden;
}

.admin-carousel-card-crop-editor-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
}

.admin-carousel-card-crop-editor-controls {
  display: grid;
  gap: 0.45rem;
}

.admin-carousel-card-crop-editor-controls label {
  display: grid;
  gap: 0.25rem;
}

.admin-carousel-card-crop-editor-controls output {
  justify-self: end;
  color: var(--text-muted);
  font-size: 0.76rem;
}

.admin-carousel-card-crop-editor-actions {
  justify-content: flex-end;
}

.admin-carousel-crop-stack {
  margin-top: 0.75rem;
  display: grid;
  gap: 0.45rem;
}

.admin-carousel-queue {
  margin-top: 0.56rem;
}

.admin-carousel-queue-list {
  max-height: clamp(260px, 46vh, 520px);
  overflow: auto;
}

.admin-carousel-queue-item {
  align-items: flex-start;
}

.admin-carousel-queue-main {
  min-width: 0;
  flex: 1 1 auto;
  display: grid;
  gap: 0.12rem;
}

.admin-carousel-crop-form {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.5rem;
  display: grid;
  gap: 0.48rem;
}

.admin-carousel-crop-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.6rem;
  justify-content: space-between;
}

.admin-carousel-crop-grid {
  display: grid;
  grid-template-columns: minmax(300px, 420px) 1fr;
  gap: 0.55rem;
  align-items: start;
}

.admin-carousel-crop-preview {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-card-bg);
  width: 100%;
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  overflow: hidden;
}

.admin-carousel-crop-preview img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
}

.admin-carousel-crop-controls {
  display: grid;
  gap: 0.42rem;
}

.admin-carousel-crop-controls label {
  display: grid;
  gap: 0.25rem;
}

.admin-carousel-crop-controls output {
  justify-self: end;
  color: var(--text-muted);
  font-size: 0.76rem;
}

.admin-user-list {
  gap: 0.34rem;
  max-height: clamp(340px, 64vh, 860px);
  overflow: auto;
}

.admin-users-pagination {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0.4rem;
}

.admin-users-pagination .window-item-meta {
  margin: 0;
  text-align: center;
  line-height: 1.35;
}

.admin-user-item {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  justify-content: flex-start;
  align-items: center;
  gap: 0.62rem;
}

.admin-user-icon {
  width: 48px;
  height: 48px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-user-main {
  min-width: 0;
  width: 100%;
  display: grid;
  gap: 0.14rem;
  justify-items: start;
  text-align: left;
}

.admin-user-main .window-item-title,
.admin-user-main .window-item-meta {
  margin: 0;
  width: 100%;
}

.admin-user-main .window-item-title {
  line-height: 1.14;
}

@media (max-width: 860px) {
  .admin-carousel-pagination {
    grid-template-columns: 1fr;
  }

  .admin-carousel-pagination .window-item-meta {
    text-align: left;
  }

  .admin-carousel-crop-grid {
    grid-template-columns: 1fr;
  }

  .admin-carousel-card-crop-editor {
    align-items: flex-start;
    place-items: start center;
    padding:
      max(0.45rem, env(safe-area-inset-top))
      0.5rem
      calc(0.7rem + env(safe-area-inset-bottom));
  }

  .admin-carousel-card-crop-editor-shell {
    width: 100%;
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 0.2rem);
    padding: 0.45rem;
    gap: 0.42rem;
  }

  .admin-carousel-card-crop-editor-workspace {
    min-height: 180px;
    height: clamp(180px, 30dvh, 260px);
  }

  .admin-carousel-card-crop-editor-preview {
    width: 100%;
    max-height: min(20dvh, 180px);
  }

  .admin-carousel-card-crop-editor-actions {
    position: sticky;
    bottom: -0.45rem;
    z-index: 2;
    margin: 0 -0.45rem -0.45rem;
    padding:
      0.36rem
      calc(0.45rem + env(safe-area-inset-right))
      calc(0.42rem + env(safe-area-inset-bottom))
      calc(0.45rem + env(safe-area-inset-left));
    border-top: 1px solid var(--surface-item-border);
    background: linear-gradient(180deg, var(--window-shell-start), var(--window-shell-end));
  }

  .admin-user-item {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 0.55rem;
  }

  .admin-user-icon {
    width: 40px;
    height: 40px;
  }

  .admin-users-pagination {
    grid-template-columns: 1fr;
  }

  .admin-users-pagination .window-item-meta {
    text-align: left;
  }

  .admin-bulk-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-bulk-toolbar-main,
  .admin-bulk-toolbar-actions {
    justify-content: flex-start;
  }
}

.admin-users-console {
  position: relative;
  min-height: clamp(360px, 56vh, 720px);
}

.admin-user-grid {
  grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  gap: 0.42rem;
  max-height: clamp(320px, 62vh, 700px);
  overflow: auto;
}

.admin-users-console.is-drawer-open .admin-user-grid {
  padding-right: clamp(300px, 42%, 420px);
}

.admin-user-card {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.28rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-user-card.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-user-card-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  display: grid;
  gap: 0.34rem;
  justify-items: center;
  align-content: start;
  text-align: center;
  padding: 0.12rem;
  min-height: 108px;
}

.admin-user-card-trigger:hover,
.admin-user-card-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.05);
}

.admin-user-card-icon {
  width: 56px;
  height: 56px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-user-card-name {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 0.78rem;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.admin-user-console-drawer {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: clamp(300px, 42%, 420px);
  border: 1px solid var(--surface-item-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035) 0%, rgba(0, 0, 0, 0.15) 100%),
    linear-gradient(180deg, var(--window-sidebar-start), var(--window-sidebar-end));
  box-shadow:
    -14px 0 24px rgba(0, 0, 0, 0.32),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  z-index: 3;
}

.admin-user-console-drawer-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.52rem 0.58rem 0.44rem;
  border-bottom: 1px solid var(--surface-item-border);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.1) 100%);
}

.admin-user-console-drawer-head .window-lead {
  margin: 0;
}

.admin-user-console-drawer-body {
  overflow: auto;
  padding: 0.58rem;
}

.admin-user-detail-card {
  display: grid;
  gap: 0.5rem;
}

.admin-user-detail-head {
  display: flex;
  align-items: center;
  gap: 0.56rem;
}

.admin-user-detail-icon {
  width: 64px;
  height: 64px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.admin-user-detail-head-copy {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.admin-user-detail-head-copy .window-item-title,
.admin-user-detail-head-copy .window-item-meta {
  margin: 0;
}

.admin-user-detail-grid {
  display: grid;
  gap: 0.22rem;
}

.admin-user-detail-grid .window-item-meta {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.3;
}

.admin-venue-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.55rem;
}

.admin-venue-header > .window-lead {
  margin: 0;
}

.admin-venue-search {
  display: grid;
  gap: 0.18rem;
  min-width: min(320px, 100%);
}

.admin-venue-search > span {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-venue-search > input {
  min-height: 32px;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0 0.48rem;
  font-size: 0.76rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-venue-workspace {
  display: grid;
  gap: 0.52rem;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  align-items: start;
}

.admin-venue-workspace--dropdown {
  grid-template-columns: 1fr;
  gap: 0.56rem;
}

.admin-venue-picker {
  display: grid;
  gap: 0.18rem;
  max-width: 460px;
}

.admin-venue-picker > span {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-venue-picker > select {
  min-height: 34px;
  border: 1px solid var(--form-field-border);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
  color: var(--text-main);
  padding: 0 2rem 0 0.48rem;
  font-size: 0.78rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-venue-list-shell {
  display: grid;
  gap: 0.36rem;
}

.admin-venue-list {
  max-height: clamp(300px, 58vh, 700px);
  overflow: auto;
}

.admin-venue-list-item {
  text-decoration: none;
  color: inherit;
}

.admin-venue-list-item .window-item-meta:last-child {
  margin-top: 0;
  align-self: center;
}

.admin-venue-list-item.is-selected {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.admin-venue-editor {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
  align-content: start;
}

.admin-venue-editor-stack {
  gap: 0.56rem;
}

.admin-venue-detail {
  display: grid;
  gap: 0.5rem;
}

.admin-venue-selected-meta {
  align-items: flex-start;
}

.admin-venue-info-card {
  display: grid;
  gap: 0.5rem;
}

.admin-venue-info-card-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 280px);
  gap: 0.62rem;
  align-items: start;
}

.admin-venue-info-card-primary {
  display: grid;
  gap: 0.36rem;
}

.admin-venue-info-card-head {
  display: grid;
  gap: 0.14rem;
}

.admin-venue-info-card-head .window-item-title,
.admin-venue-info-card-head .window-item-meta {
  margin: 0;
}

.admin-venue-info-card-grid {
  display: grid;
  gap: 0.24rem;
}

.admin-venue-info-card-value {
  margin: 0;
  color: var(--surface-title-text);
  font-size: 0.72rem;
  line-height: 1.34;
  min-width: 0;
  overflow-wrap: anywhere;
}

.admin-venue-info-card-value a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.admin-venue-info-card-media {
  display: grid;
  gap: 0.34rem;
}

.admin-venue-info-card-image {
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  object-fit: cover;
  object-position: center;
}

.admin-venue-info-card-image--empty {
  display: grid;
  place-items: center;
  color: var(--surface-muted-text);
  font-size: 0.64rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-venue-photo-form {
  display: grid;
  gap: 0.3rem;
}

.admin-venue-photo-input {
  position: relative;
  display: block;
}

.admin-venue-photo-input .window-action-btn {
  width: 100%;
}

.admin-venue-photo-input > input[type="file"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.admin-venue-photo-form > .window-action-btn {
  width: 100%;
}

.admin-venue-delete-form {
  margin-top: -0.1rem;
}

.admin-theme-item .desktop-form-actions {
  justify-content: flex-start;
}

.admin-theme-picker {
  display: grid;
  gap: 0.18rem;
  margin-top: 0.45rem;
  margin-bottom: 0.2rem;
  max-width: 280px;
}

.admin-theme-picker > label {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.admin-theme-picker > select {
  min-height: 34px;
  border: 1px solid var(--form-field-border);
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
  color: var(--text-main);
  padding: 0 2rem 0 0.48rem;
  font-size: 0.78rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.admin-carousel-options {
  margin: 0.5rem 0 0;
}

.event-browser-window {
  display: grid;
  gap: 0.65rem;
}

.event-browser-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem;
}

.event-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: end;
}

.event-filter-control {
  display: grid;
  gap: 0.18rem;
  flex: 1 1 180px;
}

.event-kind-quick-filters {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem;
  flex: 0 1 auto;
}

.event-kind-quick-filter {
  cursor: pointer;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--surface-muted-text);
  min-height: 32px;
  padding: 0 0.62rem;
  font: inherit;
  font-size: 0.64rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.event-kind-quick-filter.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.event-kind-quick-filter:focus-visible {
  outline: 1px solid var(--highlight-ring);
  outline-offset: 1px;
}

.event-kind-quick-filter:disabled {
  opacity: 0.55;
  cursor: default;
}

.event-filter-control > span {
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-filter-control > input,
.event-filter-control > select {
  min-height: 32px;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0 0.48rem;
  font-size: 0.76rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.event-filter-control > select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 2rem;
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.3rem 0.3rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.3rem 0.3rem no-repeat,
    var(--form-field-bg);
}

.event-filter-control--days {
  flex: 2 1 320px;
}

.weekday-filter-group {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.26rem;
}

.weekday-filter-option {
  position: relative;
  display: inline-flex;
}

.weekday-filter-option input {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.weekday-filter-option span {
  min-width: 34px;
  height: 28px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--surface-muted-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  user-select: none;
}

.weekday-filter-option input:checked + span {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.weekday-filter-option input:focus-visible + span {
  outline: 1px solid var(--highlight-ring);
  outline-offset: 1px;
}

.event-filter-reset {
  margin: 0;
  flex: 0 0 auto;
}

.event-seo-day-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.event-seo-day-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-main);
  text-decoration: none;
  font-size: 0.7rem;
  letter-spacing: 0.03em;
  padding: 0 0.46rem;
}

.event-seo-day-links a.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.event-seo-link-list {
  display: grid;
  gap: 0.5rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.55rem;
}

.event-seo-link-list .page-panel-title {
  margin: 0;
}

.event-seo-links {
  display: grid;
  gap: 0.35rem;
  max-height: 220px;
  overflow: auto;
  padding-right: 0.25rem;
}

.event-seo-links a {
  color: var(--link-text);
  text-decoration: underline;
  text-underline-offset: 0.08em;
  font-size: 0.72rem;
}

.home-seo-links {
  display: grid;
  gap: 0.4rem;
}

.event-list-month-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.45rem;
}

.event-list-month-nav .event-filter-control--month {
  flex: 0 1 230px;
}

.event-list-month-nav .calendar-nav-btn {
  min-width: 82px;
}

.event-view-toggle {
  display: inline-flex;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.event-view-btn {
  min-height: 34px;
  min-width: 86px;
  border: 0;
  border-right: 1px solid var(--surface-card-border);
  background: transparent;
  color: var(--surface-muted-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.72rem;
  cursor: pointer;
  transition:
    filter 110ms steps(2, end),
    background 110ms steps(2, end),
    color 110ms steps(2, end);
}

.event-view-btn:first-child {
  border-top-left-radius: 0.36rem;
}

.event-view-btn:last-child {
  border-right: 0;
  border-top-right-radius: 0.36rem;
}

.event-view-btn.is-active {
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

body:not([data-palette="nes"]) .event-view-btn:not(.is-active):hover,
body:not([data-palette="nes"]) .event-view-btn:not(.is-active):focus-visible {
  background: rgba(255, 255, 255, 0.06);
  color: var(--surface-title-text);
}

.event-browser-panel {
  display: none;
}

.event-browser-panel.is-active {
  display: block;
}

.event-day-group {
  display: grid;
  gap: 0.36rem;
}

.event-day-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
}

.event-day-header--actions-only {
  justify-content: flex-end;
}

.event-day-heading {
  margin: 0;
  color: var(--surface-muted-text);
}

.event-day-heading-action {
  flex-shrink: 0;
}

.event-day-items {
  gap: 0.4rem;
}

.event-future-group {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
}

.event-future-group[hidden] {
  display: none;
}

.event-future-summary {
  margin: 0;
  list-style: none;
  cursor: pointer;
  color: var(--surface-title-text);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.42rem 0.5rem;
}

.event-future-summary::-webkit-details-marker {
  display: none;
}

.event-future-summary::after {
  content: "+";
  float: right;
  color: var(--surface-muted-text);
}

.event-future-group[open] .event-future-summary::after {
  content: "-";
}

.event-future-list {
  padding: 0 0.5rem 0.5rem;
  gap: 0.4rem;
}

.event-row-btn {
  width: 100%;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  color: inherit;
  padding: 0.45rem 0.5rem;
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: flex-start;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.event-row-btn .window-item-title,
.event-row-btn .window-item-meta {
  display: block;
}

.event-listing-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 0.58rem;
  padding: 0.56rem 0.62rem;
}

.event-listing-card--with-media {
  grid-template-columns: minmax(0, 104px) minmax(0, 1fr);
}

.event-listing-card-media {
  display: block;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  min-height: 78px;
}

.event-listing-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event-listing-card-main {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
  width: 100%;
}

.event-listing-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.52rem;
}

.event-listing-card-head .window-item-title {
  margin: 0;
  line-height: 1.15;
}

.event-listing-card-chip {
  border: 1px solid var(--surface-item-border);
  background: rgba(255, 255, 255, 0.04);
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 0.16rem 0.34rem;
  line-height: 1.2;
  white-space: nowrap;
  flex-shrink: 0;
}

.event-listing-card-grid {
  display: grid;
  gap: 0.2rem;
}

.event-listing-card-row {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(68px, auto) minmax(0, 1fr);
  gap: 0.46rem;
  align-items: start;
}

.event-listing-card-label {
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.25;
}

.event-listing-card-value {
  color: var(--surface-title-text);
  font-size: 0.72rem;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
}

.event-listing-card--admin {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  gap: 0.62rem;
  --admin-event-card-action-min-width: 78px;
}

.window-item.event-listing-card--admin[data-event-detail] {
  align-items: flex-start;
}

.event-listing-card-action {
  grid-column: 2;
  grid-row: 1;
  flex-shrink: 0;
  align-self: flex-start;
}

.event-listing-card--admin .event-listing-card-chip,
.event-listing-card--admin .event-listing-card-action {
  min-width: var(--admin-event-card-action-min-width);
  text-align: center;
  justify-content: center;
  box-sizing: border-box;
}

.event-listing-card--admin .event-listing-card-chip {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  padding: 0 0.52rem;
  font-size: 0.65rem;
  font-weight: 600;
  border: 1px solid var(--link-chip-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.12) 100%),
    var(--link-chip-bg);
  color: var(--link-chip-text);
}

.event-row-admin {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  color: inherit;
  padding: 0.45rem 0.5rem;
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: flex-start;
  cursor: pointer;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.event-row-btn:hover,
.event-row-btn:focus-visible,
.event-row-admin:hover,
.event-row-admin:focus-within {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.event-row-admin .window-item-title,
.event-row-admin .window-item-meta {
  display: block;
}

.event-row-admin-main {
  display: flex;
  align-items: flex-start;
  gap: 0.52rem;
  flex: 1;
  min-width: 0;
}

.event-row-admin-main > div:last-child {
  min-width: 0;
}

.event-row-admin-identity {
  width: 58px;
  min-width: 58px;
  height: 58px;
  border: 1px solid var(--surface-item-border);
  background: var(--window-content-start);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.event-row-admin-identity img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.event-row-admin-identity-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  font-size: 0.52rem;
  line-height: 1.25;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  padding: 0.2rem;
}

.event-row-admin-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.event-row-admin-actions .row-actions {
  gap: 0.35rem;
  align-items: stretch;
  flex-wrap: nowrap;
}

.event-row-admin-actions .row-actions form {
  margin: 0;
  display: flex;
}

.event-row-admin-actions .row-link,
.event-row-admin-actions .row-link-danger {
  min-height: 30px;
  min-width: 82px;
  padding: 0 0.62rem;
  font-size: 0.66rem;
  line-height: 1;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  text-decoration: none;
}

.event-row-admin-actions .row-link:hover,
.event-row-admin-actions .row-link:focus-visible,
.event-row-admin-actions .row-link-danger:hover,
.event-row-admin-actions .row-link-danger:focus-visible {
  filter: brightness(1.05);
}

.schedule-item {
  align-items: center;
}

.schedule-month-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.45rem;
  margin-bottom: 0.45rem;
}

.schedule-month-nav-title {
  margin: 0;
  text-align: center;
  color: var(--surface-title-text);
  flex: 1;
}

.schedule-month-nav .window-action-btn {
  min-width: 92px;
}

.analytics-week-nav {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.5rem;
}

.analytics-week-nav .schedule-month-nav-title {
  text-align: center;
  white-space: nowrap;
}

.analytics-week-nav .window-action-btn {
  width: auto;
  min-width: 92px;
}

.analytics-history-toggle {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin-bottom: 0.52rem;
}

.schedule-month-nav--bottom {
  margin-top: 0.62rem;
  margin-bottom: 0;
}

.schedule-filter-row {
  margin-bottom: 0.45rem;
}

.schedule-filter-row .event-filter-control--days {
  flex: 1 1 auto;
}

.schedule-row-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.schedule-row-actions form {
  margin: 0;
}

.event-calendar-shell {
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  padding: 0.58rem;
  display: grid;
  gap: 0.5rem;
}

.event-calendar-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.event-calendar-day-nav {
  display: none;
  align-items: center;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.34rem;
}

.event-calendar-day-label {
  margin: 0;
  text-align: center;
  color: var(--surface-title-text);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.calendar-nav-btn {
  min-height: 30px;
  min-width: 68px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--button-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.7rem;
  cursor: pointer;
}

.calendar-nav-btn:disabled {
  opacity: 0.45;
  cursor: default;
}

.event-calendar-month {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 1.45rem;
  letter-spacing: 0.05em;
}

.event-calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.32rem;
}

.event-calendar-weekdays span {
  text-align: center;
  color: var(--surface-muted-text);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.32rem;
}

.event-calendar-day {
  min-height: 120px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.32rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.32rem;
  align-content: start;
}

.event-calendar-day.is-selected {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.event-calendar-day.is-empty {
  background: var(--window-content-start);
  border-color: var(--window-content-border);
}

.event-calendar-day-number {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: 1.1rem;
}

.event-calendar-empty {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-calendar-day-events {
  display: grid;
  gap: 0.28rem;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 0.14rem;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

.event-calendar-day-events::-webkit-scrollbar {
  width: var(--scrollbar-size);
}

.event-calendar-day-events::-webkit-scrollbar-track {
  background: linear-gradient(180deg, var(--scrollbar-track), rgba(35, 44, 58, 0.58));
}

.event-calendar-day-events::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  border-radius: 999px;
  border: 1px solid var(--scrollbar-thumb-border);
}

.event-calendar-day-events::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
}

.calendar-event-chip {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-main);
  padding: 0.24rem 0.28rem;
  text-align: left;
  cursor: pointer;
  display: grid;
  gap: 0.14rem;
}

.calendar-event-chip span {
  font-size: 0.66rem;
  line-height: 1.15;
}

.calendar-event-chip small {
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  line-height: 1.15;
}

.event-calendar-more {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-calendar-filter-empty {
  margin: 0;
  grid-column: 1 / -1;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.55rem;
  color: var(--surface-muted-text);
  font-size: 0.74rem;
}

.event-calendar-mobile-day {
  display: none;
}

.event-calendar-mobile-agenda {
  display: grid;
  gap: 0.34rem;
}

.calendar-event-chip--mobile {
  padding: 0.42rem 0.44rem;
}

.calendar-event-chip--mobile span {
  font-size: 0.78rem;
}

.calendar-event-chip--mobile small {
  font-size: 0.64rem;
}

[data-window="calendar-window"] .event-browser-window {
  min-height: 100%;
  grid-template-rows: auto auto minmax(0, 1fr);
}

[data-window="calendar-window"] .event-browser-panel[data-view-panel="calendar"] {
  min-height: 0;
  display: block !important;
}

[data-window="calendar-window"] .event-calendar-shell {
  height: 100%;
  min-height: 0;
  grid-template-rows: auto auto minmax(0, 1fr);
}

[data-window="calendar-window"] .event-calendar-grid {
  grid-auto-rows: minmax(132px, 1fr);
}

[data-window="calendar-window"] .event-calendar-day {
  min-height: 132px;
  overflow: hidden;
}

[data-window="calendar-window"] .event-browser-panel--data-only,
[data-window="calendar-window"] .event-browser-panel--data-only.is-active {
  display: none !important;
}

.event-drawer-backdrop {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 20% 15%, rgba(60, 105, 180, 0.18) 0%, rgba(4, 8, 14, 0) 56%),
    rgba(3, 7, 13, 0.68);
  backdrop-filter: blur(2px);
  z-index: 300;
  opacity: 0;
  transition: opacity 130ms ease;
}

.event-drawer-backdrop.is-open {
  opacity: 1;
}

.event-drawer {
  position: fixed;
  right: 0;
  top: 0;
  width: min(472px, 92vw);
  height: 100vh;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.14) 100%),
    linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  border-left: 1px solid var(--brown-edge-light);
  box-shadow:
    -18px 0 34px rgba(0, 0, 0, 0.42),
    inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  z-index: 320;
  display: grid;
  grid-template-rows: auto 1fr;
  transform: translateX(100%);
  transition: transform 150ms ease;
}

.event-drawer.is-open {
  transform: translateX(0);
}

.event-drawer-header {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 0.66rem 0.66rem 0.56rem;
  border-bottom: 1px solid var(--window-title-border);
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.55rem;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.08) 100%);
}

.event-drawer-header [data-drawer-close] {
  order: -1;
  flex: 0 0 auto;
  margin-top: 0.04rem;
}

.event-drawer-header > div {
  min-width: 0;
}

.event-drawer-header h2 {
  margin: 0;
  color: var(--window-title-text);
  font-family: var(--font-display);
  font-size: 1.9rem;
  line-height: 0.95;
}

.event-drawer-body {
  padding: 0.68rem;
  overflow: auto;
  display: grid;
  gap: 0.64rem;
  align-content: start;
}

.event-drawer-meta-grid {
  display: grid;
  gap: 0.35rem;
}

.event-drawer-meta-grid p {
  margin: 0;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.46rem 0.5rem;
  display: grid;
  gap: 0.22rem;
}

.event-drawer-meta-grid span {
  color: var(--surface-muted-text);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.event-drawer-meta-grid strong {
  color: var(--surface-title-text);
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.24;
}

body.has-event-drawer-open {
  overflow: hidden;
}

.desktop-window {
  position: absolute;
  left: var(--window-x, 4%);
  top: var(--window-y, 12%);
  width: min(var(--window-w, 440px), 100%);
  max-width: 100%;
  min-height: var(--window-h, 260px);
  display: none;
  background: linear-gradient(180deg, var(--window-frame-start), var(--window-frame-end));
  border-top: 1px solid var(--brown-edge-light);
  border-left: 1px solid var(--brown-edge-light);
  border-right: 1px solid var(--brown-edge-dark);
  border-bottom: 1px solid var(--brown-edge-dark);
  border-radius: 5px;
  box-shadow: var(--window-shadow);
  overflow: hidden;
}

.desktop-window.is-open {
  display: block;
}

.desktop-window.is-focused {
  box-shadow: 0 0 0 1px var(--highlight-ring), 0 18px 34px rgba(0, 0, 0, 0.44);
}

.desktop-window--main {
  width: min(var(--window-w, 1100px), 94vw);
}

.window-titlebar {
  min-height: 28px;
  padding: 0.2rem 0.35rem;
  background: linear-gradient(180deg, var(--window-title-start), var(--window-title-end));
  border-bottom: 1px solid var(--window-title-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: grab;
  user-select: none;
}

.window-titlebar:active {
  cursor: grabbing;
}

.window-titlebar h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--window-title-font-size);
  letter-spacing: 0.06em;
  color: var(--window-title-text);
  line-height: 1;
}

.window-title-with-icon {
  display: inline-flex;
  align-items: center;
  gap: 0.34rem;
}

.window-title-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.window-title-icon--home-nes {
  display: none;
}

.window-title-icon--mario {
  width: 18px;
  height: 18px;
}

.window-controls {
  display: inline-flex;
  align-items: center;
  gap: 0.22rem;
}

.window-control {
  width: 22px;
  height: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--window-control-border-light);
  border-left-color: var(--window-control-border-light);
  color: var(--window-control-text);
  background: var(--window-control-bg);
  font-size: 0.8rem;
  line-height: 1;
  text-align: center;
  cursor: pointer;
  touch-action: manipulation;
}

body:not([data-palette="nes"]) .window-control[data-window-close]:hover,
body:not([data-palette="nes"]) .window-control[data-window-close]:focus-visible,
body:not([data-palette="nes"]) .window-control[data-drawer-close]:hover,
body:not([data-palette="nes"]) .window-control[data-drawer-close]:focus-visible {
  cursor: var(--cursor-window-close-image) 1 20, pointer;
}

.window-control::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.window-control-icon {
  width: 14px;
  height: 14px;
  display: block;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  pointer-events: none;
}

.window-control-mute {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.window-control-mute.is-muted {
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: var(--button-end);
}

.window-control-expand {
  font-size: 0.72rem;
}

.window-control-maximize {
  position: relative;
  font-size: 0;
  line-height: 0;
  letter-spacing: 0;
  color: transparent;
  text-indent: -9999px;
  overflow: hidden;
  background-image: url("/static/img/icons/system/emblem-photos.png");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px 16px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body:not([data-palette="nes"]) .window-control-maximize {
  background-size: 20px 20px;
}

body:not([data-palette="nes"]) .window-control-maximize.is-maximized,
body:not([data-palette="nes"]) .window-control-maximize[aria-pressed="true"] {
  transform: rotate(180deg);
}

.window-control-maximize::before,
.window-control-maximize::after {
  content: none;
}

.window-control-static {
  pointer-events: none;
  cursor: default;
}

.window-content {
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
  border: 1px solid var(--window-content-border);
  margin: 0.35rem;
  min-height: calc(var(--window-h, 260px) - 44px);
  max-height: calc(var(--window-h, 260px) - 44px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 0;
  overflow: hidden;
}

.desktop-window.is-sidebar-open .window-content {
  grid-template-columns: minmax(0, 1fr) minmax(190px, var(--sidebar-w, 230px));
}

.hub-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0 0 0.65rem;
}

.hub-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 0.56rem 0.56rem 0.18rem 0.18rem;
  border: 1px solid var(--menu-link-border);
  background: linear-gradient(180deg, var(--menu-link-start), var(--menu-link-end));
  color: var(--button-text);
  padding: 0 0.72rem;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.hub-tab.is-active {
  border-color: var(--highlight-ring);
  color: var(--text-active);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.hub-panel {
  display: none;
}

.hub-panel.is-active {
  display: block;
}

.hub-stats-row {
  margin-bottom: 0.55rem;
}

.home-hub-body {
  display: grid;
  gap: 0.52rem;
  align-content: start;
}

.home-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.62rem;
  align-content: start;
  align-items: start;
}

.home-summary-card {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.62rem;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 0;
  gap: 0.42rem;
}

.home-summary-head {
  display: grid;
  gap: 0.1rem;
  align-content: start;
}

.home-summary-title {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: clamp(0.9rem, 1.16vw, 1.14rem);
  line-height: 1.02;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.home-summary-sublead {
  margin: 0;
  letter-spacing: 0.055em;
}

.home-summary-card .window-lead {
  margin: 0;
}

.home-summary-sentence {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.25;
  color: var(--surface-title-text);
}

.home-summary-card .window-list {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 0.14rem;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

.home-summary-list--mobile-cap .window-item:nth-of-type(n + 4) {
  display: none;
}

.home-summary-more {
  display: block;
}

.home-summary-more-btn {
  width: 100%;
  min-height: 32px;
  padding: 0 0.6rem;
  font-size: 0.68rem;
}

.home-section-divider {
  height: 3px;
  border-top: 1px solid var(--surface-item-border);
  border-bottom: 1px solid rgba(4, 6, 10, 0.44);
  background: linear-gradient(90deg, transparent 0%, var(--surface-item-border) 50%, transparent 100%);
  opacity: 0.72;
}

.home-newsletter {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.62rem;
  display: grid;
  gap: 0.5rem;
}

.home-news-carousel {
  align-content: start;
}

.home-carousel {
  display: grid;
  gap: 0.44rem;
}

.home-carousel-viewport {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--surface-item-border);
  background: var(--window-content-start);
  width: 100%;
  aspect-ratio: var(--home-carousel-frame-aspect-ratio);
  min-height: 152px;
}

.home-carousel-track {
  display: flex;
  width: 100%;
  height: 100%;
  transform: translateX(0);
  transition: transform 260ms ease;
  will-change: transform;
}

.home-carousel-slide {
  position: relative;
  flex: 0 0 100%;
  height: 100%;
  overflow: hidden;
}

.home-carousel-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: scale(calc(var(--carousel-zoom-percent, 104) / 100));
  transform-origin: var(--carousel-crop-x, 50%) var(--carousel-crop-y, 50%);
  filter: saturate(1.08) contrast(1.04);
}

.home-carousel-slide.is-tone-indigo .home-carousel-image {
  filter: hue-rotate(155deg) saturate(1.08) contrast(1.02);
}

.home-carousel-slide.is-tone-mint .home-carousel-image {
  filter: hue-rotate(62deg) saturate(1.08) contrast(1.02);
}

.home-carousel-overlay {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: end;
  gap: 0.2rem;
  padding: 0.62rem 0.72rem;
  background:
    linear-gradient(180deg, rgba(6, 10, 16, 0.12) 0%, rgba(6, 10, 16, 0.56) 55%, rgba(6, 10, 16, 0.82) 100%);
}

.home-carousel-kicker {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.home-carousel-title {
  margin: 0;
  color: var(--surface-title-text);
  font-family: var(--font-display);
  font-size: clamp(1rem, 2.25vw, 1.5rem);
  line-height: 0.98;
  letter-spacing: 0.03em;
}

.home-carousel-meta {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.68rem;
  letter-spacing: 0.015em;
}

.home-carousel-controls {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.35rem;
}

.home-carousel-nav {
  min-height: 28px;
  min-width: 62px;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.62rem;
  cursor: pointer;
}

.home-carousel-nav:disabled {
  opacity: 0.45;
  cursor: default;
}

.home-carousel-dots {
  min-height: 28px;
  border: 1px solid var(--surface-item-border);
  background: var(--window-content-start);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.22rem;
  padding: 0 0.38rem;
}

.home-carousel-dot {
  width: 16px;
  height: 16px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  cursor: pointer;
}

.home-carousel-dot.is-active {
  border-color: var(--button-border-main);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
}

body[data-palette="nes"] .home-carousel-viewport,
body[data-palette="nes"] .home-carousel-dots,
body[data-palette="nes"] .home-carousel-nav,
body[data-palette="nes"] .home-carousel-dot {
  border-width: 2px;
}

body[data-palette="nes"] .home-carousel-dot.is-active {
  border-color: #18181c;
}

.dos-shell-body {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0.46rem;
  min-height: 0;
  overflow: hidden;
}

.dos-shell-screen {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  border: 1px solid var(--surface-card-border);
  background:
    linear-gradient(180deg, rgba(4, 12, 10, 0.92), rgba(2, 8, 7, 0.96)),
    radial-gradient(circle at 50% 0%, rgba(86, 255, 176, 0.08), transparent 58%);
  padding: 0.46rem;
}

.dos-shell-output {
  min-height: 0;
  overflow: auto;
  font-family: "Lucida Console", "Courier New", monospace;
  font-size: 0.72rem;
  line-height: 1.38;
  letter-spacing: 0.01em;
  color: #98ffcb;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) rgba(5, 12, 10, 0.92);
}

.dos-shell-line {
  margin: 0 0 0.24rem;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.dos-shell-line--prompt {
  color: #7ae8b5;
}

.dos-shell-line--error {
  color: #ff9d9d;
}

.dos-shell-line--hint {
  color: #b4efcf;
}

.dos-shell-line--info {
  color: #8be8ff;
}

.dos-shell-line--command {
  color: #ffe09e;
}

.dos-shell-input-row {
  display: flex;
  align-items: center;
  gap: 0.28rem;
  margin-top: 0.38rem;
  border-top: 1px solid rgba(122, 232, 181, 0.24);
  padding-top: 0.34rem;
}

.dos-shell-prompt {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.2;
  color: #7ae8b5;
  font-family: "Lucida Console", "Courier New", monospace;
  text-transform: none;
  letter-spacing: 0.01em;
  white-space: nowrap;
  flex-shrink: 0;
}

.dos-shell-input {
  flex: 1 1 auto;
  width: auto;
  min-height: 0;
  border: 0;
  background: transparent;
  color: #ccffe7;
  padding: 0;
  font-family: "Lucida Console", "Courier New", monospace;
  font-size: 0.72rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  caret-color: #c4ffe3;
}

.dos-shell-input:focus-visible {
  outline: none;
}

.dos-shell-help {
  display: grid;
  gap: 0.28rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.38rem 0.44rem;
}

.dos-shell-help code {
  font-family: var(--font-ui);
  font-size: 0.66rem;
}

.dos-app-body {
  display: grid;
  align-content: start;
  gap: 0.48rem;
}

.jokester-window-title {
  font-family: "Tahoma", "Verdana", "Segoe UI", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: none;
}

.jokester-window .window-titlebar {
  min-height: 24px;
  background: linear-gradient(180deg, #1745ad 0%, #0e348f 58%, #092b7f 100%);
  border-bottom: 1px solid #041c62;
  border-color: #4b4b4b;
  justify-content: space-between;
  gap: 0.32rem;
}

.jokester-window .window-titlebar h2 {
  color: #f2f6ff;
  text-shadow: none;
}

.jokester-window .window-title-icon {
  width: 22px;
  height: 22px;
}

.jokester-window .window-controls {
  order: 0;
  margin-left: 0;
  gap: 0.12rem;
}

.jokester-window .window-titlebar h2 {
  order: 0;
}

.jokester-window .window-control {
  width: 18px;
  min-width: 18px;
  height: 16px;
  border: 1px solid #2f2f2f;
  background: linear-gradient(180deg, #f3f3f3 0%, #d6d6d6 72%, #c2c2c2 100%);
  color: #0f0f0f;
  font-size: 0.66rem;
  line-height: 1;
  text-indent: 0;
  overflow: visible;
  text-shadow: none;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #7f7f7f;
}

.jokester-window .window-control:hover,
.jokester-window .window-control:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #ececec 70%, #cfcfcf 100%);
}

.jokester-window .window-control[data-window-close]::before,
.jokester-window .window-control[data-window-close]::after,
.jokester-window .window-control[data-drawer-close]::before,
.jokester-window .window-control[data-drawer-close]::after {
  content: none;
}

.jokester-window .window-body {
  border-color: #7a7a7a;
  background: #c0c0c0;
}

.jokester-window .window-body::before {
  content: none;
}

.jokester-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) minmax(0, 0.9fr) auto;
  gap: 0;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: #c0c0c0;
  color: #0f1216;
  border: 1px solid #6f6f6f;
  box-shadow: inset 1px 1px 0 #e9e9e9, inset -1px -1px 0 #7c7c7c;
  font-family: "Tahoma", "Verdana", "Segoe UI", sans-serif;
  font-size: 11px;
  line-height: 1.18;
}

.jokester-window-version {
  margin: 0;
  padding: 0.16rem 0.44rem 0.2rem;
  border-top: 1px solid #8a8a90;
  background: #d5d5d5;
  color: #4f5159;
  font-size: 9px;
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-align: right;
}

.jokester-menubar {
  display: flex;
  align-items: center;
  gap: 0;
  min-height: 22px;
  border-bottom: 1px solid #8a8a90;
  background: #e1e1e3;
}

.jokester-menu-btn {
  appearance: none;
  border: 0;
  background: transparent;
  color: #101214;
  font: inherit;
  font-size: 11px;
  line-height: 1;
  padding: 0.3rem 0.42rem;
  cursor: default;
}

.jokester-menu-btn:hover,
.jokester-menu-btn:focus-visible {
  outline: none;
  background: #d2d2d5;
}

.jokester-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-height: 24px;
  padding: 0.18rem 0.44rem;
  border-bottom: 1px solid #8a8a90;
  background: #dcdcdc;
}

.jokester-toolbar-left {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  min-width: 0;
}

.jokester-toolbar-right {
  display: inline-flex;
  align-items: center;
  gap: 0.26rem;
}

.jokester-toolbar-buttons {
  flex-wrap: wrap;
}

.jokester-toolbar-btn {
  appearance: none;
  border: 1px solid #7f8088;
  background: linear-gradient(180deg, #f0f1f4 0%, #dfdfe2 60%, #ccced4 100%);
  color: #14181f;
  min-height: 22px;
  padding: 0 0.44rem;
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: default;
}

.jokester-toolbar-btn.is-active {
  background: linear-gradient(180deg, #fefefe 0%, #ececf0 65%, #d7d8dd 100%);
  box-shadow: inset 0 0 0 1px #4d7ed6;
}

.jokester-toolbar-label {
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.jokester-toolbar-meta {
  margin: 0;
  color: #2b2e35;
  text-transform: none;
}

.jokester-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #3f4754;
  background: #7d8798;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.jokester-indicator--online {
  background: #49d251;
  border-color: #1f6f2b;
}

.jokester-action-btn {
  appearance: none;
  border: 1px solid #6f7078;
  background: linear-gradient(180deg, #efeff2 0%, #e0e0e3 55%, #c8c8cd 100%);
  color: #17191b;
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  min-height: 24px;
  padding: 0 0.5rem;
  cursor: pointer;
}

.jokester-action-btn:hover,
.jokester-action-btn:focus-visible {
  outline: none;
  background: linear-gradient(180deg, #ffffff 0%, #ececf0 60%, #d6d7dc 100%);
}

.jokester-action-btn:disabled {
  cursor: not-allowed;
  color: #62656d;
  background: #d0d0d4;
}

.jokester-action-btn--raised {
  box-shadow: 1px 1px 0 #8d8d95;
}

.jokester-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #8a8a90;
  background: #d9d9d9;
}

.jokester-panel--transfer {
  border-bottom: 0;
}

.jokester-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  min-height: 24px;
  padding: 0.2rem 0.4rem;
  border-bottom: 1px solid #9f9f9f;
  background: #cdcdcd;
}

.jokester-panel-title,
.jokester-panel-meta {
  margin: 0;
}

.jokester-panel-title {
  font-weight: 700;
}

.jokester-panel-meta {
  color: #33363d;
}

.jokester-table-wrap {
  min-height: 0;
  overflow: auto;
  background: #ffffff;
}

.jokester-table-wrap--available {
  max-height: 100%;
}

.jokester-table-wrap--transfer {
  max-height: 100%;
}

.jokester-table {
  width: 100%;
  min-width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font: inherit;
}

.jokester-table th,
.jokester-table td {
  border-right: 1px solid #c8c8c8;
  border-bottom: 1px solid #d6d6d6;
  padding: 0.13rem 0.3rem;
  vertical-align: middle;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.jokester-table th:last-child,
.jokester-table td:last-child {
  border-right: 0;
}

.jokester-table th {
  font-size: 10px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.01em;
  background: #d6d6d6;
  color: #252525;
}

.jokester-table td {
  background: #ffffff;
}

.jokester-table tbody tr:nth-child(even) td {
  background: #f3f3f3;
}

.jokester-table tbody tr:hover td {
  background: #dde9ff;
}

.jokester-col-state {
  width: 22px;
}

.jokester-col-size {
  width: 76px;
  text-align: right;
}

.jokester-col-speed {
  width: 88px;
}

.jokester-col-user {
  width: 104px;
}

.jokester-col-ping {
  width: 60px;
  text-align: right;
}

.jokester-col-action {
  width: 74px;
}

.jokester-table--available .jokester-col-action {
  width: 58px;
}

.jokester-table--transfer .jokester-col-action {
  width: 88px;
}

.jokester-col-progress {
  width: 180px;
}

.jokester-state-cell {
  text-align: center;
}

.jokester-state-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #3f4650;
  background: #8f98a8;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.jokester-state-dot--available {
  background: #8e95a1;
  border-color: #4c5562;
}

.jokester-state-dot--queued {
  background: #f2c650;
  border-color: #966f13;
}

.jokester-state-dot--downloading {
  background: #4da6f8;
  border-color: #0f4f8e;
}

.jokester-state-dot--seeding {
  background: #4eda62;
  border-color: #1f7b34;
}

.jokester-action-cell {
  text-align: right;
}

.jokester-action-group {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.jokester-action-cell .jokester-action-btn--icon {
  width: 34px;
  height: 30px;
}

.jokester-transfer-open-btn {
  min-width: 64px;
  height: 30px;
  padding: 0 0.56rem;
  font-size: 10px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.24rem;
}

.jokester-transfer-open-btn .jokester-btn-icon {
  width: 14px;
  height: 14px;
}

.jokester-transfer-open-label {
  line-height: 1;
}

.jokester-action-btn--icon {
  min-width: 34px;
  width: 34px;
  height: 30px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #7f8aa0;
  border-radius: 2px;
  background: linear-gradient(180deg, #fefefe 0%, #e8edf5 70%, #d6deeb 100%);
  box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.92), inset -1px -1px 0 rgba(83, 97, 122, 0.35);
}

.jokester-action-btn--icon:hover,
.jokester-action-btn--icon:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #f1f5fb 70%, #e2e8f2 100%);
  border-color: #5e6f8f;
}

.jokester-table--available .jokester-action-cell .jokester-action-btn--icon,
.jokester-table--available .jokester-action-cell .jokester-action-btn--icon:hover,
.jokester-table--available .jokester-action-cell .jokester-action-btn--icon:focus-visible,
.jokester-table--available .jokester-action-cell .jokester-action-btn--icon:active {
  min-width: 40px;
  width: 40px;
  height: 34px;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0;
}

.jokester-table--available .jokester-action-cell .jokester-btn-icon {
  width: 24px;
  height: 24px;
}

.jokester-table--available .jokester-action-cell .jokester-btn-icon--download,
.jokester-table--available .jokester-action-cell .jokester-btn-icon--complete {
  background-size: 24px 24px;
}

.jokester-btn-icon {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
}

.jokester-btn-icon::before,
.jokester-btn-icon::after {
  content: "";
  position: absolute;
}

.jokester-btn-icon--download::before,
.jokester-btn-icon--download::after {
  content: none;
}

.jokester-btn-icon--download {
  background: url("/static/img/icons/system/cdwriter_unmount.png") center / 18px 18px no-repeat;
}

.jokester-btn-icon--complete {
  background: url("/static/img/icons/system/check-0.png") center / 18px 18px no-repeat;
}

.jokester-btn-icon--busy::before {
  left: 2px;
  top: 2px;
  width: 12px;
  height: 12px;
  border: 2px solid #5a6579;
  border-radius: 50%;
  border-right-color: transparent;
  animation: jokester-icon-spin 0.75s linear infinite;
}

.jokester-btn-icon--wait::before {
  content: "...";
  left: 50%;
  top: 50%;
  transform: translate(-50%, -53%);
  color: #6b7484;
  font-size: 10px;
  letter-spacing: 0.08em;
  line-height: 1;
}

.jokester-action-btn--danger {
  border-color: #b65d5d;
  background: linear-gradient(180deg, #fff4f4 0%, #f7dfdf 72%, #f0c7c7 100%);
}

.jokester-action-btn--danger:hover,
.jokester-action-btn--danger:focus-visible {
  background: linear-gradient(180deg, #ffffff 0%, #f9e7e7 70%, #f3cdcd 100%);
}

.jokester-btn-icon--trash::before,
.jokester-btn-icon--trash::after {
  content: none;
}

.jokester-btn-icon--trash {
  background: url("/static/img/icons/system/recycle_bin_full_cool-0.png") center / 18px 18px no-repeat;
}

@keyframes jokester-icon-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.jokester-progress-track {
  position: relative;
  width: 100%;
  height: 14px;
  border: 1px solid #7a7a7a;
  box-shadow: inset 1px 1px 0 #f7f7f7, inset -1px -1px 0 #b2b2b2;
  background:
    repeating-linear-gradient(
      90deg,
      #f7f7f7 0px,
      #f7f7f7 12px,
      #efefef 12px,
      #efefef 24px
    );
  overflow: hidden;
}

.jokester-progress-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: #c93337;
  transition: width 0.25s linear;
}

.jokester-progress-label {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  color: #1f2127;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.7);
  line-height: 12px;
}

.jokester-transfer-status {
  font-weight: 700;
  color: #1f2329;
  font-size: 10px;
}

.jokester-transfer-status--seeding {
  display: inline-block;
  padding: 1px 4px;
  border: 1px solid #7aa57a;
  background: linear-gradient(180deg, #f0fbf0 0%, #dff2df 100%);
  color: #1e5f2c;
}

.jokester-empty-row td {
  text-align: center;
  color: #5f6570;
  font-style: italic;
  padding: 0.55rem 0.4rem;
  background: #f3f3f3;
}

body[data-palette] .jokester-window {
  border: 1px solid #4b4b4b !important;
  background: #c0c0c0 !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
}

body[data-palette] .jokester-window.is-focused {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35) !important;
}

body[data-palette] .jokester-window .window-titlebar {
  background: linear-gradient(180deg, #1745ad 0%, #0e348f 58%, #092b7f 100%) !important;
  border-bottom: 1px solid #041c62 !important;
  justify-content: space-between !important;
}

body[data-palette] .jokester-window .window-titlebar h2 {
  color: #f2f6ff !important;
  text-shadow: none !important;
}

body[data-palette] .jokester-window .window-body {
  border-color: #6f6f6f !important;
  background: #c0c0c0 !important;
}

body[data-palette] .jokester-window .window-body::before {
  content: none !important;
}

body[data-palette] .jokester-window .window-control {
  border: 1px solid #2f2f2f !important;
  background: linear-gradient(180deg, #f3f3f3 0%, #d6d6d6 72%, #c2c2c2 100%) !important;
  color: #0f0f0f !important;
  box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #7f7f7f !important;
  font-size: 0.66rem !important;
  line-height: 1 !important;
  text-indent: 0 !important;
}

body[data-palette] .jokester-window .window-control[data-window-close]::before,
body[data-palette] .jokester-window .window-control[data-window-close]::after,
body[data-palette] .jokester-window .window-control[data-drawer-close]::before,
body[data-palette] .jokester-window .window-control[data-drawer-close]::after {
  content: none !important;
}

.portal-engine-body {
  display: grid;
  min-height: 0;
  padding: 0.35rem;
  background: #0b0b0b;
  overflow: hidden;
}

.portal-engine-layout {
  display: grid;
  grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
  gap: 0.35rem;
  min-height: 0;
  height: 100%;
}

.portal-engine-drawer-backdrop {
  display: none;
}

.portal-engine-sidebar {
  min-height: 0;
  overflow: auto;
  border: 1px solid #505050;
  background: #05070b;
  padding: 0.35rem;
  display: grid;
  align-content: start;
  gap: 0.36rem;
}

.portal-engine-sidebar-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.32rem;
}

.portal-engine-sidebar-title {
  margin: 0;
  color: #f4f4f4;
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
}

.portal-engine-btn--filters-close {
  display: none;
}

.portal-engine-section {
  border: 1px solid #3f4349;
  background: #070c12;
  padding: 0.3rem;
  display: grid;
  gap: 0.28rem;
}

.portal-engine-section-title {
  margin: 0;
  color: #d7dbe0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-engine-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.28rem;
}

.portal-engine-field {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #b7c2cf;
}

.portal-engine-field--toggle {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.4rem;
}

.portal-engine-field--toggle span {
  line-height: 1.1;
}

.portal-engine-field--toggle input[type="checkbox"] {
  margin: 0;
  width: 15px;
  height: 15px;
  justify-self: end;
}

.portal-engine-field select,
.portal-engine-field input[type="range"],
.portal-engine-field input[type="number"] {
  width: 100%;
}

.portal-engine-field select {
  min-height: 24px;
  border: 1px solid #465063;
  background: #0d1420;
  color: #e2e8ef;
  font: inherit;
  font-size: 0.64rem;
  padding: 0 0.3rem;
}

.portal-engine-field input[type="number"] {
  min-height: 24px;
  border: 1px solid #465063;
  background: #0d1420;
  color: #d7deea;
  font: inherit;
  font-size: 0.64rem;
  padding: 0 0.28rem;
}

.portal-engine-btn {
  min-height: 24px;
  border: 1px solid #59627a;
  background: linear-gradient(180deg, #1e2a41, #141f32);
  color: #e2e9f4;
  padding: 0 0.56rem;
  font: inherit;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  cursor: pointer;
}

.portal-engine-btn:active,
.portal-engine-btn[aria-pressed="true"] {
  background: linear-gradient(180deg, #121c2f, #0f1726);
}

.portal-engine-controls-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.3rem;
}

.portal-engine-stage-wrap {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.3rem;
  min-height: 0;
  width: 100%;
  height: 100%;
}

.portal-engine-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.3rem;
}

.portal-engine-btn--filters-toggle {
  display: none;
}

.portal-engine-stage {
  position: relative;
  min-height: 0;
  width: 100%;
  height: 100%;
  border: 1px solid #40454f;
  background: #000000;
  overflow: hidden;
}

.portal-engine-canvas {
  display: block;
  width: 100%;
  height: 100%;
  background: #000;
}

.portal-engine-stage.is-inverted .portal-engine-canvas {
  filter: invert(1) hue-rotate(180deg);
}

.portal-engine-status {
  position: absolute;
  right: 8px;
  bottom: 6px;
  margin: 0;
  padding: 0.12rem 0.34rem;
  border: 1px solid rgba(196, 208, 225, 0.45);
  background: rgba(5, 8, 15, 0.72);
  color: #d6deec;
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.dos-directory-list {
  min-height: 0;
  max-height: clamp(220px, 42vh, 500px);
  overflow: auto;
}

body[data-palette="nes"] .dos-shell-screen,
body[data-palette="nes"] .dos-shell-help,
body[data-palette="nes"] .dos-shell-input {
  border-width: 2px;
}

body[data-palette="nes"] .dos-shell-output,
body[data-palette="nes"] .dos-shell-prompt,
body[data-palette="nes"] .dos-shell-input {
  font-size: 0.62rem;
}

@media (max-width: 980px) {
  .dos-shell-window {
    width: min(var(--window-w, 900px), 94vw);
    max-width: 94vw;
    height: min(var(--window-h, 620px), calc(100% - 18px));
    max-height: calc(100% - 18px);
  }

  .dos-shell-input-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.28rem;
  }

  .dos-shell-prompt {
    font-size: 0.64rem;
  }

  .dos-shell-input {
    font-size: 0.64rem;
  }

  .jokester-window {
    width: min(var(--window-w, 900px), 96vw);
    max-width: 96vw;
    height: min(var(--window-h, 640px), calc(100% - 12px));
    max-height: calc(100% - 12px);
  }

  .jokester-shell {
    font-size: 10px;
  }

  .jokester-col-user,
  .jokester-col-speed {
    width: 84px;
  }

  .jokester-col-ping {
    width: 56px;
  }

  .jokester-col-progress {
    width: 160px;
  }

  .jokester-table {
    min-width: 620px;
  }

  .desktop-window.portal-engine-window {
    width: min(var(--window-w, 980px), 98vw);
    max-width: 98vw;
    height: min(var(--window-h, 700px), calc(100% - 6px));
    max-height: calc(100% - 6px);
  }

  .portal-engine-layout {
    grid-template-columns: 1fr;
    position: relative;
  }

  .portal-engine-toolbar {
    position: sticky;
    top: 0;
    z-index: 12;
  }

  .portal-engine-btn--filters-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
  }

  .portal-engine-toolbar .portal-engine-controls-row {
    flex: 1 1 auto;
    max-width: calc(100% - 96px);
  }

  .portal-engine-toolbar .portal-engine-btn {
    min-height: 34px;
    font-size: 0.66rem;
  }

  .portal-engine-drawer-backdrop {
    position: absolute;
    inset: 0;
    z-index: 20;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(0, 0, 0, 0.55);
    cursor: pointer;
    display: none;
  }

  .portal-engine-sidebar {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(86vw, 340px);
    max-height: none;
    z-index: 30;
    transform: translateX(108%);
    transition: transform 180ms ease;
    box-shadow: -10px 0 22px rgba(0, 0, 0, 0.45);
  }

  .portal-engine-btn--filters-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 0.48rem;
  }

  .portal-engine-window.is-portal-filters-open .portal-engine-sidebar {
    transform: translateX(0);
  }

  .portal-engine-window.is-portal-filters-open .portal-engine-drawer-backdrop {
    display: block;
  }

  .portal-engine-stage-wrap {
    min-height: 0;
    height: 100%;
  }

  .portal-engine-stage {
    min-height: min(56vh, 540px);
  }
}

@media (max-width: 760px) {
  .jokester-window {
    width: min(var(--window-w, 900px), 98vw);
    max-width: 98vw;
    height: min(var(--window-h, 640px), calc(100% - 8px));
    max-height: calc(100% - 8px);
  }

  .desktop-window.portal-engine-window {
    width: min(var(--window-w, 980px), 99vw);
    max-width: 99vw;
    height: min(var(--window-h, 700px), calc(100% - 4px));
    max-height: calc(100% - 4px);
  }

  .portal-engine-body {
    padding: 0.24rem;
  }

  .portal-engine-toolbar {
    gap: 0.22rem;
  }

  .portal-engine-btn--filters-toggle {
    min-width: 74px;
  }

  .portal-engine-toolbar .portal-engine-controls-row {
    max-width: calc(100% - 82px);
    gap: 0.22rem;
  }

  .portal-engine-toolbar .portal-engine-btn {
    min-height: 32px;
    font-size: 0.62rem;
    padding: 0 0.4rem;
  }

  .portal-engine-stage {
    min-height: min(62vh, 620px);
  }

  .portal-engine-sidebar {
    width: min(92vw, 360px);
    padding: 0.3rem;
  }

  .jokester-shell {
    grid-template-rows: auto minmax(0, 1fr) minmax(0, 1fr) auto;
  }

  .jokester-toolbar {
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 0.2rem 0.44rem;
    padding: 0.2rem 0.34rem;
  }

  .jokester-toolbar-label,
  .jokester-toolbar-meta {
    font-size: 10px;
  }

  .jokester-panel-head {
    flex-wrap: wrap;
    gap: 0.14rem 0.34rem;
    padding: 0.2rem 0.34rem;
  }

  .jokester-panel-meta {
    width: 100%;
    font-size: 10px;
  }

  .jokester-table-wrap {
    overflow-x: hidden;
  }

  .jokester-table {
    min-width: 100%;
    table-layout: fixed;
  }

  .jokester-table th,
  .jokester-table td {
    padding: 0.2rem 0.24rem;
  }

  .jokester-table--available th:nth-child(4),
  .jokester-table--available td:nth-child(4),
  .jokester-table--available th:nth-child(5),
  .jokester-table--available td:nth-child(5) {
    display: none;
  }

  .jokester-table--transfer th:nth-child(4),
  .jokester-table--transfer td:nth-child(4),
  .jokester-table--transfer th:nth-child(5),
  .jokester-table--transfer td:nth-child(5),
  .jokester-table--transfer th:nth-child(6),
  .jokester-table--transfer td:nth-child(6) {
    display: none;
  }

  .jokester-table--available .jokester-col-state,
  .jokester-table--transfer .jokester-col-state {
    width: 22px;
  }

  .jokester-table--available .jokester-col-size {
    width: 66px;
  }

  .jokester-table--transfer .jokester-col-progress {
    width: 126px;
  }

  .jokester-table--available .jokester-col-action {
    width: 50px;
  }

  .jokester-table--transfer .jokester-col-action {
    width: 94px;
  }

  .jokester-table--available td:nth-child(2),
  .jokester-table--transfer td:nth-child(2) {
    max-width: 0;
  }

  .jokester-action-group {
    gap: 6px;
  }

  .jokester-action-btn--icon,
  .jokester-action-cell .jokester-action-btn--icon {
    min-width: 42px;
    width: 42px;
    height: 36px;
  }

  .jokester-transfer-open-btn {
    min-width: 68px;
    height: 36px;
    font-size: 10px;
    padding: 0 0.52rem;
    gap: 0.28rem;
  }

  .jokester-transfer-open-btn .jokester-btn-icon {
    width: 15px;
    height: 15px;
  }

  .jokester-btn-icon {
    width: 18px;
    height: 18px;
  }

  .jokester-progress-label {
    font-size: 9px;
  }
}

.guestbook-window-body {
  display: grid;
  gap: 0.5rem;
  align-content: start;
  overflow: hidden;
}

.guestbook-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.48rem;
  flex-wrap: nowrap;
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(10, 18, 30, 0.42), rgba(7, 12, 20, 0.34));
  padding: 0.36rem;
}

.guestbook-toolbar .window-action-btn {
  min-height: 30px;
  padding: 0 0.72rem;
  font-size: 0.66rem;
}

.guestbook-toolbar-note {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.6rem;
  line-height: 1.22;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--surface-muted-text);
}

.guestbook-feedback {
  margin-bottom: 0;
}

.guestbook-panel {
  min-height: 0;
  display: grid;
  gap: 0.5rem;
  align-content: start;
}

.guestbook-panel[hidden] {
  display: none;
}

.guestbook-list {
  border: 1px solid var(--surface-item-border);
  background: linear-gradient(180deg, rgba(7, 12, 20, 0.94), rgba(4, 8, 14, 0.97));
  min-height: 0;
  max-height: clamp(260px, 48vh, 560px);
  overflow: auto;
  align-content: start;
  padding: 0.38rem 0.38rem 0.38rem 0.42rem;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) rgba(4, 8, 14, 0.92);
}

.guestbook-list::-webkit-scrollbar {
  width: max(8px, calc(var(--scrollbar-size) - 3px));
}

.guestbook-list::-webkit-scrollbar-track {
  background: linear-gradient(180deg, rgba(6, 10, 16, 0.95), rgba(3, 6, 11, 0.95));
  border: 1px solid rgba(80, 96, 128, 0.42);
  border-radius: 2px;
}

.guestbook-list::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  border: 1px solid var(--scrollbar-thumb-border);
  border-radius: 2px;
}

.guestbook-dynamic-list {
  display: grid;
  gap: 0.36rem;
}

.guestbook-message-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.5rem;
  padding: 0.44rem 0.5rem;
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(14, 24, 38, 0.66), rgba(8, 14, 24, 0.56));
}

.guestbook-message-icon {
  display: block;
  width: 32px;
  height: 32px;
  min-width: 32px;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.guestbook-message-content {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.guestbook-message-heading {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.guestbook-message-author {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.06rem;
  line-height: 1.02;
  color: var(--surface-title-text);
  letter-spacing: 0.015em;
}

.guestbook-message-time {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 0.62rem;
  line-height: 1.2;
  color: var(--surface-muted-text);
  opacity: 0.9;
}

.guestbook-message-text {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 1rem;
  line-height: 1.2;
  color: var(--surface-title-text);
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.guestbook-message-actions {
  display: flex;
  align-items: center;
  align-self: start;
  justify-self: end;
}

.guestbook-delete-form {
  margin: 0;
}

.guestbook-delete-btn {
  min-height: 34px;
  min-width: 34px;
  width: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.guestbook-delete-icon {
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 3h8v1H9.5l-.4 5.1a1 1 0 0 1-1 .9H3.9a1 1 0 0 1-1-.9L2.5 4H2V3zm2-1h4l.6 1H3.4L4 2zm1 3h1v4H5V5zm2 0h1v4H7V5z' fill='%23000'/%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 12 12'%3E%3Cpath d='M2 3h8v1H9.5l-.4 5.1a1 1 0 0 1-1 .9H3.9a1 1 0 0 1-1-.9L2.5 4H2V3zm2-1h4l.6 1H3.4L4 2zm1 3h1v4H5V5zm2 0h1v4H7V5z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
}

.guestbook-panel--locked {
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(8, 14, 24, 0.84), rgba(6, 10, 16, 0.92));
  padding: 0.72rem 0.7rem;
  gap: 0.5rem;
  justify-items: center;
  text-align: center;
}

.guestbook-locked-copy {
  margin: 0;
  font-family: var(--font-display);
  color: var(--surface-title-text);
  font-size: 1.05rem;
  line-height: 1.12;
}

.guestbook-locked-btn {
  min-width: 190px;
  justify-content: center;
}

.guestbook-panel--compose {
  align-content: start;
}

.contact-window-body {
  display: grid;
  gap: 0.56rem;
  align-content: start;
}

.contact-form {
  display: grid;
  gap: 0.56rem;
}

.contact-form textarea {
  min-height: 170px;
}

.listing-submit-callout {
  margin-top: 0.25rem;
}

.listing-submit-window-body {
  display: grid;
  gap: 0.56rem;
  align-content: start;
}

.listing-submit-form {
  display: grid;
  gap: 0.56rem;
}

.listing-submit-form textarea {
  min-height: 140px;
}

.listing-submit-honeypot {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}

.guestbook-compose-form {
  border: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, rgba(10, 18, 30, 0.8), rgba(6, 10, 16, 0.9));
  padding: 0.58rem;
  min-height: 0;
  display: grid;
  gap: 0.58rem;
}

.guestbook-compose-form textarea {
  min-height: 140px;
}

.guestbook-form-error {
  margin-bottom: 0;
}

.guestbook-cancel-btn {
  border-color: var(--link-chip-border);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: var(--link-chip-bg);
  color: var(--button-text);
}

.guestbook-post-hint {
  margin: 0;
  color: var(--surface-muted-text);
}

.game-window-body {
  padding: 0.6rem;
  height: calc(var(--window-h, 260px) - 44px);
  overflow: hidden;
}

.game-play-shell {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
}

.game-play-shell--full {
  height: 100%;
}

.desktop-window.game-window .game-play-shell {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.flash-stage-shell {
  border: 1px solid var(--surface-card-border);
  background: #0c1016;
  padding: 0.48rem;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.desktop-window.game-window .flash-stage-shell {
  width: min(100%, 810px);
  max-width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
}

.flash-stage {
  width: 100%;
  min-height: 0;
  height: 100%;
  position: relative;
  background: #000;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.flash-stage > * {
  flex: 0 1 auto;
}

.flash-stage ruffle-player,
.flash-stage canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
}

.flash-status {
  margin: 0;
  color: var(--surface-muted-text);
  font-size: 0.74rem;
}

.flash-status.is-error {
  color: #ffd0d0;
}

.window-body.game-window-body > .window-lead {
  margin: 0;
}

.news-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: 0.62rem;
}

.news-slideshow {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.52rem;
}

.news-slides {
  position: relative;
  min-height: 280px;
  overflow: hidden;
}

.news-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 260ms ease;
}

.news-slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.news-slide-media {
  height: 100%;
  border: 1px solid #2a2f37;
  background:
    radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.14), transparent 52%),
    linear-gradient(135deg, #4d7f9a, #1f3443);
}

.news-slide:nth-child(3n + 2) .news-slide-media {
  background:
    radial-gradient(circle at 75% 25%, rgba(255, 255, 255, 0.12), transparent 48%),
    linear-gradient(135deg, #8a5c46, #3f2b20);
}

.news-slide:nth-child(3n + 3) .news-slide-media {
  background:
    radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.13), transparent 50%),
    linear-gradient(135deg, #3d7a5c, #1f4234);
}

.news-feature {
  margin-top: 0.58rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.62rem;
  min-height: 120px;
}

.news-feature h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.8rem;
  line-height: 0.95;
  color: var(--surface-title-text);
}

.news-feature p {
  margin: 0;
  font-size: 0.75rem;
  color: var(--surface-muted-text);
}

.news-slide-kicker {
  margin: 0;
  color: var(--text-active);
  font-size: 0.66rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.news-slideshow-controls {
  margin-top: 0.55rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.slide-nav-btn {
  width: 30px;
  height: 28px;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  color: var(--text-active);
  cursor: pointer;
}

.slide-dots {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.slide-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 1px solid var(--surface-card-border);
  background: var(--window-content-start);
  cursor: pointer;
}

.slide-dot.is-active {
  border-color: var(--text-active);
  background: var(--text-active);
}

.news-sidebar {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.5rem;
}

.window-body {
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
  border: 1px solid var(--window-content-border);
  margin: 0.35rem;
  min-height: calc(var(--window-h, 260px) - 44px);
  max-height: calc(var(--window-h, 260px) - 44px);
  overflow: auto;
  padding: 0.7rem;
}

.window-body,
.manage-window-body,
.window-sidebar,
.event-drawer-body,
.admin-panel-shell,
.admin-venue-list,
.admin-community-list,
.admin-user-grid,
.admin-user-console-drawer-body {
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb-end) var(--scrollbar-track);
}

.window-body::-webkit-scrollbar,
.manage-window-body::-webkit-scrollbar,
.window-sidebar::-webkit-scrollbar,
.event-drawer-body::-webkit-scrollbar,
.admin-panel-shell::-webkit-scrollbar,
.admin-venue-list::-webkit-scrollbar,
.admin-community-list::-webkit-scrollbar,
.admin-user-grid::-webkit-scrollbar,
.admin-user-console-drawer-body::-webkit-scrollbar {
  width: max(9px, calc(var(--scrollbar-size) - 2px));
  height: max(9px, calc(var(--scrollbar-size) - 2px));
}

.window-body::-webkit-scrollbar-track,
.manage-window-body::-webkit-scrollbar-track,
.window-sidebar::-webkit-scrollbar-track,
.event-drawer-body::-webkit-scrollbar-track,
.admin-panel-shell::-webkit-scrollbar-track,
.admin-venue-list::-webkit-scrollbar-track,
.admin-community-list::-webkit-scrollbar-track,
.admin-user-grid::-webkit-scrollbar-track,
.admin-user-console-drawer-body::-webkit-scrollbar-track {
  background: linear-gradient(180deg, var(--scrollbar-track), rgba(22, 12, 8, 0.65));
  border: 1px solid var(--scrollbar-track-edge);
  border-radius: 2px;
}

.window-body::-webkit-scrollbar-thumb,
.manage-window-body::-webkit-scrollbar-thumb,
.window-sidebar::-webkit-scrollbar-thumb,
.event-drawer-body::-webkit-scrollbar-thumb,
.admin-panel-shell::-webkit-scrollbar-thumb,
.admin-venue-list::-webkit-scrollbar-thumb,
.admin-community-list::-webkit-scrollbar-thumb,
.admin-user-grid::-webkit-scrollbar-thumb,
.admin-user-console-drawer-body::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
  border: 1px solid var(--scrollbar-thumb-border);
  border-radius: 2px;
  min-height: 34px;
}

.window-body::-webkit-scrollbar-thumb:hover,
.manage-window-body::-webkit-scrollbar-thumb:hover,
.window-sidebar::-webkit-scrollbar-thumb:hover,
.event-drawer-body::-webkit-scrollbar-thumb:hover,
.admin-panel-shell::-webkit-scrollbar-thumb:hover,
.admin-venue-list::-webkit-scrollbar-thumb:hover,
.admin-community-list::-webkit-scrollbar-thumb:hover,
.admin-user-grid::-webkit-scrollbar-thumb:hover,
.admin-user-console-drawer-body::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
}

.window-body.game-window-body {
  overflow: hidden;
}

.window-body--sidebar {
  border: 0;
  margin: 0;
  min-height: 0;
  max-height: none;
}

.window-sidebar {
  border-left: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, var(--window-sidebar-start), var(--window-sidebar-end));
  overflow: auto;
  opacity: 0;
  padding: 0;
  pointer-events: none;
  transition: opacity 120ms ease;
}

.desktop-window.is-sidebar-open .window-sidebar {
  opacity: 1;
  padding: 0.62rem;
  pointer-events: auto;
}

.manage-window-body {
  max-height: calc(var(--window-h, 520px) - 44px);
}

.window-lead {
  margin: 0 0 0.55rem;
  color: var(--text-muted);
  font-size: var(--window-lead-size);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.window-list {
  display: grid;
  gap: 0.5rem;
}

.window-group + .window-group {
  margin-top: 0.72rem;
}

.window-group > .window-lead {
  margin-bottom: 0.45rem;
}

.window-item {
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  padding: 0.48rem 0.54rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.window-item:not(.event-listing-card) {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: flex-start;
}

.window-item[data-event-detail] {
  cursor: pointer;
}

.window-item:not(.event-listing-card)[data-event-detail] {
  align-items: center;
}

.window-item.event-window-item[data-event-detail] {
  align-items: stretch;
  gap: 0.58rem;
}

.event-window-item-thumb {
  display: inline-flex;
  width: 74px;
  min-width: 74px;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  overflow: hidden;
}

.event-window-item-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.window-item[data-event-detail] > div {
  min-width: 0;
  flex: 1 1 auto;
}

.window-item[data-event-detail]:hover {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.window-item[data-event-detail]:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 1px;
}

.newsroom-icon-grid {
  gap: 0.5rem;
}

.newsroom-icon-item {
  align-items: center;
  gap: 0.58rem;
}

.newsroom-icon-image {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.window-item-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--window-item-title-size);
  line-height: 1;
  color: var(--surface-title-text);
}

.window-item-meta {
  margin: 0.12rem 0 0;
  color: var(--surface-muted-text);
  font-size: var(--window-item-meta-size);
}

.window-item-meta--subline {
  margin-top: 0.02rem;
}

.venue-card-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.56rem;
}

.venue-info-card {
  display: grid;
  gap: 0.4rem;
  align-content: start;
}

.venue-info-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.52rem;
}

.venue-info-card-head .window-item-title {
  margin: 0;
  line-height: 1.15;
}

.venue-info-card-title-link {
  color: inherit;
  text-decoration: none;
}

.venue-info-card-title-link:hover,
.venue-info-card-title-link:focus-visible {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.venue-info-card-link {
  align-self: flex-start;
  margin-left: auto;
}

.venue-info-card-grid {
  display: grid;
  gap: 0.2rem;
}

.venue-info-card-row {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(68px, auto) minmax(0, 1fr);
  gap: 0.46rem;
  align-items: start;
}

.venue-info-card-label {
  color: var(--surface-muted-text);
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.25;
}

.venue-info-card-value {
  color: var(--surface-title-text);
  font-size: 0.72rem;
  line-height: 1.3;
  min-width: 0;
  overflow-wrap: anywhere;
}

.window-item-link {
  border: 1px solid var(--link-chip-border);
  background: var(--link-chip-bg);
  min-height: 22px;
  padding: 0 0.42rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.24rem;
  align-self: center;
  color: var(--link-chip-text);
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
}

.window-item-link[data-open-map] {
  width: 56px;
  min-width: 56px;
  height: 56px;
  min-height: 56px;
  margin-left: auto;
  padding: 0;
  gap: 0;
  align-self: center;
  border-width: 1px;
  border-style: solid;
  border-color: var(--link-chip-border);
  background: var(--link-chip-bg);
}

.window-item-link[data-open-map] .window-item-link-icon {
  width: 1.9rem !important;
  height: 1.9rem !important;
}

.window-item-link-icon {
  width: 0.78rem;
  height: 0.78rem;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  flex-shrink: 0;
}

.window-empty {
  margin: 0;
  font-size: var(--window-empty-size);
  color: var(--surface-muted-text);
}

.window-actions {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
  margin-bottom: 0.65rem;
}

.window-actions--title-separated {
  margin-top: 0.42rem;
}

.account-window-actions {
  margin-top: 0.7rem;
  flex-direction: column;
  align-items: stretch;
  margin-bottom: 0;
}

.account-window-auth-actions {
  grid-template-columns: 1fr;
  margin-top: 0.55rem;
}

.admin-news-summary {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}

.admin-news-icon {
  width: 20px;
  height: 20px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  flex: 0 0 20px;
}

.account-window-logout {
  margin: 0;
  width: 100%;
}

.account-action-btn {
  min-height: 34px;
  min-width: 116px;
  padding: 0 0.9rem;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-decoration: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, rgba(0, 0, 0, 0.07) 100%),
    linear-gradient(180deg, var(--button-start), var(--button-end));
  transition: filter 120ms ease, transform 120ms ease;
}

.account-window-actions .account-action-btn {
  width: 100%;
  justify-content: center;
}

.desktop-window.game-window .flash-stage {
  aspect-ratio: 4 / 3;
}

.account-action-btn:hover,
.account-action-btn:focus-visible {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

.account-action-btn:active {
  filter: brightness(0.98);
  transform: translateY(0);
}

.account-window-profile {
  justify-content: flex-start;
  align-items: center;
  gap: 0.65rem;
}

.account-window-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
}

.avatar-picker-window .window-body {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
}

.avatar-picker-form {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0.58rem;
}

.avatar-picker-scroll {
  min-height: 0;
  overflow: auto;
}

.avatar-picker-help {
  margin: 0 0 0.45rem;
}

.avatar-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 0.45rem;
}

.avatar-picker-option {
  position: relative;
  border: 1px solid var(--surface-item-border);
  background: var(--surface-item-bg);
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 0.24rem;
  min-height: 122px;
  padding: 0.45rem 0.3rem;
  cursor: pointer;
  text-align: center;
  font-size: 0.58rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--surface-muted-text);
}

.avatar-picker-option:hover,
.avatar-picker-option:focus-within {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.avatar-picker-option:has(input:checked) {
  border-color: var(--button-border-main);
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.avatar-picker-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.avatar-picker-option img {
  width: 52px;
  height: 52px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.avatar-picker-option input:checked ~ img {
  box-shadow: 0 0 0 2px var(--focus-outline);
}

.avatar-picker-option input:checked ~ span {
  color: var(--text-active);
}

.avatar-picker-actions {
  margin: 0;
  padding-top: 0.48rem;
  border-top: 1px solid var(--surface-card-border);
  background: linear-gradient(180deg, var(--window-content-start), var(--window-content-end));
}

.avatar-picker-actions button {
  min-height: 34px;
}

.avatar-picker-cancel-btn {
  border-color: var(--link-chip-border);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: var(--link-chip-bg);
  color: var(--button-text);
}

.map-preview {
  border: 1px solid var(--surface-card-border);
  background:
    linear-gradient(90deg, rgba(38, 46, 57, 0.35) 1px, transparent 1px) 0 0 / 18px 18px,
    linear-gradient(0deg, rgba(38, 46, 57, 0.35) 1px, transparent 1px) 0 0 / 18px 18px,
    #121923;
  min-height: 150px;
  padding: 0.7rem;
  margin-bottom: 0.6rem;
}

.map-window .window-body {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 0.55rem;
  overflow: hidden;
}

.map-window-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
}

.map-legend {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.map-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  padding: 0.18rem 0.3rem;
  font-size: 0.66rem;
  color: var(--surface-muted-text);
  line-height: 1;
}

.map-legend-item img {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.map-legend-filter {
  cursor: pointer;
  font: inherit;
}

.map-legend-filter.is-active {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(
    180deg,
    var(--interactive-fill-start, var(--button-start)),
    var(--interactive-fill-end, var(--button-end))
  );
  color: var(--interactive-fill-text, var(--button-text));
}

.desktop-map-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 0.55rem;
}

.desktop-map-canvas-shell {
  min-height: 0;
  border: 1px solid var(--surface-card-border);
  background: #0f1823;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
}

.desktop-map-canvas {
  min-height: 280px;
  height: 100%;
}

.desktop-map-empty {
  margin: 0.35rem;
}

.desktop-map-selection {
  border-top: 1px solid var(--surface-card-border);
  padding: 0.42rem 0.5rem;
  background: var(--surface-item-bg);
}

.desktop-map-selection .window-lead {
  margin: 0;
}

.desktop-map-selection .window-item-meta {
  margin-top: 0.16rem;
}

.desktop-map-sidebar {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-card-bg);
  padding: 0.45rem;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr);
  gap: 0.45rem;
}

.map-kind-filters {
  display: grid;
  gap: 0.25rem;
}

.map-kind-filters label {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.72rem;
  color: var(--surface-title-text);
}

.map-weekday-filters {
  display: grid;
  gap: 0.2rem;
}

.map-weekday-label {
  margin: 0;
  color: var(--form-label);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.map-weekday-filters .weekday-filter-option span {
  min-width: 30px;
  height: 24px;
  font-size: 0.64rem;
}

.desktop-map-results {
  min-height: 0;
  overflow: auto;
}

.desktop-map-result-row {
  border: 1px solid var(--surface-card-border);
  background: var(--surface-item-bg);
  display: grid;
  gap: 0.35rem;
  padding: 0.35rem 0.42rem;
}

.desktop-map-result-row.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.desktop-map-result-main {
  border: 0;
  background: transparent;
  text-align: left;
  color: inherit;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.desktop-map-result-main > span {
  display: grid;
  gap: 0.16rem;
}

.desktop-map-result-row .window-item-title,
.desktop-map-result-row .window-item-meta {
  display: block;
}

.desktop-map-result-map-link {
  justify-self: start;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  text-decoration: none;
  min-height: 22px;
  min-width: 0;
  padding: 0.18rem 0.42rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  font-size: 0.56rem;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  white-space: nowrap;
}

.desktop-map-result-map-link .external-link-icon {
  width: 0.8rem;
  height: 0.8rem;
  flex: 0 0 auto;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M5 2H2v8h8V7' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M6 2h4v4' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M10 2L5.5 6.5' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%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 12 12'%3E%3Cpath d='M5 2H2v8h8V7' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M6 2h4v4' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3Cpath d='M10 2L5.5 6.5' fill='none' stroke='%23000' stroke-width='1.2' stroke-linecap='square'/%3E%3C/svg%3E") center / contain no-repeat;
}

.desktop-map-result-map-link::after {
  content: "â†—";
  font-size: 0.54rem;
  line-height: 1;
}

.desktop-map-result-map-link::after {
  content: none;
}

.desktop-map-marker {
  width: 24px !important;
  height: 24px !important;
  border: 1px solid #1a2026;
  border-radius: 4px;
  background: #182130;
  padding: 2px;
  image-rendering: pixelated;
}

.desktop-map-marker--mic {
  border-color: #28698f;
  background: #13283a;
}

.desktop-map-marker--show {
  border-color: #f6b23c;
  background: #112844;
}

.desktop-map-marker--other {
  border-color: #516776;
  background: #1a2734;
}

.desktop-map-popup {
  min-width: 160px;
}

.desktop-map-popup-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.1rem;
  line-height: 1;
  color: #e9e1d2;
}

.desktop-map-popup-meta {
  margin: 0.14rem 0 0;
  color: #b8a88e;
  font-size: 0.66rem;
}

.desktop-map-popup-map-link {
  margin-top: 0.38rem;
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--link-chip-border);
  background: var(--link-chip-bg);
  text-decoration: none;
}

.desktop-map-popup-map-link-icon {
  width: 1.15rem;
  height: 1.15rem;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.leaflet-container {
  font-family: var(--font-ui);
  background: #101824;
}

.leaflet-control-zoom a {
  color: #ffd36a;
  background: #0e2036;
  border-color: #2c527a;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: #0e2036;
  color: #e9e1d2;
  border: 1px solid #18324f;
}

.window-action-btn,
.desktop-form-actions button {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.14) 100%),
    linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
  padding: 0 0.72rem;
  font-size: 0.69rem;
  line-height: 1;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  font-weight: 600;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.04),
    0 1px 0 rgba(0, 0, 0, 0.24);
  cursor: pointer;
  transition:
    filter 110ms steps(2, end),
    transform 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    border-color 110ms steps(2, end),
    background 110ms steps(2, end);
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

body:not([data-palette="nes"]) .window-action-btn:hover,
body:not([data-palette="nes"]) .desktop-form-actions button:hover,
body:not([data-palette="nes"]) .window-action-btn:focus-visible,
body:not([data-palette="nes"]) .desktop-form-actions button:focus-visible {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.06),
    0 0 0 1px var(--highlight-ring);
}

body:not([data-palette="nes"]) .window-action-btn:active,
body:not([data-palette="nes"]) .desktop-form-actions button:active {
  transform: translateY(0);
  filter: brightness(0.98);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.22);
}

.window-action-btn[disabled],
.window-action-btn.is-disabled {
  opacity: 0.45;
  cursor: default;
  filter: none;
  pointer-events: none;
}

.window-flash,
.window-error {
  margin: 0 0 0.6rem;
  border: 1px solid rgba(156, 200, 184, 0.4);
  background: rgba(156, 200, 184, 0.16);
  color: #d4f0e8;
  padding: 0.45rem 0.55rem;
  font-size: 0.72rem;
}

.window-error {
  border-color: rgba(205, 118, 118, 0.45);
  background: rgba(205, 118, 118, 0.18);
  color: #ffd2d2;
}

.auth-social-stack {
  margin: 0 0 0.65rem;
  display: grid;
  gap: 0.38rem;
}

.auth-social-stack--compact {
  margin-bottom: 0.55rem;
}

.auth-social-btn {
  width: 100%;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-width: 1px;
  border-style: solid;
  border-color: #1b3c64;
  border-top-color: #5e88b2;
  border-left-color: #5e88b2;
  background: linear-gradient(180deg, #2f557d 0%, #1d3a5a 100%);
  color: #f0f7ff;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    0 1px 0 rgba(0, 0, 0, 0.26);
  transition:
    filter 120ms ease,
    transform 120ms ease;
}

.auth-social-btn:hover,
.auth-social-btn:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.auth-social-btn:active {
  filter: brightness(0.98);
  transform: translateY(0);
}

.auth-social-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1px solid rgba(0, 0, 0, 0.22);
  background: #fff;
  color: #1f65d6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1;
}

.auth-social-divider {
  margin: 0;
  text-align: center;
  position: relative;
}

.auth-social-divider > span {
  display: inline-block;
  padding: 0 0.38rem;
  background: var(--surface-card-bg);
}

.auth-actions {
  margin-top: 0.7rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 0.42rem;
  justify-content: stretch;
}

.auth-actions .auth-btn,
.auth-actions button.auth-btn {
  width: 100%;
  min-height: 35px;
  padding: 0.22rem 0.74rem;
  justify-content: center;
  text-decoration: none;
  font-weight: 700;
  letter-spacing: 0.045em;
  line-height: 1;
  border-width: 1px;
  border-style: solid;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 1px 0 rgba(0, 0, 0, 0.26);
  transition:
    filter 120ms ease,
    transform 120ms ease,
    box-shadow 120ms ease;
}

.auth-actions .auth-btn--secondary {
  border-color: var(--button-border-main);
  border-top-color: var(--button-border-light);
  border-left-color: var(--button-border-light);
  background: linear-gradient(180deg, var(--button-start), var(--button-end));
  color: var(--button-text);
}

.auth-actions .auth-btn--quiet {
  border-color: rgba(255, 236, 194, 0.34);
  border-top-color: rgba(255, 236, 194, 0.44);
  border-left-color: rgba(255, 236, 194, 0.44);
  background: linear-gradient(180deg, rgba(255, 235, 198, 0.2) 0%, rgba(95, 56, 28, 0.44) 100%);
  color: #ffe5c3;
}

.auth-actions .auth-btn--oauth {
  border-color: #1b3c64;
  border-top-color: #5e88b2;
  border-left-color: #5e88b2;
  background: linear-gradient(180deg, #366089 0%, #1f3f63 100%);
  color: #f0f7ff;
}

.auth-actions .auth-btn:hover,
.auth-actions .auth-btn:focus-visible,
.auth-actions button.auth-btn:hover,
.auth-actions button.auth-btn:focus-visible {
  filter: brightness(1.07);
  transform: translateY(-1px);
}

.auth-actions .auth-btn:active,
.auth-actions button.auth-btn:active {
  transform: translateY(0);
  filter: brightness(0.98);
}

.auth-actions .auth-btn--primary,
.auth-actions .auth-submit-btn {
  border-color: rgba(96, 38, 12, 0.82);
  border-top-color: rgba(255, 204, 138, 0.84);
  border-left-color: rgba(255, 204, 138, 0.84);
  background: linear-gradient(180deg, #cb6f2f 0%, #94471c 100%);
  color: #fff1dd;
}

.manage-columns {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.manage-column h3 {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}

.row-actions {
  display: flex;
  gap: 0.45rem;
  align-items: center;
}

.row-actions form {
  margin: 0;
}

.row-link {
  border: 1px solid var(--link-chip-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(0, 0, 0, 0.12) 100%),
    var(--link-chip-bg);
  color: var(--link-chip-text);
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.52rem;
  font-size: 0.65rem;
  text-transform: uppercase;
  cursor: pointer;
  transition:
    filter 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    border-color 110ms steps(2, end);
}

.row-link-danger {
  color: #ffd3d3;
  border-color: rgba(205, 118, 118, 0.45);
  background: rgba(92, 28, 28, 0.46);
}

body:not([data-palette="nes"]) .row-link:hover,
body:not([data-palette="nes"]) .row-link:focus-visible,
body:not([data-palette="nes"]) .row-link-danger:hover,
body:not([data-palette="nes"]) .row-link-danger:focus-visible {
  filter: brightness(1.06);
  border-color: var(--focus-outline);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.desktop-form {
  display: grid;
  gap: 0.7rem;
}

.desktop-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.desktop-form-grid label {
  display: grid;
  gap: 0.26rem;
}

.desktop-form-grid label span {
  font-size: 0.66rem;
  color: var(--form-label);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.desktop-form-grid .full {
  grid-column: 1 / -1;
}

.desktop-form-fieldset {
  border: 1px solid var(--fieldset-border);
  background: var(--fieldset-bg);
  padding: 0.55rem;
  margin: 0;
  display: grid;
  gap: 0.55rem;
}

.desktop-form-fieldset legend {
  padding: 0 0.2rem;
  font-size: 0.66rem;
  color: var(--fieldset-legend);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.desktop-checkbox-row {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--text-main);
  font-size: 0.74rem;
}

.desktop-checkbox-row input[type="checkbox"] {
  width: 15px;
  height: 15px;
}

.desktop-form-fieldset .recurrence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.event-form-venue-inline .window-item-meta {
  margin: 0;
}

.event-form-venue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.recurrence-help {
  margin: 0;
}

.desktop-form-fieldset .recurrence-grid label.is-recurrence-locked {
  opacity: 0.66;
}

.desktop-form-fieldset .recurrence-grid .is-recurrence-locked-control {
  pointer-events: none;
  user-select: none;
  cursor: not-allowed;
  color: var(--surface-muted-text);
  background:
    linear-gradient(180deg, rgba(130, 130, 130, 0.2) 0%, rgba(40, 40, 40, 0.18) 100%),
    var(--form-field-bg);
}

.desktop-form-grid input,
.desktop-form-grid select,
.desktop-form-grid textarea {
  width: 100%;
  border: 1px solid var(--form-field-border);
  background: var(--form-field-bg);
  color: var(--text-main);
  padding: 0.45rem 0.5rem;
  font-size: 0.78rem;
  transition:
    border-color 110ms steps(2, end),
    box-shadow 110ms steps(2, end),
    background 110ms steps(2, end);
}

.desktop-form-grid select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 2rem;
  background:
    linear-gradient(45deg, transparent 50%, var(--button-text) 50%) calc(100% - 0.9rem) 50% / 0.32rem 0.32rem no-repeat,
    linear-gradient(135deg, var(--button-text) 50%, transparent 50%) calc(100% - 0.68rem) 50% / 0.32rem 0.32rem no-repeat,
    var(--form-field-bg);
}

body:not([data-palette="nes"]) .desktop-form-grid input:hover,
body:not([data-palette="nes"]) .desktop-form-grid select:hover,
body:not([data-palette="nes"]) .desktop-form-grid textarea:hover,
body:not([data-palette="nes"]) .event-filter-control > input:hover,
body:not([data-palette="nes"]) .event-filter-control > select:hover,
body:not([data-palette="nes"]) .admin-venue-search > input:hover,
body:not([data-palette="nes"]) .admin-venue-picker > select:hover,
body:not([data-palette="nes"]) .admin-theme-picker > select:hover,
body:not([data-palette="nes"]) .admin-workspace-select:hover,
body:not([data-palette="nes"]) .admin-bulk-toolbar-actions select:hover {
  border-color: var(--focus-outline);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.desktop-form-grid textarea {
  resize: vertical;
  min-height: 100px;
}

.desktop-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

.danger-strip {
  margin-top: 0.45rem;
  border: 1px dashed rgba(205, 118, 118, 0.45);
  background: rgba(94, 28, 28, 0.3);
  padding: 0.45rem 0.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.6rem;
}

.danger-strip p {
  margin: 0;
  font-size: 0.72rem;
  color: #ffd1d1;
}

.dock {
  height: var(--dock-height);
  background: var(--dock-shell-bg, linear-gradient(180deg, var(--dock-start), var(--dock-end)));
  border-top: 1px solid var(--dock-shell-border, var(--dock-border));
  position: sticky;
  bottom: 0;
  z-index: 200;
}

.dock-inner {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}

.dock-cycle-btn {
  display: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.dock-btn {
  flex: 0 0 92px;
  width: 92px;
  height: 92px;
  border-top: 1px solid var(--dock-btn-border-light, var(--brown-edge-light));
  border-left: 1px solid var(--dock-btn-border-light, var(--brown-edge-light));
  border-right: 1px solid var(--dock-btn-border-dark, var(--brown-edge-dark));
  border-bottom: 1px solid var(--dock-btn-border-dark, var(--brown-edge-dark));
  background: linear-gradient(180deg, var(--dock-btn-start), var(--dock-btn-end));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.32rem;
  position: relative;
  padding: 0.2rem 0.15rem 0.16rem;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.dock-btn,
.dock-icon-img,
.dock-label {
  transition:
    box-shadow 120ms steps(2, end),
    filter 120ms steps(2, end),
    color 120ms steps(2, end),
    transform 120ms steps(2, end);
}

.dock-btn--placeholder {
  cursor: not-allowed;
  opacity: 0.86;
}

.dock-btn--placeholder .dock-label {
  color: var(--surface-muted-text);
}

.dock-icon-img {
  width: 36px;
  height: 36px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: none;
}

.dock-icon-img--home-nes {
  display: none;
}

.dock-icon-img--mario {
  width: calc(36px * 1.1);
  height: calc(36px * 1.1);
}

.dock-label {
  color: var(--dock-label);
  font-size: var(--dock-label-size, 0.68rem);
  line-height: 1;
  letter-spacing: 0.01em;
  text-align: center;
  white-space: nowrap;
  text-shadow: var(--dock-label-shadow, 0 1px 0 rgba(0, 0, 0, 0.5));
  margin-top: 0.08rem;
}

.dock-btn:not(.dock-btn--placeholder):hover,
.dock-btn:not(.dock-btn--placeholder):focus-visible {
  box-shadow: inset 0 0 0 1px var(--highlight-ring), 0 0 0 1px var(--highlight-ring);
  z-index: 1;
}

.dock-btn:not(.dock-btn--placeholder):hover .dock-icon-img,
.dock-btn:not(.dock-btn--placeholder):focus-visible .dock-icon-img {
  filter: drop-shadow(0 0 4px var(--icon-active-shadow));
  transform: translateY(-1px);
}

.dock-btn:not(.dock-btn--placeholder):hover .dock-label,
.dock-btn:not(.dock-btn--placeholder):focus-visible .dock-label {
  color: var(--dock-label-active, var(--dock-label));
}

.dock-btn.is-active {
  box-shadow: inset 0 0 0 1px var(--highlight-ring);
}

.dock-btn.is-active .dock-icon-img {
  filter: drop-shadow(0 0 4px var(--icon-active-shadow));
  transform: translateY(-1px);
}

.dock-btn.is-active .dock-label {
  color: var(--dock-label-active, var(--dock-label));
}

.dock-base {
  height: var(--base-height);
  background: var(--dock-base-bg);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
}

.dock-base p {
  margin: 0;
  color: var(--dock-base-text);
  font-size: 0.64rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* NES palette gets a full pixel-console conversion while other palettes stay subtle. */
body[data-palette="nes"] {
  font-size: 11px;
  line-height: 1.55;
  background-color: #060714;
  background-image: url("/static/img/desktop/denver-8bit.png?v=1");
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: #121216;
}

body[data-palette="nes"] .top-strip {
  background: transparent !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

body[data-palette="nes"] .status-pill,
body[data-palette="nes"] .system-menu-link,
body[data-palette="nes"] .status-auth-btn {
  border: 2px solid var(--nes-frame-dark);
  background: linear-gradient(180deg, #f2f1ea 0%, #c8c7bf 100%);
  color: #17171a;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .status-pill {
  text-shadow: none;
}

body[data-palette="mint"] .status-time,
body[data-palette="nes"] .status-time {
  font-family: var(--status-clock-font-family);
  font-size: var(--status-clock-font-size);
  letter-spacing: var(--status-clock-letter-spacing);
  font-weight: var(--status-clock-font-weight);
}

body[data-palette="nes"] .system-menu-panel {
  border: 2px solid var(--nes-frame-dark);
  background: linear-gradient(180deg, #ecebe4 0%, #cfcec7 100%);
  box-shadow: 0 0 0 2px #f8f7ef, 8px 8px 0 rgba(0, 0, 0, 0.32);
}

body[data-palette="nes"] .desktop-context-menu {
  border: 2px solid var(--nes-frame-dark);
  background: linear-gradient(180deg, #ecebe4 0%, #cfcec7 100%);
  box-shadow: 0 0 0 2px #f8f7ef, 8px 8px 0 rgba(0, 0, 0, 0.32);
}

body[data-palette="nes"] .desktop-context-item {
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #151519;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .system-control span,
body[data-palette="nes"] .window-lead,
body[data-palette="nes"] .map-panel-label {
  letter-spacing: 0.08em;
  color: #35343a;
}

body[data-palette="nes"] .desktop-window {
  border: 2px solid var(--nes-frame-dark);
  border-radius: 0;
  background: linear-gradient(180deg, #efeee7 0%, #cbc9c1 100%);
  box-shadow: var(--window-shadow);
}

body[data-palette="nes"] .desktop-window.is-focused {
  box-shadow:
    0 0 0 2px var(--nes-accent-red),
    0 0 0 4px rgba(255, 255, 255, 0.95),
    10px 10px 0 rgba(0, 0, 0, 0.34);
}

body[data-palette="nes"] .window-titlebar {
  min-height: 30px;
  padding: 0.2rem 0.42rem;
  border-bottom: 2px solid #6f6e68;
  background: linear-gradient(180deg, #efeee7 0%, #cdcbc3 100%);
}

body[data-palette="nes"] .window-titlebar h2 {
  letter-spacing: 0.06em;
  color: #151519;
  text-shadow: none;
}

body[data-palette="nes"] .window-control {
  width: 24px;
  height: 22px;
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #151519;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .window-control[data-window-close],
body[data-palette="nes"] .window-control[data-drawer-close] {
  position: relative;
  display: grid;
  place-items: center;
  font-size: 0;
  line-height: 0;
  text-indent: -9999px;
  overflow: hidden;
  box-shadow: none;
}

body[data-palette="nes"] .window-control[data-window-close]::before,
body[data-palette="nes"] .window-control[data-window-close]::after,
body[data-palette="nes"] .window-control[data-drawer-close]::before,
body[data-palette="nes"] .window-control[data-drawer-close]::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 9px;
  height: 2px;
  background: currentColor;
  transform-origin: center;
}

body[data-palette="nes"] .window-control[data-window-close]::before,
body[data-palette="nes"] .window-control[data-drawer-close]::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

body[data-palette="nes"] .window-control[data-window-close]::after,
body[data-palette="nes"] .window-control[data-drawer-close]::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

body[data-palette="nes"] .window-control-maximize,
body[data-palette="nes"] .window-control-maximize:focus-visible,
body[data-palette="nes"] .window-control-maximize:hover,
body[data-palette="nes"] .window-control-maximize:active {
  width: 24px;
  min-width: 24px;
  height: 24px;
  padding: 0;
  border: 0 !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: transparent;
  text-indent: -9999px;
  overflow: hidden;
  background: url("/static/img/icons/ui/nes-console.svg") center / 24px 24px no-repeat !important;
  background-color: transparent !important;
  outline: none;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body[data-palette="nes"] .window-control-mute.is-muted,
body[data-palette="nes"] .window-control:active {
  background: linear-gradient(180deg, #cbcac3 0%, #f2f1ea 100%);
  box-shadow: inset 2px 2px 0 0 #8e8d87, inset -2px -2px 0 0 #ffffff;
}

body[data-palette="nes"] .window-control[data-window-close]:active,
body[data-palette="nes"] .window-control[data-drawer-close]:active {
  box-shadow: none;
}

body[data-palette="nes"] .window-body,
body[data-palette="nes"] .manage-window-body,
body[data-palette="nes"] .window-content,
body[data-palette="nes"] .window-sidebar {
  border-color: #7d7c76;
  background: linear-gradient(180deg, #f2f1ea 0%, #dbdad3 100%);
}

body[data-palette="nes"] .home-summary-card,
body[data-palette="nes"] .home-newsletter,
body[data-palette="nes"] .event-calendar-shell,
body[data-palette="nes"] .window-item,
body[data-palette="nes"] .event-row-btn,
body[data-palette="nes"] .event-calendar-day,
body[data-palette="nes"] .calendar-event-chip,
body[data-palette="nes"] .map-event-row,
body[data-palette="nes"] .guestbook-preview-item,
body[data-palette="nes"] .system-control,
body[data-palette="nes"] .event-drawer-meta-grid p {
  border: 2px solid #8e8d87;
  background: #ecebe4;
  box-shadow: inset -2px -2px 0 0 #c9c8c1, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .window-item-title,
body[data-palette="nes"] .event-row-title,
body[data-palette="nes"] .map-event-title,
body[data-palette="nes"] .home-summary-sentence {
  color: #1a1a1d;
  text-shadow: none;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

body[data-palette="nes"] .window-item-meta,
body[data-palette="nes"] .event-row-meta,
body[data-palette="nes"] .map-event-meta,
body[data-palette="nes"] .event-calendar-empty,
body[data-palette="nes"] .home-news-lorem,
body[data-palette="nes"] .window-empty,
body[data-palette="nes"] .system-tagline {
  color: #3f3e45;
  line-height: 1.3;
}

body[data-palette="nes"] .guestbook-message-author,
body[data-palette="nes"] .guestbook-message-text {
  color: #1a1a1d;
  text-shadow: none;
}

body[data-palette="nes"] .guestbook-message-time {
  color: #3f3e45;
}

body[data-palette="nes"] .guestbook-message-icon {
  display: block;
  border-color: #8e8d87;
  background: #f4f3ec;
}

body[data-palette="nes"] .guestbook-visitor-cta {
  border-color: #8e8d87;
  background: linear-gradient(180deg, #efeee7 0%, #d9d8d0 100%);
}

body[data-palette="nes"] .guestbook-toolbar-note {
  color: #3f3e45;
}

body[data-palette="nes"] .guestbook-list {
  border-color: #8e8d87;
  background: linear-gradient(180deg, #f4f3ec 0%, #d8d7cf 100%);
}

body[data-palette="nes"] .guestbook-message-item,
body[data-palette="nes"] .guestbook-panel--locked,
body[data-palette="nes"] .guestbook-compose-form {
  border: 2px solid #8e8d87;
  background: #ecebe4;
  box-shadow: inset -2px -2px 0 0 #c9c8c1, inset 2px 2px 0 0 #ffffff;
}

body[data-palette="nes"] .guestbook-locked-copy {
  color: #1a1a1d;
}

body[data-palette="nes"] .guestbook-list::-webkit-scrollbar-track {
  background: linear-gradient(180deg, #e8e7df 0%, #cbc9c2 100%);
  border-color: #8e8d87;
}

body[data-palette="nes"] .desktop-map-result-row {
  gap: 0.42rem;
  padding: 0.46rem 0.52rem;
}

body[data-palette="nes"] .desktop-map-result-map-link {
  min-height: 26px;
  min-width: 0;
  padding: 0.18rem 0.44rem;
}

body[data-palette="nes"] .desktop-map-result-map-link .external-link-icon {
  width: 0.76rem;
  height: 0.76rem;
}

body[data-palette="nes"] button:not(.dock-btn),
body[data-palette="nes"] .system-choice-btn,
body[data-palette="nes"] .window-action-btn,
body[data-palette="nes"] .window-item-link,
body[data-palette="nes"] .hub-tab,
body[data-palette="nes"] .event-view-btn,
body[data-palette="nes"] .calendar-nav-btn,
body[data-palette="nes"] .map-legend-item,
body[data-palette="nes"] .desktop-map-link {
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #151519;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
  text-transform: uppercase;
}

body[data-palette="nes"] button:not(.dock-btn):active,
body[data-palette="nes"] .system-choice-btn:active,
body[data-palette="nes"] .window-action-btn:active,
body[data-palette="nes"] .window-item-link:active,
body[data-palette="nes"] .hub-tab:active,
body[data-palette="nes"] .event-view-btn:active,
body[data-palette="nes"] .calendar-nav-btn:active,
body[data-palette="nes"] .map-legend-item:active,
body[data-palette="nes"] .desktop-map-link:active {
  background: linear-gradient(180deg, #cbcac3 0%, #f2f1ea 100%);
  box-shadow: inset 2px 2px 0 0 #8e8d87, inset -2px -2px 0 0 #ffffff;
}

body[data-palette="nes"] .system-choice-btn.is-active,
body[data-palette="nes"] .hub-tab.is-active,
body[data-palette="nes"] .event-view-btn.is-active,
body[data-palette="nes"] .map-legend-filter.is-active,
body[data-palette="nes"] .event-kind-quick-filter.is-active,
body[data-palette="nes"] .event-kind-quick-filter[aria-pressed="true"] {
  color: var(--nes-accent-red-dark);
  border-color: #18181c;
  box-shadow:
    inset -2px -2px 0 0 #8e8d87,
    inset 2px 2px 0 0 #ffffff,
    0 0 0 2px rgba(201, 59, 51, 0.38);
}

body[data-palette="nes"] .event-kind-quick-filter.is-active,
body[data-palette="nes"] .event-kind-quick-filter[aria-pressed="true"] {
  color: #fff9ef;
  text-shadow: none;
  background: linear-gradient(180deg, #c84f48 0%, #8f302b 100%);
  box-shadow:
    inset -2px -2px 0 0 #61201d,
    inset 2px 2px 0 0 #f2a49f,
    0 0 0 2px rgba(201, 59, 51, 0.42);
}

body[data-palette="nes"] .system-choice-grid--palette .system-choice-btn {
  font-size: var(--settings-palette-btn-size);
  letter-spacing: 0.03em;
}

body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn:disabled,
body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn.is-disabled {
  background: linear-gradient(180deg, #d8d7cf 0%, #b9b8b1 100%);
  border-color: #6f6e68;
  color: #5c5b55;
  box-shadow: inset -2px -2px 0 0 #9d9c95, inset 2px 2px 0 0 #ecebe4;
}

body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn:disabled .system-choice-icon,
body[data-palette="nes"] .system-choice-grid--icons .system-choice-btn.is-disabled .system-choice-icon {
  filter: grayscale(1) contrast(0.82) brightness(0.8);
  opacity: 0.6;
}

body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn,
body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn:active,
body[data-palette="nes"] [data-window="settings-window"] .settings-window-action-btn.is-active {
  border: 0;
  background: transparent;
  box-shadow: none;
}

body[data-palette="nes"] input,
body[data-palette="nes"] select,
body[data-palette="nes"] textarea {
  border: 2px solid #6f6e68;
  background: #f7f6ef;
  color: #111115;
  box-shadow: inset 2px 2px 0 0 #c7c6bf;
}

body[data-palette="nes"] .admin-workspace-select,
body[data-palette="nes"] .event-filter-control > select,
body[data-palette="nes"] .admin-venue-picker > select,
body[data-palette="nes"] .admin-theme-picker > select,
body[data-palette="nes"] .admin-bulk-toolbar-actions select,
body[data-palette="nes"] .desktop-form-grid select {
  background:
    linear-gradient(45deg, transparent 50%, #151519 50%) calc(100% - 1rem) 50% / 0.34rem 0.34rem no-repeat,
    linear-gradient(135deg, #151519 50%, transparent 50%) calc(100% - 0.76rem) 50% / 0.34rem 0.34rem no-repeat,
    linear-gradient(180deg, #f7f6ef 0%, #d7d6ce 100%);
  padding-right: 2.2rem;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

body[data-palette="nes"] .dock {
  background: transparent !important;
  border-top: 0 !important;
  box-shadow: none !important;
}

body[data-palette="nes"] .dock-btn {
  border-width: 1px;
  border-color: #7a7972;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  box-shadow: none;
}

body[data-palette="nes"] .dock-btn.is-active {
  border-color: #7a7972;
  box-shadow: none;
}

body[data-palette="nes"] .dock-label {
  font-family: "IBM Plex Mono", "Courier New", monospace;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.08;
  margin-top: 0.12rem;
  padding-top: 2px;
  letter-spacing: 0.01em;
  color: #121216;
  max-width: 100%;
  overflow: visible;
  text-overflow: initial;
}

body[data-palette="nes"] .dock-btn .dock-label,
body[data-palette="nes"] .dock-btn.is-active .dock-label,
body[data-palette="nes"] .dock-btn:not(.dock-btn--placeholder):hover .dock-label,
body[data-palette="nes"] .dock-btn:not(.dock-btn--placeholder):focus-visible .dock-label {
  color: #121216;
}

body[data-palette="nes"] .dock-base {
  border-top: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body[data-palette="nes"] .dock-base p {
  color: #1f1f23;
  letter-spacing: 0.08em;
}

body[data-palette="nes"] .system-choice-icon,
body[data-palette="nes"] .dock-icon-img,
body[data-palette="nes"] .status-auth-icon,
body[data-palette="nes"] .window-control-icon {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

body[data-palette="nes"] .window-title-icon--home-default {
  display: none;
}

body[data-palette="nes"] .window-title-icon--home-nes {
  display: block;
}

body[data-palette="nes"] .dock-icon-img--home-default {
  display: none;
}

body[data-palette="nes"] .dock-icon-img--home-nes {
  display: block;
}

body[data-palette="nes"] .event-drawer {
  border-left: 2px solid #6f6e68;
  background: linear-gradient(180deg, #efeee7 0%, #c8c7bf 100%);
  box-shadow: -10px 0 0 rgba(0, 0, 0, 0.25);
}

body[data-palette="nes"] .event-drawer-header h2 {
  color: #252529;
  text-shadow: none;
}

body[data-palette="nes"] .map-window .leaflet-control-zoom a {
  border: 2px solid #5f5e58;
  background: linear-gradient(180deg, #f4f3ec 0%, #d0cfc8 100%);
  color: #16161a;
  box-shadow: inset -2px -2px 0 0 #8e8d87, inset 2px 2px 0 0 #ffffff;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--focus-outline);
  outline-offset: 1px;
}

@media (max-width: 980px) {
  :root {
    --home-carousel-frame-aspect-ratio: 60 / 23;
  }

  html,
  body {
    height: 100dvh;
    overflow: hidden;
    overscroll-behavior: none;
  }

  .desktop-main {
    min-height: 0;
    height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height));
    padding: 0.08rem 0.28rem 0.5rem;
  }

  body[data-active-window="home"] .desktop-main {
    padding-top: 0;
  }

  body[data-active-window="admin"] .desktop-main {
    height: calc(100dvh - var(--header-height) - var(--base-height));
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  body:not([data-active-window="home"]) .desktop-main {
    height: calc(100dvh - var(--header-height) - var(--base-height));
  }

  .desktop-canvas {
    min-height: 0;
    height: 100%;
    display: block;
    overflow: visible;
  }

  .home-desktop {
    min-height: 320px;
  }

  .full-page-shell {
    padding-bottom: 0;
  }

  .page-grid {
    grid-template-columns: 1fr;
  }

  .admin-control-grid {
    grid-template-columns: 1fr;
    gap: 0.12rem;
  }

  .admin-nav-shell {
    position: sticky;
    top: 0.16rem;
    z-index: 915;
    max-height: none;
    overflow: visible;
    padding-bottom: 0.06rem;
  }

  .admin-nav-group {
    gap: 0.3rem;
  }

  .admin-nav-group > .window-lead {
    margin: 0 0 0.08rem;
    font-size: 0.62rem;
  }

  .admin-workspace-picker {
    display: grid;
    margin: 0;
  }

  .admin-workspace-picker-label {
    font-size: 0.58rem;
    letter-spacing: 0.06em;
  }

  .admin-workspace-select {
    min-height: 40px;
    font-size: 0.72rem;
  }

  .admin-launcher-grid,
  .admin-launcher-grid--stack {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.34rem;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: clamp(172px, 35vh, 308px);
    padding: 0.04rem 0.18rem 0.2rem 0.02rem;
    scroll-snap-type: none;
    -ms-overflow-style: auto;
    scrollbar-width: thin;
  }

  .admin-launcher-grid::-webkit-scrollbar,
  .admin-launcher-grid--stack::-webkit-scrollbar {
    width: max(8px, calc(var(--scrollbar-size) - 3px));
  }

  .admin-launcher-grid::-webkit-scrollbar-track,
  .admin-launcher-grid--stack::-webkit-scrollbar-track {
    background: linear-gradient(180deg, var(--scrollbar-track), rgba(22, 12, 8, 0.65));
    border: 1px solid var(--scrollbar-track-edge);
    border-radius: 2px;
  }

  .admin-launcher-grid::-webkit-scrollbar-thumb,
  .admin-launcher-grid--stack::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--scrollbar-thumb-start), var(--scrollbar-thumb-end));
    border: 1px solid var(--scrollbar-thumb-border);
    border-radius: 2px;
  }

  .admin-launcher-grid::-webkit-scrollbar-thumb:hover,
  .admin-launcher-grid--stack::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, var(--scrollbar-thumb-hover-start), var(--scrollbar-thumb-hover-end));
  }

  .admin-launcher-grid--stack .window-action-btn {
    min-width: 0;
    width: 100%;
    min-height: 42px;
    padding: 0.42rem 0.5rem;
    justify-content: center;
    text-align: center;
    scroll-snap-align: none;
    line-height: 1.16;
  }

  .admin-launcher-grid,
  .admin-launcher-grid--stack {
    display: none;
  }

  .admin-panel-shell .window-action-btn,
  .admin-panel-shell .row-link,
  .admin-panel-shell .row-link-danger {
    min-height: 38px;
    font-size: 0.72rem;
  }

  .admin-editor-tabs {
    max-width: none;
  }

  .admin-editor-tab {
    min-height: 38px;
    font-size: 0.72rem;
  }

  .admin-panel-shell .event-listing-card--admin .event-listing-card-chip,
  .admin-panel-shell .event-listing-card--admin .event-listing-card-action {
    min-height: 38px;
    font-size: 0.72rem;
  }

  .admin-panel-shell .event-filter-control > input,
  .admin-panel-shell .event-filter-control > select,
  .admin-panel-shell .admin-venue-search > input,
  .admin-panel-shell .admin-venue-picker > select,
  .admin-panel-shell .admin-theme-picker > select,
  .admin-panel-shell .desktop-form-grid input,
  .admin-panel-shell .desktop-form-grid select,
  .admin-panel-shell .desktop-form-grid textarea {
    min-height: 38px;
    font-size: 0.82rem;
  }

  .admin-event-editor-modal {
    z-index: 1400;
    padding: calc(var(--header-height) + 0.16rem) 0.26rem 0.26rem;
  }

  .admin-event-editor-shell {
    width: min(100vw - 0.52rem, 980px);
    max-height: calc(100dvh - var(--header-height) - 0.34rem);
  }

  .admin-event-editor-body {
    padding: 0.34rem 0.36rem calc(0.54rem + env(safe-area-inset-bottom));
  }

  .admin-panel-shell {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    width: 100%;
    min-width: 0;
    height: auto;
    max-height: none;
    padding: 0;
    overflow: visible;
    z-index: auto;
    transform: none;
    opacity: 1;
    pointer-events: auto;
    transition: none;
    border: 0;
    background: none;
    box-shadow: none;
    border-radius: 0;
  }

  .admin-panel-shell-head {
    display: none;
  }

  .admin-panel-shell-head .window-lead {
    margin: 0;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .admin-panel-close-btn {
    min-height: 36px;
    min-width: 86px;
  }

  .admin-panel-backdrop {
    display: none !important;
  }

  .admin-control-grid.is-panel-open .admin-panel-shell {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }

  .admin-summary-grid,
  .admin-metric-columns {
    grid-template-columns: 1fr;
  }

  .admin-launcher-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-venue-header {
    flex-direction: column;
    align-items: stretch;
  }

  .admin-venue-search {
    min-width: 0;
  }

  .admin-venue-picker {
    max-width: none;
  }

  .admin-venue-workspace {
    grid-template-columns: 1fr;
  }

  .admin-venue-list {
    max-height: 220px;
  }

  .event-browser-toolbar {
    flex-direction: column;
  }

  .event-view-toggle {
    width: 100%;
  }

  .event-view-btn {
    flex: 1 1 auto;
    min-height: 36px;
  }

  .event-seo-day-links {
    width: 100%;
  }

  .event-seo-day-links a {
    flex: 1 1 calc(50% - 0.35rem);
    justify-content: center;
  }

  .event-seo-link-list {
    padding: 0.45rem;
  }

  .event-seo-links {
    max-height: 190px;
  }

  .admin-panel-shell .event-row-admin {
    flex-direction: column;
    gap: 0.5rem;
  }

  .admin-panel-shell .event-row-admin-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .admin-panel-shell .event-row-admin-actions .row-actions {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.34rem;
  }

  .admin-panel-shell .event-row-admin-actions .row-link,
  .admin-panel-shell .event-row-admin-actions .row-link-danger {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .admin-event-editor-shell .window-action-btn,
  .admin-event-editor-shell .row-link,
  .admin-event-editor-shell .row-link-danger {
    min-height: 38px;
    font-size: 0.74rem;
  }

  .admin-event-editor-shell .desktop-form-grid input,
  .admin-event-editor-shell .desktop-form-grid select,
  .admin-event-editor-shell .desktop-form-grid textarea {
    min-height: 38px;
    font-size: 0.82rem;
  }

  .admin-message-console-layout.is-drawer-open .admin-message-console-feed {
    padding-right: 0;
  }

  .admin-message-console-drawer {
    position: fixed;
    left: 0.45rem;
    right: 0.45rem;
    top: 0.6rem;
    bottom: 0.7rem;
    width: auto;
    max-width: none;
  }

  .admin-users-console.is-drawer-open .admin-user-grid {
    padding-right: 0;
  }

  .admin-user-console-drawer {
    position: fixed;
    left: 0.45rem;
    right: 0.45rem;
    top: 0.6rem;
    bottom: 0.7rem;
    width: auto;
    max-width: none;
  }

  [data-window="settings-window"] .system-control--cursor {
    display: none;
  }

  [data-window="settings-window"] .settings-window-footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
  }

  [data-window="settings-window"] .settings-footer-actions {
    justify-content: flex-end;
    align-self: auto;
    flex-shrink: 0;
  }

  [data-window="settings-window"] .settings-legal-links {
    justify-content: flex-end;
    gap: 0.28rem 0.48rem;
  }

  [data-window="settings-window"] .settings-legal-links a {
    font-size: 0.52rem;
  }

  [data-window="settings-window"] .settings-window-action-btn {
    width: 30px;
    min-width: 30px;
    min-height: 30px;
  }

  [data-window="settings-window"] .settings-window-action-icon {
    width: 28px;
    height: 28px;
  }

  [data-window="settings-window"] .settings-terminal-btn {
    width: 26px;
    min-width: 26px;
    min-height: 26px;
  }

  [data-window="settings-window"] .settings-terminal-btn .settings-window-action-icon {
    width: 22px;
    height: 22px;
  }

  .event-filter-row {
    flex-direction: column;
    align-items: stretch;
  }

  .event-kind-quick-filters {
    width: 100%;
  }

  .event-kind-quick-filter {
    flex: 1 1 120px;
  }

  .event-list-month-nav {
    flex-direction: column;
    align-items: stretch;
  }

  .schedule-month-nav {
    flex-direction: column;
    align-items: stretch;
  }

  .schedule-month-nav-title {
    text-align: left;
  }

  .schedule-month-nav .window-action-btn {
    width: 100%;
    min-width: 0;
  }

  .analytics-week-nav .schedule-month-nav-title {
    text-align: center;
  }

  .analytics-week-nav .window-action-btn {
    min-width: 86px;
  }

  .event-list-month-nav .event-filter-control--month {
    flex: 1 1 auto;
  }

  .desktop-map-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(280px, 45vh) auto;
  }

  .map-window-toolbar {
    flex-direction: column;
    align-items: flex-start;
  }

  .event-calendar-day {
    min-height: 96px;
  }

  [data-window="calendar-window"] .event-filter-row {
    display: none;
  }

  [data-window="calendar-window"] .event-browser-window {
    grid-template-rows: minmax(0, 1fr);
  }

  [data-window="calendar-window"] .event-calendar-shell {
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 0.42rem;
  }

  [data-window="calendar-window"] .event-calendar-nav .calendar-nav-btn {
    min-width: 76px;
  }

  [data-window="calendar-window"] .event-calendar-weekdays,
  [data-window="calendar-window"] .event-calendar-grid {
    display: none;
  }

  [data-window="calendar-window"] .event-calendar-day-nav {
    display: grid;
  }

  [data-window="calendar-window"] .event-calendar-mobile-day {
    display: block;
    min-height: 220px;
    max-height: min(54vh, 460px);
    border: 1px solid var(--surface-card-border);
    background: var(--surface-item-bg);
    padding: 0.42rem;
    overflow-y: auto;
    overflow-x: hidden;
  }

  .desktop-window {
    width: min(var(--window-w, 440px), 84vw);
    max-width: 84vw;
    height: min(var(--window-h, 260px), calc(100% - 82px));
    min-height: min(var(--window-h, 260px), calc(100% - 82px));
    max-height: calc(100% - 82px);
  }

  .desktop-window--main {
    width: min(var(--window-w, 1100px), 92vw);
    max-width: 92vw;
    height: min(var(--window-h, 260px), calc(100% - 18px));
    min-height: min(var(--window-h, 260px), calc(100% - 18px));
    max-height: calc(100% - 18px);
  }

  .desktop-window.game-window {
    width: min(var(--window-w, 860px), calc(100% - 4px));
    max-width: calc(100% - 4px);
    min-height: 0;
    height: auto;
    max-height: calc(100% - 2px);
    border-radius: 0;
  }

  .desktop-window.game-window .window-titlebar {
    min-height: 40px;
    padding: 0.24rem 0.46rem;
  }

  .desktop-window.game-window .window-body.game-window-body {
    margin: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    min-height: 0;
    max-height: none;
    height: auto;
    padding: 0.24rem;
  }

  .desktop-window.game-window .game-play-shell,
  .desktop-window.game-window .flash-stage-shell,
  .desktop-window.game-window .flash-stage {
    min-height: 0;
  }

  .desktop-window.game-window .flash-stage-shell {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    padding: 0.2rem;
  }

  .desktop-window.game-window .flash-stage {
    width: 100%;
    height: 100%;
    aspect-ratio: 4 / 3;
  }

  .desktop-window.game-window .flash-stage ruffle-player,
  .desktop-window.game-window .flash-stage canvas {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
  }

  .desktop-window.about-window {
    width: min(var(--window-w, 520px), 92vw, calc((100dvh - 160px) * 0.6667));
    max-width: 92vw;
    height: auto;
    min-height: 0;
    max-height: calc(100% - 4px);
  }

  .desktop-window.about-window .about-window-body {
    min-height: 0;
    max-height: calc(100% - 44px);
    height: auto;
    padding: 0.32rem;
    overflow: hidden;
  }

  .desktop-window.about-window .about-window-canvas {
    height: auto;
    max-height: 100%;
    aspect-ratio: 2 / 3;
  }

  .news-layout {
    grid-template-columns: 1fr;
  }

  .home-summary-grid {
    grid-template-columns: 1fr;
  }

  .home-summary-title {
    font-size: 0.88rem;
  }

  .home-summary-sublead {
    font-size: 0.6rem;
  }

  .home-section-divider {
    height: 2px;
    opacity: 0.62;
  }

  .home-carousel-viewport {
    min-height: 124px;
  }

  .home-carousel-controls {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.2rem;
  }

  .home-carousel-nav {
    min-width: 44px;
    width: auto;
    min-height: 24px;
    padding: 0 0.35rem;
  }

  .home-carousel-dots {
    min-height: 24px;
    padding: 0 0.28rem;
    gap: 0.18rem;
  }

  .home-carousel-dot {
    width: 14px;
    height: 14px;
  }

  .window-titlebar {
    min-height: 40px;
    padding: 0.24rem 0.42rem;
    cursor: grab;
    touch-action: none;
  }

  .window-titlebar:active {
    cursor: grabbing;
  }

  .window-titlebar h2 {
    font-size: var(--window-title-font-size-mobile);
    letter-spacing: 0.05em;
  }

  .window-controls {
    gap: 0.3rem;
  }

  .window-control {
    width: 36px;
    height: 34px;
    font-size: 1rem;
  }

  .window-control-maximize {
    background-size: 18px 18px;
  }

  body:not([data-palette="nes"]) .window-control-maximize {
    background-size: 22px 22px;
  }

  .window-control-icon {
    width: 18px;
    height: 18px;
  }

  .window-content,
  .window-body,
  .manage-window-body {
    min-height: 0;
    max-height: calc(100% - 44px);
  }

  .window-body,
  .manage-window-body {
    overflow-y: auto;
    overflow-x: hidden;
  }

  .event-drawer {
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    width: 100%;
    height: min(84dvh, 720px);
    border-left: 0;
    border-top: 1px solid var(--brown-edge-light);
    box-shadow: 0 -16px 30px rgba(0, 0, 0, 0.4);
    transform: translateY(102%);
  }

  .event-drawer.is-open {
    transform: translateY(0);
  }

  .event-drawer-header {
    position: relative;
    padding-top: 1.1rem;
  }

  .event-drawer-header [data-drawer-kind] {
    display: none;
  }

  .event-drawer-header::before {
    content: "";
    position: absolute;
    top: 0.4rem;
    left: 50%;
    width: 52px;
    height: 4px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: var(--surface-card-border);
  }

  .event-drawer-body {
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom));
  }

  .manage-columns,
  .desktop-form-grid {
    grid-template-columns: 1fr;
  }

  .desktop-form-fieldset .recurrence-grid,
  .event-form-venue-grid {
    grid-template-columns: 1fr;
  }

  .dock {
    height: var(--dock-height);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 240;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.18rem;
    padding: 0 0.2rem;
  }

  .dock-inner {
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: hidden;
    overflow-y: hidden;
    padding: 0;
    scroll-behavior: auto;
    touch-action: pan-y;
    overscroll-behavior-x: contain;
    -ms-overflow-style: none;
    scrollbar-width: none;
  }

  .dock-inner.container {
    width: 100%;
    margin: 0;
    max-width: none;
  }

  .dock-cycle-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 70px;
    padding: 0;
    border: 1px solid var(--dock-btn-border-dark, var(--brown-edge-dark));
    border-top-color: var(--dock-btn-border-light, var(--brown-edge-light));
    border-left-color: var(--dock-btn-border-light, var(--brown-edge-light));
    background: linear-gradient(180deg, var(--dock-btn-start), var(--dock-btn-end));
    color: var(--dock-label);
    font-size: 0.74rem;
    line-height: 1;
    cursor: pointer;
    flex: 0 0 auto;
  }

  .dock-cycle-btn:disabled {
    opacity: 0.45;
    cursor: default;
    filter: none;
  }

  .dock-inner::-webkit-scrollbar {
    display: none;
  }

  .dock-btn {
    flex: 0 0 calc(100% / 5);
    width: calc(100% / 5);
    max-width: calc(100% / 5);
    height: 72px;
    gap: 0.16rem;
    padding: 0.14rem 0.08rem 0.12rem;
  }

  .dock-icon-img {
    width: 30px;
    height: 30px;
  }

  .dock-label {
    font-size: 0.56rem;
  }

  .dock-base {
    height: var(--base-height);
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0;
    z-index: 239;
  }

  .dock-base .container {
    width: 100%;
    max-width: none;
    padding: 0 0.45rem;
  }
}

@media (min-width: 981px) and (max-height: 900px) {
  .desktop-main {
    min-height: 0;
    height: calc(100dvh - var(--header-height) - var(--dock-height) - var(--base-height));
    padding: 0.2rem 0 0.7rem;
  }

  body[data-active-window="home"] .desktop-main {
    padding-top: 0.08rem;
  }

  body[data-active-window="admin"] .desktop-main,
  body:not([data-active-window="home"]) .desktop-main {
    height: calc(100dvh - var(--header-height) - var(--base-height));
  }

  .desktop-canvas {
    min-height: 0;
    height: 100%;
    overflow: visible;
  }

  .desktop-window {
    --window-height-effective: min(var(--window-h, 260px), calc(100% - 28px));
    width: min(var(--window-w, 440px), 88vw);
    max-width: 88vw;
    height: var(--window-height-effective);
    min-height: var(--window-height-effective);
    max-height: var(--window-height-effective);
  }

  .desktop-window--main {
    --window-height-effective: min(var(--window-h, 260px), calc(100% - 12px));
    width: min(var(--window-w, 1100px), 94vw);
    max-width: 94vw;
  }

  .window-content,
  .window-body,
  .manage-window-body {
    min-height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
    max-height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
  }

  .game-window-body {
    height: calc(var(--window-height-effective, var(--window-h, 260px)) - 44px);
  }
}

@media (max-width: 620px) {
  :root {
    /* Keep header controls visible even when safe-area reports 0 on some mobile browsers. */
    --mobile-safe-top-inset: max(env(safe-area-inset-top), 10px);
    --header-height: calc(42px + var(--mobile-safe-top-inset));
  }

  .top-strip {
    height: var(--header-height);
    padding-top: calc(2px + var(--mobile-safe-top-inset));
  }

  .top-strip-inner {
    align-items: flex-start;
    gap: 0.35rem;
  }

  .status-cluster {
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 0.3rem;
  }

  .status-pill {
    min-height: 24px;
    padding: 0 0.4rem;
    font-size: 0.58rem;
    letter-spacing: 0.05em;
  }

  .status-auth-btn {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    padding: 0;
  }

  .status-auth-icon {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }

  .system-menu-panel {
    right: auto;
    left: 0.2rem;
    width: min(340px, 94vw);
  }

  .system-menu-links,
  .system-menu-controls {
    grid-template-columns: 1fr;
  }

  .system-choice-grid--palette {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .status-time {
    margin-left: 0;
  }

  .status-time-btn {
    gap: 0.26rem;
  }

  .status-time-icon {
    width: 14px;
    height: 14px;
  }

  .dock {
    gap: 0.14rem;
    padding: 0 0.16rem;
  }

  .dock-cycle-btn {
    width: 26px;
    height: 66px;
    font-size: 0.7rem;
  }

  .dock-btn {
    flex: 0 0 calc(100% / 5);
    width: calc(100% / 5);
    max-width: calc(100% / 5);
    height: 68px;
    gap: 0.14rem;
    padding: 0.12rem 0.06rem 0.1rem;
  }

  .event-calendar-grid,
  .event-calendar-weekdays {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .event-calendar-day.is-empty {
    display: none;
  }

  .dock-icon-img {
    width: 28px;
    height: 28px;
  }

  .dock-label {
    font-size: 0.53rem;
  }

  .window-item:not(.event-listing-card) {
    flex-direction: column;
    align-items: flex-start;
  }

  .window-item:not(.event-listing-card)[data-event-detail] {
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
  }

  .window-item.event-window-item[data-event-detail] {
    align-items: stretch;
  }

  .event-window-item-thumb {
    width: 66px;
    min-width: 66px;
  }

  .window-item.event-listing-card--admin[data-event-detail] {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .event-listing-card-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.28rem;
  }

  .event-listing-card--with-media {
    grid-template-columns: minmax(0, 1fr);
  }

  .event-listing-card-media {
    min-height: 120px;
  }

  .event-listing-card-row,
  .venue-info-card-row,
  .admin-venue-info-card-row {
    grid-template-columns: 1fr;
    gap: 0.08rem;
  }

  .admin-venue-info-card-layout {
    grid-template-columns: 1fr;
  }

  .admin-venue-info-card-media {
    grid-template-columns: 1fr;
  }

  .event-listing-card-action {
    grid-column: 1;
    grid-row: auto;
    align-self: flex-start;
  }

  .venue-card-grid {
    grid-template-columns: 1fr;
  }

  .guestbook-message-item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 0.34rem;
    padding: 0.34rem 0.38rem;
  }

  .guestbook-visitor-cta {
    padding: 0.42rem 0.44rem;
    gap: 0.32rem;
  }

  .guestbook-toolbar-note {
    font-size: 0.56rem;
    letter-spacing: 0.05em;
    line-height: 1.24;
  }

  .guestbook-locked-btn {
    width: 100%;
    min-height: 32px;
    padding: 0 0.42rem;
    justify-content: center;
    text-align: center;
    font-size: 0.68rem;
  }

  .guestbook-list {
    padding: 0.3rem 0.28rem 0.28rem 0.36rem;
  }

  .guestbook-message-icon {
    display: block;
    width: 26px;
    height: 26px;
    min-width: 26px;
  }

  .guestbook-message-author {
    font-size: 0.92rem;
  }

  .guestbook-message-time {
    font-size: 0.54rem;
  }

  .guestbook-message-text {
    font-size: 0.76rem;
    line-height: 1.22;
  }

  .window-item-link[data-open-map] {
    width: 66px;
    min-width: 66px;
    height: 66px;
    min-height: 66px;
  }

  .window-item-link[data-open-map] .window-item-link-icon {
    width: 2.2rem !important;
    height: 2.2rem !important;
  }

  .window-content {
    grid-template-columns: 1fr;
    min-height: 0;
    max-height: none;
  }

  .window-sidebar {
    display: none;
  }

  .desktop-window.is-sidebar-open .window-sidebar {
    display: block;
    max-height: 42vh;
  }

  .window-body--sidebar {
    max-height: 42vh;
    overflow: auto;
  }

  .desktop-form-actions,
  .danger-strip {
    flex-direction: column;
    align-items: flex-start;
  }

  .auth-actions {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .admin-nav-shell {
    top: 0;
    padding-bottom: 0.06rem;
  }

  .admin-launcher-grid--stack .window-action-btn {
    min-width: 116px;
    min-height: 40px;
    font-size: 0.67rem;
    padding: 0.4rem 0.54rem;
  }

  .admin-panel-shell {
    left: auto;
    right: auto;
    bottom: auto;
    top: auto;
    width: 100%;
    min-width: 0;
    max-height: none;
    border-radius: 0;
    padding: 0;
  }

  .admin-event-editor-modal {
    padding: calc(var(--header-height) + 0.08rem) 0 0;
  }

  .admin-event-editor-shell {
    width: 100vw;
    max-height: calc(100dvh - var(--header-height) - 0.08rem);
    border-left-width: 0;
    border-right-width: 0;
    border-bottom-width: 0;
    box-shadow: 0 -18px 32px rgba(0, 0, 0, 0.46);
  }

  .admin-event-editor-body {
    padding: 0.3rem 0.3rem calc(0.66rem + env(safe-area-inset-bottom));
  }

  .admin-panel-close-btn {
    min-width: 76px;
  }

  .admin-panel-shell .event-row-admin-actions .row-actions {
    grid-template-columns: 1fr;
  }

  .admin-editor-tab {
    min-height: 36px;
    font-size: 0.68rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
}


