:root{color-scheme:dark;--bg:#0c141c;--panel:#15222d;--line:#2b3c49;--text:#ebf1f1;--muted:#9fb1bb;--accent:#dfbd7c;--green:#83c8b0}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.65 "Microsoft YaHei",system-ui,sans-serif}header{height:84px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{display:flex;gap:14px;align-items:center;font-size:18px;letter-spacing:3px}.brand small{display:block;font-size:11px;letter-spacing:1px;color:var(--muted)}.mark{font-size:36px;color:var(--accent)}.header-right{display:flex;gap:14px;align-items:center;color:var(--muted)}
button,input,textarea,select{font:inherit}input,textarea,select{width:100%;background:#0e1a24;color:var(--text);border:1px solid var(--line);border-radius:7px;padding:10px 12px;outline:none}input[type=checkbox]{width:auto;vertical-align:middle;margin-right:6px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical}button{cursor:pointer;background:#233440;color:var(--text);border:1px solid #3b505f;border-radius:7px;padding:9px 14px}button:hover{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);border-color:var(--accent);color:#19232b;font-weight:600}.primary:hover{background:#f0d398;color:#19232b}label{display:block;color:var(--muted);font-size:12px;margin:8px 0}form button{margin-top:12px}
h1,h2,p{margin-top:0}h2{font-size:16px;font-weight:500}h1{font-family:Georgia,"Songti SC","SimSun",serif}.eyebrow{color:var(--accent);font-size:11px;letter-spacing:2px;margin-bottom:9px}.muted,.hint{color:var(--muted)}.hint{font-size:12px}.panel{padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.login{max-width:1100px;margin:90px auto;padding:0 30px;display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.login h1{font-size:56px;line-height:1.25;font-weight:400}.login .panel{padding:32px}.login button{width:100%}.login p{line-height:1.8}.room-bar{display:flex;justify-content:space-between;align-items:center;margin:26px 0}.room-bar select{min-width:260px}main{max-width:1500px;margin:auto;padding:0 4%}.table-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:22px}.stage-column>.panel{margin-top:22px}.stage{position:relative;height:510px;overflow:hidden;border:1px solid #395365;border-radius:14px;background:radial-gradient(ellipse at 70% 20%,#355774 0%,#1c3249 42%,#121f31 100%)}
.stage canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2}.stage-caption{position:absolute;left:26px;right:26px;bottom:16px;z-index:3;pointer-events:none;text-shadow:0 2px 8px #000;background:linear-gradient(transparent,#0b1627ed);padding:24px 14px 4px;border-radius:10px}.stage-caption h1{font-size:27px;line-height:1.2;margin-bottom:12px}.stage-caption p:last-child{font-size:12px;line-height:1.6;color:#d4e1e8;max-width:660px}.scene-decoration{position:absolute;inset:0;opacity:.65}.moon{position:absolute;width:68px;height:68px;background:#dcd6ba;border-radius:50%;top:35px;left:70%;box-shadow:0 0 70px #e1debb33}.lighthouse{position:absolute;right:5%;bottom:145px;height:150px;width:35px;background:#aab5b855;clip-path:polygon(22% 15%,0 15%,0 0,100% 0,100% 15%,78% 15%,95% 100%,5% 100%)}.shore{position:absolute;inset:64% 0 0;background:repeating-linear-gradient(172deg,#39617633 0 2px,transparent 3px 30px)}
[data-scene=workshop]{background:radial-gradient(ellipse at 50% 30%,#69613c,#332f26 60%,#151c22)}[data-scene=workshop] .moon{background:#e5b976;box-shadow:0 0 120px #d8ae7d66;border-radius:6px;width:38px;height:60px;left:48%}[data-scene=workshop] .shore{background:repeating-linear-gradient(0deg,#72593b55 0 2px,#372c2055 3px 25px)}[data-scene=tower]{background:radial-gradient(ellipse at 50% 10%,#52666f,#202b36 55%,#101a26)}.render-status{position:absolute;left:16px;top:14px;color:#bccfd9;font-size:11px;z-index:4;background:#10202dbb;padding:4px 9px;border-radius:20px}.characters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.character{background:#142531;border:1px solid var(--line);border-radius:10px;padding:14px}.character strong{font-size:15px;font-weight:500}.badge{font-size:10px;color:var(--muted);float:right}.online{color:var(--green)}.character p{font-size:12px;color:var(--muted);margin:6px 0 0}.section-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:15px}.section-title h2{margin:0}.section-title span{font-size:10px;color:var(--muted)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:11px;color:var(--green);background:#28483f55;padding:4px 8px;border-radius:4px}.divider{border-top:1px solid var(--line);margin:20px 0}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.compact{grid-template-columns:1fr 1fr}.button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}#creation,#keys{margin-bottom:24px}#keys input{font-family:monospace;color:var(--accent)}.key-row{margin-bottom:12px}.history{margin-top:22px}.proposals,.history{max-height:750px;overflow:auto}.task{border-top:1px solid var(--line);padding:17px 0}.task:first-child{border:0}.task p{font-size:12px;margin-bottom:8px;white-space:pre-wrap;overflow-wrap:anywhere}.task .task-status{font-size:11px;color:var(--accent)}.task textarea{min-height:65px}.task select{font-size:12px}.event{padding:14px 0;border-top:1px solid var(--line)}.event:first-child{border:0}.event time{font-size:10px;color:var(--muted)}.event h3{font-size:13px;font-weight:500;margin:4px 0}.event p{font-size:11px;white-space:pre-wrap;color:var(--muted);margin:0;overflow-wrap:anywhere}footer{font-size:11px;color:#718995;text-align:center;padding:28px}#notice{position:fixed;top:8px;left:30%;right:30%;z-index:99;background:#203d39;color:#c8f0dd;padding:14px 20px;border:1px solid #57816c;border-radius:8px;box-shadow:0 8px 40px #0008}#notice.error{background:#5c302d;color:#ffd9cd;border-color:#be8071}[hidden]{display:none!important}#dice-result{font-size:12px;color:var(--accent);padding-left:12px}.world-info p{font-size:12px}
@media(max-width:1050px){.table-grid{grid-template-columns:1fr}.stage{height:490px}.proposals,.history{max-height:none}.login{gap:30px}.login h1{font-size:44px}.form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){header{height:70px}.brand{font-size:14px}.login{grid-template-columns:1fr;margin:35px auto}.login h1{font-size:36px}.stage{height:430px}.stage-caption{left:8px;right:8px}.room-bar select{min-width:170px}.form-grid{grid-template-columns:1fr}.panel{padding:17px}#notice{left:5%;right:5%}}
