:root{
--c-grass:#70ad34;
--c-grass-light:#95d440;
--c-grass-dark:#2d6e1f;
--c-grass-deep:#1a3a08;
--c-gold:#ffd23f;
--c-gold-deep:#c8a832;
--c-water:#6cb1ff;
--c-water-dark:#3a7ad9;
--c-redstone:#d33;
--c-emerald:#5fb14f;
--c-stone:#999;
--c-stone-light:#d4c5a0;
--c-stone-dark:#555;
--c-black:#1a1a1a;
--c-dark:#1a1a1a;
--c-dirt:#866043;
--c-wood:#a87a4f;
--c-page:#f3e9c8;
--c-paper:#fff8dc;
--c-surface:#f5ecd5;
--c-surface-2:#ebe2bc;
--c-elevated:#fff8dc;
--c-bg:#f3e9c8;
--c-bg-2:#e7d8a4;
--c-text:#1a1a1a;
--c-text-muted:#555;
--c-text-faint:#888;
--c-link:#2d6e1f;
--c-link-hover:#d33;
--c-success:#5fb14f;
--c-danger:#d33;
--c-warning:#c8a832;
--c-info:#3a7ad9;
--c-input-bg:#fff;
--c-input-border:#999;
--c-focus-ring:#ffd23f;
--shadow-sm:2px 2px 0 #1a1a1a;
--shadow-md:4px 4px 0 #1a1a1a;
--shadow-lg:6px 6px 0 #1a1a1a;
--shadow-soft:3px 3px 0 #999;
--shadow-card:4px 4px 0 #999;
--font-pixel:'Press Start 2P','Microsoft YaHei',monospace;
--font-cn:'Noto Sans CJK SC','Microsoft YaHei',sans-serif;
--font-mono:'VT323','Courier New',monospace;
--sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
--sp-5:20px; --sp-6:24px; --sp-7:32px; --sp-8:48px; --sp-9:64px;
--r-0:0; --r-sm:4px; --r-md:8px; --r-pill:9999px;
--dur-fast:150ms;
--dur-base:250ms;
--dur-slow:400ms;
--ease-out:cubic-bezier(0.2,0.7,0.3,1);
--ease-spring:cubic-bezier(0.34,1.56,0.64,1);}
html{
touch-action:manipulation;}
*{
-webkit-tap-highlight-color:transparent;}
@media (hover:hover) and (pointer:fine){
.btn:hover,a:hover,.tab:hover{
}
}
@media (pointer:coarse){
.btn,.tab,.nav-toggle,a.btn{
min-height:44px; min-width:44px;}
}
img[src*="gallery"],img[src*="assets"],.pixel-art,canvas{
image-rendering:pixelated;
image-rendering:-moz-crisp-edges;
image-rendering:crisp-edges;}
[data-theme="dark"]{
--c-page:#1a1a26;
--c-paper:#25253a;
--c-surface:#2f2f48;
--c-surface-2:#353555;
--c-elevated:#2f2f48;
--c-bg:#1a1a26;
--c-bg-2:#25253a;
--c-text:#e8e8f0;
--c-text-muted:#b0b0c0;
--c-text-faint:#707088;
--c-link:#95d440;
--c-link-hover:#ffd23f;
--c-grass:#7cb02c;
--c-grass-light:#95d440;
--c-grass-dark:#5d7c15;
--c-grass-deep:#2d5e0f;
--c-gold:#ffc940;
--c-gold-deep:#b8941f;
--c-water:#6cb1ff;
--c-water-dark:#3a7ad9;
--c-redstone:#ff5a5a;
--c-emerald:#5ddc8a;
--c-stone:#4a4a6a;
--c-stone-light:#353550;
--c-stone-dark:#b0b0c0;
--c-black:#0a0a14;
--c-dirt:#4a3520;
--c-wood:#6a4a2a;
--c-input-bg:#1f1f30;
--c-input-border:#4a4a6a;
--c-focus-ring:#ffc940;
--shadow-sm:2px 2px 0 rgba(0,0,0,0.5);
--shadow-md:4px 4px 0 rgba(0,0,0,0.5);
--shadow-lg:6px 6px 0 rgba(0,0,0,0.5);
--shadow-soft:3px 3px 0 rgba(0,0,0,0.4);
--shadow-card:4px 4px 0 rgba(0,0,0,0.4);
color-scheme:dark;}
*,*::before,*::after{
box-sizing:border-box;}
*{
margin:0; padding:0;}
html,body{
height:100%;}
body{
font-family:var(--font-cn);
font-size:14px;
line-height:1.65;
color:var(--c-text);
background:var(--c-page);
-webkit-font-smoothing:antialiased;
-moz-osx-font-smoothing:grayscale;
transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out);}
img,svg{
display:block; max-width:100%;}
a{
color:var(--c-link); text-decoration:none; transition:color var(--dur-fast) var(--ease-out);}
a:hover{
color:var(--c-link-hover);}
button{
font:inherit; cursor:pointer;}
input,textarea,select{
font:inherit; color:inherit;}
h1,h2,h3,h4,h5,h6{
font-weight:700;}
h1{
font-family:var(--font-pixel); font-size:18px;}
h2{
font-family:var(--font-pixel); font-size:14px;}
h3{
font-size:16px;}
h4{
font-size:14px;}
p{
margin:0;}
.top-strip{
background:var(--c-redstone);
color:#fff;
padding:10px 16px;
display:flex;
gap:8px;
align-items:center;
font-size:13px;
border-bottom:2px solid var(--c-black);}
.top-strip .strip-icon{
font-size:16px;}
.top-strip .strip-text{
flex:1; line-height:1.5;}
.navbar{
background:var(--c-paper);
border-bottom:3px solid var(--c-black);
padding:12px 20px;
position:sticky;
top:0;
z-index:100;
box-shadow:0 4px 0 var(--c-stone);}
[data-theme="dark"] .navbar{
box-shadow:0 4px 0 rgba(0,0,0,0.5);
background:var(--c-elevated);
border-bottom-color:var(--c-border,var(--c-stone));}
.nav-inner{
max-width:1200px;
margin:0 auto;
display:flex;
align-items:center;
gap:16px;
flex-wrap:wrap;}
.nav-logo{
display:flex;
align-items:center;
gap:12px;
text-decoration:none;
color:var(--c-text);
flex-shrink:0;}
.nav-logo:hover{
color:var(--c-text);}
.logo-block{
width:40px; height:40px;
display:flex; flex-direction:column;
border:3px solid var(--c-black);
flex-shrink:0;}
.logo-block .block-grass{
flex:1; background:var(--c-grass);}
.logo-block .block-dirt{
flex:1; background:var(--c-dirt);}
.logo-text{
display:flex; flex-direction:column; line-height:1.1;}
.logo-zh{
font-family:var(--font-cn); font-weight:700; font-size:16px;}
.logo-en{
font-family:var(--font-pixel); font-size:7px; color:var(--c-grass-dark); letter-spacing:1px;}
.nav-links{
display:flex; gap:4px; flex-wrap:wrap;}
.nav-links a{
font-family:var(--font-cn);
font-size:15px;
font-weight:500;
padding:8px 14px;
color:var(--c-text);
border:2px solid transparent;
transition:all var(--dur-fast) var(--ease-out);}
.nav-links a:hover,.nav-links a.active{
background:var(--c-grass);
color:#fff;
border-color:var(--c-black);
transform:translate(-1px,-1px);
box-shadow:var(--shadow-sm);}
.nav-user-slot{
display:flex;
align-items:center;
gap:8px;
flex-wrap:wrap;
margin-left:auto;}
.nav-emerald{
background:var(--c-bg-2);
color:var(--c-grass-dark);
border:1px solid var(--c-grass);
padding:2px 8px;
font-size:12px;
display:inline-flex;
align-items:center;
gap:3px;}
.nav-toggle{
display:none;
background:none;
border:2px solid var(--c-black);
padding:6px 10px;
flex-direction:column;
gap:4px;
margin-left:auto;}
.nav-toggle span{
display:block; width:20px; height:3px; background:var(--c-text);}
.nav-signin-link,.nav-admin-link,.nav-dm-link,.nav-profile-link,.nav-logout-link,.nav-ann-link,.nav-login-link{
font-size:13px;
padding:6px 10px;
border:2px solid var(--c-black);
background:var(--c-paper);
color:var(--c-text);
font-weight:700;
text-decoration:none;}
.nav-signin-link{
color:#c8a832;}
.nav-admin-link{
color:#a6a;}
.nav-dm-link{
color:var(--c-emerald); position:relative;}
.nav-ann-link{
color:#c8a832; position:relative;}
.nav-signin-link:hover,.nav-admin-link:hover,.nav-dm-link:hover,.nav-profile-link:hover,.nav-logout-link:hover,.nav-ann-link:hover,.nav-login-link:hover{
background:var(--c-grass);
color:#fff;}
.nav-badge{
position:absolute;
top:-4px; right:-4px;
background:var(--c-redstone);
color:#fff;
font-size:9px;
padding:1px 4px;
border-radius:var(--r-pill);
line-height:1;}
#themeToggleBtn{
position:fixed;
right:20px;
bottom:20px;
z-index:9000;
display:inline-flex;
align-items:center;
gap:6px;
padding:10px 14px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
background:var(--c-paper);
color:var(--c-text);
border:3px solid var(--c-black);
box-shadow:var(--shadow-md);
cursor:pointer;
user-select:none;
transition:all var(--dur-fast) var(--ease-spring);}
#themeToggleBtn:hover{
transform:translate(-2px,-2px); box-shadow:6px 6px 0 rgba(0,0,0,0.4);}
#themeToggleBtn:active{
transform:translate(1px,1px);}
#themeToggleBtn .ttb-icon{
font-size:14px;}
#themeToggleBtn .ttb-label{
font-family:var(--font-cn); font-size:12px;}
#themeToggleBtn[data-mode="dark"]{
background:var(--c-grass-dark); color:#fff;}
#themeToggleBtn[data-mode="light"]{
background:var(--c-gold); color:var(--c-black);}
#themeToggleBtn[data-mode="url"]{
background:var(--c-water-dark); color:#fff;}
.container{
max-width:1200px; margin:0 auto; padding:0 20px;}
.section{
padding:80px 0;}
.section-alt{
background:var(--c-surface);}
[data-theme="dark"] .section-alt{
background:var(--c-surface);}
.section-head{
text-align:center; margin-bottom:48px;}
.section-title{
display:inline-block;
font-family:var(--font-pixel);
font-size:22px;
background:var(--c-paper);
color:var(--c-grass-dark);
border:4px solid var(--c-black);
box-shadow:var(--shadow-soft);
padding:14px 24px;
margin-bottom:16px;}
[data-theme="dark"] .section-title{
background:var(--c-elevated);
color:var(--c-grass-light);
box-shadow:var(--shadow-soft);
border-color:var(--c-black);}
.section-sub{
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:3px;
color:var(--c-text-muted);}
.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:12px 24px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
color:#fff;
background:var(--c-grass);
border:3px solid var(--c-black);
box-shadow:var(--shadow-md);
cursor:pointer;
user-select:none;
text-decoration:none;
transition:all var(--dur-fast) var(--ease-spring);}
.btn:hover:not(:disabled){
transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--c-black);}
.btn:active:not(:disabled){
transform:translate(1px,1px); box-shadow:2px 2px 0 var(--c-black);}
.btn:disabled{
opacity:0.5; cursor:not-allowed;}
.btn-primary{
background:var(--c-grass);}
.btn-primary:hover{
background:var(--c-grass-light);}
.btn-ghost{
background:var(--c-paper); color:var(--c-text);}
.btn-ghost:hover{
background:var(--c-grass); color:#fff;}
.btn-danger{
background:var(--c-redstone);}
.btn-danger:hover{
background:#e44;}
.btn-warn{
background:var(--c-gold); color:var(--c-black);}
.btn-warn:hover{
background:var(--c-gold-deep); color:#fff;}
.btn-sm{
padding:8px 14px; font-size:10px; box-shadow:var(--shadow-sm);}
.btn-lg{
padding:16px 32px; font-size:12px; box-shadow:5px 5px 0 var(--c-black);}
.btn-block{
width:100%;}
.btn-passkey{
background:linear-gradient(135deg,#5ddc8a 0%,#2d6e1f 100%);
color:#fff;
font-size:13px;
padding:14px 24px;}
.tag{
display:inline-flex;
align-items:center;
gap:4px;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:3px 8px;
border:2px solid var(--c-black);
background:var(--c-bg-2);
color:var(--c-text);}
.tag-success{
background:var(--c-grass); color:#fff;}
.tag-warn{
background:var(--c-gold); color:var(--c-black);}
.tag-info{
background:var(--c-water); color:#fff;}
.tag-danger{
background:var(--c-redstone); color:#fff;}
.tag-super{
background:var(--c-grass-deep); color:#fff;}
.badge{
display:inline-flex;
align-items:center;
font-family:var(--font-pixel);
font-size:8px;
letter-spacing:1px;
padding:2px 6px;
border:1px solid var(--c-black);}
.badge-gold{
background:var(--c-gold); color:var(--c-black);}
.badge-stone{
background:var(--c-bg-2); color:var(--c-text);}
.badge-outline{
background:transparent; color:var(--c-text); border-color:var(--c-stone);}
.card{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:var(--shadow-card);
padding:16px;}
[data-theme="dark"] .card{
background:var(--c-elevated);}
.form-row{
margin-bottom:16px;}
.form-row > label,.modal-form-row label{
display:block;
font-family:var(--font-pixel);
font-size:10px;
color:var(--c-grass-dark);
margin-bottom:4px;
letter-spacing:1px;}
.form-input,.form-row input,.form-row select,.form-row textarea,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=search],textarea,select{
width:100%;
font-family:var(--font-cn);
font-size:14px;
padding:8px 10px;
border:2px solid var(--c-stone);
background:var(--c-input-bg);
color:var(--c-text);
box-sizing:border-box;
transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);}
input:focus,textarea:focus,select:focus{
outline:none;
border-color:var(--c-grass);
box-shadow:0 0 0 2px var(--c-focus-ring);}
.form-hint,.form-row .hint,label > .hint,.modal-tiny,.modal-subtitle{
font-size:11px;
color:var(--c-text-muted);
margin-top:4px;
line-height:1.5;}
.form-msg{
min-height:18px; font-size:12px; margin:8px 0;}
.form-msg.success{
color:var(--c-grass);}
.form-msg.error{
color:var(--c-redstone);}
.empty-state{
text-align:center;
padding:40px 20px;
color:var(--c-text-muted);
background:var(--c-paper);
border:2px dashed var(--c-stone);}
[data-theme="dark"] .empty-state{
background:var(--c-elevated);}
.empty-state .empty-icon{
font-size:48px; opacity:0.7; margin-bottom:12px;}
.empty-state-error{
background:rgba(255,90,90,0.12); border-color:var(--c-redstone);}
.empty-state-error .empty-state-title{
color:var(--c-redstone); font-weight:700;}
.pane-hint,.hint{
background:var(--c-surface);
color:var(--c-text-muted);
border:2px dashed var(--c-stone);
padding:10px 14px;
font-size:13px;
line-height:1.7;
margin:12px 0;}
[data-theme="dark"] .pane-hint,[data-theme="dark"] .hint{
background:var(--c-surface-2);}
.callout{
background:var(--c-surface); border-left:4px solid var(--c-grass); padding:12px 16px; margin:12px 0;}
.callout strong{
color:var(--c-grass-dark);}
[data-theme="dark"] .callout{
background:var(--c-surface-2);}
[data-theme="dark"] .callout strong{
color:var(--c-grass-light);}
.callout-info{
border-left-color:var(--c-water);}
.callout-warn{
border-left-color:var(--c-redstone);}
.callout-success{
border-left-color:var(--c-emerald);}
.modal-mask{
position:fixed; inset:0;
background:rgba(0,0,0,0.6);
z-index:9000;
display:flex;
align-items:center;
justify-content:center;
padding:20px;
overflow-y:auto;}
.modal,.modal-card{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:var(--shadow-lg);
width:100%;
max-width:480px;
max-height:90vh;
overflow-y:auto;
animation:v49-pop-in 0.3s var(--ease-spring) both;}
[data-theme="dark"] .modal,[data-theme="dark"] .modal-card{
background:var(--c-elevated);}
.modal-sm{
max-width:380px;}
.modal-book{
max-width:560px;}
.modal-head{
background:var(--c-grass);
color:#fff;
padding:12px 16px;
display:flex;
align-items:center;
justify-content:space-between;
border-bottom:3px solid var(--c-black);}
.modal-head h3{
font-family:var(--font-pixel); font-size:13px;}
.modal-body{
padding:20px 24px;}
.modal-close{
background:none;
border:2px solid transparent;
color:#fff;
font-size:18px;
line-height:1;
padding:2px 8px;
cursor:pointer;
transition:border-color var(--dur-fast) var(--ease-out);}
.modal-close:hover{
border-color:#fff;}
.modal-divider{
margin:16px 0; padding-top:14px; border-top:1px solid var(--c-stone);}
.modal-link-emerald{
color:var(--c-emerald); text-decoration:underline;}
@keyframes v49-pop-in{
from{
opacity:0; transform:scale(0.92) translateY(8px);}
to{
opacity:1; transform:scale(1) translateY(0);}
}
.v48-toast-container{
position:fixed;
top:80px;
right:20px;
z-index:99999;
display:flex;
flex-direction:column;
gap:10px;
pointer-events:none;
max-width:90vw;}
.v48-toast{
position:relative;
display:flex;
align-items:center;
gap:12px;
min-width:240px;
max-width:380px;
padding:14px 16px;
background:var(--c-paper);
color:var(--c-text);
border:3px solid var(--c-black);
box-shadow:var(--shadow-md);
font-family:var(--font-cn);
font-size:14px;
line-height:1.4;
pointer-events:auto;
overflow:hidden;
transform:translateX(120%);
opacity:0;
transition:transform 0.4s var(--ease-spring),opacity 0.3s var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);}
.v48-toast-in{
transform:translateX(0); opacity:1;}
.v48-toast-out{
transform:translateX(120%); opacity:0;}
.v48-toast:hover{
box-shadow:7px 7px 0 var(--c-shadow);}
.v48-toast-icon{
flex:0 0 28px; width:28px; height:28px;
display:flex; align-items:center; justify-content:center;
border-radius:50%;
font-weight:700; font-size:16px;
color:#fff;}
.v48-toast-success .v48-toast-icon{
background:var(--c-success);}
.v48-toast-error .v48-toast-icon{
background:var(--c-danger);}
.v48-toast-info .v48-toast-icon{
background:var(--c-info);}
.v48-toast-body{
flex:1; min-width:0; word-break:break-word;}
.v48-toast-bar{
position:absolute; left:0; bottom:0; height:3px; width:100%; background:var(--c-stone); opacity:0.3;}
.v48-toast-bar-fill{
height:100%; width:100%; background:currentColor; transform-origin:left center; animation:v48-toast-shrink 3s linear forwards;}
.v48-toast-success .v48-toast-bar-fill{
color:var(--c-success);}
.v48-toast-error .v48-toast-bar-fill{
color:var(--c-danger);}
.v48-toast-info .v48-toast-bar-fill{
color:var(--c-info);}
@keyframes v48-toast-shrink{
from{
transform:scaleX(1);}
to{
transform:scaleX(0);}
}
@keyframes v49-fade-in-up{
from{
opacity:0; transform:translateY(12px);}
to{
opacity:1; transform:translateY(0);}
}
@keyframes v49-pop{
0%{
opacity:0; transform:scale(0.92);}
60%{
opacity:1; transform:scale(1.02);}
100%{
transform:scale(1);}
}
.v49-stagger > *{
animation:v49-fade-in-up 0.5s var(--ease-out) both;}
.v49-stagger > *:nth-child(1){
animation-delay:0.04s;}
.v49-stagger > *:nth-child(2){
animation-delay:0.08s;}
.v49-stagger > *:nth-child(3){
animation-delay:0.12s;}
.v49-stagger > *:nth-child(4){
animation-delay:0.16s;}
.v49-stagger > *:nth-child(5){
animation-delay:0.20s;}
.v49-stagger > *:nth-child(6){
animation-delay:0.24s;}
.v49-stagger > *:nth-child(7){
animation-delay:0.28s;}
.v49-stagger > *:nth-child(8){
animation-delay:0.32s;}
.v49-stagger > *:nth-child(9){
animation-delay:0.36s;}
.v49-stagger > *:nth-child(n+10){
animation-delay:0.4s;}
.v49-fade-up{
animation:v49-fade-in-up 0.5s var(--ease-out) both;}
.v49-pop{
animation:v49-pop 0.4s var(--ease-spring) both;}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{
animation-duration:0.01ms !important;
transition-duration:0.01ms !important;}
}
.hero{
position:relative;
padding:60px 0 100px;
overflow:hidden;}
.hero-text{
max-width:720px;}
.hero-tag{
display:inline-block;
font-family:var(--font-pixel);
font-size:11px;
background:var(--c-gold);
color:var(--c-dark);
padding:10px 18px;
border:3px solid var(--c-black);
margin-bottom:24px;
box-shadow:var(--shadow-md);
letter-spacing:2px;}
.hero-title{
line-height:1.1; margin-bottom:28px;}
.title-line{
display:block;
font-family:var(--font-cn);
font-size:22px;
font-weight:400;
color:var(--c-grass-deep);
margin-bottom:12px;
letter-spacing:10px;
text-shadow:2px 2px 0 rgba(255,255,255,0.5);}
.title-main{
display:block;
font-family:var(--font-pixel);
font-size:76px;
color:var(--c-grass-deep);
text-shadow:4px 0 0 var(--c-black),0 4px 0 var(--c-black),4px 4px 0 var(--c-black),8px 8px 0 rgba(0,0,0,0.3),12px 12px 0 var(--c-grass-deep);
letter-spacing:6px;
margin:8px 0;
line-height:1;}
.title-sub{
display:block;
font-family:var(--font-pixel);
font-size:18px;
color:var(--c-grass-deep);
letter-spacing:6px;
margin-top:12px;
text-shadow:2px 2px 0 rgba(255,255,255,0.5);}
.hero-desc{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-text);
margin-bottom:36px;
line-height:1.9;
max-width:580px;
text-shadow:1px 1px 0 rgba(255,255,255,0.4);}
.hero-desc b{
color:var(--c-grass-dark); font-weight:700;}
.hero-actions{
display:flex; gap:16px; margin-bottom:44px; flex-wrap:wrap;}
.hero-stats{
display:flex; gap:20px; flex-wrap:wrap;}
.hero-stats .stat{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-black);
padding:16px 22px;
min-width:120px;
text-align:center;
display:flex; flex-direction:column; gap:6px;
position:relative;
transition:all var(--dur-base) var(--ease-out);}
.hero-stats .stat:hover{
transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--c-black);}
.hero-stats .stat::before{
content:'';
position:absolute; top:4px; left:4px; right:4px; height:3px;
background:var(--c-gold);}
.hero-stats .stat b{
font-family:var(--font-pixel);
font-size:22px;
color:var(--c-grass-dark);}
.hero-stats .stat span{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-text-muted);
letter-spacing:1px;}
[data-theme="dark"] .hero-stats .stat{
background:var(--c-elevated); box-shadow:5px 5px 0 rgba(0,0,0,0.5);}
[data-theme="dark"] .hero-stats .stat b{
color:var(--c-grass-light);}
.sky-bg{
position:fixed; inset:0 0 auto 0;
height:720px;
z-index:-1;
pointer-events:none;
background:linear-gradient(180deg,var(--c-water) 0%,#a3d2ff 100%);
overflow:hidden;}
[data-theme="dark"] .sky-bg{
background:radial-gradient(ellipse at 50% 100%,rgba(108,177,255,0.18) 0%,transparent 60%),linear-gradient(180deg,#0a0d1c 0%,#1a1a2e 50%,#25253a 100%);}
[data-theme="dark"] .sky-bg::before{
content:'';
position:absolute; inset:0;
background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 22% 32%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 34% 12%,#cfe6ff 50%,transparent 51%),radial-gradient(1px 1px at 45% 42%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 58% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 68% 8%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 78% 36%,#cfe6ff 50%,transparent 51%),radial-gradient(1px 1px at 88% 14%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 15% 48%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 56%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 42% 64%,#cfe6ff 50%,transparent 51%),radial-gradient(1px 1px at 55% 52%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 72% 68%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 85% 58%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 95% 72%,#cfe6ff 50%,transparent 51%);
opacity:0.7;
animation:v49-stars-twinkle 4s ease-in-out infinite alternate;
pointer-events:none;}
[data-theme="dark"] .sky-bg::after{
content:'';
position:absolute;
top:80px; right:18%;
width:36px; height:36px;
border-radius:50%;
background:radial-gradient(circle at 35% 35%,#f5f3d8 0%,#ddd8a8 60%,#b8b07a 100%);
box-shadow:0 0 18px rgba(245,243,216,0.4),0 0 36px rgba(245,243,216,0.2),inset -3px -3px 6px rgba(0,0,0,0.18);
pointer-events:none;}
@keyframes v49-stars-twinkle{
from{
opacity:0.4;}
to{
opacity:0.85;}
}
[data-theme="dark"] .title-main{
color:var(--c-grass-light); text-shadow:4px 0 0 var(--c-black),0 4px 0 var(--c-black),4px 4px 0 var(--c-black),0 0 20px rgba(149,212,64,0.6),0 0 40px rgba(149,212,64,0.35);}
[data-theme="dark"] .title-line{
color:var(--c-text); text-shadow:2px 2px 0 var(--c-black),0 0 12px rgba(255,201,64,0.4);}
[data-theme="dark"] .title-sub{
color:var(--c-gold); text-shadow:2px 2px 0 var(--c-black),0 0 14px rgba(255,201,64,0.5),0 0 28px rgba(255,201,64,0.25);}
[data-theme="dark"] .hero-tag{
box-shadow:4px 4px 0 var(--c-black),0 0 12px rgba(255,201,64,0.4);}
[data-theme="dark"] .hero-desc{
color:var(--c-text); text-shadow:none;}
[data-theme="dark"] .hero-desc b{
color:var(--c-grass-light);}
[data-theme="dark"] .sky-bg-img{
opacity:0.55;}
[data-theme="dark"] .sky-bg-overlay{
background:linear-gradient(180deg,rgba(26,26,38,0) 0%,rgba(26,26,38,0.65) 100%);}
.data-grid{
display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:24px;}
.data-card{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
padding:32px 20px;
text-align:center;
position:relative;
transition:all var(--dur-base) var(--ease-out);}
.data-card:hover{
transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--c-stone);}
.data-card::before{
content:'';
position:absolute; top:6px; left:6px; right:6px; bottom:6px;
border:2px dashed var(--c-stone);
pointer-events:none;}
.data-card .data-icon{
font-size:36px; margin-bottom:12px;}
.data-card .data-num{
font-family:var(--font-pixel);
font-size:32px;
color:var(--c-grass-dark);
margin-bottom:8px;
line-height:1;}
.data-card .data-num-double{
display:flex; flex-direction:column; gap:4px; margin-bottom:8px;}
.data-card .data-num-double > div{
display:flex; align-items:baseline; justify-content:center; gap:6px; font-size:14px; color:var(--c-text-muted);}
.data-card .data-num-double b{
font-family:var(--font-pixel); font-size:22px; color:var(--c-grass-dark); font-weight:400; font-style:normal;}
.data-card .data-num-double i{
font-size:13px; color:var(--c-text-muted); font-style:normal;}
.data-card .data-label{
font-family:var(--font-cn); font-size:15px; color:var(--c-text-muted);}
.data-note{
text-align:center; color:var(--c-text-muted); margin-top:24px; font-size:14px;}
[data-theme="dark"] .data-card{
background:var(--c-elevated); box-shadow:6px 6px 0 rgba(0,0,0,0.5);}
[data-theme="dark"] .data-card .data-num,[data-theme="dark"] .data-card .data-num-double b{
color:var(--c-grass-light);}
.notice-grid{
display:grid; grid-template-columns:repeat(2,1fr); gap:24px;}
.notice-card{
display:flex;
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:var(--shadow-card);
transition:all var(--dur-base) var(--ease-out);
cursor:pointer;}
.notice-card:hover{
transform:translate(-3px,-3px); box-shadow:6px 6px 0 var(--c-stone);}
.notice-date{
background:var(--c-grass);
color:#fff;
padding:12px 14px;
text-align:center;
min-width:80px;
display:flex;
flex-direction:column;
justify-content:center;
border-right:3px solid var(--c-black);}
.notice-date .d{
font-family:var(--font-pixel); font-size:28px; line-height:1;}
.notice-date .m{
font-family:var(--font-cn); font-size:13px; margin-top:6px;}
.notice-body{
padding:18px 20px; flex:1;}
.notice-tag{
display:inline-block;
font-family:var(--font-pixel);
font-size:9px;
padding:4px 8px;
border:2px solid var(--c-black);
margin-bottom:8px;
color:#fff;}
.tag-blue{
background:var(--c-water);}
.notice-body h3{
font-family:var(--font-cn); font-size:18px; font-weight:700; margin-bottom:8px; color:var(--c-text);}
.notice-body p{
font-family:var(--font-cn); font-size:14px; color:var(--c-text-muted); margin-bottom:8px; line-height:1.6;}
.read-more{
font-family:var(--font-pixel); font-size:9px; color:var(--c-grass-dark); letter-spacing:1px;}
.gallery-grid{
display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.gallery-item{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:var(--shadow-card);
cursor:pointer;
transition:all var(--dur-base) var(--ease-out);
overflow:hidden;}
.gallery-item:hover{
transform:translate(-3px,-3px); box-shadow:8px 8px 0 var(--c-grass-dark);}
.gallery-thumb{
width:100%; aspect-ratio:16 / 10; object-fit:cover; border-bottom:3px solid var(--c-black);}
.gallery-meta{
padding:10px 14px 12px; display:flex; justify-content:space-between; align-items:center;}
.gallery-label{
font-family:var(--font-cn); font-size:15px; font-weight:700; color:var(--c-text);}
.gallery-num{
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-text-muted);
background:var(--c-bg-2);
border:2px solid var(--c-stone);
padding:2px 6px;}
.gal-filter-bar{
display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin:4px 0 24px;}
.gal-filter{
font-family:var(--font-cn);
font-size:14px;
padding:8px 16px;
background:var(--c-paper);
color:var(--c-text);
border:3px solid var(--c-black);
box-shadow:var(--shadow-soft);
cursor:pointer;
display:inline-flex; align-items:center; gap:8px;
transition:all var(--dur-fast) var(--ease-out);}
.gal-filter:hover{
transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--c-stone);}
.gal-filter.active{
background:var(--c-grass-dark); color:#fff;}
.gal-filter-count{
font-family:var(--font-pixel); font-size:10px; padding:2px 6px; background:var(--c-black); color:#fff;}
.gal-filter.active .gal-filter-count{
background:var(--c-paper); color:var(--c-grass-dark);}
.wall-intro{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-text);
text-align:center;
max-width:720px;
margin:0 auto 40px;
line-height:1.8;}
.wall-link{
color:var(--c-grass-dark); font-weight:700; border-bottom:2px solid var(--c-grass);}
.wall-link:hover{
color:var(--c-redstone); border-color:var(--c-redstone);}
.wall-grid{
display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.pm-item{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:var(--shadow-card);
padding:18px 20px;
transition:all var(--dur-base) var(--ease-out);}
.pm-item:hover{
transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--c-grass-dark);}
.pm-head{
display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; gap:10px;}
.pm-head b{
font-family:var(--font-cn); font-size:16px; font-weight:700; color:var(--c-text);}
.pm-type{
font-family:var(--font-pixel);
font-size:9px;
padding:3px 8px;
border:2px solid var(--c-black);
color:#fff;
letter-spacing:1px;}
.pm-type-建议{
background:var(--c-grass);}
.pm-type-投诉{
background:var(--c-redstone);}
.pm-type-咨询{
background:var(--c-water);}
.pm-type-合作{
background:var(--c-gold); color:var(--c-dark);}
.pm-content{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-text);
line-height:1.7;
background:#fff;
border:2px solid var(--c-stone);
padding:10px 12px;
margin-bottom:8px;
word-break:break-word;}
.pm-time{
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-text-muted);
letter-spacing:1px;
text-align:right;}
[data-theme="dark"] .pm-item{
background:var(--c-elevated);}
[data-theme="dark"] .pm-item:hover{
box-shadow:7px 7px 0 var(--c-grass);}
[data-theme="dark"] .pm-content{
background:var(--c-surface); color:var(--c-text);}
@media (max-width:768px){
.notice-grid,.data-grid{
grid-template-columns:1fr;}
.gallery-grid{
grid-template-columns:1fr 1fr;}
.wall-grid{
grid-template-columns:1fr;}
.hero-stats{
justify-content:center;}
.nav-links{
display:none; flex-direction:column; width:100%; background:var(--c-paper); border-top:3px solid var(--c-black); padding:12px;}
.nav-links.open{
display:flex;}
.nav-toggle{
display:flex;}
.nav-inner{
flex-wrap:wrap;}
.section{
padding:60px 0;}
.title-main{
font-size:48px;}
.title-sub{
font-size:14px;}
#themeToggleBtn{
right:12px; bottom:12px; padding:8px 10px;}
#themeToggleBtn .ttb-label{
display:none;}
}
@media (max-width:480px){
.gallery-grid{
grid-template-columns:1fr;}
.title-main{
font-size:36px; letter-spacing:3px;}
.top-strip{
font-size:12px;}
}
.page-back-row{
max-width:720px; margin:18px auto 0; padding:0 16px;}
.page-back-row a{
color:var(--c-grass-dark); text-decoration:none; font-size:13px;}
.page-back-row a:hover{
text-decoration:underline;}
.page-head{
padding:32px 16px 16px; max-width:1200px; margin:0 auto;}
.page-head-row{
display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.page-title{
font-family:var(--font-pixel); font-size:22px;}
.page-sub{
font-family:var(--font-pixel); font-size:11px; color:var(--c-text-muted); letter-spacing:2px;}
.btn-sm{
padding:8px 14px; font-size:10px;}
.btn-block{
width:100%; justify-content:center; padding:14px; font-size:12px;}
.btn-danger{
color:var(--c-redstone);}
.btn-danger:hover{
background:var(--c-redstone) !important; color:white !important;}
.card{
background:var(--c-paper,#fff8dc);
border:3px solid var(--c-black,#000);
box-shadow:4px 4px 0 var(--c-stone,#6a5a48);
padding:16px;}
.tag{
display:inline-flex;
align-items:center;
gap:4px;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:2px 8px;
border:2px solid var(--c-black,#000);
background:var(--c-bg-2,#e7d8a4);
color:var(--c-dark,#2a1f10);
height:22px;
line-height:1;}
.tag-super{
background:var(--c-gold); color:var(--c-dark);}
.hint{
background:var(--c-paper,#fff8dc);
color:var(--c-stone-dark,#5a4a38);
border:2px solid var(--c-stone,#6a5a48);
padding:8px 12px;
font-family:var(--font-cn);
font-size:13px;
line-height:1.6;
margin:0;}
.form-row > label{
flex:1; min-width:0;}
.dm-pair{
cursor:pointer;}
.dm-pair.is-unread{
border-left:4px solid var(--c-emerald);}
.dm-pair-head .grow{
flex:1;}
.player-card-row .grow{
flex:1;}
.gal-item{
background:white;
border:2px solid var(--c-stone,#6a5a48);
border-radius:6px;
overflow:hidden;
display:flex;
flex-direction:column;}
.gal-item.is-published{
border-color:#5fa;}
.gal-item.is-draft{
border-color:#aaa;}
.gal-item-img img{
max-width:100%;
max-height:100%;
object-fit:contain;}
.gal-item-tools .btn{
flex:1; font-size:11px; padding:4px;}
.mp-row{
display:flex; align-items:center; gap:10px;
padding:10px 12px;
border-bottom:1px solid var(--c-bg-2);
cursor:pointer;
transition:background 0.1s;}
.mp-row:hover{
background:var(--c-bg-2);}
.mp-row .grow{
flex:1; min-width:0;}
.room-row .grow{
flex:1;}
.boot-loading{
position:fixed;
inset:0;
background:var(--c-paper,#f5ecd5);
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
z-index:9999;}
.boot-loading-emoji{
font-size:48px; margin-bottom:16px;}
.boot-loading-text{
font-size:18px; color:var(--c-stone-dark,#4a3a2a); font-weight:700;}
.boot-loading-hint{
font-size:12px; color:var(--c-stone,#7a6a5a); margin-top:8px;}
.filter-bar{
display:flex;
gap:8px;
flex-wrap:wrap;
margin-bottom:12px;}
.gal-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
gap:12px;}
body.admin-body{
background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(154,123,79,0.04) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(154,123,79,0.04) 23px 24px),var(--c-bg,#f3e9c8);
color:var(--c-dark,#2a1f10);
min-height:100vh;}
#pane-messages{
background:#f5ecd5;}
#pane-players{
background:#f0e8c8;}
#pane-bookings{
background:#ebe2bc;}
#pane-license{
background:#e6dcb0;}
#pane-kart{
background:#f5ecd5;}
#pane-circuit{
background:#f0e8c8;}
#pane-announcements{
background:#ebe2bc;}
#pane-gallery{
background:#e6dcb0;}
#pane-password{
background:#f5ecd5;}
#pane-admins{
background:#f0e8c8;}
#pane-dms{
background:#ebe2bc;}
.admin-header{
background:var(--c-paper,#fff8dc);
border-bottom:4px solid var(--c-black,#000);
padding:14px 24px;
display:flex; justify-content:space-between; align-items:center;
position:sticky; top:0; z-index:30;
box-shadow:0 4px 0 var(--c-stone-dark,#5a4a38);
color:var(--c-dark,#2a1f10);}
.admin-logo{
display:flex; gap:12px; align-items:center;}
.admin-logo b{
font-family:var(--font-cn);
font-size:18px;
color:var(--c-grass-dark,#2a4);
display:block;
letter-spacing:1px;}
.admin-logo span{
font-family:var(--font-pixel);
font-size:8px;
color:var(--c-stone-dark,#5a4a38);
letter-spacing:2px;}
.admin-header-right{
display:flex; gap:12px; align-items:center;}
.header-link{
font-family:var(--font-pixel);
font-size:10px;
color:var(--c-dark,#2a1f10);
padding:8px 14px;
border:2px solid var(--c-black,#000);
background:var(--c-paper,#fff8dc);
transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);}
.header-link:hover{
background:var(--c-gold,#fc6);
color:var(--c-dark,#2a1f10);}
.admin-warn{
background:var(--c-bg-2,#e7d8a4);
color:var(--c-dark,#2a1f10);
border-bottom:2px solid var(--c-stone,#6a5a48);
padding:8px 16px;
font-family:var(--font-cn);
font-size:13px;
display:flex; gap:10px; align-items:center;
justify-content:center;}
.admin-warn span:first-child{
font-size:16px;}
.view-login{
display:flex; justify-content:center;
padding:80px 24px;}
.login-card{
width:100%;
max-width:440px;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:8px 8px 0 var(--c-stone-dark);
padding:40px 32px;
color:var(--c-dark);}
.login-head{
text-align:center; margin-bottom:28px;}
.login-icon{
font-size:48px;
margin-bottom:12px;
display:inline-block;
filter:drop-shadow(3px 3px 0 var(--c-stone));}
.login-head h1{
font-family:var(--font-pixel);
font-size:18px;
color:var(--c-grass-dark);
margin-bottom:6px;
letter-spacing:2px;}
.login-head p{
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-stone-dark);
letter-spacing:3px;}
.login-form{
display:flex; flex-direction:column; gap:16px;}
.login-form label{
display:flex; flex-direction:column; gap:6px;}
.login-form label span{
font-family:var(--font-cn);
font-size:14px;
font-weight:700;
color:var(--c-dark);}
.login-form input{
font-size:16px;
padding:12px 14px;}
.login-error{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-redstone);
background:rgba(255,42,42,0.08);
border:2px solid var(--c-redstone);
padding:8px 12px;
min-height:1em;}
.login-error:empty{
display:none;}
.login-hint{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
background:#fff8dc;
border:2px dashed var(--c-gold);
padding:10px 12px;
line-height:1.7;
text-align:center;}
.login-hint b{
color:var(--c-grass-dark);}
.btn-block{
width:100%; justify-content:center; padding:14px; font-size:12px;}
.view-dash{
max-width:1200px;
margin:0 auto;
padding:32px 24px 80px;}
.user-bar{
background:var(--c-paper);
color:var(--c-dark);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
padding:14px 20px;
display:flex; justify-content:space-between; align-items:center;
margin-bottom:24px;}
.user-info{
display:flex; align-items:center; gap:12px;}
.user-avatar{
width:44px; height:44px;
background:var(--c-grass);
border:2px solid var(--c-black);
display:flex; align-items:center; justify-content:center;
font-size:22px;
filter:drop-shadow(2px 2px 0 var(--c-stone));}
.user-info b{
font-family:var(--font-cn);
font-size:16px;
font-weight:700;
margin-right:8px;}
.role-tag{
font-family:var(--font-pixel);
font-size:9px;
padding:3px 8px;
border:2px solid var(--c-black);
display:inline-block;
letter-spacing:1px;}
.me-tag{
font-family:var(--font-pixel);
font-size:8px;
background:var(--c-emerald);
color:white;
padding:2px 6px;
border:1px solid var(--c-black);
margin-left:4px;}
.user-actions{
display:flex; gap:8px;}
.btn-sm{
padding:8px 14px; font-size:10px;}
.btn-danger{
color:var(--c-redstone);}
.btn-danger:hover{
background:var(--c-redstone) !important; color:white !important;}
.admin-tabs{
display:flex;
flex-wrap:nowrap;
overflow-x:auto;
gap:0;
border-bottom:4px solid var(--c-black);
background:var(--c-bg-2);
padding:0 4px;
scrollbar-width:none;
-ms-overflow-style:none;}
.admin-tabs::-webkit-scrollbar{
height:0; display:none;}
.admin-tabs .tab{
font-family:var(--font-pixel);
font-size:11px;
background:var(--c-stone);
color:white;
height:44px;
padding:0 16px;
border:3px solid var(--c-black);
border-bottom:none;
margin-right:4px;
margin-bottom:-4px;
letter-spacing:1px;
position:relative;
transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);
display:flex;
align-items:center;
justify-content:center;
gap:6px;
white-space:nowrap;
flex-shrink:0;
cursor:pointer;}
.admin-tabs .tab:hover{
background:var(--c-stone-light); color:var(--c-dark);}
.admin-tabs .tab.active{
background:var(--c-paper);
color:var(--c-grass-dark);
box-shadow:0 -4px 0 var(--c-gold);
z-index:1;}
.tab-count{
font-size:9px;
color:var(--c-redstone);
margin-left:4px;
background:var(--c-gold);
color:var(--c-dark);
padding:1px 5px;
border:1px solid var(--c-black);
min-width:18px;
display:inline-block;
text-align:center;
font-family:var(--font-pixel);
margin-left:6px;}
.tab-pane{
display:none;}
.tab-pane.active{
display:block;
animation:v48-fade-in-up 0.35s var(--ease-out) both;}
@keyframes fadeIn{
from{
opacity:0; transform:translateY(4px);}
to{
opacity:1; transform:none;}
}
.pane-head{
display:flex; justify-content:space-between; align-items:center;
min-height:56px;
background:var(--c-paper);
color:var(--c-dark);
border:3px solid var(--c-black);
border-bottom:none;
padding:10px 20px;
gap:16px;
flex-wrap:wrap;}
.pane-head h2{
font-family:var(--font-pixel);
font-size:13px;
color:var(--c-grass-dark);
letter-spacing:1px;
margin:0;
display:inline-flex;
align-items:center;
gap:8px;}
.pane-head h2::before{
content:'';
display:inline-block;
width:4px; height:18px;
background:var(--c-grass);
border:1px solid var(--c-black);}
.pane-tools{
display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.pane-tools .btn{
height:36px;}
.msg-filter{
background:var(--c-paper);
color:var(--c-dark);
border:3px solid var(--c-black);
border-bottom:none;
padding:12px 20px;
display:flex; flex-wrap:wrap; gap:14px 20px; align-items:center;}
.msg-filter label{
font-family:var(--font-cn);
font-size:14px;
display:inline-flex; align-items:center; gap:6px;
cursor:pointer;
margin:0;
line-height:1;}
.msg-filter label input[type="radio"]{
width:16px; height:16px;
margin:0;
vertical-align:middle;}
.msg-filter label span{
display:inline-flex;
align-items:center;
justify-content:center;
font-family:var(--font-pixel);
font-size:9px;
background:var(--c-grass);
color:white;
padding:0 6px;
height:18px;
min-width:22px;
border:1px solid var(--c-black);
margin-left:2px;}
.msg-filter select{
width:auto; min-width:120px;
font-size:13px;
height:32px;
font-family:var(--font-cn);
border:2px solid var(--c-stone);
background:white;
padding:0 8px;}
.msg-list{
background:var(--c-bg-2);
border:3px solid var(--c-black);
border-top:none;
padding:16px;
display:flex; flex-direction:column; gap:14px;}
.msg-item{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
padding:14px 16px;
transition:transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base) var(--ease-out),background-color var(--dur-base) var(--ease-out);
display:flex;
flex-direction:column;
gap:10px;
will-change:transform;}
.msg-item:hover{
transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--c-stone);}
.msg-item:active{
transform:translate(1px,1px); box-shadow:2px 2px 0 var(--c-stone); transition-duration:80ms;}
.msg-item.is-read{
opacity:0.78;}
.msg-item.is-read .msg-content{
color:var(--c-stone-dark);}
.msg-item.is-read .msg-name{
color:var(--c-stone-dark);}
.msg-head{
display:block;
position:relative;}
.msg-head-left{
display:flex; align-items:center; gap:8px; flex-wrap:wrap;
padding-right:100px;
position:relative;
min-height:26px;}
.msg-time{
position:absolute;
top:4px;
right:0;
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-stone-dark);
letter-spacing:1px;
white-space:nowrap;}
.msg-type{
font-family:var(--font-pixel);
font-size:9px;
padding:3px 8px;
border:2px solid var(--c-black);
color:white;
letter-spacing:1px;
display:inline-flex;
align-items:center;
height:22px;}
.type-建议{
background:var(--c-grass);}
.type-投诉{
background:var(--c-redstone);}
.type-咨询{
background:var(--c-water);}
.type-合作{
background:var(--c-gold); color:var(--c-dark);}
.msg-name{
font-family:var(--font-cn);
font-size:15px;
font-weight:700;
color:var(--c-dark);}
.msg-unread-tag,.msg-legacy-tag,.msg-read-tag,.msg-replied-tag,.msg-player-tag,.gallery-num{
font-family:var(--font-pixel);
font-size:8px;
background:var(--c-redstone);
color:white;
padding:2px 6px;
border:1px solid var(--c-black);
display:inline-flex;
align-items:center;
height:18px;
line-height:1;}
.msg-read-tag{
background:var(--c-stone-light); color:var(--c-stone-dark); border-color:var(--c-stone);}
.msg-replied-tag{
background:#1a3a1a; color:#9f9; border-color:#6f6;}
.msg-replied-tag.tag-pending{
background:#3a2a1a; color:#fc6; border-color:#c84;}
.msg-replied-tag.tag-ai-overridden{
background:#1a1a3a; color:#9cf; border-color:#66f;}
.msg-replied-tag.tag-ai-replied{
background:#1a3a1a; color:#9f9; border-color:#6f6;}
.msg-replied-tag.tag-human-replied{
background:#1a2a3a; color:#9cf; border-color:#6cf;}
.msg-player-tag{
background:var(--c-water);}
.gallery-num{
background:var(--c-stone-light); color:var(--c-stone-dark); border-color:var(--c-stone);}
.msg-content{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
line-height:1.65;
background:var(--c-bg);
border:2px solid var(--c-stone);
padding:10px 12px;
white-space:pre-wrap;
word-break:break-word;}
.msg-actions{
display:flex; gap:8px; flex-wrap:wrap;
padding-top:8px;
border-top:2px dashed var(--c-stone-light);
margin-top:2px;}
.msg-actions .btn{
height:32px;}
.empty-state{
text-align:center;
padding:60px 20px;
background:var(--c-bg-2);
border:3px solid var(--c-black);
border-top:none;
color:var(--c-stone-dark);
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:10px;}
.empty-state p{
margin:0;}
.empty-icon{
font-size:48px; opacity:0.7;}
.pane-hint,.hint{
background:var(--c-paper,#fff8dc);
color:var(--c-stone-dark,#5a4a38);
border:3px solid var(--c-black,#000);
border-top:none;
padding:12px 20px;
font-family:var(--font-cn);
font-size:14px;
line-height:1.7;
margin:0;}
.admin-list{
background:var(--c-bg-2);
border:3px solid var(--c-black);
border-top:none;
padding:16px;
display:flex; flex-direction:column; gap:12px;}
.admin-item{
display:flex; align-items:center; gap:14px;
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
padding:14px 16px;
min-height:72px;}
.admin-avatar{
width:48px; height:48px;
background:var(--c-grass);
border:2px solid var(--c-black);
display:flex; align-items:center; justify-content:center;
font-size:24px;
flex-shrink:0;}
.admin-meta{
flex:1; min-width:0;}
.admin-meta b{
font-family:var(--font-cn);
font-size:16px;
font-weight:700;
color:var(--c-dark);
display:inline-block;
margin-right:8px;
margin-bottom:4px;}
.admin-actions{
display:flex; gap:8px; flex-shrink:0;}
.admin-actions .btn{
height:32px;}
.pwd-form{
background:var(--c-paper);
color:var(--c-dark);
border:3px solid var(--c-black);
border-top:none;
padding:24px;
display:flex; flex-direction:column; gap:16px;
max-width:560px;}
.pwd-form label{
display:flex; flex-direction:column; gap:6px; margin:0;}
.pwd-form label span{
font-family:var(--font-cn);
font-size:14px;
font-weight:700;}
.pwd-form input{
font-size:15px; padding:10px 12px; height:40px;}
.pwd-msg{
min-height:1.4em; font-family:var(--font-cn); font-size:14px;}
.pwd-msg.err{
color:var(--c-redstone);}
.pwd-msg.ok{
color:var(--c-emerald); font-weight:700;}
.pwd-form .btn{
align-self:flex-start; height:38px;}
.book-item .book-detail{
display:flex; flex-wrap:wrap; gap:12px 18px;
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
background:var(--c-bg);
border:2px solid var(--c-stone);
padding:10px 14px;
margin:0;}
.book-extra b{
color:var(--c-grass-dark); margin-right:4px;}
.type-book{
background:var(--c-gold); color:var(--c-dark);}
.book-status{
font-family:var(--font-pixel);
font-size:9px;
padding:3px 8px;
border:2px solid var(--c-black);
color:white;
letter-spacing:1px;
display:inline-flex;
align-items:center;
height:22px;}
.book-actions{
display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.book-status-sel{
width:auto;
font-size:13px;
height:32px;
font-family:var(--font-cn);
padding:0 8px;
border:2px solid var(--c-stone);
background:white;}
.image-upload-wrap{
display:flex;
gap:8px;
align-items:center;
margin-top:6px;
flex-wrap:wrap;}
.image-upload-btn{
flex:0 0 auto;
font-size:12px;
padding:6px 12px;
background:var(--c-paper);
color:var(--c-black);
border:2px solid var(--c-black);
font-family:inherit;
cursor:pointer;
box-shadow:3px 3px 0 var(--c-black);
transition:transform 0.1s,box-shadow 0.1s;}
.image-upload-btn:hover{
transform:translate(-1px,-1px);
box-shadow:4px 4px 0 var(--c-black);}
.image-upload-btn:active{
transform:translate(2px,2px);
box-shadow:1px 1px 0 var(--c-black);}
.image-upload-file{
display:none;}
.image-upload-hint{
font-family:var(--font-cn);
font-size:12px;
color:var(--c-stone-dark);}
.image-upload-preview{
max-height:48px;
max-width:80px;
display:none;
border:2px solid var(--c-black);
object-fit:cover;}
.modal-mask{
position:fixed; inset:0;
background:rgba(0,0,0,0.65);
z-index:100;
display:flex; align-items:center; justify-content:center;
padding:24px;
overflow-y:auto;}
.modal{
width:100%; max-width:480px;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:8px 8px 0 var(--c-stone-dark);
color:var(--c-dark);
max-height:90vh;
display:flex; flex-direction:column;}
.modal-head{
background:var(--c-grass);
color:white;
padding:14px 20px;
border-bottom:3px solid var(--c-black);
display:flex; justify-content:space-between; align-items:center;}
.modal-head h3{
font-family:var(--font-pixel);
font-size:13px;
letter-spacing:1px;}
.modal-close{
font-family:var(--font-pixel);
font-size:14px;
color:white;
width:28px; height:28px;
background:transparent;
border:2px solid white;}
.modal-close:hover{
background:var(--c-redstone);}
.modal-body{
padding:24px; overflow-y:auto;}
.modal-form{
display:flex; flex-direction:column; gap:14px;}
.modal-form label{
display:flex; flex-direction:column; gap:6px;}
.modal-form label span{
font-family:var(--font-cn);
font-size:14px;
font-weight:700;}
.modal-form input,.modal-form select{
font-size:15px;
padding:10px 12px;}
.modal-actions{
display:flex; justify-content:flex-end; gap:10px;}
.modal-msg{
font-size:13px; line-height:1.4; padding:4px 0; font-family:var(--font-cn);}
.modal-divider{
text-align:center;
margin:8px 0 12px;
color:var(--c-stone-dark);
font-size:12px;
position:relative;}
.modal-divider::before,.modal-divider::after{
content:'';
position:absolute;
top:50%;
width:38%;
height:1px;
background:var(--c-stone);}
.modal-divider::before{
left:0;}
.modal-divider::after{
right:0;}
.modal-divider span{
background:var(--c-paper);
padding:0 10px;
position:relative;
z-index:1;}
@media (max-width:720px){
.user-bar{
flex-direction:column; gap:12px; align-items:stretch;}
.pane-head{
flex-direction:column; gap:10px; align-items:stretch; min-height:0; padding:12px 16px;}
.pane-tools{
width:100%;}
.pane-tools .btn{
flex:1;}
.msg-filter{
flex-direction:column; align-items:flex-start; padding:12px 16px;}
.msg-filter select{
width:100%;}
.msg-item{
padding:12px 14px;}
.msg-item .msg-head-left{
padding-right:0; min-height:0;}
.msg-item .msg-time{
position:static; margin-top:4px;}
.admin-item{
flex-wrap:wrap;}
.admin-actions{
width:100%;}
.admin-tabs{
flex-wrap:nowrap;}
.admin-tabs .tab{
font-size:10px; height:38px; padding:0 12px;}
.login-card{
padding:28px 20px;}
.modal{
max-width:100%;}
.modal-mask{
padding:12px;}
}
@media (max-width:480px){
.admin-tabs .tab{
font-size:9px; padding:0 8px;}
}
.ann-item .msg-content{
background:var(--c-bg);
color:var(--c-dark);
border:2px solid var(--c-stone);
border-radius:4px;
padding:10px 12px;
font-size:14px;
line-height:1.65;
margin:6px 0;
white-space:pre-wrap;
word-break:break-word;}
.ann-item .ann-meta{
background:var(--c-bg-2,#efe9d8);
border:1px solid var(--c-stone);
color:var(--c-stone-dark);
font-size:12px;
font-family:var(--font-pixel);
letter-spacing:0.5px;}
.ann-item .msg-read-tag{
background:var(--c-gold);
color:var(--c-dark);
border-color:var(--c-black);
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:1px 6px;}
.subtabs{
display:flex;
gap:0;
border-bottom:3px solid var(--c-black);
background:var(--c-bg-2);
margin:8px 0 12px;
padding:0 4px;
flex-wrap:wrap;}
.subtab{
font-family:var(--font-pixel);
font-size:10px;
background:var(--c-stone);
color:white;
height:32px;
padding:0 14px;
border:2px solid var(--c-black);
border-bottom:none;
margin-right:4px;
margin-bottom:-3px;
letter-spacing:1px;
display:flex;
align-items:center;
gap:4px;
white-space:nowrap;
cursor:pointer;
transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);}
.subtab:hover{
background:var(--c-stone-light); color:var(--c-dark);}
.subtab.active{
background:var(--c-paper);
color:var(--c-grass-dark);
box-shadow:0 -3px 0 var(--c-gold);
position:relative;
z-index:1;}
.subview{
display:none;}
.subview.active{
display:block;}
.admin-header{
background:linear-gradient(180deg,var(--c-paper) 0%,#fff8e0 100%);
border-bottom:4px solid var(--c-black);
position:relative;
overflow:hidden;}
.admin-header::after{
content:'';
position:absolute;
bottom:0; left:0; right:0;
height:3px;
background:var(--c-gold);}
.admin-tabs .tab.active{
background:var(--c-paper);
color:var(--c-grass-dark);
border-color:var(--c-black);
border-bottom:3px solid var(--c-gold);
box-shadow:0 -3px 0 var(--c-black) inset;
position:relative;}
.admin-tabs .tab.active::after{
content:'';
position:absolute;
bottom:-3px; left:0; right:0;
height:3px;
background:var(--c-gold);}
.admin-tabs .tab .tab-count:not(:empty){
background:var(--c-redstone);
color:#fff;
font-size:10px;
padding:1px 6px;
border-radius:10px;
margin-left:4px;
font-family:var(--font-pixel);}
.msg-item{
position:relative;
padding-left:16px !important;
border-left:4px solid var(--c-stone-light);
transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);}
.msg-item:hover{
transform:translateX(2px);
box-shadow:0 4px 0 rgba(0,0,0,0.1);}
.msg-item.status-pending{
border-left-color:var(--c-redstone);}
.msg-item.status-confirmed{
border-left-color:var(--c-emerald);}
.msg-item.status-approved{
border-left-color:var(--c-emerald);}
.msg-item.status-rejected{
border-left-color:var(--c-stone);}
.msg-item.status-completed{
border-left-color:var(--c-water);}
.msg-item.status-cancelled{
border-left-color:var(--c-stone);}
.pane-head{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:var(--shadow-soft);
padding:var(--sp-3) var(--sp-4);
margin-bottom:var(--sp-4);
border-left:6px solid var(--c-grass);}
.pane-head h2{
margin:0 !important;
font-family:var(--font-pixel) !important;
font-size:14px !important;
color:var(--c-grass-dark) !important;}
.pane-head h2::before{
display:none !important;}
.admin-modal .form-row,.modal .form-row{
display:flex;
gap:var(--sp-3);
margin-bottom:var(--sp-3);
flex-wrap:wrap;}
.admin-modal .form-row > label,.modal .form-row > label{
flex:1 1 200px;
min-width:180px;}
.msg-filter,.filter-bar{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:var(--sp-3);
padding:var(--sp-3) var(--sp-4);
background:var(--c-bg-2);
border:2px solid var(--c-black);
margin-bottom:var(--sp-4);
font-family:var(--font-cn);
font-size:13px;}
.msg-filter label,.filter-bar label{
display:flex; align-items:center; gap:6px;
cursor:pointer;
padding:6px 10px;
border:2px solid var(--c-stone);
background:var(--c-paper);
user-select:none;}
.msg-filter input[type="radio"],.filter-bar input[type="radio"]{
appearance:none;
-webkit-appearance:none;
-moz-appearance:none;
width:12px; height:12px;
margin:0;
border:2px solid var(--c-black);
background:var(--c-paper);
position:relative;
flex-shrink:0;
cursor:pointer;}
.msg-filter input[type="radio"]:checked,.filter-bar input[type="radio"]:checked{
background:var(--c-gold);
box-shadow:inset 0 0 0 2px var(--c-paper);}
.msg-filter input[type="radio"]:checked::after,.filter-bar input[type="radio"]:checked::after{
content:'';
position:absolute; top:1px; left:1px;
width:4px; height:4px;
background:var(--c-black);}
.msg-filter label:has(input:checked),.filter-bar label:has(input:checked){
background:var(--c-gold);
border-color:var(--c-black);
color:var(--c-dark);
font-weight:700;}
.role-tag{
display:inline-block;
padding:2px 6px;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
border:1px solid var(--c-black);
background:var(--c-stone-light);
color:var(--c-dark);}
.role-tag.role-super{
background:var(--c-redstone); color:#fff;}
.login-card{
position:relative;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:8px 8px 0 var(--c-black);
padding:var(--sp-6);
max-width:420px;
margin:80px auto 40px;}
.login-card::before{
content:'';
position:absolute; top:0; left:0; right:0; height:6px;
background:var(--c-gold);}
.login-card .login-head h1{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-grass-dark);
margin:var(--sp-3) 0 var(--sp-1);}
.view-login{
padding:0 !important; min-height:100vh;}
.login-grid{
display:grid;
grid-template-columns:1.1fr 1fr;
min-height:100vh;
background:var(--c-paper);}
.login-brand{
background:linear-gradient(135deg,#2d5e0f 0%,#4a6510 50%,#1a3a08 100%);
color:#fff;
display:flex; align-items:center; justify-content:center;
padding:60px 40px;
position:relative;
overflow:hidden;}
.login-brand::before{
content:'';
position:absolute; top:0; left:0; right:0; bottom:0;
background-image:repeating-linear-gradient(0deg,transparent 0px,transparent 24px,rgba(255,255,255,0.04) 24px,rgba(255,255,255,0.04) 48px),repeating-linear-gradient(90deg,transparent 0px,transparent 24px,rgba(255,255,255,0.04) 24px,rgba(255,255,255,0.04) 48px);
pointer-events:none;}
.login-brand::after{
content:'';
position:absolute; top:0; left:0; right:0; height:6px;
background:linear-gradient(90deg,var(--c-gold),var(--c-sun),var(--c-gold));}
.login-brand-inner{
position:relative; max-width:460px; z-index:1;}
.login-logo-block{
display:flex; gap:4px; margin-bottom:24px;}
.login-logo-block .block-grass{
width:36px; height:36px;
background:#7cb02c; border:3px solid #1a1a1a;
box-shadow:3px 3px 0 #1a1a1a;}
.login-logo-block .block-dirt{
width:36px; height:36px;
background:#866043; border:3px solid #1a1a1a;
box-shadow:3px 3px 0 #1a1a1a;
margin-top:8px;}
.login-brand-title{
font-family:var(--font-pixel);
font-size:56px;
color:#ffd23f;
margin:0 0 8px;
text-shadow:3px 0 0 #1a1a1a,0 3px 0 #1a1a1a,3px 3px 0 #1a1a1a,6px 6px 0 rgba(0,0,0,0.4);
letter-spacing:8px;
line-height:1;}
.login-brand-sub{
font-family:var(--font-pixel);
font-size:11px;
color:#fffbe5;
letter-spacing:4px;
margin:0 0 24px;
opacity:0.85;}
.login-brand-divider{
width:80px; height:4px;
background:var(--c-gold);
border:2px solid #1a1a1a;
margin-bottom:20px;}
.login-brand-desc{
font-family:var(--font-cn);
font-size:15px;
line-height:1.9;
color:#fffbe5;
margin:0 0 32px;
opacity:0.92;}
.login-brand-features{
list-style:none;
padding:0;
margin:0;
display:grid;
grid-template-columns:1fr 1fr;
gap:12px;}
.login-brand-features li{
display:flex; align-items:center; gap:8px;
font-family:var(--font-cn);
font-size:14px;
color:#fffbe5;
background:rgba(0,0,0,0.25);
border:2px solid rgba(255,255,255,0.15);
padding:10px 12px;}
.login-brand-features li .badge{
flex-shrink:0;}
.login-form-wrap{
display:flex; flex-direction:column; align-items:center; justify-content:center;
padding:40px 24px;
background:var(--c-bg);
position:relative;}
.login-form-wrap .login-card{
position:relative;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:8px 8px 0 var(--c-black);
padding:36px 32px;
max-width:420px;
width:100%;
margin:0;}
.login-form-wrap .login-card::before{
content:'';
position:absolute; top:0; left:0; right:0; height:6px;
background:var(--c-gold);}
.login-form-wrap .login-head h1{
font-family:var(--font-pixel);
font-size:18px;
color:var(--c-grass-dark);
margin:12px 0 4px;
letter-spacing:1px;}
.login-form-wrap .login-head p{
font-family:var(--font-pixel);
font-size:10px;
color:var(--c-stone-dark);
letter-spacing:3px;
margin:0 0 24px;}
.login-form-wrap .login-form label{
display:block;
margin-bottom:16px;}
.login-form-wrap .login-form label .label-text{
display:block;
font-family:var(--font-pixel);
font-size:10px;
color:var(--c-grass-dark);
margin-bottom:6px;
letter-spacing:1px;}
.login-form-wrap .login-form input{
font-family:var(--font-cn);
font-size:16px;
width:100%;
padding:12px 14px;
background:#fff;
border:2px solid var(--c-black);
box-shadow:inset 0 0 0 2px var(--c-stone-light);
outline:none;
transition:box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);}
.login-form-wrap .login-form input:focus{
border-color:var(--c-gold);
box-shadow:inset 0 0 0 2px var(--c-gold),0 0 0 4px rgba(255,210,63,0.2);}
.login-form-wrap .login-form .btn-block{
margin-top:8px;
padding:14px;
font-size:12px;}
.login-form-wrap .login-back-home{
margin-top:24px;
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
text-decoration:none;
padding:8px 16px;
border:2px solid var(--c-stone);
background:transparent;
transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);}
.login-form-wrap .login-back-home:hover{
background:var(--c-gold);
color:var(--c-dark);
border-color:var(--c-black);}
@media (max-width:768px){
.login-grid{
grid-template-columns:1fr;}
.login-brand{
padding:32px 20px;}
.login-brand-title{
font-size:40px;}
.login-brand-features{
grid-template-columns:1fr;}
.login-form-wrap{
padding:24px 16px;}
}
.boot-loading{
position:fixed; inset:0; z-index:99999;
display:flex; align-items:center; justify-content:center;
background:linear-gradient(135deg,var(--c-paper) 0%,var(--c-bg) 100%);}
.boot-loading-card{
text-align:center;
padding:40px 48px;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:8px 8px 0 var(--c-black);
position:relative;
min-width:320px;}
.boot-loading-card::before{
content:'';
position:absolute; top:0; left:0; right:0; height:5px;
background:var(--c-gold);}
.boot-loading-emoji{
font-size:48px; line-height:1; margin-bottom:16px;}
.boot-loading-text{
font-family:var(--font-pixel);
font-size:14px;
color:var(--c-grass-dark);
margin-bottom:8px;
letter-spacing:1px;}
.boot-loading-hint{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
margin-bottom:20px;}
.boot-loading-bar{
width:240px; height:6px;
background:var(--c-bg-2);
border:2px solid var(--c-black);
margin:0 auto;
overflow:hidden;
position:relative;}
.boot-loading-bar-fill{
height:100%;
background:linear-gradient(90deg,var(--c-gold),var(--c-grass),var(--c-gold));
background-size:200% 100%;
animation:boot-bar-slide 1.2s linear infinite;
width:60%;}
@keyframes boot-bar-slide{
0%{
transform:translateX(-100%); background-position:0% 0;}
100%{
transform:translateX(200%); background-position:200% 0;}
}
.skeleton{
display:block;
background:linear-gradient(90deg,var(--c-bg-2) 0%,var(--c-stone-light) 50%,var(--c-bg-2) 100%);
background-size:200% 100%;
animation:skeleton-shimmer 1.2s linear infinite;
border:2px solid var(--c-stone);
height:16px;
margin:6px 0;}
.skeleton.skeleton-lg{
height:24px; width:60%;}
.skeleton.skeleton-md{
width:40%;}
.skeleton.skeleton-sm{
width:30%; height:12px;}
@keyframes skeleton-shimmer{
0%{
background-position:200% 0;}
100%{
background-position:-200% 0;}
}
#playerList:empty::before,#bookList:empty::before,#licenseList:empty::before,#kartList:empty::before,#circuitList:empty::before,#msgList:empty::before,#adminList:empty::before,#dmList:empty::before,#galGrid:empty::before,#annList:empty::before{
content:'正在加载…';
display:block;
text-align:center;
padding:40px 20px;
color:var(--c-stone-dark);
font-family:var(--font-pixel);
font-size:12px;
letter-spacing:2px;}
.ticket-item{
border:3px solid var(--c-black);
background:var(--c-bg-1);
padding:14px 16px;
margin-bottom:14px;
box-shadow:4px 4px 0 var(--c-stone);
border-left:6px solid var(--c-stone);
transition:transform .15s,box-shadow .15s;
font-family:var(--font-cn);}
.ticket-item:hover{
transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--c-stone);}
.ticket-item.ticket-open{
border-left-color:var(--c-redstone);}
.ticket-item.ticket-in_progress{
border-left-color:var(--c-gold);}
.ticket-item.ticket-resolved{
border-left-color:var(--c-emerald); opacity:0.85;}
.ticket-item.ticket-closed{
border-left-color:var(--c-stone); opacity:0.65;}
.ticket-head{
display:flex; justify-content:space-between; align-items:flex-start;
gap:12px; margin-bottom:8px; flex-wrap:wrap;}
.ticket-head-left{
display:flex; gap:10px; align-items:center; flex-wrap:wrap; flex:1;}
.ticket-head-right{
display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.ticket-title{
font-size:15px;}
.ticket-player{
font-size:12px; color:var(--c-stone-dark); display:inline-flex; align-items:center; gap:4px;}
.ticket-avatar{
font-size:16px;}
.ticket-prio{
display:inline-block; padding:2px 8px; border-radius:3px;
font-size:11px; font-weight:bold; letter-spacing:0.5px;
border:2px solid var(--c-black);}
.ticket-status{
display:inline-block; padding:2px 8px; border-radius:3px;
font-size:11px; font-weight:bold; letter-spacing:0.5px;
background:var(--c-bg-2); color:var(--c-stone-dark);
border:2px solid var(--c-stone);}
.ticket-status-open{
background:#fee; color:#c33; border-color:#c33;}
.ticket-status-in_progress{
background:#fff4d6; color:#b87800; border-color:#d6a300;}
.ticket-status-resolved{
background:#e6f7e6; color:#2a7a2a; border-color:#5d7c15;}
.ticket-status-closed{
background:#eee; color:#888;}
.ticket-time{
font-size:11px; color:var(--c-stone-dark);}
.ticket-body{
font-size:13px; line-height:1.6; margin:8px 0;
background:var(--c-bg-2); padding:8px 10px; border-left:3px solid var(--c-stone);}
.ticket-body-kv{
display:flex; flex-wrap:wrap; gap:6px 12px;}
.ticket-k{
font-size:12px;}
.ticket-k b{
color:var(--c-stone-dark); margin-right:2px;}
.ticket-reply-box{
background:#e6f3ff; border:2px solid #6cf; padding:6px 10px;
margin-top:8px; font-size:13px;}
.ticket-reply-box b{
color:#1a5d8a;}
.ticket-reply-box small{
display:block; margin-top:4px; color:var(--c-stone-dark); font-size:11px;}
.ticket-meta{
display:flex; gap:16px; font-size:11px; color:var(--c-stone-dark);
margin-top:8px; padding-top:8px; border-top:1px dashed var(--c-stone);
flex-wrap:wrap;}
.ticket-actions{
margin-top:10px; display:flex; gap:6px; flex-wrap:wrap;}
.ticket-categories span{
display:inline-block; padding:3px 8px; background:var(--c-bg-2);
border:2px solid var(--c-stone); font-size:12px;}
@media (max-width:720px){
.ticket-head{
flex-direction:column;}
.ticket-head-right{
width:100%;}
}
[data-theme="dark"] body.admin-body{
background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(154,123,79,0.03) 23px 24px),repeating-linear-gradient(90deg,transparent 0 23px,rgba(154,123,79,0.03) 23px 24px),var(--c-page) !important;
color:var(--c-text) !important;}
[data-theme="dark"] #pane-messages,[data-theme="dark"] #pane-players,[data-theme="dark"] #pane-bookings,[data-theme="dark"] #pane-license,[data-theme="dark"] #pane-kart,[data-theme="dark"] #pane-circuit,[data-theme="dark"] #pane-announcements,[data-theme="dark"] #pane-gallery,[data-theme="dark"] #pane-password,[data-theme="dark"] #pane-admins,[data-theme="dark"] #pane-dms,[data-theme="dark"] #pane-tickets,[data-theme="dark"] #pane-subscriptions,[data-theme="dark"] #pane-courses,[data-theme="dark"] #pane-citizens{
background:var(--c-page) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .admin-header{
background:var(--c-elevated) !important;
color:var(--c-text) !important;
border-bottom-color:var(--c-border) !important;
box-shadow:0 4px 0 rgba(0,0,0,0.5) !important;}
[data-theme="dark"] .admin-logo b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .admin-logo span{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .header-link{
color:var(--c-text) !important;}
[data-theme="dark"] .header-link:hover{
color:var(--c-gold) !important;}
[data-theme="dark"] .user-bar{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .admin-warn{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .admin-meta b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .admin-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .hint{
background:var(--c-surface-2) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .pane-hint{
background:var(--c-surface-2) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .boot-loading{
background:var(--c-page) !important; color:var(--c-text) !important;}
[data-theme="dark"] .boot-loading-text{
color:var(--c-text) !important;}
[data-theme="dark"] .boot-loading-hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-filter{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-filter select,[data-theme="dark"] .msg-filter input{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .msg-filter label{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-item{
background:var(--c-surface) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-item:hover{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .msg-item.is-read .msg-name{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-item.is-read .msg-content{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-name{
color:var(--c-text) !important;}
[data-theme="dark"] .msg-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-content{
background:var(--c-surface-2) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-actions{
border-top-color:var(--c-border) !important;}
[data-theme="dark"] .msg-replied-tag{
background:#1a3a1a !important; color:#9f9 !important; border-color:#6f6 !important;}
[data-theme="dark"] .msg-replied-tag.tag-pending{
background:#3a2a1a !important; color:#fc6 !important; border-color:#c84 !important;}
[data-theme="dark"] .msg-replied-tag.tag-ai-overridden{
background:#1a1a3a !important; color:#9cf !important; border-color:#66f !important;}
[data-theme="dark"] .msg-replied-tag.tag-ai-replied{
background:#1a3a1a !important; color:#9f9 !important; border-color:#6f6 !important;}
[data-theme="dark"] .msg-replied-tag.tag-human-replied{
background:#1a2a3a !important; color:#9cf !important; border-color:#6cf !important;}
[data-theme="dark"] .msg-read-tag{
background:var(--c-surface-2) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-reply-box,[data-theme="dark"] .pm-reply-box{
background:var(--c-surface-2) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-reply-box b,[data-theme="dark"] .pm-reply-box b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .msg-reply-box small,[data-theme="dark"] .pm-reply-box small{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .type-合作{
background:var(--c-gold) !important; color:var(--c-dark) !important;}
[data-theme="dark"] .type-book{
background:var(--c-water) !important; color:#fff !important;}
[data-theme="dark"] .gallery-num{
background:var(--c-surface-2) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .empty-state{
background:var(--c-surface) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .empty-state p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .empty-state .empty-sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .subtab{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .subtab.active{
background:var(--c-grass) !important; color:#fff !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .role-tag{
background:var(--c-grass) !important; color:#fff !important;}
[data-theme="dark"] .login-card{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .login-head h1{
color:var(--c-text) !important;}
[data-theme="dark"] .login-head p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .login-form label{
color:var(--c-text) !important;}
[data-theme="dark"] .login-form input{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .login-hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .login-hint b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .login-back-home{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .login-back-home:hover{
color:var(--c-gold) !important;}
[data-theme="dark"] .pwd-form{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .book-item{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .book-item .book-detail{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .book-extra b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .image-upload-hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .modal-divider{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-divider::before,[data-theme="dark"] .modal-divider::after{
background:var(--c-border) !important;}
[data-theme="dark"] .modal-divider span{
background:var(--c-surface) !important; color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal h3{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .modal .form-row label{
color:var(--c-text) !important;}
[data-theme="dark"] .modal input,[data-theme="dark"] .modal select,[data-theme="dark"] .modal textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .modal-msg{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-close{
color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .modal-close:hover{
color:var(--c-redstone) !important; border-color:var(--c-redstone) !important;}
[data-theme="dark"] .ann-item .msg-content{
color:var(--c-text) !important; background:var(--c-surface-2) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .ann-item .ann-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .gal-item{
background:var(--c-surface) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .gal-item.is-published{
border-color:var(--c-grass) !important;}
[data-theme="dark"] .gal-item.is-draft{
border-color:var(--c-stone) !important;}
[data-theme="dark"] .ticket-item{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .ticket-head{
color:var(--c-text) !important;}
[data-theme="dark"] .ticket-player{
color:var(--c-text) !important;}
[data-theme="dark"] .ticket-status{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-k b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .ticket-reply-box small{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-categories span{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .tag{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .tag-super{
background:var(--c-gold) !important; color:var(--c-dark) !important;}
[data-theme="dark"] .ticket-status-open{
background:rgba(255,90,90,0.15) !important; color:var(--c-redstone) !important; border-color:var(--c-redstone) !important;}
[data-theme="dark"] .ticket-status-in_progress{
background:rgba(255,201,64,0.15) !important; color:var(--c-gold) !important; border-color:var(--c-gold) !important;}
[data-theme="dark"] .ticket-status-resolved{
background:rgba(93,220,138,0.15) !important; color:var(--c-emerald) !important; border-color:var(--c-emerald) !important;}
[data-theme="dark"] .ticket-status-closed{
background:var(--c-surface-2) !important; color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-body{
background:var(--c-surface-2) !important; border-left-color:var(--c-border) !important; color:var(--c-text) !important;}
[data-theme="dark"] .ticket-k b{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-head{
background:var(--c-surface) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .login-brand-title{
color:var(--c-gold) !important;}
[data-theme="dark"] .login-brand-sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .login-form-wrap{
background:var(--c-surface) !important;}
[data-theme="dark"] .login-form{
color:var(--c-text) !important;}
[data-theme="dark"] .login-back-home{
color:var(--c-grass-light) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .login-back-home:hover{
color:var(--c-gold) !important; border-color:var(--c-gold) !important;}
[data-theme="dark"] .ticket-reply-box b{
color:var(--c-water) !important;}
[data-theme="dark"] .ticket-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .gal-item.is-published{
border-color:var(--c-grass) !important;}
[data-theme="dark"] .gal-item.is-draft{
border-color:var(--c-stone) !important;}
.empty-state{
text-align:center;
padding:40px 20px;
color:var(--c-stone-dark);
font-family:var(--font-cn);
font-size:14px;}
.empty-state .empty-icon{
font-size:48px;
margin-bottom:12px;
opacity:0.6;
line-height:1;}
.pane-hint{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
background:var(--c-paper);
border:2px dashed var(--c-stone);
padding:10px 14px;
margin:12px 0;
line-height:1.7;}
.tag{
display:inline-block;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:3px 8px;
border:2px solid var(--c-black);
background:var(--c-stone);
color:white;
vertical-align:middle;}
.tag-success{
background:var(--c-grass); color:white;}
.tag-warn{
background:var(--c-gold); color:var(--c-dark);}
.tag-super{
background:var(--c-water); color:white;}
.page-back-row{
max-width:720px;
margin:18px auto 0;
padding:0 16px;}
.page-back-row a{
color:var(--c-grass-dark);
text-decoration:none;
font-family:var(--font-cn);
font-size:13px;}
.page-back-row a:hover{
text-decoration:underline;}
.hotel-toolbar{
display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
margin:18px 0 24px; padding:16px 20px;
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
font-family:var(--font-cn);}
.hotel-filters{
display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.hotel-filters label{
font-size:13px;
color:var(--c-stone-dark);
margin-right:4px;}
.hotel-filters select,.hotel-filters input[type="number"]{
font-family:var(--font-cn);
font-size:14px;
padding:6px 10px;
border:2px solid var(--c-black);
background:var(--c-paper);
width:auto;}
.hotel-filters .filter-reset{
font-family:var(--font-cn);
font-size:13px;
padding:6px 12px;
background:var(--c-grass-dark);
color:var(--c-paper);
border:2px solid var(--c-black);
cursor:pointer;
box-shadow:2px 2px 0 var(--c-black);}
.hotel-filters .filter-reset:hover{
transform:translate(-1px,-1px);
box-shadow:3px 3px 0 var(--c-black);}
.hotel-count{
font-size:14px;
color:var(--c-stone-dark);}
.room-status{
display:inline-block;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:3px 8px;
border:2px solid var(--c-black);
background:var(--c-stone);
color:white;
margin-left:8px;
vertical-align:middle;}
.room-status.draft{
background:var(--c-gold); color:var(--c-dark);}
.room-status.active{
background:var(--c-grass);}
.room-status.building{
background:var(--c-water);}
.book-room-meta{
font-family:var(--font-cn);
font-size:12px;
color:var(--c-stone-dark);
margin-top:4px;
display:block;}
.profile-wrap{
max-width:720px;
margin:24px auto;
padding:0 16px;}
.profile-card{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
overflow:hidden;}
.profile-banner{
height:96px;
background:linear-gradient(135deg,var(--c-grass) 0%,var(--c-gold) 100%);
position:relative;}
.profile-avatar{
width:96px; height:96px;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:3px 3px 0 var(--c-black);
display:flex; align-items:center; justify-content:center;
font-size:56px;
margin:-50px 0 0 24px;
position:relative;}
.profile-body{
padding:12px 24px 24px;}
.profile-name{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-dark);
margin:8px 0 4px;
letter-spacing:1px;}
.profile-meta{
font-family:var(--font-cn);
font-size:12px;
color:var(--c-stone-dark);
margin-bottom:16px;}
.profile-bio{
background:var(--c-bg-2);
border:2px dashed var(--c-stone);
padding:12px 14px;
font-family:var(--font-cn);
font-size:14px;
line-height:1.7;
color:var(--c-dark);
min-height:50px;
white-space:pre-wrap;
word-break:break-word;}
.profile-bio.empty{
color:var(--c-stone); font-style:italic;}
.profile-stats{
display:flex; gap:16px;
margin-top:16px;
flex-wrap:wrap;}
.profile-stat{
background:var(--c-bg-2);
border:2px solid var(--c-stone);
padding:8px 14px;
text-align:center;
flex:1; min-width:100px;}
.profile-stat .num{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-grass-dark);
line-height:1.1;}
.profile-stat .lbl{
font-family:var(--font-cn);
font-size:11px;
color:var(--c-stone-dark);
letter-spacing:1px;
display:block;
margin-top:4px;}
.profile-actions{
margin-top:20px;
display:flex; gap:8px;
flex-wrap:wrap;}
.profile-actions > *{
flex:1; min-width:120px;
text-align:center;}
.profile-login-hint{
text-align:center;
padding:40px 20px;
color:var(--c-stone-dark);
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
font-family:var(--font-cn);}
.profile-login-hint h2{
color:var(--c-dark);
margin:0 0 8px;
font-size:18px;
font-family:var(--font-pixel);}
.profile-login-hint .big-icon{
font-size:48px;
margin-bottom:12px;
line-height:1;}
.profile-loading{
padding:20px;
text-align:center;
color:var(--c-stone);
font-family:var(--font-cn);}
.modal-body label{
display:block;
font-family:var(--font-cn);
font-size:12px;
font-weight:700;
color:var(--c-dark);
margin:0 0 6px;
letter-spacing:1px;}
.modal-body label + label{
margin-top:10px;}
.modal-body input,.modal-body textarea{
width:100%;
box-sizing:border-box;
font-family:var(--font-cn);
font-size:14px;
padding:8px;
border:2px solid var(--c-stone);
background:white;
color:var(--c-dark);}
.modal-body input:focus,.modal-body textarea:focus{
outline:none;
border-color:var(--c-grass);}
.modal-body .hint{
font-family:var(--font-cn);
font-size:11px;
color:var(--c-stone);
margin-top:4px;}
.modal-actions{
display:flex; gap:8px;
margin-top:14px;}
.modal-actions button{
flex:1; padding:10px;}
.btn-success{
background:var(--c-grass) !important; color:white !important; box-shadow:4px 4px 0 var(--c-black) !important;}
.modal-msg-inline{
font-family:var(--font-cn); font-size:13px; margin-top:10px;}
.modal-msg-inline.success{
color:var(--c-grass);}
.modal-msg-inline.error{
color:var(--c-redstone);}
.passkey-card{
margin-top:16px;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
overflow:hidden;}
.passkey-head{
padding:16px 24px;
background:var(--c-grass);
color:white;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
border-bottom:3px solid var(--c-black);}
.passkey-body{
padding:18px 24px;}
.passkey-desc{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-dark);
line-height:1.6;
margin-bottom:12px;}
.passkey-list{
margin-bottom:12px;}
.passkey-empty{
color:var(--c-stone);
font-family:var(--font-cn);
font-size:13px;
font-style:italic;
margin:0;}
.passkey-item{
display:flex; justify-content:space-between; align-items:center;
padding:10px;
background:var(--c-bg-2);
border:2px solid var(--c-stone);
margin-bottom:6px;
font-family:var(--font-cn);}
.passkey-item-info{
flex:1; min-width:0;}
.passkey-item-name{
font-size:14px; font-weight:700; color:var(--c-dark);}
.passkey-item-detail{
font-size:11px; color:var(--c-stone);
margin-top:2px;}
.passkey-item-cred{
font-size:10px; color:var(--c-stone);
font-family:monospace;
word-break:break-all;}
.passkey-item-actions{
display:flex; gap:4px;
flex-shrink:0;}
.passkey-item-actions button{
background:var(--c-grass);
color:white;
border:2px solid var(--c-black);
padding:6px 10px;
font-size:12px;
cursor:pointer;
font-family:var(--font-cn);}
.passkey-item-actions .pk-del-btn{
background:var(--c-redstone);}
.passkey-msg{
margin-top:8px;
font-family:var(--font-cn);
font-size:12px;
min-height:16px;}
.passkey-msg.success{
color:var(--c-grass);}
.passkey-msg.error{
color:var(--c-redstone);}
.passkey-msg.muted{
color:var(--c-stone);}
.passkey-add-btn{
background:var(--c-grass);
color:white;
border:3px solid var(--c-black);
box-shadow:3px 3px 0 var(--c-black);
padding:8px 16px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
cursor:pointer;}
.passkey-add-btn:hover{
background:var(--c-grass-light);}
.nav-admin-link{
color:#a6a !important; font-weight:700;}
.modal-sm{
max-width:380px;}
.dm-wrap{
max-width:1100px;
margin:24px auto;
padding:0 16px;
display:grid;
grid-template-columns:280px 1fr;
gap:16px;
min-height:calc(100vh - 160px);}
@media (max-width:800px){
.dm-wrap{
grid-template-columns:1fr;}
.dm-list-panel{
max-height:240px;}
}
.dm-panel{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
overflow:hidden;}
.dm-list-panel{
display:flex; flex-direction:column;}
.dm-head{
padding:12px 14px;
border-bottom:3px solid var(--c-black);
background:var(--c-grass);
color:white;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
display:flex; align-items:center; justify-content:space-between;}
.dm-list{
overflow-y:auto;
flex:1;
max-height:calc(100vh - 280px);}
.dm-conv{
padding:12px 14px;
border-bottom:2px solid var(--c-bg-2);
cursor:pointer;
display:flex; gap:10px; align-items:flex-start;
transition:background 0.15s;
font-family:var(--font-cn);}
.dm-conv:hover{
background:var(--c-bg-2);}
.dm-conv.active{
background:var(--c-gold);}
.dm-conv .avatar{
font-size:26px; line-height:1; flex-shrink:0;}
.dm-conv .info{
flex:1; min-width:0;}
.dm-conv .name{
font-weight:700; color:var(--c-dark); font-size:13px;}
.dm-conv .preview{
color:var(--c-stone-dark);
font-size:12px;
overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
margin-top:2px;}
.dm-conv .conv-right{
display:flex; flex-direction:column; align-items:flex-end; gap:4px;}
.dm-conv .unread{
background:var(--c-redstone);
color:white;
font-family:var(--font-pixel);
font-size:9px;
padding:1px 7px;}
.dm-conv .ts{
color:var(--c-stone-dark);
font-size:11px;
flex-shrink:0;}
.dm-thread{
display:flex; flex-direction:column;}
.dm-thread-head{
padding:12px 14px;
border-bottom:3px solid var(--c-black);
display:flex; align-items:center; gap:10px;
background:var(--c-paper);
font-family:var(--font-cn);}
.dm-thread-head .avatar{
font-size:28px;}
.dm-thread-head .name{
font-weight:700; color:var(--c-dark); font-size:15px;}
.dm-thread-head .sub{
font-size:11px; color:var(--c-stone);}
.dm-thread-head a{
color:var(--c-grass-dark);
text-decoration:none;
font-size:12px;
margin-left:auto;}
.dm-thread-head a:hover{
text-decoration:underline;}
.dm-messages{
flex:1;
overflow-y:auto;
padding:16px;
min-height:320px;
max-height:60vh;
background:var(--c-bg-2);}
.dm-msg{
margin-bottom:12px;
max-width:75%;
clear:both;}
.dm-msg.mine{
margin-left:auto;}
.dm-msg .bubble{
padding:8px 12px;
border:2px solid var(--c-black);
box-shadow:2px 2px 0 var(--c-black);
background:var(--c-paper);
color:var(--c-dark);
font-family:var(--font-cn);
font-size:14px;
line-height:1.5;
word-break:break-word;
white-space:pre-wrap;}
.dm-msg.mine .bubble{
background:var(--c-gold);}
.dm-msg .ts{
font-size:11px;
color:var(--c-stone-dark);
margin-top:3px;
font-family:var(--font-cn);}
.dm-msg.mine .ts{
text-align:right;}
.dm-input{
border-top:3px solid var(--c-black);
padding:12px;
background:var(--c-paper);
display:flex; gap:8px;}
.dm-input textarea{
flex:1; min-height:60px; max-height:120px; resize:vertical;
font-family:var(--font-cn);
font-size:14px;
padding:8px;
border:2px solid var(--c-black);
background:white;
color:var(--c-dark);}
.dm-input button{
background:var(--c-grass);
color:white;
border:2px solid var(--c-black);
box-shadow:2px 2px 0 var(--c-black);
padding:0 16px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
cursor:pointer;}
.dm-input button:hover{
background:var(--c-grass-light);}
.dm-input button:disabled{
background:var(--c-stone); cursor:not-allowed;}
.dm-new-btn{
background:var(--c-gold);
color:var(--c-dark);
border:2px solid var(--c-black);
padding:4px 10px;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
cursor:pointer;}
.dm-new-btn:hover{
background:#d8a830;}
.dm-empty{
padding:32px 16px;
text-align:center;
color:var(--c-stone-dark);
font-family:var(--font-cn);
font-size:13px;}
.dm-login-hint{
text-align:center;
padding:40px 20px;
color:var(--c-stone-dark);
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
max-width:500px;
margin:40px auto;
font-family:var(--font-cn);}
.dm-login-hint .big-icon{
font-size:48px;
margin-bottom:12px;
line-height:1;}
.dm-login-hint h2{
color:var(--c-dark);
margin:0 0 8px;
font-size:18px;
font-family:var(--font-pixel);}
.dm-aibot-bar{
padding:8px 12px;
border-top:2px solid var(--c-black);
background:var(--c-black);}
.dm-aibot-btn{
width:100%;
background:linear-gradient(90deg,#2a4a6a,#1a3a5a);
color:#6cf;
border:2px solid #6cf;
padding:10px;
cursor:pointer;
font-family:var(--font-cn);
font-size:14px;
font-weight:700;}
.dm-aibot-hint{
color:#888;
font-family:var(--font-cn);
font-size:11px;
margin-top:4px;
text-align:center;}
.dm-loading{
padding:60px 20px;}
.dm-err-detail{
font-family:var(--font-cn);
font-size:11px;
color:#999;
margin-top:6px;}
.dm-action-row{
display:flex; gap:8px; justify-content:center;
margin-top:14px; flex-wrap:wrap;}
.dm-action-row > *{
flex:1; min-width:120px;}
[data-theme="dark"] .empty-state{
color:var(--c-text-muted) !important; background:var(--c-surface) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .empty-state .empty-sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pane-hint{
background:var(--c-surface) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .page-back-row a{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .hotel-toolbar{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important; box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .hotel-filters label{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .hotel-filters select,[data-theme="dark"] .hotel-filters input[type="number"]{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .hotel-filters .filter-reset{
background:var(--c-grass) !important; color:#fff !important; border-color:var(--c-border) !important; box-shadow:2px 2px 0 rgba(0,0,0,0.5) !important;}
[data-theme="dark"] .hotel-count{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .book-room-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .profile-card{
background:var(--c-surface) !important; border-color:var(--c-border) !important; box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .profile-avatar{
background:var(--c-surface) !important; border-color:var(--c-border) !important; box-shadow:3px 3px 0 rgba(0,0,0,0.5) !important;}
[data-theme="dark"] .profile-name{
color:var(--c-text) !important;}
[data-theme="dark"] .profile-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .profile-bio{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .profile-bio.empty{
color:var(--c-text-faint) !important;}
[data-theme="dark"] .profile-stat{
background:var(--c-surface-2) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .profile-stat .num{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .profile-stat .lbl{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .profile-loading{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .profile-login-hint{
background:var(--c-surface) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important; box-shadow:4px 4px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .profile-login-hint h2{
color:var(--c-text) !important;}
[data-theme="dark"] .modal-body label{
color:var(--c-text) !important;}
[data-theme="dark"] .modal-body input,[data-theme="dark"] .modal-body textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .modal-body input:focus,[data-theme="dark"] .modal-body textarea:focus{
border-color:var(--c-grass) !important;}
[data-theme="dark"] .modal-body .hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .passkey-card{
background:var(--c-surface) !important; border-color:var(--c-border) !important; box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .passkey-head{
background:var(--c-grass) !important; color:#fff !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .passkey-desc{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .passkey-empty{
color:var(--c-text-faint) !important;}
[data-theme="dark"] .passkey-item{
background:var(--c-surface-2) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .passkey-item-name{
color:var(--c-text) !important;}
[data-theme="dark"] .passkey-item-detail{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .passkey-item-cred{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .passkey-item-actions button{
border-color:var(--c-border) !important;}
[data-theme="dark"] .passkey-msg.muted{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-panel{
background:var(--c-surface) !important; border-color:var(--c-border) !important; box-shadow:4px 4px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .dm-list{
background:var(--c-surface) !important;}
[data-theme="dark"] .dm-conv{
border-bottom-color:var(--c-border) !important;}
[data-theme="dark"] .dm-conv:hover{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .dm-conv.active{
background:var(--c-gold) !important;}
[data-theme="dark"] .dm-conv .name{
color:var(--c-text) !important;}
[data-theme="dark"] .dm-conv .preview{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-conv .ts{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-thread-head{
background:var(--c-surface-2) !important; border-bottom-color:var(--c-border) !important;}
[data-theme="dark"] .dm-thread-head .name{
color:var(--c-text) !important;}
[data-theme="dark"] .dm-thread-head .sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-thread-head a{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .dm-messages{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .dm-msg .bubble{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important; box-shadow:2px 2px 0 rgba(0,0,0,0.5) !important;}
[data-theme="dark"] .dm-msg.mine .bubble{
background:var(--c-gold) !important; color:var(--c-dark) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .dm-msg .ts{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-input{
background:var(--c-surface) !important; border-top-color:var(--c-border) !important;}
[data-theme="dark"] .dm-input textarea{
background:var(--c-input-bg) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .dm-input button{
border-color:var(--c-border) !important;}
[data-theme="dark"] .dm-input button:disabled{
background:var(--c-stone-dark) !important;}
[data-theme="dark"] .dm-empty{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-login-hint{
background:var(--c-surface) !important; color:var(--c-text-muted) !important; border-color:var(--c-border) !important; box-shadow:4px 4px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .dm-login-hint h2{
color:var(--c-text) !important;}
[data-theme="dark"] .dm-aibot-bar{
background:var(--c-page) !important; border-top-color:var(--c-border) !important;}
[data-theme="dark"] .dm-err-detail{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-conv .unread{
color:#fff !important;}
:root{
--c-grass:#5d7c15;
--c-grass-light:#7cb02c;
--c-grass-dark:#4a6510;
--c-dirt:#866043;
--c-dirt-dark:#5a3f2a;
--c-stone:#7f7f7f;
--c-stone-light:#a8a8a8;
--c-stone-dark:#555555;
--c-wood:#a0703b;
--c-wood-light:#c08a4a;
--c-wood-dark:#6e4a23;
--c-cobble:#686868;
--c-water:#3a7ad9;
--c-water-dark:#1d4e91;
--c-sky:#6cb1ff;
--c-sky-light:#a3d2ff;
--c-sun:#ffd23f;
--c-cloud:#ffffff;
--c-redstone:#ff2a2a;
--c-emerald:#2ecc71;
--c-gold:#ffaa00;
--c-black:#1a1a1a;
--c-dark:#0f0f17;
--c-bg:#f3e9c8;
--c-bg-2:#e7d8a4;
--c-paper:#fff8dc;
--shadow-px:4px;
--shadow-px-sm:2px;
--font-pixel:'Press Start 2P','Noto Sans SC',monospace;
--font-mc:'VT323','Noto Sans SC',monospace;
--font-cn:'PingFang SC','Microsoft YaHei','Hiragino Sans GB','WenQuanYi Micro Hei','Noto Sans SC',system-ui,-apple-system,sans-serif;
--ease-out:cubic-bezier(0.25,0.46,0.45,0.94);
--ease-spring:cubic-bezier(0.34,1.56,0.64,1);
--dur-fast:160ms;
--dur-base:240ms;
--dur-slow:360ms;
--r-0:0;
--r-sm:2px;
--r-md:4px;
--r-lg:6px;
--sp-1:4px;
--sp-2:8px;
--sp-3:12px;
--sp-4:16px;
--sp-5:24px;
--sp-6:32px;
--sp-7:48px;
--sp-8:64px;
--shadow-card:4px 4px 0 var(--c-black);
--shadow-card-lg:6px 6px 0 var(--c-black);
--shadow-soft:2px 2px 0 rgba(0,0,0,0.15);
--lh-tight:1.3;
--lh-base:1.55;
--lh-loose:1.75;
--c-page:var(--c-bg);
--c-surface:var(--c-paper);
--c-surface-2:var(--c-bg-2);
--c-elevated:#ffffff;
--c-text:var(--c-dark);
--c-text-muted:var(--c-stone-dark);
--c-text-faint:var(--c-stone);
--c-border:var(--c-black);
--c-shadow:var(--c-black);
--c-link:var(--c-water);
--c-link-hover:var(--c-water-dark);
--c-success:var(--c-emerald);
--c-danger:var(--c-redstone);
--c-warning:var(--c-gold);
--c-info:var(--c-water);
--c-input-bg:#ffffff;
--c-input-border:var(--c-stone);
--c-focus-ring:var(--c-gold);
--c-overlay:rgba(0,0,0,0.65);}
[data-theme="dark"]{
--c-page:#1a1a26;
--c-surface:#25253a;
--c-surface-2:#2f2f48;
--c-elevated:#353550;
--c-text:#e8e8f0;
--c-text-muted:#b0b0c0;
--c-text-faint:#707088;
--c-border:#4a4a6a;
--c-shadow:#000018;
--c-link:#6cb1ff;
--c-link-hover:#a3d2ff;
--c-success:#5ddc8a;
--c-danger:#ff5a5a;
--c-warning:#ffc940;
--c-info:#6cb1ff;
--c-input-bg:#1f1f30;
--c-input-border:#4a4a6a;
--c-focus-ring:#ffc940;
--c-overlay:rgba(0,0,0,0.78);
--c-grass:#7cb02c;
--c-grass-light:#95d440;
--c-grass-dark:#5d7c15;
--c-gold:#ffc940;
--c-water:#6cb1ff;
--c-water-dark:#3a7ad9;
--c-redstone:#ff5a5a;
--c-emerald:#5ddc8a;
--shadow-card:4px 4px 0 rgba(0,0,0,0.5);
--shadow-card-lg:6px 6px 0 rgba(0,0,0,0.5);
--shadow-soft:2px 2px 0 rgba(0,0,0,0.3);
--c-paper:#25253a;
--c-bg:#1a1a26;
--c-bg-2:#2f2f48;
color-scheme:dark;}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]){
--c-page:#1a1a26;
--c-surface:#25253a;
--c-surface-2:#2f2f48;
--c-elevated:#353550;
--c-text:#e8e8f0;
--c-text-muted:#b0b0c0;
--c-text-faint:#707088;
--c-border:#4a4a6a;
--c-shadow:#000018;
--c-link:#6cb1ff;
--c-link-hover:#a3d2ff;
--c-success:#5ddc8a;
--c-danger:#ff5a5a;
--c-warning:#ffc940;
--c-info:#6cb1ff;
--c-input-bg:#1f1f30;
--c-input-border:#4a4a6a;
--c-focus-ring:#ffc940;
--c-overlay:rgba(0,0,0,0.78);
--c-grass:#7cb02c;
--c-grass-light:#95d440;
--c-grass-dark:#5d7c15;
--c-gold:#ffc940;
--c-water:#6cb1ff;
--c-water-dark:#3a7ad9;
--c-redstone:#ff5a5a;
--c-emerald:#5ddc8a;
--shadow-card:4px 4px 0 rgba(0,0,0,0.5);
--shadow-card-lg:6px 6px 0 rgba(0,0,0,0.5);
--shadow-soft:2px 2px 0 rgba(0,0,0,0.3);
--c-paper:#25253a;
--c-bg:#1a1a26;
--c-bg-2:#2f2f48;
color-scheme:dark;}
}
@keyframes v48-fade-in-up{
from{
opacity:0; transform:translateY(12px);}
to{
opacity:1; transform:translateY(0);}
}
@keyframes v48-fade-in{
from{
opacity:0;}
to{
opacity:1;}
}
@keyframes v48-pop-in{
0%{
opacity:0; transform:scale(0.92) translateY(8px);}
60%{
opacity:1; transform:scale(1.02) translateY(-2px);}
100%{
opacity:1; transform:scale(1) translateY(0);}
}
@keyframes v48-slide-in-right{
from{
opacity:0; transform:translateX(40px);}
to{
opacity:1; transform:translateX(0);}
}
@keyframes v48-slide-out-right{
from{
opacity:1; transform:translateX(0);}
to{
opacity:0; transform:translateX(40px);}
}
@keyframes v48-shake{
0%,100%{
transform:translateX(0);}
20%,60%{
transform:translateX(-6px);}
40%,80%{
transform:translateX(6px);}
}
@keyframes v48-pulse{
0%,100%{
opacity:1; transform:scale(1);}
50%{
opacity:0.7; transform:scale(1.05);}
}
@keyframes v48-bounce-in{
0%{
opacity:0; transform:scale(0.3);}
50%{
opacity:1; transform:scale(1.08);}
70%{
transform:scale(0.95);}
100%{
transform:scale(1);}
}
@keyframes v48-shimmer{
0%{
background-position:-200% 0;}
100%{
background-position:200% 0;}
}
@keyframes v48-spin{
from{
transform:rotate(0deg);}
to{
transform:rotate(360deg);}
}
@keyframes v48-confetti{
0%{
opacity:0; transform:translateY(0) rotate(0deg);}
100%{
opacity:1; transform:translateY(-20px) rotate(360deg);}
}
.v48-anim-fade-up{
animation:v48-fade-in-up 0.5s var(--ease-out) both;}
.v48-anim-fade{
animation:v48-fade-in 0.4s var(--ease-out) both;}
.v48-anim-pop{
animation:v48-pop-in 0.4s var(--ease-spring) both;}
.v48-anim-slide-r{
animation:v48-slide-in-right 0.4s var(--ease-out) both;}
.v48-anim-bounce{
animation:v48-bounce-in 0.5s var(--ease-spring) both;}
.v48-anim-shake{
animation:v48-shake 0.5s var(--ease-out) both;}
.v48-anim-pulse{
animation:v48-pulse 1.6s var(--ease-out) infinite;}
.v48-anim-shimmer{
background:linear-gradient(90deg,var(--c-bg-2) 25%,var(--c-surface) 50%,var(--c-bg-2) 75%);
background-size:200% 100%;
animation:v48-shimmer 1.4s linear infinite;}
.v48-anim-spin{
animation:v48-spin 1s linear infinite; display:inline-block;}
.v48-stagger > *{
animation:v48-fade-in-up 0.5s var(--ease-out) both;}
.v48-stagger > *:nth-child(1){
animation-delay:0.04s;}
.v48-stagger > *:nth-child(2){
animation-delay:0.08s;}
.v48-stagger > *:nth-child(3){
animation-delay:0.12s;}
.v48-stagger > *:nth-child(4){
animation-delay:0.16s;}
.v48-stagger > *:nth-child(5){
animation-delay:0.20s;}
.v48-stagger > *:nth-child(6){
animation-delay:0.24s;}
.v48-stagger > *:nth-child(7){
animation-delay:0.28s;}
.v48-stagger > *:nth-child(8){
animation-delay:0.32s;}
.v48-stagger > *:nth-child(9){
animation-delay:0.36s;}
.v48-stagger > *:nth-child(n+10){
animation-delay:0.4s;}
.v48-hover-lift{
transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);
will-change:transform;}
.v48-hover-lift:hover{
transform:translate(-2px,-2px);
box-shadow:6px 6px 0 var(--c-shadow);}
.v48-hover-lift:active{
transform:translate(1px,1px);
box-shadow:2px 2px 0 var(--c-shadow);}
.v48-btn-lift{
transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out);
will-change:transform;}
.v48-btn-lift:hover:not(:disabled){
transform:translateY(-1px);
filter:brightness(1.08);}
.v48-btn-lift:active:not(:disabled){
transform:translateY(0);
filter:brightness(0.95);}
[data-theme="dark"] body,[data-theme="dark"] .sky-bg,[data-theme="dark"] .login-card,[data-theme="dark"] .pane-card,[data-theme="dark"] .modal,[data-theme="dark"] .empty-state,[data-theme="dark"] .empty-state-error,[data-theme="dark"] .msg-item,[data-theme="dark"] .room-card,[data-theme="dark"] .signin-modal,[data-theme="dark"] .modal-card{
background:var(--c-surface) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .navbar,[data-theme="dark"] .admin-header,[data-theme="dark"] .admin-body,[data-theme="dark"] .page-back-row,[data-theme="dark"] .boot-loading,[data-theme="dark"] .page-body,[data-theme="dark"] body{
background:var(--c-page) !important;
color:var(--c-text) !important;}
[data-theme="dark"] input,[data-theme="dark"] textarea,[data-theme="dark"] select,[data-theme="dark"] .modal-form input,[data-theme="dark"] .modal-form select,[data-theme="dark"] .modal-form textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .empty-state p,[data-theme="dark"] .empty-state .empty-sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .ticket-item{
background:var(--c-surface) !important; color:var(--c-text) !important;}
[data-theme="dark"] .ticket-item .ticket-body{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .section,[data-theme="dark"] .pane,[data-theme="dark"] .pane-card,[data-theme="dark"] .container{
background:var(--c-page) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .hero,[data-theme="dark"] .hero-text,[data-theme="dark"] .hero-tag{
background:transparent !important;
color:var(--c-text) !important;}
[data-theme="dark"] .hero-title,[data-theme="dark"] .title-line,[data-theme="dark"] .title-main,[data-theme="dark"] .title-sub{
color:var(--c-text) !important; text-shadow:0 2px 4px rgba(0,0,0,.6);}
[data-theme="dark"] .hero-desc{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .stat,[data-theme="dark"] .notice-card,[data-theme="dark"] .scenery-card,[data-theme="dark"] .gallery-item,[data-theme="dark"] .room-card,[data-theme="dark"] .service-card,[data-theme="dark"] .signin-modal,[data-theme="dark"] .signin-week,[data-theme="dark"] .signin-day,[data-theme="dark"] .signin-stat,[data-theme="dark"] .sky-bg-overlay,[data-theme="dark"] .modal,[data-theme="dark"] .login-card,[data-theme="dark"] .modal-card,[data-theme="dark"] .empty-state,[data-theme="dark"] .empty-state-error,[data-theme="dark"] .empty-state-title,[data-theme="dark"] .login-back-home,[data-theme="dark"] .pane-tools select,[data-theme="dark"] .msg-filter select,[data-theme="dark"] .ticket-categories span,[data-theme="dark"] .tag,[data-theme="dark"] .admin-tabs,[data-theme="dark"] .admin-tabs .tab,[data-theme="dark"] .tab-pane{
background:var(--c-surface) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .tag-info,[data-theme="dark"] .tag-success,[data-theme="dark"] .tag-warn,[data-theme="dark"] .tag-danger{
color:var(--c-text) !important;}
[data-theme="dark"] .admin-tabs .tab.active{
background:var(--c-grass) !important;
color:#fff !important;}
[data-theme="dark"] .sky-bg-overlay{
background:linear-gradient(180deg,rgba(26,26,38,0) 0%,rgba(26,26,38,.65) 100%);}
[data-theme="dark"] .title-main{
color:var(--c-grass-light) !important;
text-shadow:4px 0 0 var(--c-shadow),0 4px 0 var(--c-shadow),4px 4px 0 var(--c-shadow),0 0 20px rgba(149,212,64,0.6),0 0 40px rgba(149,212,64,0.35) !important;}
[data-theme="dark"] .title-line{
color:var(--c-text) !important;
text-shadow:2px 2px 0 var(--c-shadow),0 0 12px rgba(255,201,64,0.4) !important;}
[data-theme="dark"] .title-sub{
color:var(--c-gold) !important;
text-shadow:2px 2px 0 var(--c-shadow),0 0 14px rgba(255,201,64,0.5),0 0 28px rgba(255,201,64,0.25) !important;}
[data-theme="dark"] .hero-tag{
background:var(--c-gold) !important;
color:var(--c-dark) !important;
border-color:var(--c-border) !important;
box-shadow:4px 4px 0 var(--c-shadow),0 0 12px rgba(255,201,64,0.4) !important;}
[data-theme="dark"] .top-strip{
background:var(--c-redstone) !important; color:#fff !important;}
[data-theme="dark"] .navbar,[data-theme="dark"] .admin-header{
background:var(--c-elevated) !important;
color:var(--c-text) !important;
border-bottom:2px solid var(--c-border) !important;}
[data-theme="dark"] .nav-logo b,[data-theme="dark"] .logo-text{
color:var(--c-text) !important;}
[data-theme="dark"] .nav-emerald,[data-theme="dark"] .nav-signin-link,[data-theme="dark"] .nav-admin-link,[data-theme="dark"] .nav-dm-link,[data-theme="dark"] .nav-ann-link,[data-theme="dark"] .nav-profile-link,[data-theme="dark"] .nav-login-link,[data-theme="dark"] .nav-logout-link{
color:var(--c-text) !important;}
[data-theme="dark"] .nav-links a{
color:var(--c-text) !important;}
[data-theme="dark"] .nav-links a:hover,[data-theme="dark"] .nav-links a.active{
color:var(--c-gold) !important; background:var(--c-surface-2) !important;}
[data-theme="dark"] .page-back-row{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .page-back-row a{
color:var(--c-text) !important;}
[data-theme="dark"] .empty-state{
background:var(--c-surface) !important; color:var(--c-text) !important;}
[data-theme="dark"] .signin-stat{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .signin-day{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .signin-day.signed{
background:var(--c-grass-dark) !important; color:#fff !important;}
[data-theme="dark"] .signin-day.today{
border-color:var(--c-gold) !important;}
[data-theme="dark"] .sky-bg-img{
opacity:0.55;}
[data-theme="dark"] .sky-bg{
background:radial-gradient(ellipse at 50% 100%,rgba(108,177,255,0.18) 0%,transparent 60%),linear-gradient(180deg,#0a0d1c 0%,#1a1a2e 50%,#25253a 100%) !important;}
[data-theme="dark"] .sky-bg::before{
content:'';
position:absolute;
inset:0;
background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 22% 32%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 34% 12%,#cfe6ff 50%,transparent 51%),radial-gradient(1px 1px at 45% 42%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 58% 22%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 68% 8%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 78% 36%,#cfe6ff 50%,transparent 51%),radial-gradient(1px 1px at 88% 14%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 15% 48%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 56%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 42% 64%,#cfe6ff 50%,transparent 51%),radial-gradient(1px 1px at 55% 52%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 72% 68%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 85% 58%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 95% 72%,#cfe6ff 50%,transparent 51%);
opacity:0.7;
animation:v48-stars-twinkle 4s ease-in-out infinite alternate;
pointer-events:none;}
@keyframes v48-stars-twinkle{
from{
opacity:0.4;}
to{
opacity:0.85;}
}
[data-theme="dark"] .sky-bg::after{
content:'';
position:absolute;
top:80px;
right:18%;
width:36px;
height:36px;
border-radius:50%;
background:radial-gradient(circle at 35% 35%,#f5f3d8 0%,#ddd8a8 60%,#b8b07a 100%);
box-shadow:0 0 18px rgba(245,243,216,0.4),0 0 36px rgba(245,243,216,0.2),inset -3px -3px 6px rgba(0,0,0,0.18);
pointer-events:none;}
[data-theme="dark"] .login-brand{
background:var(--c-surface-2) !important;}
[data-theme="dark"] .login-form-wrap{
background:var(--c-page) !important;}
[data-theme="dark"] .admin-tabs .tab{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .admin-tabs .tab.active{
color:#fff !important;}
[data-theme="dark"] .pane-head h2{
color:var(--c-text) !important;}
[data-theme="dark"] .pane-hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-head{
background:var(--c-grass) !important; color:#fff !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .modal-msg{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-divider{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-divider::before,[data-theme="dark"] .modal-divider::after{
background:var(--c-border) !important;}
[data-theme="dark"] .modal-divider span{
background:var(--c-surface) !important; color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-form-row label,[data-theme="dark"] .modal-form-row .form-hint,[data-theme="dark"] .modal-tiny,[data-theme="dark"] .modal-subtitle,[data-theme="dark"] .modal-link-emerald{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-divider{
border-top-color:var(--c-border) !important;}
[data-theme="dark"] .hero-stats .stat{
background:rgba(26,26,38,0.85) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .hero-stats .stat b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .hero-stats .stat span{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .btn-ghost{
background:var(--c-elevated) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;
box-shadow:4px 4px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .btn-ghost:hover{
background:var(--c-grass-dark) !important; color:#fff !important;}
[data-theme="dark"] .section-title{
background:var(--c-surface) !important;
color:var(--c-grass-light) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .section-sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .section-alt{
background:rgba(47,47,72,0.45) !important;}
[data-theme="dark"] .data-label{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .data-num{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .data-num-double > div{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .data-num-double b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .data-num-double i{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .data-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .data-card::before{
border-color:var(--c-border) !important;}
[data-theme="dark"] .gallery-intro{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .gallery-item{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .gallery-item:hover{
box-shadow:8px 8px 0 var(--c-grass) !important;}
[data-theme="dark"] .gallery-label{
color:var(--c-text) !important;}
[data-theme="dark"] .gallery-num{
color:var(--c-text-muted) !important;
background:var(--c-surface-2) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .gal-filter{
background:var(--c-surface) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;
box-shadow:3px 3px 0 rgba(0,0,0,0.4) !important;}
[data-theme="dark"] .gal-filter.active{
background:var(--c-grass) !important;
color:#fff !important;
border-color:var(--c-border) !important;
box-shadow:3px 3px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .gal-filter-count{
background:var(--c-bg-2) !important;
color:var(--c-text-muted) !important;}
[data-theme="dark"] .gal-filter.active .gal-filter-count{
background:var(--c-elevated) !important; color:var(--c-text) !important;}
[data-theme="dark"] .notice-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .notice-card:hover{
box-shadow:8px 8px 0 var(--c-grass) !important;}
[data-theme="dark"] .notice-date .d{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .notice-date .m{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .notice-date{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .notice-body h3{
color:var(--c-text) !important;}
[data-theme="dark"] .notice-body p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .read-more{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .circuit-intro{
color:var(--c-text) !important;}
[data-theme="dark"] #circuit .circuit-intro strong{
color:var(--c-redstone) !important;}
[data-theme="dark"] #circuit .circuit-intro b{
color:var(--c-gold) !important;}
[data-theme="dark"] .circuit-map{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .circuit-svg-wrap{
background:var(--c-surface-2) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .circuit-cta{
background:linear-gradient(135deg,var(--c-surface) 0%,var(--c-surface-2) 100%) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 var(--c-redstone) !important;}
[data-theme="dark"] .circuit-cta p{
color:var(--c-text) !important;}
[data-theme="dark"] .circuit-cta h3{
color:var(--c-gold) !important;}
[data-theme="dark"] .circuit-cta ul li{
color:var(--c-text) !important;}
[data-theme="dark"] .circuit-map-note{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .kart-specs{
background:var(--c-surface) !important; border-color:var(--c-border) !important; box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .ks-item{
color:var(--c-text) !important;}
[data-theme="dark"] .ks-item span{
color:var(--c-text) !important;}
[data-theme="dark"] .kart-cta{
background:linear-gradient(135deg,var(--c-surface) 0%,var(--c-surface-2) 100%) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 var(--c-redstone) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .kart-events li{
color:var(--c-text) !important; border-bottom-color:var(--c-border) !important;}
[data-theme="dark"] .book-room-summary{
background:var(--c-surface-2) !important; border-color:var(--c-border) !important; color:var(--c-text) !important;}
[data-theme="dark"] .book-room-summary b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .book-room-summary .summary-price{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .book-nights{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .book-total{
color:var(--c-grass-light) !important; background:var(--c-gold) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .book-breakfast{
background:var(--c-surface-2) !important; border-color:var(--c-border) !important; color:var(--c-text) !important;}
[data-theme="dark"] .scene-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .scene-card:hover{
box-shadow:8px 8px 0 var(--c-grass) !important;}
[data-theme="dark"] .scene-card h3{
color:var(--c-text) !important;}
[data-theme="dark"] .scene-card p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .scene-card .scene-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .service-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .service-card h3{
color:var(--c-text) !important;}
[data-theme="dark"] .service-card p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .mayor-content{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .mayor-content p{
color:var(--c-text) !important;}
[data-theme="dark"] .mayor-content .sign{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .mayor-quote span{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .flow-title{
color:var(--c-text) !important;}
[data-theme="dark"] .flow-steps li b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .flow-steps li span{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .flow-steps li:not(:last-child)::after{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .visit-text h3{
color:var(--c-text) !important;}
[data-theme="dark"] .visit-steps li b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .visit-steps li p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .hero-tag{
background:var(--c-gold) !important;
color:var(--c-dark) !important;
border-color:var(--c-border) !important;
box-shadow:4px 4px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .pm-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pm-comment-author{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .pm-comment-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pm-comment-text{
color:var(--c-text) !important;}
[data-theme="dark"] .pm-comment-empty{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pm-author-link{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .pm-comment-form textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .pm-comment-del{
color:var(--c-text-muted) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .pm-comment-del:hover{
color:var(--c-redstone) !important; border-color:var(--c-redstone) !important;}
[data-theme="dark"] .wall-intro{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .wall-link{
color:var(--c-grass-light) !important; border-bottom-color:var(--c-grass) !important;}
[data-theme="dark"] .pm-item{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .pm-item:hover{
box-shadow:7px 7px 0 var(--c-grass) !important;}
[data-theme="dark"] .pm-head b{
color:var(--c-text) !important;}
[data-theme="dark"] .pm-content{
background:var(--c-surface-2) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .pm-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pm-type-合作{
background:var(--c-gold) !important; color:var(--c-dark) !important;}
[data-theme="dark"] .kb-cap{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .hotel-intro{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .hotel-intro strong{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .room-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;}
[data-theme="dark"] .room-card:hover{
box-shadow:9px 9px 0 var(--c-grass) !important;}
[data-theme="dark"] .room-card.featured{
background:linear-gradient(180deg,var(--c-surface) 0%,var(--c-surface-2) 60%) !important;
border-color:var(--c-gold) !important;
box-shadow:6px 6px 0 var(--c-gold) !important;}
[data-theme="dark"] .room-name{
color:var(--c-text) !important;}
[data-theme="dark"] .room-bed{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .room-features li{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .room-desc{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .room-price-num{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .room-price-cur,[data-theme="dark"] .room-price-unit,[data-theme="dark"] .room-guests{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .room-price-row{
border-top-color:var(--c-border) !important;}
[data-theme="dark"] .hm-item b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .hm-item code{
background:var(--c-surface-2) !important; color:var(--c-gold) !important;}
[data-theme="dark"] .license-intro{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .license-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:5px 5px 0 rgba(0,0,0,0.55) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .license-card h3{
color:var(--c-text) !important;}
[data-theme="dark"] .license-card p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .cg-spec-row span{
color:var(--c-text) !important;}
[data-theme="dark"] .contact-grid{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
box-shadow:6px 6px 0 rgba(0,0,0,0.55) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .contact-row b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .contact-row p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .contact-row p code{
background:var(--c-surface-2) !important; color:var(--c-gold) !important;}
[data-theme="dark"] .contact-form label{
color:var(--c-text) !important;}
[data-theme="dark"] .contact-form input,[data-theme="dark"] .contact-form textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .footer{
background:var(--c-elevated) !important;
color:var(--c-text) !important;
border-top-color:var(--c-border) !important;}
[data-theme="dark"] .footer-brand b{
color:var(--c-text) !important;}
[data-theme="dark"] .footer-brand p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .footer-cols a{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .footer-cols a:hover{
color:var(--c-gold) !important;}
[data-theme="dark"] .footer-bottom{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .footer-bottom .sep{
color:var(--c-text-faint) !important;}
[data-theme="dark"] .footer-bottom .admin-link{
color:var(--c-text) !important;}
[data-theme="dark"] .footer-bottom .admin-link:hover{
color:var(--c-gold) !important;}
[data-theme="dark"] .callout{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .callout strong{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .link-list li a{
color:var(--c-link) !important;}
[data-theme="dark"] .link-list li .meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .badge.badge-gold{
background:var(--c-gold) !important; color:var(--c-dark) !important;}
[data-theme="dark"] .badge.badge-stone{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .badge.badge-outline{
background:transparent !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .pane-card{
background:var(--c-surface) !important;
border-color:var(--c-border) !important;
color:var(--c-text) !important;}
[data-theme="dark"] .pane-card > h3{
color:var(--c-text) !important;}
[data-theme="dark"] .pane-card > p{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal h3{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .modal .form-row label{
color:var(--c-text) !important;}
[data-theme="dark"] .modal-form label{
color:var(--c-text) !important;}
[data-theme="dark"] .modal-msg{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .modal-close{
color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .modal-close:hover{
color:var(--c-redstone) !important; border-color:var(--c-redstone) !important;}
[data-theme="dark"] .modal input[type=text],[data-theme="dark"] .modal input[type=email],[data-theme="dark"] .modal input[type=password],[data-theme="dark"] .modal input[type=number],[data-theme="dark"] .modal input[type=date],[data-theme="dark"] .modal select,[data-theme="dark"] .modal textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] .book-sub{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pmm-head{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .pmm-head-row{
color:var(--c-text) !important;}
[data-theme="dark"] .pmm-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .pmm-type-tag{
color:var(--c-text) !important; background:var(--c-surface-2) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .login-admin-hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .login-admin-hint b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .ann-content-preview{
color:var(--c-text) !important;}
[data-theme="dark"] .ann-view-meta{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .bb-text b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .bb-text small{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .dm-msg.from-me .dm-msg-bubble{
background:var(--c-grass-dark) !important;
color:#fff !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .dm-chat-form textarea{
background:var(--c-input-bg) !important;
color:var(--c-text) !important;
border-color:var(--c-input-border) !important;}
[data-theme="dark"] label > span.label-text{
color:var(--c-text) !important;}
[data-theme="dark"] label > span.hint{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .tag{
color:var(--c-text) !important;}
[data-theme="dark"] .tag-success{
color:#fff !important;}
[data-theme="dark"] .tag-warn{
color:var(--c-dark) !important;}
[data-theme="dark"] .tag-super{
color:#fff !important;}
[data-theme="dark"] .tag-info{
color:#fff !important;}
[data-theme="dark"] .tag-danger{
color:#fff !important;}
[data-theme="dark"] .modal-tiny,[data-theme="dark"] .modal-subtitle{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-replied-tag-human{
background:#1a2a3a !important; color:#9cf !important; border-color:#6cf !important;}
[data-theme="dark"] .pmm-item{
background:var(--c-surface-2) !important; border-color:var(--c-border) !important; color:var(--c-text) !important;}
[data-theme="dark"] .pmm-reply{
background:var(--c-surface) !important; border-left-color:var(--c-grass) !important; color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-prev-ai details{
background:var(--c-surface-2) !important; border-color:var(--c-border) !important; color:var(--c-text) !important;}
[data-theme="dark"] .msg-prev-ai summary{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-prev-ai summary:hover{
color:var(--c-gold) !important;}
[data-theme="dark"] .empty-state-error{
background:rgba(255,80,80,0.15) !important; border-color:var(--c-redstone) !important;}
[data-theme="dark"] .empty-state-error .empty-state-title{
color:var(--c-redstone) !important;}
[data-theme="dark"] .callout{
background:var(--c-surface-2) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .callout.callout-info{
background:rgba(108,177,255,0.12) !important; border-color:var(--c-water) !important; color:var(--c-text) !important;}
[data-theme="dark"] .callout.callout-warn{
background:rgba(255,90,90,0.12) !important; border-color:var(--c-redstone) !important; color:var(--c-text) !important;}
[data-theme="dark"] .callout.callout-success{
background:rgba(93,220,138,0.12) !important; border-color:var(--c-emerald) !important; color:var(--c-text) !important;}
[data-theme="dark"] .signin-day .day-date{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .signin-day .day-mark{
color:var(--c-gold) !important;}
[data-theme="dark"] .signin-day.signed{
background:var(--c-grass-dark) !important; border-color:var(--c-grass) !important;}
[data-theme="dark"] .signin-day.signed .day-mark{
color:var(--c-gold) !important;}
[data-theme="dark"] .signin-day.today{
border-color:var(--c-gold) !important; box-shadow:0 0 0 1px var(--c-gold) !important;}
[data-theme="dark"] .pm-emoji-btn{
border-color:var(--c-border) !important; color:var(--c-text) !important;}
[data-theme="dark"] .pm-emoji-btn:hover{
background:var(--c-gold) !important;}
[data-theme="dark"] .pane-head{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
[data-theme="dark"] .pane-head h2{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .msg-item{
background:var(--c-surface) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-name{
color:var(--c-text) !important;}
[data-theme="dark"] .msg-time{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .msg-content{
color:var(--c-text) !important;
background:var(--c-surface-2) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-actions{
border-top-color:var(--c-border) !important;}
[data-theme="dark"] .msg-reply-box,[data-theme="dark"] .pm-reply-box{
background:var(--c-surface-2) !important;
color:var(--c-text) !important;
border-color:var(--c-border) !important;}
[data-theme="dark"] .msg-reply-box b,[data-theme="dark"] .pm-reply-box b{
color:var(--c-grass-light) !important;}
[data-theme="dark"] .msg-reply-box small,[data-theme="dark"] .pm-reply-box small{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .nav-emerald{
color:var(--c-gold) !important;}
[data-theme="dark"] .nav-logo small{
color:var(--c-text-muted) !important;}
[data-theme="dark"] .logo-zh{
color:var(--c-text) !important;}
[data-theme="dark"] .logo-en{
color:var(--c-grass-light) !important;}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{
animation-duration:0.01ms !important;
animation-iteration-count:1 !important;
transition-duration:0.01ms !important;
scroll-behavior:auto !important;}
.v48-anim-pulse,.v48-anim-shimmer,.v48-anim-spin{
animation:none !important;}
}
#themeToggleBtn{
position:fixed;
right:20px;
bottom:20px;
z-index:9000;
display:inline-flex;
align-items:center;
gap:6px;
padding:10px 14px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
background:var(--c-elevated);
color:var(--c-text);
border:3px solid var(--c-border);
box-shadow:4px 4px 0 rgba(0,0,0,0.35);
cursor:pointer;
user-select:none;
transition:transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out);
-webkit-backdrop-filter:blur(4px);
backdrop-filter:blur(4px);}
#themeToggleBtn:hover{
transform:translate(-2px,-2px); box-shadow:6px 6px 0 rgba(0,0,0,0.45);}
#themeToggleBtn:active{
transform:translate(1px,1px); box-shadow:2px 2px 0 rgba(0,0,0,0.45);}
#themeToggleBtn .ttb-icon{
font-size:14px; line-height:1;}
#themeToggleBtn .ttb-label{
font-family:var(--font-cn); font-size:12px;}
#themeToggleBtn[data-mode="dark"]{
background:var(--c-grass-dark); color:#fff; border-color:var(--c-border);}
#themeToggleBtn[data-mode="light"]{
background:var(--c-gold); color:var(--c-dark); border-color:var(--c-border);}
#themeToggleBtn[data-mode="url"]{
background:var(--c-water-dark); color:#fff; border-color:var(--c-border);}
@media (max-width:480px){
#themeToggleBtn{
right:12px; bottom:12px; padding:8px 10px;}
#themeToggleBtn .ttb-label{
display:none;}
#themeToggleBtn .ttb-icon{
font-size:16px;}
}
.btn{
display:inline-flex;
align-items:center;
justify-content:center;
gap:8px;
padding:12px 24px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
color:#fff;
background:var(--c-grass);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-black);
cursor:pointer;
transition:transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),filter var(--dur-fast) var(--ease-out);
text-align:center;
user-select:none;
will-change:transform;}
.btn:hover:not(:disabled){
transform:translate(-2px,-2px);
box-shadow:6px 6px 0 var(--c-black);
background:var(--c-grass-light);
filter:brightness(1.05);}
.btn:active:not(:disabled){
transform:translate(1px,1px);
box-shadow:2px 2px 0 var(--c-black);
transition-duration:60ms;}
.btn-primary{
background:var(--c-grass);}
.btn-primary:hover{
background:var(--c-grass-light);}
.btn-ghost{
background:var(--c-paper);
color:var(--c-dark);
box-shadow:4px 4px 0 var(--c-stone-dark);
border-color:var(--c-black);}
.btn-ghost:hover{
background:var(--c-gold); color:var(--c-dark);}
.btn-sm{
padding:8px 14px; font-size:10px; box-shadow:3px 3px 0 var(--c-black);}
.btn-sm:hover{
box-shadow:5px 5px 0 var(--c-black);}
.btn-lg{
padding:16px 32px; font-size:12px; box-shadow:5px 5px 0 var(--c-black);}
.btn-lg:hover{
box-shadow:7px 7px 0 var(--c-black);}
.btn-block{
width:100%; justify-content:center;}
.btn[disabled],.btn:disabled{
opacity:0.5; cursor:not-allowed; transform:none; box-shadow:4px 4px 0 var(--c-black);}
.pane-head{
display:flex;
justify-content:space-between;
align-items:center;
flex-wrap:wrap;
gap:16px;
min-height:56px;
background:var(--c-paper);
color:var(--c-dark);
border:3px solid var(--c-black);
padding:10px 20px;}
.pane-head h2{
font-family:var(--font-pixel);
font-size:13px;
color:var(--c-grass-dark);
letter-spacing:1px;
margin:0;
display:inline-flex;
align-items:center;
gap:8px;}
.pane-head h2::before{
content:'';
display:inline-block;
width:4px; height:18px;
background:var(--c-grass);
border:1px solid var(--c-black);}
.pane-tools{
display:flex;
gap:8px;
flex-wrap:wrap;
align-items:center;}
.empty-state{
text-align:center;
padding:60px 20px;
background:var(--c-bg-2);
border:3px solid var(--c-black);
color:var(--c-stone-dark);
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:10px;}
.empty-state p{
margin:0;}
.empty-icon{
font-size:48px; opacity:0.7;}
.pane-hint,.hint{
background:var(--c-paper);
color:var(--c-stone-dark);
border:3px solid var(--c-black);
padding:12px 20px;
font-family:var(--font-cn);
font-size:14px;
line-height:1.7;
margin:0;}
.tag{
display:inline-flex;
align-items:center;
gap:4px;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:3px 8px;
background:var(--c-paper);
color:var(--c-dark);
border:2px solid var(--c-black);
line-height:1.4;}
.tag-super{
background:#a6a; color:#fff;}
.tag-info{
background:var(--c-water); color:#fff;}
.modal-mask{
position:fixed; inset:0;
background:rgba(0,0,0,0.55);
z-index:9999;
display:flex; align-items:center; justify-content:center;
padding:16px;
animation:cmp-mask-in 0.18s ease-out;
overflow-y:auto;}
@keyframes cmp-mask-in{
from{
opacity:0;}
to{
opacity:1;}
}
.modal{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone-dark);
width:100%;
max-width:480px;
max-height:calc(100vh - 32px);
overflow-y:auto;
position:relative;
font-family:var(--font-cn);
color:var(--c-dark);
padding:0;
animation:cmp-modal-in var(--dur-slow) var(--ease-spring);}
@keyframes cmp-modal-in{
from{
transform:translateY(20px) scale(0.96); opacity:0;}
to{
transform:translateY(0) scale(1); opacity:1;}
}
.modal-head{
display:flex;
justify-content:space-between;
align-items:center;
background:var(--c-grass);
color:#fff;
border-bottom:3px solid var(--c-black);
padding:14px 20px;}
.modal-head h3{
font-family:var(--font-pixel);
font-size:13px;
letter-spacing:1px;
margin:0;
color:#fff;}
.modal-close{
font-family:var(--font-pixel);
font-size:14px;
color:#fff;
width:28px; height:28px;
background:transparent;
border:2px solid #fff;
cursor:pointer;
line-height:1;
padding:0;}
.modal-close:hover{
background:var(--c-redstone); border-color:var(--c-redstone);}
.modal-body{
padding:24px;
overflow-y:auto;}
.modal-actions{
display:flex;
gap:10px;
justify-content:flex-end;
margin-top:16px;}
.modal-book{
max-width:560px;}
.book-sub{
font-size:12px;
color:var(--c-stone-dark);}
.circuit-map-note{
font-size:12px;
color:var(--c-stone-dark);
text-align:center;
margin:0 0 8px;}
.hotel-cta{
text-align:center;
margin:28px 0 12px;}
.modal-text-center{
text-align:center;}
.modal-form-row label{
display:block; font-size:13px; margin-bottom:4px; color:var(--c-stone-dark);}
.modal-form-row .form-hint{
color:var(--c-stone-dark); font-size:11px;}
.modal-divider{
margin-top:14px; border-top:1px solid var(--c-stone,#999); padding-top:14px;}
.modal-tiny{
font-size:11px; color:var(--c-stone-dark);}
.modal-link-emerald{
color:var(--c-emerald,#5fb14f);}
.btn-row-2{
display:flex; gap:10px; margin-top:14px;}
.btn-row-2 .btn{
flex:1;}
.btn-full{
width:100%; margin-top:8px;}
.modal-title-center{
text-align:center; margin-bottom:8px;}
.modal-subtitle{
text-align:center; color:var(--c-stone-dark); font-size:13px; margin-bottom:16px;}
.btn-passkey{
background:linear-gradient(135deg,#5a2 0%,#2a5 100%);
color:#fff;
border-color:var(--c-black);
width:100%;}
.btn-passkey:hover{
background:linear-gradient(135deg,#6b3 0%,#3b6 100%);
color:#fff;}
.passkey-hint{
margin-top:6px;}
.login-admin-hint{
margin-top:14px; font-size:12px; color:var(--c-stone-dark);}
.msg-replied-tag{
display:inline-block;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
padding:2px 6px;
border:2px solid var(--c-black);
line-height:1.4;}
.msg-replied-tag-ai{
background:#1a3a1a;
color:#9f9;
border-color:#6f6;}
.msg-replied-tag-human{
background:var(--c-emerald);
color:#fff;
border-color:var(--c-grass-dark);}
.notice-cover-img{
width:100%;
max-height:180px;
object-fit:cover;
border-radius:4px;
margin-bottom:8px;
display:block;}
.ann-meta{
font-size:11px;
color:#888;
margin:0 0 6px;
font-family:var(--font-cn);}
.ann-meta-edited{
color:#a6a;}
.ann-content-preview{
white-space:pre-wrap;
display:-webkit-box;
-webkit-line-clamp:4;
-webkit-box-orient:vertical;
overflow:hidden;
font-family:var(--font-cn);
font-size:14px;
color:var(--c-stone-dark);
margin:0 0 8px;}
.ann-view-modal{
max-width:640px;}
.ann-view-cover-wrap{
padding-bottom:0;}
.ann-view-cover{
width:100%;
max-height:240px;
object-fit:cover;
display:block;}
.ann-view-meta{
margin:0 0 12px;
font-size:11px;
color:var(--c-stone-dark);
font-family:var(--font-cn);}
.ann-view-content{
font-size:14px;
line-height:1.8;
color:#1a3d12;
white-space:pre-wrap;
word-break:break-word;
border-top:2px dashed var(--c-stone);
padding-top:12px;
font-family:var(--font-cn);}
.passkey-toast-mask{
position:fixed; left:0; right:0; bottom:0; top:auto;
z-index:10000;
display:flex; justify-content:center;
pointer-events:none;
padding:14px;}
.passkey-toast{
pointer-events:auto;
background:linear-gradient(135deg,#2a4a2a 0%,#1a3a1a 100%);
border:3px solid var(--c-emerald,#4a4);
border-radius:10px;
padding:14px 18px;
max-width:480px;
width:100%;
box-shadow:0 8px 28px rgba(0,0,0,0.5);
color:#dfd;
font-family:var(--font-cn);
line-height:1.55;}
.passkey-toast-head{
display:flex; align-items:center; gap:10px; margin-bottom:8px;}
.passkey-toast-icon{
font-size:26px; line-height:1;}
.passkey-toast-body{
flex:1;}
.passkey-toast-title{
color:#fff; font-size:15px;}
.passkey-toast-sub{
font-size:11px; color:#9c9; margin-top:2px;}
.passkey-toast-close{
background:none; border:none; color:#9c9;
font-size:18px; cursor:pointer; padding:0 4px; line-height:1;}
.passkey-toast-actions{
display:flex; gap:6px; flex-wrap:wrap; margin-top:8px;}
.passkey-toast-btn-add{
flex:1; min-width:120px;
background:linear-gradient(135deg,#4a4 0%,#2a2 100%);
color:#fff;
border:2px solid var(--c-emerald,#6f6);
padding:8px 12px;
border-radius:6px;
cursor:pointer;
font-size:13px;
font-weight:700;
font-family:var(--font-cn);}
.passkey-toast-btn-later{
background:transparent;
color:#9c9;
border:2px solid #4a6;
border-radius:6px;
padding:8px 12px;
cursor:pointer;
font-size:12px;
font-family:var(--font-cn);}
.passkey-toast-msg{
margin-top:8px; font-size:12px; min-height:16px; color:#9c9;}
.signin-mask{
position:fixed; inset:0;
background:rgba(0,0,0,0.7);
z-index:99999;
display:flex; align-items:center; justify-content:center;
padding:20px;}
.signin-modal{
background:#1a1a2e;
border:2px solid #6cf;
border-radius:8px;
padding:24px;
max-width:440px;
width:100%;
box-shadow:0 8px 32px rgba(0,0,0,0.5);
color:#c8d6f0;
font-family:var(--font-cn);}
.signin-modal-head{
display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;}
.signin-modal-head h3{
margin:0; color:#6cf; font-size:18px;}
.signin-close{
background:none; border:none; color:#9ab;
font-size:20px; cursor:pointer; line-height:1;}
.signin-stat-row{
display:flex; gap:14px; align-items:center;
background:#0f1024; padding:14px; border-radius:6px; margin-bottom:14px;}
.signin-stat-icon{
font-size:38px;}
.signin-stat-main{
flex:1;}
.signin-stat-label{
color:#9ab; font-size:11px; line-height:1.4;}
.signin-stat-value{
color:#ffd23f; font-size:24px; font-weight:bold; line-height:1.2;}
.signin-stat-side{
text-align:right;}
.signin-stat-streak{
color:#7dd87e; font-size:18px; font-weight:bold; line-height:1.2;}
.signin-stat-streak-sub{
color:#9ab; font-size:13px; font-weight:normal;}
.signin-week-wrap{
margin-bottom:14px;}
.signin-week-label{
color:#9ab; font-size:12px; margin-bottom:6px;}
.signin-rules{
color:#9ab; font-size:11px; line-height:1.6; margin-bottom:14px;
background:#0a0a1e; padding:8px; border-radius:4px;}
.signin-msg{
min-height:18px; font-size:12px; margin-top:8px; text-align:center;}
.signin-msg-loading{
color:#fc6;}
.signin-msg-ok{
color:#7dd87e;}
.signin-msg-err{
color:#f99;}
.nav-emerald{
background:rgba(255,210,63,0.15);
border:1px solid #ffd23f;
border-radius:12px;
padding:2px 8px;
font-size:12px;
color:#ffd23f;
font-weight:600;
display:inline-flex;
align-items:center;
gap:3px;
font-family:var(--font-cn);}
.nav-signin-link{
color:#fc6; font-weight:700;}
.nav-admin-link{
color:#a6a; font-weight:700;}
.nav-dm-link{
color:var(--c-emerald); position:relative;}
.nav-ann-link{
color:#fc6; position:relative; display:none;}
.nav-profile-link{
text-decoration:none; color:inherit;}
.nav-badge{
display:none;
position:absolute;
top:-4px; right:-8px;
font-size:10px;
font-weight:700;
padding:1px 5px;
border-radius:9px;
line-height:1.2;
min-width:16px;
text-align:center;
font-family:var(--font-cn);}
.nav-badge-dm{
background:#f33; color:#fff;}
.nav-badge-ann{
background:#f93; color:#fff; font-size:9px; padding:1px 4px;}
.signin-badge-done{
color:#7dd87e;}
.signin-flash{
position:fixed; inset:0; z-index:999999;
pointer-events:none;
display:flex; align-items:center; justify-content:center;
background:rgba(0,0,0,0.5);
animation:signin-fade 1.4s forwards;}
.signin-flash-text{
text-align:center; color:#ffd23f;
font-size:60px; font-weight:bold;
text-shadow:0 0 30px #ffd23f;
font-family:var(--font-pixel);}
@keyframes signin-fade{
0%{
opacity:0; transform:scale(0.6);}
20%{
opacity:1; transform:scale(1.2);}
100%{
opacity:0; transform:scale(1);}
}
*{
box-sizing:border-box; margin:0; padding:0;}
html{
scroll-behavior:smooth;}
body{
font-family:var(--font-mc);
font-size:20px;
color:var(--c-dark);
background:var(--c-bg);
line-height:1.6;
overflow-x:hidden;
image-rendering:pixelated;
position:relative;
background-image:repeating-linear-gradient(0deg,rgba(0,0,0,0.025) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(0,0,0,0.025) 0 1px,transparent 1px 4px),linear-gradient(180deg,var(--c-bg) 0%,var(--c-bg-2) 100%);}
a{
color:inherit; text-decoration:none;}
img,svg{
image-rendering:pixelated;}
button{
font-family:inherit; cursor:pointer; border:none; background:none;}
input,textarea,select{
font-family:var(--font-mc);
font-size:18px;
background:var(--c-paper);
border:var(--shadow-px-sm) solid var(--c-black);
box-shadow:inset 0 0 0 2px var(--c-stone-light);
padding:8px 10px;
outline:none;
color:var(--c-dark);
width:100%;}
input:focus,textarea:focus,select:focus{
box-shadow:inset 0 0 0 2px var(--c-focus-ring);
transition:box-shadow var(--dur-fast) var(--ease-out);
outline:none;}
textarea{
resize:vertical; min-height:90px;}
.container{
max-width:1200px; margin:0 auto; padding:0 24px;}
.sky-bg{
position:fixed; inset:0 0 auto 0;
height:720px;
z-index:-1;
pointer-events:none;
background:linear-gradient(180deg,#6cb1ff 0%,#a3d2ff 100%);
overflow:hidden;}
.sky-bg-img{
position:absolute;
inset:0;
width:100%; height:100%;
object-fit:cover;
object-position:center 35%;
image-rendering:pixelated;
filter:saturate(1.1) contrast(1.05);
opacity:0.85;}
.sky-bg-overlay{
position:absolute;
inset:0;
background:linear-gradient(180deg,rgba(108,177,255,0.35) 0%,rgba(108,177,255,0.55) 100%),radial-gradient(ellipse at 50% 80%,rgba(255,255,255,0.1),transparent 70%);
pointer-events:none;}
.sun{
position:absolute;
top:80px; right:14%;
width:80px; height:80px;
background:linear-gradient(transparent 12px,var(--c-sun) 12px 68px,transparent 68px),linear-gradient(90deg,transparent 12px,var(--c-sun) 12px 68px,transparent 68px);}
.cloud{
position:absolute;
background:var(--c-cloud);
box-shadow:16px 0 0 0 var(--c-cloud),32px 0 0 0 var(--c-cloud),48px 0 0 0 var(--c-cloud),0 -16px 0 0 var(--c-cloud),16px -16px 0 0 var(--c-cloud),32px -16px 0 0 var(--c-cloud),48px -16px 0 0 var(--c-cloud),64px -16px 0 0 var(--c-cloud);
width:16px; height:16px;}
.cloud-1{
top:90px; left:10%; animation:drift 90s linear infinite;}
.cloud-2{
top:140px; left:45%; animation:drift 130s linear infinite; transform:scale(0.8);}
.cloud-3{
top:60px; right:5%; animation:drift 110s linear infinite reverse; transform:scale(1.1);}
@keyframes drift{
from{
transform:translateX(0);}
to{
transform:translateX(-50vw);}
}
.top-strip{
background:var(--c-redstone);
color:white;
font-family:var(--font-mc);
font-size:16px;
padding:8px 16px;
display:flex;
align-items:center;
justify-content:center;
gap:10px;
border-bottom:3px solid var(--c-black);
position:relative;
z-index:5;}
.top-strip .strip-icon{
font-size:18px;}
.top-strip::before,.top-strip::after{
content:'';
position:absolute;
top:0; bottom:0;
width:4px;
background:var(--c-gold);}
.top-strip::before{
left:0;}
.top-strip::after{
right:0;}
.navbar{
position:sticky;
top:0;
z-index:50;
background:var(--c-paper);
border-bottom:4px solid var(--c-black);
box-shadow:0 4px 0 0 var(--c-stone);}
.nav-inner{
max-width:1280px;
margin:0 auto;
padding:12px 24px;
display:flex;
align-items:center;
justify-content:space-between;
gap:24px;}
.nav-logo{
display:flex; align-items:center; gap:12px;}
.logo-block{
width:40px; height:40px;
display:flex; flex-direction:column;
border:3px solid var(--c-black);}
.logo-block .block-grass{
flex:1; background:var(--c-grass); position:relative;}
.logo-block .block-grass::before{
content:''; position:absolute; top:4px; left:6px;
width:4px; height:4px; background:var(--c-grass-light);
box-shadow:10px 0 0 0 var(--c-grass-light),20px 4px 0 0 var(--c-grass-light);}
.logo-block .block-dirt{
flex:1; background:var(--c-dirt); position:relative;}
.logo-block .block-dirt::before{
content:''; position:absolute; top:4px; left:4px;
width:4px; height:4px; background:var(--c-dirt-dark);
box-shadow:10px 2px 0 0 var(--c-dirt-dark),22px 6px 0 0 var(--c-dirt-dark);}
.logo-text{
display:flex; flex-direction:column; line-height:1.1;}
.logo-zh{
font-family:var(--font-cn); font-weight:700; font-size:16px; color:var(--c-dark);}
.logo-en{
font-family:var(--font-pixel); font-size:7px; color:var(--c-grass-dark); letter-spacing:1px;}
.nav-links{
display:flex; gap:4px; flex-wrap:wrap;}
.nav-links a{
font-family:var(--font-cn);
font-size:15px;
font-weight:500;
padding:8px 14px;
color:var(--c-dark);
border:2px solid transparent;
transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);
position:relative;}
.nav-links a:hover{
background:var(--c-grass);
color:white;
border-color:var(--c-black);
transform:translate(-1px,-1px);
box-shadow:2px 2px 0 var(--c-black);}
.nav-links a.active{
background:var(--c-gold);
border-color:var(--c-black);
box-shadow:2px 2px 0 var(--c-black);}
.nav-user-slot{
display:flex; align-items:center; gap:10px; margin-left:8px;}
.nav-user-slot:empty{
display:none;}
.nav-login-link,.nav-logout-link{
padding:6px 12px; font-size:14px;
background:var(--c-emerald); color:#fff !important;
border:2px solid var(--c-black);
box-shadow:2px 2px 0 var(--c-black);
text-decoration:none;
transition:transform 0.1s,box-shadow 0.1s;}
.nav-login-link:hover,.nav-logout-link:hover{
transform:translate(-1px,-1px);
box-shadow:3px 3px 0 var(--c-black);}
.nav-user-name{
font-size:14px; font-weight:600;
padding:4px 8px;
background:var(--c-paper-2);
border:2px solid var(--c-black);}
.nav-logout-link{
background:var(--c-paper-2);
color:var(--c-text) !important;
font-size:13px;
padding:4px 8px;}
.nav-bell{
position:relative; display:inline-block;}
.nav-bell-badge{
position:absolute; top:-6px; right:-8px;
min-width:18px; height:18px; padding:0 5px;
background:var(--c-redstone);
color:white;
font-family:var(--font-pixel);
font-size:9px; line-height:18px;
text-align:center;
border:2px solid var(--c-black);
border-radius:9px;
box-sizing:border-box;
pointer-events:none;}
.nav-bell-badge[hidden]{
display:none;}
.nav-lang-wrap{
display:inline-block; margin-left:8px;}
.nav-lang-switch{
background:var(--c-paper-2);
color:var(--c-text);
border:2px solid var(--c-black);
font-family:var(--font-pixel);
font-size:11px;
padding:4px 10px;
cursor:pointer;
transition:background 0.15s;}
.nav-lang-switch:hover{
background:var(--c-grass); color:white;}
.nav-lang-switch:active{
transform:translate(1px,1px);}
@media (max-width:768px){
.nav-user-slot{
margin-left:0;}
}
@media (max-width:768px){
.admin-tabs{
overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; padding-bottom:4px;}
.admin-tabs .tab{
font-size:11px; padding:8px 10px; white-space:nowrap; flex-shrink:0;}
.admin-tabs .tab-count{
font-size:9px; padding:1px 4px;}
.pane-head h2{
font-size:18px;}
.pane-head{
flex-direction:column; align-items:flex-start; gap:8px;}
.pane-tools{
width:100%; flex-wrap:wrap;}
.pane-hint{
font-size:12px;}
.admin-header{
flex-direction:column; gap:8px;}
.admin-header-right{
width:100%;}
.user-bar{
flex-direction:column; gap:8px; align-items:flex-start;}
.user-actions{
width:100%;}
.login-grid{
grid-template-columns:1fr; gap:16px;}
.login-brand{
padding:24px 16px;}
.login-form-wrap{
padding:0 16px 24px;}
.login-card{
padding:24px 18px;}
}
@media (max-width:480px){
.admin-tabs .tab{
font-size:10px; padding:6px 8px;}
.pane-head h2{
font-size:16px;}
.btn{
padding:10px 16px; font-size:10px;}
input,select,textarea{
font-size:14px;}
}
.nav-toggle{
display:none; flex-direction:column; gap:4px; padding:6px;}
.nav-toggle span{
display:block; width:26px; height:4px; background:var(--c-black);}
.btn{
display:inline-flex;
align-items:center;
gap:8px;
padding:12px 24px;
font-family:var(--font-pixel);
font-size:11px;
letter-spacing:1px;
color:white;
background:var(--c-grass);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 0 var(--c-black);
transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-fast) var(--ease-out);
cursor:pointer;}
.btn:hover{
transform:translate(-2px,-2px);
box-shadow:6px 6px 0 0 var(--c-black);
background:var(--c-grass-light);}
.btn:active{
transform:translate(2px,2px);
box-shadow:0 0 0 0 var(--c-black);}
.btn-primary{
background:var(--c-grass);}
.btn-ghost{
background:transparent;
color:var(--c-dark);
box-shadow:4px 4px 0 0 var(--c-stone-dark);}
.btn-ghost:hover{
background:var(--c-gold); color:var(--c-dark);}
.hero{
position:relative;
padding:90px 0 110px;
min-height:760px;
display:flex;
align-items:center;
border-bottom:6px solid var(--c-black);}
.hero-inner{
max-width:880px;
margin:0 auto;
padding:0 24px;
display:flex;
flex-direction:column;
align-items:center;
text-align:center;
width:100%;}
.hero-tag{
display:inline-block;
font-family:var(--font-pixel);
font-size:11px;
background:var(--c-gold);
color:var(--c-dark);
padding:10px 18px;
border:3px solid var(--c-black);
margin-bottom:24px;
box-shadow:4px 4px 0 var(--c-black);
letter-spacing:2px;}
.hero-title{
line-height:1.1; margin-bottom:28px;}
.title-line{
display:block;
font-family:var(--font-cn);
font-size:22px;
font-weight:400;
color:#1a3a08;
margin-bottom:12px;
letter-spacing:10px;
text-shadow:2px 2px 0 rgba(255,255,255,0.5);}
.title-main{
display:block;
font-family:var(--font-pixel);
font-size:76px;
color:#2d5e0f;
text-shadow:4px 0 0 var(--c-black),0 4px 0 var(--c-black),4px 4px 0 var(--c-black),8px 8px 0 rgba(0,0,0,0.3),12px 12px 0 #1a3a08;
letter-spacing:6px;
margin:8px 0;
line-height:1;}
.title-sub{
display:block;
font-family:var(--font-pixel);
font-size:18px;
color:#0f1f0a;
letter-spacing:6px;
margin-top:12px;
text-shadow:2px 2px 0 rgba(255,255,255,0.5);}
.hero-desc{
font-family:var(--font-cn);
font-size:17px;
color:#0f0f17;
margin-bottom:36px;
line-height:1.9;
max-width:580px;
text-shadow:1px 1px 0 rgba(255,255,255,0.4);}
.hero-desc b{
color:#2d5e0f;
font-weight:700;
text-shadow:1px 1px 0 rgba(255,255,255,0.5);}
.hero-actions{
display:flex; gap:16px; margin-bottom:44px; flex-wrap:wrap;}
.hero-stats{
display:flex; gap:20px; flex-wrap:wrap;}
.hero-stats .stat{
background:rgba(255,248,220,0.95);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-black);
padding:16px 22px;
min-width:120px;
text-align:center;
display:flex; flex-direction:column; gap:6px;
position:relative;
backdrop-filter:blur(2px);}
.hero-stats .stat::before{
content:'';
position:absolute; top:4px; left:4px; right:4px; height:3px;
background:var(--c-gold);}
.hero-stats .stat b{
font-family:var(--font-pixel);
font-size:22px;
color:var(--c-grass-dark);}
.hero-stats .stat span{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
letter-spacing:1px;}
.hero-photo-frame img{
width:100%;
aspect-ratio:16 / 10;
object-fit:cover;
image-rendering:pixelated;
display:block;
border-bottom:4px solid var(--c-black);
filter:contrast(1.1) saturate(1.15);}
position:relative;
width:460px;
height:380px;
background:linear-gradient(180deg,#a3d2ff 0%,#cfe6ff 100%);
border:4px solid var(--c-black);
box-shadow:8px 8px 0 var(--c-stone-dark);
overflow:hidden;
padding:0;}
@keyframes bounce{
0%,100%{
transform:translate(-50%,0);}
50%{
transform:translate(-50%,-6px);}
}
.section{
padding:100px 0;
position:relative;}
.section-alt{
background:rgba(255,248,220,0.55);}
.section-head{
text-align:center; margin-bottom:60px;}
.section-head.left{
text-align:left;}
.section-title{
font-family:var(--font-pixel);
font-size:28px;
color:var(--c-grass-dark);
display:inline-block;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone-dark);
padding:16px 28px;
margin-bottom:16px;}
.section-sub{
font-family:var(--font-pixel);
font-size:12px;
letter-spacing:3px;
color:var(--c-stone-dark);}
.notice-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:24px;}
.notice-card{
display:flex;
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
transition:transform 0.2s,box-shadow 0.2s;
cursor:pointer;}
.notice-card:hover{
transform:translate(-3px,-3px);
box-shadow:8px 8px 0 var(--c-stone);}
.notice-date .d{
font-family:var(--font-pixel);
font-size:28px;
line-height:1;}
.notice-date .m{
font-family:var(--font-cn);
font-size:13px;
margin-top:6px;}
.notice-body{
padding:18px 20px; flex:1;}
.notice-tag{
display:inline-block;
font-family:var(--font-pixel);
font-size:9px;
padding:4px 8px;
border:2px solid var(--c-black);
margin-bottom:8px;
color:white;}
.tag-blue{
background:var(--c-water);}
.notice-body h3{
font-family:var(--font-cn);
font-size:18px;
font-weight:700;
margin-bottom:8px;
color:var(--c-dark);}
.notice-body p{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-stone-dark);
margin-bottom:8px;
display:-webkit-box;
-webkit-line-clamp:2;
-webkit-box-orient:vertical;
overflow:hidden;}
.read-more{
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-grass-dark);
letter-spacing:1px;}
.read-more:hover{
color:var(--c-redstone);}
.avatar-head .hair{
position:absolute; top:-10px; left:-10px; right:-10px;
height:40px;
background:#5a3a1c;
border:3px solid var(--c-black);}
.avatar-head .eyes{
position:absolute; top:46px; left:18px; right:18px;
display:flex; justify-content:space-between;}
.avatar-head .eyes i{
width:10px; height:10px; background:var(--c-black);
display:block;}
.avatar-head .mouth{
position:absolute; bottom:18px; left:50%;
transform:translateX(-50%);
width:26px; height:6px;
background:var(--c-black);}
.avatar-body::before{
content:'';
position:absolute; top:12px; left:50%;
transform:translateX(-50%);
width:32px; height:32px;
background:var(--c-gold);
border:3px solid var(--c-black);
box-shadow:0 0 8px var(--c-gold);}
.mayor-content p{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-dark);
margin-bottom:12px;
line-height:1.9;}
.mayor-quote span{
display:block;
font-size:14px;
font-weight:400;
color:var(--c-stone-dark);
margin-top:12px;}
.mayor-content .sign{
font-family:var(--font-cn);
font-size:15px;
text-align:right;
color:var(--c-stone-dark);
margin-top:20px;}
.data-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;}
.data-card{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
padding:32px 20px;
text-align:center;
position:relative;
transition:transform 0.2s;}
.data-card:hover{
transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--c-stone);}
.data-card::before{
content:'';
position:absolute; top:6px; left:6px; right:6px; bottom:6px;
border:2px dashed var(--c-stone);
pointer-events:none;}
.data-icon{
font-size:36px;
margin-bottom:12px;
display:inline-block;
filter:drop-shadow(2px 2px 0 var(--c-stone));}
.data-num{
font-family:var(--font-pixel);
font-size:32px;
color:var(--c-grass-dark);
margin-bottom:8px;
line-height:1;}
.data-num-double{
display:flex;
flex-direction:column;
gap:4px;
margin-bottom:8px;}
.data-num-double > div{
display:flex;
align-items:baseline;
justify-content:center;
gap:6px;
font-size:14px;
line-height:1.1;
color:var(--c-stone-dark);
font-family:var(--font-cn);}
.data-num-double b{
font-family:var(--font-pixel);
font-size:22px;
color:var(--c-grass-dark);
font-style:normal;
font-weight:400;}
.data-num-double i{
font-size:13px;
color:var(--c-stone-dark);
font-style:normal;}
.data-label{
font-family:var(--font-cn);
font-size:15px;
color:var(--c-stone-dark);}
.scene-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
gap:16px;}
.scene-card{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
padding:0 0 12px;
transition:transform 0.2s;
overflow:hidden;
cursor:pointer;}
.scene-card:hover{
transform:translate(-3px,-3px); box-shadow:8px 8px 0 var(--c-stone);}
.scene-card .scene-thumb{
width:100%;
height:160px;
object-fit:cover;
display:block;
image-rendering:pixelated;
background:var(--c-sky);}
.scene-card .scene-meta{
display:flex;
justify-content:space-between;
align-items:center;
padding:8px 12px 0;}
.scene-tower .lantern{
position:absolute; top:0; left:50%;
transform:translateX(-50%);
width:0; height:0;
border-left:30px solid transparent;
border-right:30px solid transparent;
border-bottom:22px solid var(--c-redstone);
filter:drop-shadow(0 0 8px var(--c-gold));}
.scene-tower .body{
position:absolute; top:22px; left:18px;
width:24px; height:98px;
background:repeating-linear-gradient(180deg,var(--c-stone-light) 0 12px,var(--c-stone) 12px 24px);
border:2px solid var(--c-black);}
.scene-tower .body::before{
content:'';
position:absolute; top:24px; left:4px; right:4px;
height:12px; background:var(--c-sun);
border:1px solid var(--c-black);
box-shadow:0 0 8px var(--c-sun);}
.scene-plaza::before{
content:'';
position:absolute; top:16px; left:50%;
transform:translateX(-50%);
width:26px; height:36px;
background:var(--c-gold);
border:2px solid var(--c-black);
box-shadow:0 0 8px var(--c-gold);}
.scene-station::before{
content:'';
position:absolute; top:-14px; left:-4px; right:-4px;
height:16px;
background:repeating-linear-gradient(90deg,var(--c-redstone) 0 12px,var(--c-black) 12px 14px);
border:2px solid var(--c-black);}
.scene-station::after{
content:'';
position:absolute; top:30px; left:8px; right:8px;
height:14px; background:var(--c-dark); border:2px solid var(--c-black);}
.scene-farm::before,.scene-farm::after,.scene-farm{
}
.scene-farm::before{
content:'';
position:absolute; top:6px; left:6px;
width:8px; height:8px; background:var(--c-gold);
box-shadow:24px 0 0 0 var(--c-gold),48px 0 0 0 var(--c-gold),0 16px 0 0 var(--c-gold),24px 16px 0 0 var(--c-gold),48px 16px 0 0 var(--c-gold);}
.scene-library::before{
content:'';
position:absolute; top:10px; left:50%;
transform:translateX(-50%);
width:60%; height:10px;
background:var(--c-dirt);
border:2px solid var(--c-black);
box-shadow:0 18px 0 0 var(--c-dirt),0 36px 0 0 var(--c-dirt);}
.scene-library::after{
content:'';
position:absolute; top:-16px; left:-6px; right:-6px;
height:18px;
background:repeating-linear-gradient(90deg,var(--c-redstone) 0 8px,var(--c-black) 8px 10px);
border:2px solid var(--c-black);}
.scene-park::before{
content:'';
position:absolute; top:20px; left:20px;
width:18px; height:18px;
background:#8b4513;
border:2px solid var(--c-black);
box-shadow:50px 8px 0 -3px #8b4513,80px 30px 0 -3px #8b4513;}
.scene-park::after{
content:'';
position:absolute; top:0; left:0; right:0; bottom:0;
background:radial-gradient(circle at 25% 30%,#ff8fb1 4px,transparent 4px),radial-gradient(circle at 70% 50%,#ff8fb1 4px,transparent 4px),radial-gradient(circle at 50% 80%,#ff8fb1 4px,transparent 4px);}
.scene-card h3{
font-family:var(--font-cn);
font-size:18px;
font-weight:700;
margin:16px 18px 6px;
color:var(--c-dark);}
.scene-card p{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-stone-dark);
padding:0 18px;
line-height:1.7;}
.service-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
margin-bottom:60px;}
.service-card{
display:block;
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
padding:28px 22px;
text-align:center;
transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-fast) var(--ease-out);
position:relative;}
.service-card:hover{
transform:translate(-3px,-3px);
box-shadow:8px 8px 0 var(--c-grass-dark);
background:var(--c-gold);}
.service-icon{
font-size:42px;
margin-bottom:12px;
filter:drop-shadow(2px 2px 0 var(--c-stone));}
.service-card h3{
font-family:var(--font-cn);
font-size:17px;
font-weight:700;
margin-bottom:6px;
color:var(--c-dark);}
.service-card p{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
line-height:1.6;}
.flow{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
padding:32px;}
.flow-title{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-grass-dark);
margin-bottom:24px;
text-align:center;
letter-spacing:2px;}
.flow-steps{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:16px;
list-style:none;
counter-reset:step;}
.flow-steps li{
background:var(--c-bg-2);
border:3px solid var(--c-black);
padding:18px;
text-align:center;
position:relative;}
.flow-steps li b{
display:block;
font-family:var(--font-pixel);
font-size:12px;
color:var(--c-grass-dark);
margin-bottom:8px;}
.flow-steps li span{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-stone-dark);
line-height:1.6;
display:block;}
.flow-steps li:not(:last-child)::after{
content:'▶';
position:absolute;
right:-16px; top:50%;
transform:translateY(-50%);
font-size:18px;
color:var(--c-grass-dark);
z-index:2;}
.visit-text h3{
font-family:var(--font-pixel);
font-size:18px;
color:var(--c-grass-dark);
margin-bottom:20px;
letter-spacing:2px;}
.visit-steps li{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
padding:16px 20px;
margin-bottom:16px;
margin-left:20px;
position:relative;}
.visit-steps li b{
display:block;
font-family:var(--font-cn);
font-size:16px;
font-weight:700;
color:var(--c-grass-dark);
margin-bottom:6px;}
.visit-steps li p{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
line-height:1.7;}
.visit-steps li p code{
font-family:var(--font-pixel);
font-size:11px;
background:var(--c-dark);
color:var(--c-gold);
padding:3px 8px;
border:2px solid var(--c-black);
display:inline-block;
margin:0 2px;}
.t-grass::after{
content:''; position:absolute; top:30%; left:30%; width:6px; height:6px; background:var(--c-grass-light);}
.t-water::after{
content:''; position:absolute; top:20%; left:20%; right:20%; height:4px; background:var(--c-water-dark);}
.t-tree::before{
content:''; position:absolute; top:8px; left:50%; transform:translateX(-50%);
width:16px; height:16px; background:var(--c-grass-dark);
border:2px solid var(--c-black);}
.t-tree::after{
content:''; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
width:6px; height:8px; background:var(--c-dirt);
border:1px solid var(--c-black);}
.t-road::after{
content:''; position:absolute; top:50%; left:10%; right:10%; height:2px; background:var(--c-gold);}
.t-house::before{
content:''; position:absolute; top:0; left:0; right:0;
height:30%; background:var(--c-redstone);
border-bottom:1px solid var(--c-black);}
.t-house::after{
content:''; position:absolute; bottom:8px; left:50%; transform:translateX(-50%);
width:8px; height:10px; background:var(--c-dirt);
border:1px solid var(--c-black);}
.t-tower::before{
content:''; position:absolute; top:6px; left:50%; transform:translateX(-50%);
width:0; height:0;
border-left:10px solid transparent;
border-right:10px solid transparent;
border-bottom:10px solid var(--c-redstone);
filter:drop-shadow(0 0 4px var(--c-gold));}
.t-tower::after{
content:''; position:absolute; bottom:4px; left:50%; transform:translateX(-50%);
width:8px; height:18px; background:var(--c-stone);
border:1px solid var(--c-black);}
.t-plaza::before{
content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
width:10px; height:10px; background:var(--c-gold);
border:1px solid var(--c-black);}
.t-station::before{
content:''; position:absolute; bottom:4px; left:10%; right:10%;
height:50%; background:var(--c-wood);
border:1px solid var(--c-black);}
.t-station::after{
content:''; position:absolute; top:4px; left:10%; right:10%;
height:18%; background:var(--c-redstone);
border:1px solid var(--c-black);}
.t-farm::before{
content:''; position:absolute; top:8px; left:8px;
width:4px; height:4px; background:var(--c-gold);
box-shadow:8px 0 0 0 var(--c-gold),16px 0 0 0 var(--c-gold),0 8px 0 0 var(--c-gold),8px 8px 0 0 var(--c-gold),16px 8px 0 0 var(--c-gold);}
.t-park::before{
content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
width:6px; height:6px; background:#ff8fb1;
box-shadow:-10px -8px 0 0 #ff8fb1,10px 8px 0 0 #ff8fb1;}
.map-legend span{
display:flex; align-items:center; gap:6px;}
.gal-filter-bar{
display:flex;
flex-wrap:wrap;
gap:10px;
justify-content:center;
margin:4px 0 24px;}
.gal-filter{
font-family:var(--font-cn);
font-size:14px;
padding:8px 16px;
background:var(--c-paper);
color:var(--c-dark);
border:3px solid var(--c-black);
box-shadow:3px 3px 0 var(--c-stone);
cursor:pointer;
display:inline-flex;
align-items:center;
gap:8px;
transition:transform 0.15s,box-shadow 0.15s,background 0.15s;}
.gal-filter:hover{
transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--c-stone);}
.gal-filter.active{
background:var(--c-grass-dark);
color:var(--c-paper);
box-shadow:3px 3px 0 var(--c-black);}
.gal-filter-count{
font-family:var(--font-pixel);
font-size:10px;
padding:2px 6px;
background:var(--c-black);
color:var(--c-paper);
border-radius:0;}
.gal-filter.active .gal-filter-count{
background:var(--c-paper); color:var(--c-grass-dark);}
.gallery-intro{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-stone-dark);
text-align:center;
max-width:720px;
margin:0 auto 40px;
line-height:1.8;}
.gallery-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:20px;}
.gallery-item{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
padding:0;
cursor:pointer;
transition:transform 0.18s,box-shadow 0.18s;
overflow:hidden;
position:relative;}
.gallery-item:hover{
transform:translate(-3px,-3px);
box-shadow:8px 8px 0 var(--c-grass-dark);}
.gallery-thumb{
width:100%;
aspect-ratio:16 / 10;
object-fit:cover;
display:block;
image-rendering:pixelated;
border-bottom:3px solid var(--c-black);}
.gallery-meta{
padding:10px 14px 12px;
display:flex; justify-content:space-between; align-items:center; gap:8px;}
.gallery-label{
font-family:var(--font-cn);
font-size:15px;
font-weight:700;
color:var(--c-dark);}
.gallery-num{
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-stone-dark);
letter-spacing:1px;
background:var(--c-bg-2);
border:2px solid var(--c-stone);
padding:2px 6px;
white-space:nowrap;}
.lightbox{
position:fixed; inset:0;
background:rgba(0,0,0,0.92);
z-index:200;
display:none;
align-items:center;
justify-content:center;
padding:40px;}
.lightbox.open{
display:flex;}
.lb-stage{
max-width:min(1200px,92vw);
max-height:86vh;
display:flex; flex-direction:column;
align-items:center;
gap:16px;}
#lbImg{
max-width:100%;
max-height:calc(86vh - 60px);
object-fit:contain;
image-rendering:pixelated;
border:4px solid var(--c-gold);
box-shadow:0 0 0 4px var(--c-black),12px 12px 0 rgba(0,0,0,0.5);
background:var(--c-dark);}
.lb-caption{
font-family:var(--font-pixel);
font-size:12px;
color:var(--c-gold);
background:rgba(0,0,0,0.6);
border:2px solid var(--c-gold);
padding:6px 14px;
letter-spacing:2px;
text-align:center;}
.lb-close,.lb-prev,.lb-next{
position:absolute;
font-family:var(--font-pixel);
font-size:18px;
color:white;
background:var(--c-grass);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 rgba(0,0,0,0.5);
width:48px; height:48px;
cursor:pointer;
transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);
z-index:2;}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{
background:var(--c-gold);
color:var(--c-dark);
transform:translate(-2px,-2px);
box-shadow:6px 6px 0 rgba(0,0,0,0.5);}
.lb-close{
top:20px; right:20px; background:var(--c-redstone);}
.lb-prev{
left:20px; top:50%; transform:translateY(-50%);}
.lb-prev:hover{
transform:translate(-2px,calc(-50% - 2px));}
.lb-next{
right:20px; top:50%; transform:translateY(-50%);}
.lb-next:hover{
transform:translate(-2px,calc(-50% - 2px));}
.wall-intro{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-dark);
text-align:center;
max-width:720px;
margin:0 auto 40px;
line-height:1.8;}
.wall-link{
color:var(--c-grass-dark);
font-weight:700;
border-bottom:2px solid var(--c-grass);}
.wall-link:hover{
color:var(--c-redstone); border-color:var(--c-redstone);}
.wall-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:18px;}
.pm-item{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
padding:18px 20px;
transition:transform 0.2s,box-shadow 0.2s;
position:relative;}
.pm-item:hover{
transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--c-grass-dark);}
.pm-head{
display:flex; align-items:center; justify-content:space-between;
margin-bottom:10px;
gap:10px;}
.pm-head b{
font-family:var(--font-cn);
font-size:16px;
font-weight:700;
color:var(--c-dark);}
.pm-type{
font-family:var(--font-pixel);
font-size:9px;
padding:3px 8px;
border:2px solid var(--c-black);
color:white;
letter-spacing:1px;}
.pm-type-建议{
background:var(--c-grass);}
.pm-type-投诉{
background:var(--c-redstone);}
.pm-type-咨询{
background:var(--c-water);}
.pm-type-合作{
background:var(--c-gold); color:var(--c-dark);}
.pm-content{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
line-height:1.7;
background:var(--c-bg);
border:2px solid var(--c-stone);
padding:10px 12px;
margin-bottom:8px;
word-break:break-word;}
.pm-time{
font-family:var(--font-pixel);
font-size:9px;
color:var(--c-stone-dark);
letter-spacing:1px;
text-align:right;}
.kart-intro{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-dark);
text-align:center;
max-width:760px;
margin:0 auto 40px;
line-height:1.9;}
.kart-intro strong{
color:var(--c-redstone); font-weight:700;}
.kart-intro b{
color:var(--c-grass-dark); font-weight:700;}
.kart-banner-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:12px;
margin-bottom:50px;}
.kb-item{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-stone);
cursor:pointer;
transition:transform 0.18s,box-shadow 0.18s;
overflow:hidden;}
.kb-item:hover{
transform:translate(-2px,-2px);
box-shadow:6px 6px 0 var(--c-redstone);}
.kb-img{
width:100%;
aspect-ratio:16 / 10;
object-fit:cover;
image-rendering:pixelated;
border-bottom:2px solid var(--c-black);}
.kb-cap{
font-family:var(--font-cn);
font-size:12px;
color:var(--c-dark);
padding:6px 10px;
text-align:center;
background:var(--c-bg-2);}
.kart-specs{
display:grid;
grid-template-columns:repeat(6,1fr);
gap:12px;
margin-bottom:40px;
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:5px 5px 0 var(--c-stone);
padding:20px;}
.ks-item{
text-align:center;
font-family:var(--font-cn);
color:var(--c-dark);}
.ks-item b{
display:block;
font-size:13px;
color:var(--c-redstone);
margin-bottom:4px;}
.ks-item span{
display:block;
font-size:14px;
font-weight:700;}
.kart-cta{
display:grid;
grid-template-columns:1fr auto;
gap:32px;
align-items:center;
background:linear-gradient(135deg,var(--c-paper) 0%,#fff8e0 100%);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-redstone);
padding:32px 36px;}
.cta-text h3{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-redstone);
margin-bottom:16px;
letter-spacing:2px;}
.kart-events li{
font-family:var(--font-cn);
font-size:15px;
color:var(--c-dark);
padding:6px 0;
border-bottom:1px dashed var(--c-stone);}
.kart-events li b{
display:inline-block;
background:var(--c-grass);
color:white;
font-family:var(--font-pixel);
font-size:10px;
padding:3px 8px;
margin-right:8px;
letter-spacing:1px;}
.cta-buttons{
text-align:center;}
.btn-large{
padding:16px 32px; font-size:12px;}
.quote-section::after{
content:'';
position:absolute; inset:0;
background:radial-gradient(circle at 20% 50%,rgba(255,210,63,0.10),transparent 50%),radial-gradient(circle at 80% 50%,rgba(93,124,21,0.10),transparent 50%);
pointer-events:none;}
#circuit{
background:linear-gradient(180deg,rgba(20,20,30,0.55) 0%,rgba(20,20,30,0.65) 100%),url('../assets/backgrounds/bg-pixel-circuit.jpg') center / cover no-repeat;
background-attachment:fixed,fixed;
position:relative;}
#circuit::before{
content:'';
position:absolute; inset:0;
background:rgba(0,0,0,0.15);
pointer-events:none;}
#circuit > .container{
position:relative; z-index:2;}
#circuit .circuit-intro{
color:var(--c-paper);}
#circuit .circuit-intro strong{
color:#ff6b6b;}
#circuit .circuit-intro b{
color:var(--c-gold);}
.circuit-intro{
font-family:var(--font-cn);
font-size:16px;
text-align:center;
max-width:780px;
margin:0 auto 50px;
line-height:1.9;}
.circuit-map{
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone-dark);
padding:20px;
margin-bottom:50px;}
.circuit-map-title{
font-family:var(--font-pixel);
font-size:13px;
color:var(--c-redstone);
text-align:center;
margin-bottom:16px;
letter-spacing:3px;}
.circuit-svg-wrap{
width:100%;
overflow:hidden;}
.circuit-svg{
width:100%;
height:auto;
display:block;
image-rendering:pixelated;
border:2px solid var(--c-black);}
.circuit-grid{
display:grid;
grid-template-columns:1fr 1fr 1.2fr;
gap:20px;
margin-bottom:40px;}
.cg-photo img{
width:100%;
aspect-ratio:16 / 10;
object-fit:cover;
image-rendering:pixelated;
border-bottom:2px solid var(--c-black);
display:block;}
.cg-spec-row b{
color:var(--c-redstone); font-weight:700;}
.cg-spec-row span{
color:var(--c-dark);}
.circuit-cta{
background:linear-gradient(135deg,#1a1a2e 0%,#2d2d4a 100%);
color:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-redstone);
padding:32px 36px;
text-align:center;}
.circuit-cta h3{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-gold);
margin-bottom:20px;
letter-spacing:2px;}
.circuit-cta ul{
list-style:none;
margin-bottom:16px;
display:flex; flex-direction:column; gap:8px; align-items:center;}
.circuit-cta ul li{
font-family:var(--font-cn);
font-size:15px;
color:var(--c-paper);}
.circuit-cta ul li b{
display:inline-block;
background:var(--c-redstone);
color:white;
font-family:var(--font-pixel);
font-size:10px;
padding:4px 8px;
margin-right:8px;
letter-spacing:1px;}
.treehouse-stage img{
width:100%;
height:100%;
object-fit:cover;
image-rendering:pixelated;}
.th-door::before{
content:'';
position:absolute; top:50%; right:4px;
width:4px; height:4px;
background:var(--c-gold);}
.th-lantern:nth-child(2){
animation-delay:0.5s;}
@keyframes thFlicker{
0%,100%{
opacity:1;}
50%{
opacity:0.6;}
}
.hotel-intro{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-dark);
text-align:center;
max-width:720px;
margin:0 auto 50px;
line-height:1.9;}
.hotel-intro strong{
color:var(--c-grass-dark); font-weight:700;}
.room-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;
margin-bottom:40px;}
.room-card{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
padding:0;
position:relative;
transition:transform 0.18s,box-shadow 0.18s;
display:flex; flex-direction:column;}
.room-card:hover{
transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--c-grass-dark);}
.room-card.featured{
border-color:var(--c-gold);
box-shadow:6px 6px 0 var(--c-gold);
background:linear-gradient(180deg,#fff8dc 0%,var(--c-paper) 60%);}
.room-card.featured:hover{
box-shadow:9px 9px 0 var(--c-gold);}
.room-badge{
position:absolute; top:-10px; right:12px;
background:var(--c-redstone);
color:white;
font-family:var(--font-pixel);
font-size:9px;
padding:5px 10px;
border:2px solid var(--c-black);
letter-spacing:1px;
z-index:2;}
.room-badge-draft{
background:var(--c-gold);
color:var(--c-dark);
top:-10px; left:12px; right:auto;}
.room-card.is-draft{
opacity:0.78;
border-color:var(--c-stone);}
.room-card.is-draft:hover{
opacity:0.95;}
.btn-disabled,.btn-disabled:hover{
background:var(--c-stone) !important;
color:var(--c-stone-dark) !important;
cursor:not-allowed;
opacity:0.7;}
.room-thumb{
width:100%;
aspect-ratio:16 / 9;
background:var(--c-grass);
border-bottom:3px solid var(--c-black);
position:relative;
overflow:hidden;}
.room-thumb.t-standard{
background:linear-gradient(180deg,#cfe6ff 0%,#b8d8ff 100%);}
.room-thumb.t-queen{
background:linear-gradient(180deg,#ffd6e7 0%,#ffb3d1 100%);}
.room-thumb.t-luxury{
background:linear-gradient(180deg,#2d3561 0%,#1a1f3a 100%);}
.room-thumb-tower{
position:absolute; bottom:0; left:50%;
transform:translateX(-50%);
width:40px; height:80px;
background:var(--c-wood);
border:2px solid var(--c-black);}
.room-thumb-tower::before{
content:''; position:absolute; top:-12px; left:-4px; right:-4px;
height:14px;
background:var(--c-redstone);
border:2px solid var(--c-black);}
.room-thumb-tower::after{
content:''; position:absolute; top:24px; left:50%; transform:translateX(-50%);
width:14px; height:14px; background:var(--c-gold);
border:1px solid var(--c-black);
box-shadow:0 0 6px var(--c-gold);}
.room-thumb-tree{
position:absolute; top:0; left:0; right:0; height:50%;
background:var(--c-grass);
border-bottom:2px solid var(--c-grass-dark);}
.room-thumb-tree::before{
content:''; position:absolute; bottom:-4px; left:50%; transform:translateX(-50%);
width:6px; height:50%;
background:var(--c-wood);
border:1px solid var(--c-black);}
.room-body{
padding:18px 18px 20px; flex:1; display:flex; flex-direction:column;}
.room-name{
font-family:var(--font-cn);
font-size:20px;
font-weight:700;
color:var(--c-dark);
margin-bottom:4px;
display:flex; align-items:center; gap:6px;}
.room-icon{
font-size:22px;}
.room-bed{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);
margin-bottom:12px;}
.room-features{
list-style:none;
display:flex; flex-wrap:wrap; gap:6px;
margin-bottom:14px;
min-height:64px;}
.room-features li{
font-family:var(--font-cn);
font-size:12px;
background:var(--c-bg-2);
color:var(--c-dark);
padding:4px 8px;
border:2px solid var(--c-stone);}
.room-desc{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-stone-dark);
line-height:1.7;
margin-bottom:16px;
flex:1;}
.room-price-row{
display:flex; align-items:flex-end; justify-content:space-between;
margin-bottom:14px;
padding-top:12px;
border-top:2px dashed var(--c-stone);}
.room-price{
display:flex; align-items:baseline; gap:4px;}
.room-price-num{
font-family:var(--font-pixel);
font-size:28px;
color:var(--c-grass-dark);
line-height:1;}
.room-price-cur{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);}
.room-price-unit{
font-family:var(--font-cn);
font-size:12px;
color:var(--c-stone-dark);
margin-left:4px;}
.room-guests{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-dark);}
.room-book-btn{
width:100%; justify-content:center;}
.hm-item b{
display:block;
font-size:15px;
color:var(--c-grass-dark);
margin-bottom:4px;}
.hm-item code{
font-family:var(--font-pixel);
font-size:10px;
background:var(--c-dark);
color:var(--c-gold);
padding:3px 6px;
display:inline-block;}
.modal-mask{
position:fixed; inset:0;
background:rgba(0,0,0,0.55);
z-index:9999;
display:flex; align-items:center; justify-content:center;
padding:16px;
animation:lc-mask-in 0.18s ease-out;
-webkit-overflow-scrolling:touch;
overflow-y:auto;}
@keyframes lc-mask-in{
from{
opacity:0;}
to{
opacity:1;}
}
.modal{
background:var(--c-bg-1,#f7f0d8);
border:4px solid var(--c-stone-dark,#3a3a3a);
box-shadow:0 8px 0 rgba(0,0,0,0.25),0 16px 40px rgba(0,0,0,0.35);
width:100%;
max-width:480px;
max-height:calc(100vh - 32px);
overflow-y:auto;
position:relative;
font-family:var(--font-cn,system-ui,sans-serif);
color:var(--c-dark,#1a1a1a);
padding:28px 24px 22px;
animation:lc-modal-in var(--dur-slow) var(--ease-spring);}
@keyframes lc-modal-in{
from{
transform:translateY(20px) scale(0.96); opacity:0;}
to{
transform:translateY(0) scale(1); opacity:1;}
}
.modal-close{
position:absolute; top:8px; right:10px;
width:32px; height:32px;
background:transparent;
border:2px solid transparent;
font-size:22px; line-height:1;
cursor:pointer;
color:var(--c-stone-dark,#555);
font-family:var(--font-pixel,monospace);
padding:0;
z-index:1;}
.modal-close:hover{
color:var(--c-redstone,#d33); border-color:var(--c-redstone,#d33);}
.modal h3{
margin:0 0 12px; font-size:18px; color:var(--c-grass-dark,#2d6e1f);}
.modal p{
margin:0 0 8px; font-size:14px;}
.modal .form-row{
margin-bottom:12px;}
.modal .form-row label{
display:block; font-size:13px; margin-bottom:4px; color:var(--c-stone-dark,#555);}
.modal input[type=text],.modal input[type=email],.modal input[type=password],.modal input[type=number],.modal input[type=date],.modal select,.modal textarea{
width:100%;
padding:8px 10px;
font-size:14px;
border:2px solid var(--c-stone,#999);
background:#fff;
color:var(--c-dark,#1a1a1a);
font-family:var(--font-cn,system-ui,sans-serif);
box-sizing:border-box;}
.modal input:focus,.modal select:focus,.modal textarea:focus{
outline:none; border-color:var(--c-emerald,#5fb14f);}
.modal .btn{
padding:8px 16px; font-size:14px; cursor:pointer;}
.modal-head{
display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;}
.modal-head h3{
margin:0;}
.modal-body{
font-size:14px;}
.modal-form label{
display:block; margin-bottom:10px; font-size:13px; color:var(--c-stone-dark,#555);}
.modal-form label > span{
display:block; margin-bottom:4px;}
.modal-form input,.modal-form select,.modal-form textarea{
width:100%;}
.modal-msg{
min-height:20px; font-size:13px; margin:8px 0; color:var(--c-stone-dark,#555);}
.modal-actions{
display:flex; gap:10px; justify-content:flex-end; margin-top:12px;}
.form-msg{
font-size:13px; min-height:18px;}
.dm-list-item.active .dm-list-preview,.dm-list-item.active .dm-list-time{
color:rgba(255,255,255,0.85);}
.dm-list-item.unread .dm-list-name{
font-weight:900;}
.dm-msg{
max-width:70%; display:flex; flex-direction:column;}
.dm-msg.from-me{
align-self:flex-end; align-items:flex-end;}
.dm-msg.from-other{
align-self:flex-start; align-items:flex-start;}
.dm-msg.from-me .dm-msg-bubble{
background:#d9f0c5;
border-color:var(--c-grass-dark,#2d6e1f);}
.dm-chat-form textarea{
flex:1; resize:none; padding:6px 10px; font-size:14px;
font-family:var(--font-cn); border:2px solid var(--c-stone,#999);
background:#fff;}
.dm-chat-form button{
flex-shrink:0;}
@media (max-width:700px){
.dm-layout{
grid-template-columns:1fr;}
.dm-sidebar{
max-height:200px;}
}
.profile-card{
display:flex; gap:24px;
background:var(--c-bg-1,#f7f0d8);
border:4px solid var(--c-stone-dark,#3a3a3a);
padding:24px 28px;
box-shadow:0 4px 0 rgba(0,0,0,0.2);
margin:24px 0;
font-family:var(--font-cn,system-ui);}
.profile-avatar{
font-size:64px; line-height:1;
width:96px; height:96px;
display:flex; align-items:center; justify-content:center;
background:var(--c-bg-2,#f0e8d0);
border:3px solid var(--c-stone,#999);
flex-shrink:0;}
.profile-name{
font-family:var(--font-cn,system-ui);
font-size:28px; font-weight:700;
margin:0 0 8px;
color:var(--c-grass-dark,#2d6e1f);}
.profile-meta{
display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px;}
.profile-bio{
font-size:14px; line-height:1.6;
color:var(--c-stone-dark,#555);
margin:8px 0 14px;
padding:8px 12px;
background:rgba(255,255,255,0.4);
border-left:3px solid var(--c-grass-dark,#2d6e1f);}
.profile-stats{
display:flex; gap:18px; flex-wrap:wrap;}
.profile-stat{
text-align:center;}
.profile-stat b{
display:block; font-size:22px; color:var(--c-grass-dark,#2d6e1f);}
.profile-stat span{
font-size:11px; color:var(--c-stone-dark,#555);}
.profile-actions{
margin-top:14px;}
@media (max-width:600px){
.profile-card{
flex-direction:column; align-items:center; text-align:center; padding:20px;}
.profile-meta{
justify-content:center;}
.profile-bio{
text-align:left;}
}
.pm-actions{
margin-top:8px;}
.pm-actions .pm-toggle-comments{
padding:4px 10px; font-size:12px;}
.pm-comments{
margin-top:10px;
padding:10px 12px;
background:rgba(0,0,0,0.04);
border-left:3px solid var(--c-stone,#999);
border-radius:2px;}
.pm-comment-list{
display:flex; flex-direction:column; gap:8px;}
.pm-comment{
position:relative;
padding:8px 10px;
background:var(--c-bg-1,#f7f0d8);
border:1px solid var(--c-stone,#999);
border-radius:2px;
font-size:13px;}
.pm-comment-author{
font-weight:bold; color:var(--c-grass-dark,#2d6e1f); margin-right:8px;}
.pm-comment-time{
font-size:11px; color:var(--c-stone-dark,#555);}
.pm-comment-text{
margin-top:4px; line-height:1.5; word-break:break-word;}
.pm-comment-del{
position:absolute; top:4px; right:6px;
background:transparent; border:1px solid transparent;
color:var(--c-redstone,#d33);
font-size:11px; padding:1px 6px; cursor:pointer;}
.pm-comment-del:hover{
border-color:var(--c-redstone,#d33);}
.pm-comment-empty{
font-size:12px; color:var(--c-stone-dark,#555); padding:6px 0; font-style:italic;}
.pm-author-link{
text-decoration:none; color:var(--c-grass-dark,#2d6e1f);}
.pm-author-link:hover{
text-decoration:underline;}
.pm-comment-form{
margin-top:10px;
display:flex; flex-direction:column; gap:6px;}
.pm-comment-form textarea{
width:100%; resize:vertical;
padding:6px 8px; font-size:13px; font-family:var(--font-cn,system-ui);
border:2px solid var(--c-stone,#999);
background:var(--c-bg-1,#f7f0d8);
box-sizing:border-box;}
.pm-comment-form button{
align-self:flex-end;}
.pm-login-link{
color:var(--c-emerald,#5fb14f); text-decoration:underline;}
.license-intro{
font-family:var(--font-cn); font-size:14px;
color:var(--c-stone-dark); text-align:center;
margin:0 0 24px;}
.license-grid{
display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
gap:20px; max-width:900px; margin:0 auto;}
.license-card{
background:var(--c-bg-1,#f7f0d8);
border:4px solid var(--c-stone-dark,#3a3a3a);
padding:22px 18px 18px; text-align:center;
position:relative;
box-shadow:0 4px 0 rgba(0,0,0,0.2);}
.license-grade{
width:56px; height:56px;
margin:0 auto 12px;
background:var(--c-grass-dark,#2d6e1f);
color:#fff;
border:3px solid var(--c-stone-dark,#3a3a3a);
display:flex; align-items:center; justify-content:center;
font-family:var(--font-pixel,monospace);
font-size:32px; font-weight:bold;
border-radius:4px;}
.license-grade-s{
background:var(--c-redstone,#d33);}
.license-card h3{
margin:0 0 8px; color:var(--c-grass-dark,#2d6e1f); font-size:16px;}
.license-card p{
font-family:var(--font-cn); font-size:13px; color:var(--c-stone-dark,#555); margin:0 0 14px;}
.license-card .btn{
width:100%; font-size:14px; padding:10px 12px;}
.msg-replied-tag{
display:inline-block; font-size:11px;
padding:2px 6px; background:var(--c-emerald,#5fb14f);
color:#fff; border:1px solid var(--c-grass-dark,#2d6e1f);
margin-left:4px;}
.msg-reply-box::before,.pm-reply-box::before{
content:'';
position:absolute;
left:0;
top:0;
width:3px;
height:12px;
background:var(--c-emerald,#5fb14f);}
.msg-reply-box b,.pm-reply-box b{
color:var(--c-grass-dark,#2d6e1f);}
.msg-reply-box small,.pm-reply-box small{
display:block; margin-top:4px; color:var(--c-stone-dark,#555); font-size:11px;}
.msg-prev-ai details{
background:#f0e8f5;
border:1px dashed #a6a;
border-radius:3px;
padding:4px 8px;}
.msg-prev-ai summary{
cursor:pointer;
color:#86a;
font-size:12px;
user-select:none;
outline:none;}
.msg-prev-ai summary:hover{
color:#64a;}
.modal-book{
max-width:560px;}
.book-room-summary{
background:var(--c-bg-2);
border:2px solid var(--c-stone);
padding:12px 14px;
display:flex; justify-content:space-between; align-items:center;
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
margin-bottom:4px;}
.book-room-summary b{
color:var(--c-grass-dark); font-size:15px;}
.book-room-summary .summary-price{
color:var(--c-grass-dark); font-weight:700;}
.book-dates{
display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.book-row{
display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.book-nights{
font-family:var(--font-pixel);
font-size:10px;
color:var(--c-stone-dark);
text-align:right;
margin:-2px 0 0;
letter-spacing:1px;}
.book-total{
font-family:var(--font-pixel);
font-size:16px;
color:var(--c-grass-dark);
background:var(--c-gold);
border:3px solid var(--c-black);
box-shadow:3px 3px 0 var(--c-stone);
padding:10px 14px;
text-align:center;
letter-spacing:2px;}
.book-breakfast{
display:flex; align-items:center; gap:10px;
background:var(--c-bg-2);
border:2px solid var(--c-stone);
padding:10px 12px;
cursor:pointer;
flex-direction:row !important;}
.book-breakfast input[type="checkbox"]{
width:22px; height:22px;
margin:0;
cursor:pointer;
accent-color:var(--c-grass);}
.bb-icon{
font-size:24px;}
.bb-text{
display:flex; flex-direction:column; gap:2px; flex:1;}
.bb-text b{
font-family:var(--font-cn); font-size:14px; color:var(--c-grass-dark);}
.bb-text small{
font-family:var(--font-cn); font-size:12px; color:var(--c-stone-dark);}
.contact-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:40px;
background:var(--c-paper);
border:4px solid var(--c-black);
box-shadow:6px 6px 0 var(--c-stone);
padding:32px;}
.contact-info{
display:flex; flex-direction:column; gap:18px;}
.contact-row{
display:flex; gap:16px; align-items:flex-start;}
.contact-icon{
font-size:28px;
width:50px; height:50px;
background:var(--c-grass);
border:3px solid var(--c-black);
display:flex; align-items:center; justify-content:center;
flex-shrink:0;
filter:drop-shadow(2px 2px 0 var(--c-stone));}
.contact-row b{
font-family:var(--font-cn);
font-size:16px;
color:var(--c-grass-dark);
display:block;
margin-bottom:4px;}
.contact-row p{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
line-height:1.6;}
.contact-row p code{
font-family:var(--font-pixel);
font-size:10px;
background:var(--c-dark);
color:var(--c-gold);
padding:3px 6px;
display:inline-block;}
.contact-form{
display:flex; flex-direction:column; gap:12px;}
.contact-form label{
display:flex; flex-direction:column; gap:4px;
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
font-weight:500;}
.contact-form .btn{
align-self:flex-start;}
.footer{
background:var(--c-dark);
color:var(--c-paper);
border-top:6px solid var(--c-black);
margin-top:0;}
.footer-inner{
display:grid;
grid-template-columns:1fr 2fr;
gap:40px;
padding:50px 24px;}
.footer-brand{
display:flex; gap:12px; align-items:center;}
.footer-brand .logo-block .block-grass{
background:var(--c-grass);}
.footer-brand b{
font-family:var(--font-cn);
font-size:18px;
color:var(--c-paper);
display:block;
margin-bottom:4px;}
.footer-brand p{
font-family:var(--font-cn);
font-size:13px;
color:var(--c-stone-light);}
.footer-cols{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:24px;}
.footer-cols h4{
font-family:var(--font-pixel);
font-size:11px;
color:var(--c-gold);
margin-bottom:14px;
letter-spacing:2px;}
.footer-cols a{
display:block;
font-family:var(--font-cn);
font-size:14px;
color:var(--c-stone-light);
padding:4px 0;
transition:color 0.2s;}
.footer-cols a:hover{
color:var(--c-gold);}
.footer-bottom{
background:#0a0a14;
padding:16px 0;
border-top:2px solid var(--c-stone-dark);
font-family:var(--font-cn);
font-size:12px;
color:#b8a8a0;
letter-spacing:0.5px;}
.footer-bottom .container{
display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
.footer-bottom .sep{
color:#6a5a48;}
.footer-bottom .admin-link{
color:var(--c-gold);
font-family:var(--font-pixel);
font-size:10px;
letter-spacing:1px;
padding:2px 6px;
border:2px solid var(--c-gold);
transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);}
.footer-bottom .admin-link:hover{
background:var(--c-gold);
color:var(--c-dark);}
.back-top{
position:fixed;
right:24px; bottom:24px;
width:48px; height:48px;
background:var(--c-grass);
color:white;
border:3px solid var(--c-black);
box-shadow:4px 4px 0 var(--c-black);
font-family:var(--font-pixel);
font-size:14px;
z-index:40;
opacity:0;
pointer-events:none;
transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);}
.back-top.show{
opacity:1; pointer-events:auto;}
.back-top:hover{
transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--c-black);}
@media (max-width:960px){
.room-grid{
grid-template-columns:1fr;}
.hotel-meta{
grid-template-columns:1fr 1fr;}
.book-dates,.book-row{
grid-template-columns:1fr;}
.kart-banner-grid{
grid-template-columns:1fr 1fr;}
.kart-specs{
grid-template-columns:repeat(3,1fr);}
.kart-cta{
grid-template-columns:1fr; text-align:center;}
.circuit-grid{
grid-template-columns:1fr;}
.gallery-grid{
grid-template-columns:1fr 1fr;}
.wall-grid{
grid-template-columns:1fr 1fr;}
.lb-prev{
left:8px;}
.lb-next{
right:8px;}
.lb-close{
top:8px; right:8px; width:40px; height:40px; font-size:14px;}
.lightbox{
padding:60px 12px 12px;}
.nav-links{
display:none; flex-direction:column; width:100%; background:var(--c-paper); border-top:3px solid var(--c-black); padding:12px;}
.nav-links.open{
display:flex;}
.nav-toggle{
display:flex;}
.nav-inner{
flex-wrap:wrap;}
.hero-inner{
grid-template-columns:1fr; text-align:center;}
.hero-stats{
justify-content:center;}
.hero-actions{
justify-content:center;}
.title-main{
font-size:44px;}
.notice-grid,.data-grid,.scene-grid,.service-grid{
grid-template-columns:1fr 1fr;}
.mayor-wrap,.visit-wrap,.contact-grid{
grid-template-columns:1fr;}
.mayor-portrait{
text-align:center;}
.flow-steps{
grid-template-columns:1fr 1fr;}
.flow-steps li:not(:last-child)::after{
content:'';}
.footer-inner{
grid-template-columns:1fr;}
.footer-cols{
grid-template-columns:repeat(3,1fr);}
}
@media (max-width:600px){
.gallery-grid{
grid-template-columns:1fr;}
.kart-banner-grid{
grid-template-columns:1fr;}
.kart-specs{
grid-template-columns:1fr 1fr;}
.wall-grid{
grid-template-columns:1fr;}
.top-strip{
font-size:13px;}
.hero{
padding:40px 0 60px;}
.title-main{
font-size:32px;}
.section{
padding:60px 0;}
.section-title{
font-size:18px; padding:12px 18px;}
.notice-grid,.data-grid,.scene-grid,.service-grid{
grid-template-columns:1fr;}
.flow-steps{
grid-template-columns:1fr;}
.map-grid{
grid-template-rows:repeat(7,36px);}
.footer-cols{
grid-template-columns:1fr 1fr;}
.footer-bottom .container{
font-size:11px;}
}
.signin-streak .streak-flame{
font-size:14px;
filter:drop-shadow(0 0 4px rgba(255,100,0,.5));}
.signin-week{
display:grid;
grid-template-columns:repeat(7,1fr);
gap:4px;}
.signin-day{
background:#0a0a1e;
border:1px solid #334;
border-radius:4px;
padding:6px 2px;
text-align:center;
min-height:50px;
display:flex;
flex-direction:column;
justify-content:center;
gap:2px;}
.signin-day.signed{
background:#14261a;
border-color:#4a8a3a;}
.signin-day.signed .day-mark{
color:#ffd23f;
font-size:16px;}
.signin-day.today{
border-color:#6cf;
box-shadow:0 0 0 1px #6cf;}
.signin-day .day-date{
color:#9ab;
font-size:10px;
font-family:'Press Start 2P',monospace;}
.signin-day .day-mark{
color:#446;
font-size:14px;}
.my-messages-card,.my-bookings-card{
margin-top:18px; padding:16px;}
.pmm-head{
font-weight:700; color:var(--c-grass-dark,#2d6e1f); margin-bottom:10px;}
.pmm-item{
padding:10px; background:#fffbe5; border:2px solid var(--c-stone,#999); margin-bottom:8px;}
.pmm-head-row{
display:flex; justify-content:space-between; align-items:center; margin-bottom:6px;}
.pmm-time{
font-size:11px; color:var(--c-stone,#999);}
.pmm-content{
font-size:13px; line-height:1.5; white-space:pre-wrap; word-break:break-word;}
.pmm-reply{
margin-top:6px; padding:6px 10px; background:#f7eed0; border-left:4px solid var(--c-grass-dark,#2d6e1f); font-size:12px;}
.pm-content{
font-family:var(--font-cn);
font-size:14px;
color:var(--c-dark);
line-height:1.7;
background:#fff;
border:2px solid var(--c-stone);
padding:10px 12px;
margin-bottom:8px;
word-break:break-word;}
.pmm-type-tag{
display:inline-block; font-family:var(--font-pixel); font-size:9px; letter-spacing:1px; padding:2px 6px; border:2px solid var(--c-black); background:var(--c-gold,#ffd23f); color:var(--c-black); line-height:1.4;}
.pm-emoji-bar{
display:flex; gap:4px; margin-top:4px; margin-bottom:4px;}
.pm-emoji-btn{
background:transparent; border:1px solid var(--c-stone,#999); border-radius:4px; padding:2px 6px; font-size:16px; cursor:pointer; line-height:1;}
.pm-emoji-btn:hover{
background:var(--c-gold,#ffd23f);}
.empty-state{
text-align:center;
padding:60px 20px;
background:var(--c-bg-2);
border:3px solid var(--c-black);
color:var(--c-stone-dark);
font-family:var(--font-cn);
position:relative;
box-shadow:var(--shadow-soft);}
.empty-state::before{
content:'';
position:absolute; top:0; left:0; right:0; height:4px;
background:var(--c-gold);}
.empty-state p{
margin:8px 0 0; font-size:15px; line-height:var(--lh-loose);}
.empty-state .empty-sub{
font-size:13px; color:var(--c-stone); margin-top:4px;}
.empty-icon{
font-size:56px; opacity:0.8; display:block; line-height:1; margin-bottom:12px;}
.empty-state-error{
background:#fee;
border-color:#c33;}
.empty-state-error .empty-state-title{
color:#c33; font-weight:bold;}
.form-row{
display:flex; gap:var(--sp-3); margin-bottom:var(--sp-4); flex-wrap:wrap;}
.form-row > label{
flex:1 1 200px; min-width:180px;}
label > span.label-text{
display:block;
font-family:var(--font-pixel);
font-size:10px;
color:var(--c-grass-dark);
margin-bottom:var(--sp-2);
letter-spacing:1px;
text-transform:uppercase;}
label > span.hint{
display:block;
font-family:var(--font-cn);
font-size:12px;
color:var(--c-stone-dark);
margin-top:4px;}
.badge{
display:inline-flex;
align-items:center;
gap:4px;
padding:3px 8px;
font-family:var(--font-pixel);
font-size:9px;
letter-spacing:1px;
background:var(--c-paper);
border:2px solid var(--c-black);
color:var(--c-dark);
line-height:1.2;}
.badge.badge-grass{
background:var(--c-grass); color:#fff;}
.badge.badge-gold{
background:var(--c-gold); color:var(--c-dark);}
.badge.badge-redstone{
background:var(--c-redstone); color:#fff;}
.badge.badge-water{
background:var(--c-water); color:#fff;}
.badge.badge-stone{
background:var(--c-stone-light); color:var(--c-dark);}
.badge.badge-outline{
background:transparent; border-color:var(--c-stone); color:var(--c-stone-dark);}
.pane-card{
background:var(--c-paper);
border:3px solid var(--c-black);
box-shadow:var(--shadow-card);
padding:var(--sp-5);
position:relative;
margin-bottom:var(--sp-4);}
.pane-card::before{
content:'';
position:absolute; top:0; left:0; right:0; height:3px;
background:var(--c-gold);}
.pane-card > h3{
margin:0 0 var(--sp-3);
font-family:var(--font-pixel);
font-size:13px;
color:var(--c-grass-dark);
letter-spacing:1px;}
.pane-card > p{
margin:0;
font-family:var(--font-cn);
font-size:14px;
line-height:var(--lh-loose);
color:var(--c-dark);}
.callout{
display:flex;
gap:var(--sp-3);
padding:var(--sp-3) var(--sp-4);
border:2px solid var(--c-black);
background:var(--c-paper);
font-family:var(--font-cn);
font-size:14px;
line-height:var(--lh-loose);
margin:var(--sp-4) 0;
box-shadow:var(--shadow-soft);}
.callout::before{
content:'💡'; font-size:18px; line-height:1;}
.callout.callout-info{
border-color:var(--c-water); background:#eaf3ff;}
.callout.callout-warn{
border-color:var(--c-redstone); background:#ffeaea;}
.callout.callout-success{
border-color:var(--c-emerald); background:#eafff3;}
.callout strong{
font-family:var(--font-pixel); font-size:11px; color:var(--c-grass-dark);}
.link-list{
list-style:none; padding:0; margin:0;}
.link-list li{
padding:var(--sp-2) 0;
border-bottom:1px dashed var(--c-stone-light);
display:flex;
justify-content:space-between;
align-items:center;
font-family:var(--font-cn);
font-size:14px;}
.link-list li:last-child{
border-bottom:0;}
.link-list li a{
color:var(--c-grass-dark);}
.link-list li .meta{
font-size:12px; color:var(--c-stone-dark); font-family:var(--font-pixel);}
.pane-head{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:var(--sp-5);
padding-left:var(--sp-3);
border-left:4px solid var(--c-grass);}
.divider-gold{
display:block;
width:64px;
height:4px;
background:var(--c-gold);
border:1px solid var(--c-black);
margin:var(--sp-3) 0;}
.v48-toast-container{
position:fixed;
top:80px;
right:20px;
z-index:99999;
display:flex;
flex-direction:column;
gap:10px;
pointer-events:none;
max-width:90vw;}
.v48-toast{
position:relative;
display:flex;
align-items:center;
gap:12px;
min-width:240px;
max-width:380px;
padding:14px 16px;
background:var(--c-surface);
color:var(--c-text);
border:3px solid var(--c-border);
box-shadow:5px 5px 0 var(--c-shadow);
font-family:var(--font-cn);
font-size:14px;
line-height:1.4;
pointer-events:auto;
overflow:hidden;
transform:translateX(120%);
opacity:0;
transition:transform 0.4s var(--ease-spring),opacity 0.3s var(--ease-out),box-shadow 0.3s var(--ease-out);
will-change:transform,opacity;}
.v48-toast-in{
transform:translateX(0);
opacity:1;}
.v48-toast-out{
transform:translateX(120%);
opacity:0;}
.v48-toast:hover{
box-shadow:7px 7px 0 var(--c-shadow);}
.v48-toast-icon{
flex:0 0 28px;
width:28px; height:28px;
display:flex; align-items:center; justify-content:center;
border-radius:50%;
font-weight:bold;
font-size:16px;
color:#fff;}
.v48-toast-success .v48-toast-icon{
background:var(--c-success);}
.v48-toast-error .v48-toast-icon{
background:var(--c-danger);}
.v48-toast-info .v48-toast-icon{
background:var(--c-info);}
.v48-toast-body{
flex:1; min-width:0; word-break:break-word;}
.v48-toast-bar{
position:absolute;
left:0; bottom:0;
height:3px;
width:100%;
background:var(--c-border);
opacity:0.3;}
.v48-toast-bar-fill{
height:100%;
width:100%;
background:currentColor;
transform-origin:left center;
animation:v48-toast-shrink 3s linear forwards;}
.v48-toast-success .v48-toast-bar-fill{
color:var(--c-success);}
.v48-toast-error .v48-toast-bar-fill{
color:var(--c-danger);}
.v48-toast-info .v48-toast-bar-fill{
color:var(--c-info);}
@keyframes v48-toast-shrink{
from{
transform:scaleX(1);}
to{
transform:scaleX(0);}
}
.circuit-map-img{
max-width:100%; height:auto; display:block;}
.circuit-trial-price{
font-size:18px; font-weight:700; color:var(--c-grass-dark); margin:12px 0; padding:8px 14px; background:var(--c-bg-2); border:2px solid var(--c-gold); display:inline-block; font-family:var(--font-pixel);}
.data-card-double{
grid-column:span 2;}
.data-card-double .data-num{
font-size:24px;}
.data-card-double .data-num-double{
display:flex; flex-direction:column; gap:4px;}
.flow-note{
font-size:12px; color:var(--c-text-muted); margin-top:16px; padding:12px; background:var(--c-bg-2); border:2px dashed var(--c-stone);}
.notice-empty{
text-align:center; padding:32px 16px;}
.notice-empty h3{
color:var(--c-text-muted); margin:12px 0 8px;}
.notice-empty p{
color:var(--c-text-muted); font-size:13px;}
[data-theme="dark"] .circuit-trial-price{
background:var(--c-surface-2); border-color:var(--c-gold);}
.footer-cols-2{
grid-template-columns:1fr 1fr !important;}
.logo-mark{
display:inline-block; width:24px; height:24px; background:var(--c-grass); border:2px solid var(--c-black); margin-right:8px; vertical-align:middle;}
.modal-room{
max-width:720px;}
.gal-cat-btn{
font-size:10px; padding:6px 10px;}
.login-divider{
display:flex; align-items:center; gap:12px; margin:16px 0; color:var(--c-text-muted); font-family:var(--font-pixel); font-size:10px;}
.login-divider::before,.login-divider::after{
content:''; flex:1; height:2px; background:var(--c-stone); opacity:0.3;}
.mt-8{
margin-top:8px;}
.pane-refresh{
font-size:10px;}
[data-theme="dark"] .pane-refresh{
background:var(--c-surface) !important; color:var(--c-text) !important; border-color:var(--c-border) !important;}
.room-grid-home{
display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px;}
.scene-gallery{
display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px;}
.page-back{
display:inline-block; margin:16px 0; color:var(--c-grass-dark); text-decoration:none; font-family:var(--font-pixel); font-size:11px; padding:6px 12px; border:2px solid var(--c-black); background:var(--c-paper);}
.page-back:hover{
background:var(--c-gold);}
.top-icon{
margin-right:6px;}
.site-footer{
background:var(--c-paper); border-top:4px solid var(--c-black); padding:32px 20px 16px; margin-top:48px;}
[data-theme="dark"] .page-back{
background:var(--c-surface); color:var(--c-grass-light);}
[data-theme="dark"] .site-footer{
background:var(--c-surface); border-top-color:var(--c-border);}
.nav{
display:flex; align-items:center; justify-content:space-between; background:var(--c-paper); border-bottom:4px solid var(--c-black); padding:0 20px; position:sticky; top:0; z-index:20;}