body{background:var(--canvas);color:var(--ink)}
.button{background:var(--accent);color:var(--on-accent);border-color:var(--accent);border-radius:8px}.button.outline{background:transparent;color:var(--accent);border-color:var(--line)}
.hero{background:var(--nav)}.hero .button.cream{background:#f5f0df;color:#3e483e}.hero-art{background:transparent}
.tag,.portal-icon,.support-banner{background:var(--tint);color:var(--deep);border-color:var(--line)}
.panel,.portal-card{background:var(--surface);border-color:var(--line);border-radius:12px;box-shadow:0 2px 8px #20334804}
.portal-card:hover{border-color:var(--accent)}.list-link:hover{color:var(--accent)}
input,textarea{background:var(--surface);border-color:var(--line);color:var(--ink);border-radius:7px}
th{background:var(--tint);color:var(--deep)}td,th{border-color:var(--line)}tbody tr:hover{background:var(--soft)}
.prose,.faq p,.support-banner p{color:var(--muted)}
.password-wrap button,.text-button{color:var(--accent)}
.password-wrap button:hover,.text-button:hover{color:var(--deep)}
.draw-number{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;gap:5px;margin-right:10px;min-width:30px}
.draw-number .ball{position:relative;overflow:hidden;margin:0;width:29px;height:29px;font-family:"Microsoft YaHei","微软雅黑",Arial,sans-serif;font-size:12px;font-weight:400;color:#fff;text-shadow:0 1px 2px #000b;border:1px solid #ffffff70;box-shadow:inset -4px -5px 7px #0006,inset 3px 3px 6px #fff9,0 2px 4px #10203055}
.draw-number .ball::before{content:"";position:absolute;top:4px;left:6px;width:36%;height:22%;border-radius:50%;background:#ffffff90;pointer-events:none}
.draw-number .ball{isolation:isolate}
.draw-number .ball::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 -2px 3px #0002;pointer-events:none}
.draw-number small{font-size:11px;color:var(--muted);font-weight:400;line-height:1.3}
.ball.wave-r{background:linear-gradient(145deg,#ff6b78 0%,#dc263f 48%,#941c31 100%)}.ball.wave-b{background:linear-gradient(145deg,#62b8ff 0%,#2877d1 48%,#164d91 100%)}.ball.wave-g{background:linear-gradient(145deg,#6edb98 0%,#16803d 48%,#0b522d 100%)}
.draw-number .ball.wave-pending,.draw-number .ball.wave-unknown{background:var(--tint);color:var(--muted);box-shadow:none}
.draw-number:has(.wave-pending) small{font-size:9px}
.footer [data-preferences]{order:5}.cy-preferences button{letter-spacing:0}
@media(max-width:767px){.draw-number{margin-right:5px;min-width:25px}.draw-number .ball{width:25px;height:25px}.footer [data-preferences]{width:100%}}

/* Portal controls share the same semantic tokens in every palette. */
.header{background:var(--surface);color:var(--ink)}
.header nav a[aria-current],.header nav a:hover,.subnav>a[aria-current]{border-color:var(--accent);color:var(--deep)}
.entrance-link{position:relative;isolation:isolate;box-shadow:0 5px 18px color-mix(in srgb,var(--accent),transparent 70%)}
.entrance-link::after{content:"";position:absolute;inset:-3px;border:1px solid color-mix(in srgb,var(--focus),transparent 18%);border-radius:10px;opacity:.8;z-index:-1;animation:cy-pulse 2.4s ease-in-out infinite}
@keyframes cy-pulse{0%,100%{transform:scale(.98);opacity:.3}50%{transform:scale(1.04);opacity:.9}}
.settings-section{margin-top:28px;border:1px solid var(--line);border-radius:10px;padding:20px;background:var(--soft)}.settings-section legend{padding:0 8px;color:var(--deep);font-weight:700}.portal-settings-row,.slide-settings-row{padding:16px 0;border-top:1px solid var(--line)}.portal-settings-row:first-of-type,.slide-settings-row:first-of-type{border-top:0}.portal-settings-row h3,.slide-settings-row h3{font-size:16px;margin:0 0 8px;color:var(--deep)}.settings-form select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink)}.check-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.check-line label{display:inline-flex;align-items:center;margin:0 16px 0 0;font-weight:400}.check-line input{width:auto;min-height:0}.page-jump{display:flex;align-items:center;gap:8px}.page-jump label{margin:0;font-size:12px}.page-jump input{width:76px;min-height:40px;padding:8px}.page-jump .button{min-height:40px;padding:8px 14px}.notice-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px}.notice-modal[hidden]{display:none}.notice-modal-backdrop{position:absolute;inset:0;background:#071018b8;backdrop-filter:blur(4px)}.notice-modal-card{position:relative;width:min(560px,100%);max-height:min(80vh,680px);overflow:auto;padding:32px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 70px #0008}.notice-modal-card h2{margin:14px 0 18px;color:var(--deep)}.notice-modal-body{line-height:1.9;white-space:normal;overflow-wrap:anywhere}.notice-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:var(--muted);font-size:28px;line-height:1;padding:4px}.modal-open{overflow:hidden}
.entry-audience{grid-column:1/-1;margin:12px 0 0;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.entry-audience legend{padding:0 6px;color:var(--deep);font-size:13px}.entry-audience .check-line{gap:18px}
.entry-latency{margin-left:auto;color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap}.entry-latency[data-state=fast]{color:#16734b}.entry-latency[data-state=slow],.entry-latency[data-state=offline]{color:#a55a35}.card-bottom{gap:8px}
@media(max-width:767px){.settings-section{padding:16px}.portal-settings-row,.slide-settings-row{padding:14px 0}.page-jump{order:3;width:100%;justify-content:center}.pagination{gap:10px;flex-wrap:wrap}.notice-modal-card{padding:24px}.entrance-link::after{animation:none}}
