/* Feifei Atelier — spatial card room. All assets and fonts work locally. */
:root{--ink:#080b19;--panel:#12182d;--gold:#eac88a;--muted:#acb4ce;--line:#a5baff26;--cyan:#87e6ed;--red:#b52d52;background:var(--ink);color:#f5f3f0;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
body{background:radial-gradient(ellipse at 15% 0%,#28336970,transparent 45%),radial-gradient(ellipse at 100% 45%,#13394244,transparent 50%),#080b19}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(#b8d8ff40 .6px,transparent .8px);background-size:53px 47px;opacity:.25}
.ui-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;display:inline-block}.topbar{height:78px;background:#0b1021b8;border-bottom:1px solid #afc3ff16;max-width:1600px;margin:auto;padding:0 5vw}.brand{gap:12px;color:var(--gold)}.brand>.ui-icon,.brand-mark{display:grid;place-items:center;background:linear-gradient(140deg,#2b334c,#13192b);border:1px solid #bfa77260;border-radius:12px;width:38px;height:42px;color:var(--gold);font-size:30px;box-shadow:inset 0 1px 0 #e4d2b22e}.brand b{font-size:22px;letter-spacing:2px}.brand span:not(.brand-mark){color:#aab2cb;font-size:12px;letter-spacing:1px}.status{color:#b8c4d6;font-size:12px;display:flex;align-items:center;gap:8px}.connection-dot{width:6px;height:6px;border-radius:50%;background:#86ddd0;box-shadow:0 0 12px #86ddd080;display:inline-block}
.home{max-width:1300px;padding:42px 48px 16px}.home-heading{align-items:center;margin-bottom:26px}.home-heading .eyebrow{color:#cebd9d;font-size:12px;letter-spacing:2px}.tiny-star{margin-right:8px;color:var(--gold)}.home-heading h1{font-family:"Songti SC","STSong",serif;font-weight:800;font-size:clamp(36px,4vw,58px);line-height:1.2;letter-spacing:1px;color:#faf6ed;margin:16px 0}.home-heading h1 br{display:block}.home-heading .intro{font-size:14px;color:#acb4cd;margin:0;max-width:500px;line-height:1.8}.edition-stamp{border:0;border-radius:0;background:none;box-shadow:none;transform:none;width:auto;height:auto;align-items:flex-end;gap:10px;color:#9daac7;font-size:11px;padding-right:6px}.edition-stamp b{font-family:"Songti SC",serif;font-size:22px;font-weight:600;color:#d9c39b;letter-spacing:3px}.stamp-line{width:70px;height:1px;background:linear-gradient(90deg,transparent,#d9c39b)}
.home-grid{grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);gap:28px;align-items:stretch}.hero-table{border:1px solid #8ca5e62e;border-radius:26px;overflow:hidden;padding:25px 30px 20px;background:radial-gradient(ellipse at 50% 35%,#2a41653d,transparent 60%),linear-gradient(140deg,#19213b,#101629 55%,#122634);box-shadow:inset 0 1px 0 #d2e0ff17,0 28px 70px #0005;isolation:isolate}.hero-table::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 40%,#8bbef10b 50%,transparent 65%);pointer-events:none}.table-caption{font-size:12px;color:#d0d9eb}.table-caption>span:last-child{color:#a8b6ce;letter-spacing:0;font-size:11px}.table-signal{background:var(--gold);box-shadow:0 0 10px #eac88a60;width:5px;height:5px}.empty-table{border:0;box-shadow:none;height:310px;background:none;margin:20px 0 8px;perspective:850px}.orbit{position:absolute;left:7%;width:86%;height:66%;top:20%;border-radius:50%;border:1px solid #a4d5eb40;transform:rotate(-14deg);box-shadow:0 0 30px #80c4ed08,inset 0 0 25px #87d3e508;pointer-events:none}.orbit-two{left:0;width:100%;height:80%;top:13%;border-color:#a4b5eb14;transform:rotate(-14deg)}.orbit-three{left:16%;width:68%;height:50%;top:28%;border-style:dashed;border-color:#d5c39230;transform:rotate(-14deg)}.art-spark{position:absolute;color:#eac88a;font-size:24px}.spark-one{top:12%;right:19%}.spark-two{bottom:12%;left:13%;font-size:19px;color:#9be6ee}.hero-fan{animation:none;transform:translateY(-10px)}.show-card{width:112px;height:166px;border-radius:11px;background:linear-gradient(125deg,#ffffff 65%,#f5f8ff);border:1px solid #fff6;box-shadow:inset 0 0 0 4px #fff9,0 2px 0 #b5c2d4,0 5px 0 #9ba9c1,0 28px 28px #0006;color:#19253d;overflow:hidden}.show-card b{font-size:30px;left:10px;top:9px}.show-card b span{font-size:23px}.show-card i{font-size:67px;bottom:22px;right:16px;font-style:normal;text-shadow:1px 2px 0 #fff}.show-card.heart,.show-card.diamond{color:#aa3151}.show-card.spade{transform:translateX(-83px) rotate(-26deg) translateY(10px)}.show-card.heart{transform:translateX(-30px) rotate(-9deg)}.show-card.club{transform:translateX(25px) rotate(9deg)}.show-card.diamond{transform:translateX(79px) rotate(25deg) translateY(10px)}.card-filigree{position:absolute;border:1px solid currentColor;opacity:.13;inset:7px;border-radius:6px;pointer-events:none}.seat{border-color:#a7b7df3d;background:#151e34;color:#acbbd8;box-shadow:0 4px 12px #0003;width:35px;height:35px;font-size:10px}.seat.north{top:1%;left:calc(50% - 17px)}.seat.south{bottom:0;left:calc(50% - 17px);background:#d7bd87;color:#1b2033;border-color:#efdbb4;box-shadow:0 0 24px #eac88a15}.seat.west{left:0}.seat.east{right:0}.table-tagline{font-family:"Songti SC",serif;color:#e3d8c5;letter-spacing:3px;font-size:17px;margin:18px 0 22px}.table-bottom{font-size:11px;border-color:#a8baff1c;color:#a4b2cc;padding-top:16px}.table-bottom b{font:16px Georgia,serif;color:#e0c898;margin-right:8px}
.start-panel{border-radius:24px;border:1px solid #a3b9ed30;padding:28px;background:linear-gradient(140deg,#1c233b,#11172a);box-shadow:inset 0 1px 0 #e3eaff14,0 24px 60px #0004;position:relative}.start-panel::before{content:"";position:absolute;left:28px;top:0;width:70px;height:2px;background:linear-gradient(90deg,#efcf93,transparent)}.start-panel .eyebrow{color:#a8b2cc;letter-spacing:1px}.start-panel h2{font-family:"Songti SC",serif;font-size:27px;font-weight:700;letter-spacing:1px;margin:12px 0 25px}.start-panel label{font-size:12px;color:#c3cadd}.start-panel input{border:1px solid #aabce22f;background:#090f20b3;padding:14px 16px;border-radius:10px;color:#f3f2ef;margin:9px 0 5px;min-height:48px}.start-panel input::placeholder{color:#929db8}.start-panel input:focus{border-color:#b8a679;outline-color:#d9bc8050}.start-panel button{border-radius:11px;min-height:49px;background:#242e49;border-color:#a8b8df33;color:#e2e7f3;font-size:14px;align-items:center}.start-panel button:hover{background:#313c58}.primary,.start-panel .primary,.controls .primary{background:linear-gradient(115deg,#f6dfad,#cfaa69);border-color:#e6cb94;color:#252130;box-shadow:inset 0 1px 0 #fff6,0 3px 0 #83623d,0 8px 24px #d1ae621c;font-weight:700}.primary:hover,.start-panel .primary:hover{background:linear-gradient(115deg,#fff0cc,#e6c17b)}.start-panel .primary span{font-size:22px;font-weight:400}.start-panel .quiet{background:#0c122381;border:1px solid #9cafd61f;color:#bdc7de;justify-content:center;gap:10px;font-size:12px}.start-panel .quiet span{font-size:11px;color:#a4b1cc}.start-panel .subtle{font-size:11px;color:#a1aec8;line-height:1.7}.start-panel .divider{color:#8c99b7;font-size:11px;display:flex;align-items:center;gap:12px;margin:18px 0 4px}.divider::before,.divider::after{content:"";height:1px;background:#aebbd81a;flex:1}
.home-ribbon{display:flex;flex-wrap:wrap;gap:0;margin:28px 0 0;border-top:1px solid #b4c4ed21;border-bottom:1px solid #b4c4ed18;padding:15px 0}.home-ribbon button{display:flex;align-items:center;gap:10px;background:none;border:0;border-radius:8px;flex:1;padding:8px 12px;min-height:48px;color:#cbd4e6;font-size:12px;white-space:nowrap}.home-ribbon button+button{border-left:1px solid #a7b7dd18}.home-ribbon button:hover{background:#8aa7ee0a}.home-ribbon .ui-icon{color:#c8bb9c;width:19px;height:19px}.home-ribbon .shortcut-label{text-align:left;margin:0;color:inherit;font-size:12px}.home-ribbon .shortcut-label>span,.home-ribbon small{display:block;font-size:10px;color:#94a4c2;margin:3px 0 0}.home-ribbon button:last-child small{margin:0}.home footer{font-size:11px;color:#929fb9;padding:18px 0;gap:16px}.home footer .link{font-size:11px;color:#afbad0}button{transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}button:focus-visible,input:focus-visible{outline:2px solid #e3c995;outline-offset:3px}button:disabled{opacity:.36;box-shadow:none;filter:saturate(.4)}button:active:not(:disabled){transform:scale(.97)}
/* Preserve the single-viewport grid; change materials and meaningful states. */
body:has(main.game){background:radial-gradient(ellipse at 30% 30%,#27345a7a,transparent 60%),#090e1d}#app:has(>main.game)>.topbar{background:#090e1d9c;border-bottom-color:#8298be22}#app:has(>main.game)>.topbar .brand>.ui-icon{width:26px;height:29px;border-radius:7px;padding:3px}#app:has(>main.game)>.topbar .brand b{font-size:17px;letter-spacing:1px}.header-actions{display:flex;align-items:center;gap:16px}#table-settings{display:flex;align-items:center;gap:6px;color:#c4cce0}#table-settings .ui-icon{width:15px;height:15px}.game>.score-strip{background:#151d32;border-color:#a4b9e82a;border-radius:9px;color:#b9c8df;box-shadow:inset 0 1px 0 #ffffff08}.game>.score-strip b{font-family:Georgia,serif;font-size:19px;color:#e6ce9e}.badge{color:#dfc99e;background:#e0bd740a;border-color:#dac69735}.game>.turn-banner{background:#111d31;border:1px solid #7f9cba2b;color:#b8c5dc;border-radius:9px}.game.my-turn>.turn-banner{background:linear-gradient(100deg,#1f3445,#152939);border-color:#8ccdd275;box-shadow:inset 3px 0 0 #9bdbdc,0 3px 18px #5fc8d40a;color:#ddf5f3}.game>.turn-banner small{color:#a4c0d1}.game>.board{background:radial-gradient(ellipse at 50% 35%,#234551,#142d3e 65%,#102638);border-color:#1b243a;outline:1px solid #b5b28a73;box-shadow:inset 0 0 0 2px #d4c49860,inset 0 0 0 7px #111e30,inset 0 0 0 8px #8db4bb36,inset 0 0 70px #061421,0 0 0 4px #060c19,0 0 0 5px #93acdf26,0 16px 30px #0007;isolation:isolate}.game .board::before{inset:14px;background:radial-gradient(#c6deeb14 .6px,transparent .8px);background-size:4px 4px;opacity:.5;z-index:-1}.game .board::after{border:1px solid #e0d1a320;inset:14px}.table-orbit{position:absolute;inset:21% 14%;border:1px solid #8caab61a;border-radius:50%;pointer-events:none}.board-watermark{font-family:"Songti SC",serif!important;font-size:clamp(24px,4vw,48px)!important;font-weight:700!important;letter-spacing:6px!important;color:#acc6cf23!important;gap:4px}.board-watermark .watermark-symbol{font:45px Georgia,serif!important;color:#b9ccdb20!important;letter-spacing:0!important;margin:0}.board-watermark span:not(.watermark-symbol){font-size:10px!important;letter-spacing:3px!important;color:#bacfda38!important}.game .opponent .avatar{background:linear-gradient(140deg,#364563,#1c2944);border:1px solid #bac2d95c;box-shadow:0 4px 12px #0007;color:#d5d6e4}.avatar .ui-icon{width:65%;height:65%;color:#c7d3e9}.game .opponent.active .avatar{border-color:#f4d9a3;box-shadow:0 0 0 2px #efd59b,0 0 0 6px #eac88a14,0 0 20px #dfb66a30}.game .opponent.active .acting-label{color:#f1dba9;letter-spacing:1px}.game .opponent small{background:#0c182ad9;color:#bccce2;border:1px solid #96adce1a}.game .opponent b{color:#e1e6f0;font-weight:500}.game .opponent.top small{color:#a2e1de}.game .seat-action{color:#c3cfe2}.game .seat-action.holding{border-color:#e3ca8b4a;background:#e1c48b10}.game .seat-action strong{color:#eddaa9}.game .mini-cards i{background:#ffffff;color:#213351;border:1px solid #fff9;border-radius:3px;box-shadow:0 2px 2px #0004}.game .mini-cards i.red{color:#ad3154}.game .trick-label{border-color:#a5b9d52a;background:#071525a8;color:#d7deed;box-shadow:0 2px 8px #0003}.game .played{animation:none}.game .card{background:linear-gradient(135deg,#ffffff 75%,#f4f7ff);border:1px solid #ffffff;color:#14213a;box-shadow:inset 0 0 0 1px #ffffff,1px 2px 0 #aabbd2,1px 5px 9px #0007;border-radius:6px;font-weight:700}.game .card.red{color:#bf2448}.game .card.selected{background:#ffffff;border-color:#c5943c;box-shadow:0 0 0 2px #efd28d,0 8px 15px #0008,0 0 18px #e4c78942}.game .card.wild{border:2px solid #d7aa63}.game .card .wild-label{background:#9d3050;color:#fff5ed}.game .card .suit{line-height:1}.game .card .bottom-suit{opacity:.9}.game>.hand{isolation:isolate}.game>.hand-meta{color:#cad3e5}.game .my-identity .avatar{background:#222f49;border-color:#b5a77d70;color:#eddaa9}.game>.turn-message{color:#b5c8dc}.game.my-turn>.turn-message{color:#eddbb3}.game>.controls button{border-radius:9px;background:#1c2942;border-color:#acbddc36;color:#e0e7f4;box-shadow:0 2px 0 #070c18;font-weight:600;min-height:44px}.game>.controls .primary{background:linear-gradient(110deg,#f2dcae,#d3ac68);color:#242333;border-color:#eacb90;box-shadow:0 3px 0 #80603b,inset 0 1px 0 #fff5}.game>.controls #hint{color:#b9e6ea;background:#1b3445;border-color:#85b9c14d}.game>.social-bar button{display:flex;align-items:center;justify-content:center;gap:7px;background:none;border-color:transparent;color:#adbfd5;min-height:36px}.game>.social-bar .ui-icon{width:16px;height:16px}.game>.turn-countdown{color:#a8bad4}.game>.turn-countdown.urgent{color:#f3c895}.game .self-play{color:#a1bbcf}.game .self-play .seat-action{background:#08142170}.game>.tribute-panel{background:#121e32;border:1px solid #b3bbd337;border-radius:18px}.game>.tribute-record{background:#101b2dec;color:#d5ddeb}
dialog{background:linear-gradient(140deg,#202b45,#10182b);border-color:#a5b9da45;border-radius:20px;box-shadow:0 30px 100px #000a;color:#eff1f7}dialog h2{color:#f0e8da;font-family:"Songti SC",serif}dialog p{color:#bac7dc}dialog::backdrop{background:#050815bd;backdrop-filter:blur(12px)}input,textarea,select{background:#0a1426;color:#edf1f9;border-color:#97b4d737}option{background:#152039}.notice{border-color:#dec18c40;background:#dec18c09;color:#dbcdae}.player-tile{background:#18243c;border-color:#a7b9d433}.avatar{background:#293b57;border-color:#b7a7765a;color:#e2cd9f}.result-page h1{font-family:"Songti SC",serif}.result-emblem{color:#e7cb8e}.result-page.victory{background:radial-gradient(ellipse at top,#b1954a1c,transparent 60%)}#toast{background:#eedbb5;color:#242a3d;border:1px solid #fff4d2;box-shadow:0 8px 32px #0006}
@media(min-width:701px){.game>.hand .card:hover{border-color:#f3dfab;box-shadow:0 0 0 1px #cbb483,0 5px 12px #0007}}
@media(max-width:1000px){.home{padding:30px 28px 12px}.home-ribbon{flex-wrap:wrap}.home-ribbon button{flex:1 1 30%}.home-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:20px}.hero-table{padding:24px 22px}.show-card{width:96px;height:146px}.empty-table{height:300px}.show-card.spade{transform:translateX(-65px) rotate(-26deg)}.show-card.heart{transform:translateX(-23px) rotate(-9deg)}.show-card.club{transform:translateX(23px) rotate(9deg)}.show-card.diamond{transform:translateX(65px) rotate(25deg)}}
@media(max-width:700px){.topbar{height:64px;padding:0 20px}.brand-mark{width:28px;height:33px;font-size:23px;border-radius:8px}.brand b{font-size:20px}.status{font-size:10px}.home{padding:28px 20px 10px}.home-heading{margin-bottom:24px}.home-heading h1{font-size:38px;line-height:1.2;letter-spacing:0;margin:14px 0}.home-heading .intro{font-size:12px;max-width:100%;line-height:1.8;margin:0}.home-heading .eyebrow{font-size:10px}.edition-stamp{display:none}.home-grid{grid-template-columns:1fr;gap:18px}.hero-table{order:0;padding:16px 20px;border-radius:20px}.start-panel{order:1;padding:24px}.empty-table{height:210px;margin:12px 0 0}.show-card{width:75px;height:111px;border-radius:7px}.show-card b{font-size:23px;left:7px;top:6px}.show-card b span{font-size:15px}.show-card i{font-size:44px;bottom:13px;right:11px}.show-card.spade{transform:translateX(-56px) rotate(-26deg)}.show-card.heart{transform:translateX(-19px) rotate(-9deg)}.show-card.club{transform:translateX(19px) rotate(9deg)}.show-card.diamond{transform:translateX(56px) rotate(25deg)}.seat{width:27px;height:27px;font-size:9px}.seat.north,.seat.south{left:calc(50% - 13px)}.table-caption{font-size:11px}.table-caption>span:last-child{font-size:9px}.table-tagline{font-size:14px;margin:10px 0 17px;letter-spacing:2px}.table-bottom{font-size:10px;padding-top:12px}.home-ribbon{display:grid;grid-template-columns:1fr 1fr;padding:10px 0;margin-top:22px}.home-ribbon button{font-size:11px;padding:10px 8px;min-height:52px;white-space:normal;border:0!important}.home-ribbon .shortcut-label{font-size:11px;line-height:1.4}.home footer{gap:4px 10px;line-height:1.7}.home footer span{font-size:10px}.home footer .link{padding:8px 0;min-height:36px;font-size:10px}.header-actions{gap:8px}.game>.controls{gap:10px}.game .board-watermark .watermark-symbol{font-size:33px!important}}
@media(max-height:700px) and (orientation:portrait){.game>.controls button{min-height:40px}.game>.social-bar button{min-height:30px}.game .board-watermark .watermark-symbol{display:none}.game .board-watermark{font-size:28px!important}.game .board-watermark span:not(.watermark-symbol){display:none}}
@media(max-height:540px) and (orientation:landscape){.game>.controls button{min-height:40px}.game>.social-bar button{min-height:28px}.game .board-watermark{font-size:32px!important}.game .board-watermark .watermark-symbol{font-size:36px!important}.game>.turn-countdown::after{color:#c8dbe8}.game .opponent.active .avatar{box-shadow:0 0 0 2px #efd59b,0 0 0 5px #eac88a14,0 0 18px #dfb66a30}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.game .acting-label{background:#e6ce9b;color:#242638!important;border:1px solid #fff1ce80;border-radius:5px;padding:2px 6px;font-weight:700;line-height:1.3}.game .opponent.active .acting-label{color:#242638!important}.game .opponent.top .seat-action{max-width:150px}.game .mini-cards{flex-wrap:wrap}.game>.topbar{width:100%}#app:has(>main.game)>.topbar{width:100%;max-width:none}.home-ribbon #home-level{color:#a9b5cd}.game>.hand .card:focus-visible{outline-offset:1px;z-index:8}.game>.hand .card.selected{z-index:2}
.brand .brand-mark{display:grid;margin:0;font-size:28px;letter-spacing:0;color:var(--gold)}
@media(max-width:700px){.brand .brand-mark{display:grid;font-size:23px}.home-grid>.start-panel{order:0}.home-grid>.hero-table{order:1}}

/* Align UI type without changing the single-screen game grid. */
.home-heading h1,.start-panel h2,.edition-stamp b,.table-tagline,.result-page h1,dialog h2,.game h2,.tribute-panel h2{font-family:var(--font-ui);letter-spacing:0}
.home-heading h1{font-weight:750;line-height:1.2}.home-heading .intro{font-size:14px;line-height:1.75}.start-panel h2{font-size:26px;line-height:1.3;font-weight:700}.start-panel label{font-size:13px}.start-panel button{font-size:15px}.start-panel .subtle{font-size:12px;line-height:1.7}
.home-ribbon button,.home-ribbon .shortcut-label{font-size:13px}.home-ribbon small,.home-ribbon .shortcut-label>span{font-size:11px;line-height:1.5}.home footer,.home footer .link{font-size:12px;line-height:1.6}
.game>.score-strip b{font-family:var(--font-ui);font-weight:700;font-variant-numeric:tabular-nums}.game .card,.game .mini-cards i{font-family:var(--font-card);font-weight:700;font-variant-numeric:lining-nums}
.game .card:disabled{opacity:1;filter:none;cursor:not-allowed;background:linear-gradient(135deg,#e9edf4,#d8e0ec);border-color:#b0bfd2;color:#5b6b83;box-shadow:inset 0 0 0 1px #ffffff66,1px 2px 0 #7c90ac,1px 4px 7px #0004}
.game .card.red:disabled{color:#8c5b6c}.game .card:disabled:hover{transform:none;background:linear-gradient(135deg,#e9edf4,#d8e0ec)}.game .card:disabled .wild-label{background:#64748b;color:#eef3fa}
.game .card:focus-visible{outline:2px solid #b6eff3;outline-offset:2px}.game .card .wild-label{font-family:var(--font-ui);font-weight:700}
.game>.controls button{font-size:15px;line-height:1.35;white-space:nowrap}.game>.controls .primary{font-size:17px}.game .opponent b{font-weight:600;line-height:1.35}.game .trick-label,.game>.hand-meta{line-height:1.4}
@media(max-width:700px){.home-heading h1{font-size:36px}.home-heading .intro{font-size:13px}.start-panel h2{font-size:25px}.home-ribbon button,.home-ribbon .shortcut-label{font-size:12px}.home footer,.home footer .link{font-size:11px}}
@media(max-height:700px) and (orientation:portrait){.game>.controls button{font-size:14px}.game>.controls .primary{font-size:16px}}
@media(max-height:540px) and (orientation:landscape){.game>.controls button{font-size:14px}.game>.controls .primary{font-size:16px}}

.home footer span{font-size:inherit}

/* Personal shortcuts and settings share a left-aligned reading order. */
.home-ribbon button{justify-content:flex-start;text-align:left}
.home-ribbon button>.ui-icon{flex:0 0 20px;width:20px;height:20px}
.home-ribbon button>span,.home-ribbon button small{text-align:left}
.home-ribbon .shortcut-label{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;line-height:1.45}
.home-ribbon .shortcut-label>.shortcut-title{display:block;font-size:13px;font-weight:600;line-height:1.4;letter-spacing:0;color:#dce5f1;margin:0;text-align:left}
.home-ribbon .shortcut-label>small{display:block;font-size:11px;font-weight:400;line-height:1.5;color:#a8b8d1;margin:0;text-align:left}
dialog:has(>.table-settings-view){width:min(520px,calc(100vw - 24px));max-width:520px;max-height:calc(100dvh - 24px);overflow-y:auto;padding:26px 24px 0;scrollbar-gutter:stable}
.table-settings-view{font-family:var(--font-ui);text-align:left;min-width:0}
.table-settings-view .settings-heading{padding-right:32px;margin-bottom:8px}
.table-settings-view .settings-heading h2{font-size:24px;line-height:1.35;margin:0 0 7px;font-weight:700}
.table-settings-view .settings-heading p{font-size:13px;line-height:1.6;color:#b9c8dc;margin:0}
.settings-fields{display:flex;flex-direction:column;gap:0}
.table-settings-view .settings-group{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:20px 0;border-bottom:1px solid #a9bed424;min-width:0}
.table-settings-view .settings-group:last-child{border-bottom:0}
.table-settings-view .settings-group>label,.table-settings-view .settings-group>h3{display:block;margin:0;font-size:14px;font-weight:650;line-height:1.5;color:#e2e9f5;text-align:left}
.table-settings-view input,.table-settings-view select{display:block;width:100%;min-height:48px;padding:12px 13px;border-radius:9px;margin:0;font-family:var(--font-ui);font-size:16px;line-height:1.4;box-sizing:border-box}
.table-settings-view input[type=file]{max-width:100%;min-width:0;padding:8px;font-size:13px;color:#bdcbdf;overflow:hidden}
.table-settings-view input[type=file]::file-selector-button{min-height:40px;margin-right:10px;padding:8px 12px;border:1px solid #aabed444;border-radius:6px;background:#273c58;color:#ecf2fa;font:inherit}
.table-settings-view .settings-note{font-size:12px;line-height:1.75;color:#b3c3d9;margin:0;overflow-wrap:anywhere}
.settings-avatar-row{display:flex;align-items:center;gap:16px;min-width:0;padding:2px 0}
.table-settings-view .profile-avatar{width:64px;height:64px;flex:0 0 64px;margin:0;font-size:28px;border-radius:15px;overflow:hidden}
.table-settings-view .profile-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.settings-avatar-copy{min-width:0}
.settings-avatar-copy p{font-size:14px;line-height:1.5;margin:0 0 4px;color:#dbe5f5}
.table-settings-view #settings-clear-avatar{align-self:flex-start;text-align:left;min-height:44px;padding:8px 0;font-size:13px;color:#c7ddeb}
.table-settings-view #settings-background{min-height:48px;font-size:14px;line-height:1.5;text-align:left;padding:12px 14px;background:#26384f;border-color:#a3bed248;color:#e2edf6}
.table-settings-view .settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:sticky;bottom:0;margin:0 -24px;padding:16px 24px max(16px,env(safe-area-inset-bottom));background:#121d31;border-top:1px solid #a9bed42c;z-index:1}
.table-settings-view .settings-actions button{min-height:48px;font-size:15px;line-height:1.4;padding:12px 10px;white-space:normal}
@media(max-width:700px){.home-ribbon .shortcut-label>.shortcut-title{font-size:12px}.home-ribbon .shortcut-label>small{font-size:11px}}
@media(max-width:360px){dialog:has(>.table-settings-view){padding:22px 18px 0}.table-settings-view .settings-actions{margin-inline:-18px;padding-inline:18px}.home-ribbon button{padding-inline:6px;gap:8px}}

/* Named turn cues stay readable without expanding the single-screen table. */
.turn-banner b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sound-settings-view>label{display:grid;gap:8px;margin:18px 0 8px;text-align:left}
.sound-settings-view select{font-size:16px;min-height:46px}
.sound-settings-view .sound-row{display:flex;align-items:center;justify-content:space-between;gap:16px}
.sound-settings-view .sound-row input{width:22px;height:22px;flex:none}
.home-ribbon .version-ready{border-color:#6cebd2;background:rgba(45,180,153,.15)}
@media(max-width:420px){.turn-banner b{font-size:13px}.turn-banner small{font-size:10px}}

/* All eight shortcuts use the same two-row label grid, including live counters. */
.home-ribbon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.home-ribbon button{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:center;justify-content:initial;min-height:64px;padding:10px 12px;min-width:0;text-align:left}
.home-ribbon button+button{border-left:0}
.home-ribbon button>.ui-icon{display:block;align-self:center;width:20px;height:20px;margin:0}
.home-ribbon .shortcut-label{display:grid;grid-template-rows:18px 17px;align-content:center;align-items:start;gap:2px;height:37px;min-width:0;margin:0}
.home-ribbon .shortcut-label>.shortcut-title{font-size:13px;font-weight:700;line-height:18px;min-width:0;max-width:100%;margin:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-ribbon .shortcut-label>small{font-size:11px;font-weight:400;line-height:17px;min-width:0;max-width:100%;margin:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1000px){.home-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.home-ribbon button{padding:10px 8px}.home-ribbon .shortcut-label>.shortcut-title{font-size:13px}}
@media(max-width:360px){.home-ribbon button{column-gap:8px;padding-inline:6px}}

.sound-channel{padding:16px 0;border-bottom:1px solid #a9bed42c}.sound-channel .sound-row{margin:0;font-size:15px;font-weight:700}.sound-channel .subtle{margin:8px 0 12px;font-size:12px;line-height:1.7}.sound-channel>label:not(.sound-row){display:grid;gap:8px;margin:12px 0 0;text-align:left;font-size:12px;color:#b3c3d9}.sound-channel input[type=range]{width:100%;height:32px;margin:0}.sound-channel .sound-row input{min-width:24px;min-height:24px}.sound-settings-view>p{font-size:13px;line-height:1.7}
