:root{--bg:#101110;--panel:#191a18;--line:#30312c;--muted:#93958b;--text:#efeee7;--gold:#dfc48a;--accent:#dfc48a;--glow:#dfc48a35;font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text);background:var(--bg);font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}button{border:1px solid var(--line);color:var(--text);background:#23251f;padding:11px 18px;border-radius:8px;transition:.2s}button:hover{border-color:var(--accent);background:#303129}button.primary{background:var(--accent);color:#211c12;border-color:var(--accent);font-weight:650}button.ghost{background:transparent}button.small{padding:7px 12px;font-size:12px}input,select,textarea{width:100%;background:#121411;color:var(--text);border:1px solid #383b32;padding:12px;border-radius:7px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}input[type=range]{accent-color:var(--accent)}label{display:block;color:#b7baaf;font-size:12px;margin-bottom:17px}label input,label select,label textarea{margin-top:9px}h1,h2,h3,p{margin:0}h1{font-size:34px;letter-spacing:-1px;font-weight:550}h2{font-size:21px;font-weight:550}h3{font-size:15px;font-weight:550}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--accent);font-weight:600}.logo{display:flex;gap:11px;align-items:center;letter-spacing:3px;font-weight:650}.logo-mark{font-size:30px;color:var(--accent)}.logo small{display:block;font-size:8px;letter-spacing:4px;color:var(--muted);margin-top:4px}.pill{border:1px solid #3d4936;color:#b3c59a;padding:5px 9px;border-radius:20px;font-size:10px;display:inline-block}.pill.pending{color:#d1b777;border-color:#615131}.top{height:90px;max-width:1400px;margin:auto;padding:0 52px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.top nav{display:flex;gap:34px;color:#aaa99e;font-size:12px}.top nav a.active{color:var(--accent)}.top .actions{display:flex;align-items:center;gap:12px}.front{background:radial-gradient(ellipse at 50% 36%,#49412a35,transparent 50%),#101110;min-height:100vh}.hero{max-width:1180px;margin:auto;padding:39px 32px 54px}.intro{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.intro h1{font-size:43px;margin:14px 0 12px;font-family:"Songti SC",serif;letter-spacing:2px}.intro p{font-size:12px;color:var(--muted)}.intro .edition{text-align:right;color:#aaa797;line-height:2;font-size:11px}.stage{border:1px solid #61553a;border-radius:20px;padding:16px;background:linear-gradient(145deg,#353023,#181916 30%,#28261e);box-shadow:0 30px 80px #0006,inset 0 1px #e4ca8e22;position:relative}.stage::before{content:'';position:absolute;inset:7px;border:1px dashed #6a5c3a77;border-radius:15px;pointer-events:none}.prize-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:112px 260px 112px;gap:10px;position:relative}.prize{background:linear-gradient(135deg,#2a2c24,#1b1d18);border:1px solid #414232;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:.12s}.prize::after{content:'';position:absolute;width:70px;height:70px;border:1px solid #b8a16b12;border-radius:50%;right:-25px;top:-20px}.prize.lit{background:#564a2d;border-color:#efd398;box-shadow:inset 0 0 28px #ddbc5030,0 0 20px #ddbc5030}.prize-symbol{font-size:37px;color:#ead4a1;font-family:Georgia,serif;text-shadow:0 3px 0 #6d5e3c,0 0 20px #b8954933;height:50px;font-weight:bold}.prize-name{font-size:12px;color:#cccabc}.prize-tag{position:absolute;left:10px;top:9px;font-size:8px;letter-spacing:1px;color:#a49b81}.machine{grid-column:1/5;grid-row:2;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse,#8e744722,transparent 70%);position:relative}.machine-label{letter-spacing:6px;font-size:10px;color:#a69c81;margin-bottom:13px}.reels{display:flex;gap:8px;border:1px solid #776745;border-radius:14px;padding:10px;background:linear-gradient(#484133,#141611);box-shadow:0 10px 25px #0007,inset 0 1px #bda56b}.reel{width:86px;height:83px;display:flex;align-items:center;justify-content:center;font:bold 55px Georgia;color:#7d6230;background:linear-gradient(#aaa793,#f5f0dc 30%,#e6dfc4 60%,#a19b7f);border-radius:7px;box-shadow:inset 0 9px 15px #0005,inset 0 -6px 15px #0003}.rolling .reel{animation:shake .12s infinite}.spin-btn{width:284px;border-radius:7px;margin-top:18px;padding:13px;font-weight:700;background:linear-gradient(100deg,#c6a666,#eed8a3,#c7a96a);border:1px solid #f1d9a0;color:#30281a;box-shadow:0 4px 0 #68522a,0 8px 25px #c5a15815;letter-spacing:4px}.machine-foot{margin-top:13px;font-size:10px;color:#aaa38d}.stage-caption{display:flex;justify-content:space-between;padding:16px 4px 1px;font-size:10px;color:#aaa58e}.front-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:24px}.card{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:24px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.card-head small{color:var(--muted);font-size:11px}.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.rule-index{font-size:10px;color:var(--accent);margin-bottom:13px}.rules h3{font-size:12px;margin-bottom:8px}.rules p{font-size:11px;color:var(--muted);line-height:1.8}.empty{padding:30px 12px;text-align:center;color:var(--muted);font-size:12px}.history-row{padding:12px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px}.footer{text-align:center;color:#73776d;font-size:9px;letter-spacing:2px;padding:25px}.demo-bar{background:#302b1c;color:#c9b47d;text-align:center;font-size:11px;padding:8px}.demo-bar button{padding:3px 10px;font-size:10px;margin-left:10px;background:#4a3f25;border-color:#5f5131}.admin{display:grid;grid-template-columns:224px 1fr;min-height:100vh;background:#111310}.sidebar{border-right:1px solid var(--line);background:#171a15;padding:30px 18px;position:fixed;top:0;bottom:0;width:224px;display:flex;flex-direction:column}.sidebar .logo{padding:0 10px 32px;font-size:16px}.side-label{font-size:9px;letter-spacing:2px;color:#70796b;margin:22px 15px 10px}.nav-item{display:flex;align-items:center;gap:13px;padding:13px 15px;color:#9da594;border-radius:7px;margin-bottom:5px;font-size:12px;cursor:pointer;background:none;border-color:transparent;text-align:left}.nav-item.active{background:#30392a;color:#e2ce9d;border-color:#48503b}.nav-icon{font-size:18px;width:22px}.sidebar-bottom{margin-top:auto;padding:20px 10px 0;border-top:1px solid var(--line);font-size:11px;color:#9ca18f}.sidebar-bottom .avatar{background:#3c4232;border-radius:7px;padding:10px;color:#e8d1a0;display:inline-block;margin-right:9px}.workspace{grid-column:2;min-width:0}.admin-top{height:76px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:11px;color:#a3ab99}.admin-top select{width:210px;padding:8px;font-size:11px}.admin-content{max-width:1480px;margin:auto;padding:36px 38px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.page-heading h1{font-size:28px;margin-bottom:9px}.page-heading p{font-size:12px;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{padding:23px;border-radius:10px;border:1px solid var(--line);background:#1a1e17}.stat-top{display:flex;justify-content:space-between;color:#9ba68f;font-size:11px}.stat-icon{color:var(--accent)}.stat-value{font-size:31px;font-weight:500;margin:17px 0 12px;letter-spacing:-1px}.stat-foot{font-size:10px;color:#89957c}.dash-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;margin-bottom:22px}.chart{height:190px;display:flex;gap:15px;align-items:end;padding:20px 12px;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent 43px,#ffffff07 44px)}.chart-col{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:10px}.bar{width:70%;min-height:3px;background:linear-gradient(#c4b17e,#626c49);border-radius:4px 4px 0 0}.chart-col small{font-size:9px;color:var(--muted)}.quick{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick button{text-align:left;padding:20px 15px;background:#21261c}.quick span{font-size:23px;display:block;color:var(--accent);margin-bottom:15px}.quick small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:12px}th{font-size:10px;font-weight:400;color:#8f9a83;background:#20251b;padding:13px 15px}td{padding:17px 15px;border-bottom:1px solid #2c3325;color:#c4cbb9}td input{min-width:70px;max-width:180px;padding:8px}td:first-child{color:#e1e6d7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-grid .full{grid-column:1/-1}.row{display:flex;gap:12px;align-items:center}.row>*{flex:1}.setting{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.setting p{font-size:11px;color:var(--muted);margin-top:7px}.setting input[type=checkbox]{flex:none}.swatches{display:flex;gap:12px;margin-top:15px}.swatch{padding:15px 22px;border-radius:8px}.swatch.selected{outline:2px solid var(--accent)}.help{font-size:12px;color:var(--muted);line-height:1.9;background:#20251b;padding:16px;border-radius:8px;margin:15px 0}.domain-token{font:11px monospace;color:#dac79a;overflow-wrap:anywhere;white-space:normal}.domain-box{padding:20px;border:1px solid var(--line);border-radius:8px;margin-bottom:15px}.domain-box h3{margin-bottom:13px}.login-shell{display:grid;place-items:center;min-height:100vh;background:radial-gradient(ellipse at center,#45412b66,transparent 60%)}.login-card{width:420px;max-width:90vw}.login-card h1{font-size:26px;margin:28px 0 12px}.login-card p{margin-bottom:25px;line-height:1.8}.login-card button.primary{width:100%}.mobile-top{display:none}dialog{border:1px solid #6e6040;border-radius:18px;color:var(--text);background:#1d2118;width:440px;max-width:90vw;padding:32px;box-shadow:0 30px 100px #0009}dialog::backdrop{background:#000a;backdrop-filter:blur(6px)}dialog h2{margin-bottom:14px}dialog p{line-height:1.8;color:var(--muted);font-size:12px;margin-bottom:20px}.win-symbol{text-align:center;color:var(--accent);font:80px Georgia;margin-bottom:20px}.win-title{text-align:center;margin-bottom:22px}.modal-close{float:right;background:transparent;border:0;padding:0;font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(100px);background:#e5d5ac;color:#292518;padding:14px 25px;border-radius:9px;z-index:100;opacity:0;transition:.3s;max-width:90vw}#toast.show{transform:translateX(-50%);opacity:1}.subtle{font-size:10px;color:#8b947e}.checkline{display:flex;align-items:center;gap:10px}.file-label{padding:15px;background:#20251b;border:1px dashed #4c563e;border-radius:8px;margin-top:10px}.file-label input{font-size:11px}.theme-violet{--accent:#c9acf0;--glow:#c9acf035}.theme-ice{--accent:#9fd5dd;--glow:#9fd5dd35}@keyframes shake{50%{transform:translateY(3px);filter:blur(1px)}}@media(min-width:1500px){.hero{padding-top:50px}.prize-grid{grid-template-rows:125px 290px 125px}}@media(max-width:1000px){.top{padding:0 25px}.top nav{gap:18px}.sidebar{width:185px;padding:25px 12px}.admin{grid-template-columns:185px 1fr}.admin-content{padding:26px 22px}.stats{grid-template-columns:1fr 1fr}.dash-grid{grid-template-columns:1fr}.front-bottom{grid-template-columns:1fr}.admin-top{padding:0 22px}.form-grid{grid-template-columns:1fr}}@media(max-width:650px){.top{height:72px;padding:0 18px}.top nav{display:none}.top .logo{font-size:14px}.top .actions button{font-size:11px;padding:8px}.hero{padding:28px 14px}.intro h1{font-size:30px}.intro .edition{display:none}.intro{margin-bottom:22px}.prize-grid{gap:6px;grid-template-rows:94px 235px 94px}.stage{padding:11px}.prize-symbol{font-size:29px;height:40px}.prize-name{font-size:10px}.prize-tag{font-size:6px;left:6px;top:6px}.reel{width:68px;height:75px;font-size:46px}.spin-btn{width:235px}.stage-caption{font-size:8px}.card{padding:20px}.rules{gap:14px}.admin{display:block}.sidebar{position:static;width:100%;height:auto;padding:15px 12px;display:flex;flex-direction:row;overflow-x:auto;gap:5px;align-items:center;border-bottom:1px solid var(--line)}.sidebar .logo,.side-label,.sidebar-bottom{display:none}.nav-item{flex:none;padding:9px;font-size:10px;margin:0}.nav-icon{font-size:14px;width:auto}.admin-top{height:65px;padding:0 15px}.admin-top select{width:150px}.admin-content{padding:24px 15px}.page-heading h1{font-size:24px}.page-heading{gap:14px}.page-heading p{font-size:10px;line-height:1.8}.page-heading button{font-size:10px;padding:10px}.stat{padding:16px}.stat-value{font-size:26px}.stats{gap:10px}.demo-bar{font-size:9px}.chart{gap:10px}.form-grid{gap:15px}.top .actions{gap:6px}.front-bottom{gap:14px}.eyebrow{font-size:8px}}
/* Tenant branding, v1.1 */
.brand-logo{width:58px;height:48px;object-fit:contain;flex-shrink:0}.logo{min-width:0}.logo>div{overflow-wrap:anywhere}.sidebar .brand-logo{width:38px;height:38px}.sidebar .logo{letter-spacing:1px;font-size:13px}.custom-rules{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95;color:#c8cbbc;font-size:13px;max-height:480px;overflow:auto}.prize-symbol{display:flex;align-items:center;justify-content:center;color:var(--accent)}.prize-image{height:52px;width:85px;object-fit:contain;filter:drop-shadow(0 3px 4px #0005)}.reel-image{width:74px;height:70px;object-fit:contain}.win-image{width:180px;height:160px;object-fit:contain}.image-editor h3{margin-bottom:14px}.image-preview{height:170px;background:repeating-conic-gradient(#262b24 0 25%,#1e221b 0 50%) 0/20px 20px;border:1px dashed #515b45;border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted);font-size:12px}.image-preview img{max-height:100%;max-width:100%;object-fit:contain}.image-editor .file-label{margin-bottom:8px}.image-editor input[type=file]{max-width:100%;font-size:11px}.save-strip{position:sticky;bottom:12px;margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#252b20f5;border:1px solid #566047;padding:16px 22px;border-radius:10px;backdrop-filter:blur(12px);z-index:2}.save-strip span{font-size:12px}td .image-editor{width:195px;white-space:normal}td .image-editor h3{font-size:11px}td .image-preview{height:75px}td .image-editor .file-label{padding:6px}td .image-editor input{padding:4px;min-width:0}td .image-editor .subtle{font-size:9px}input[type=color]{height:46px;padding:5px}.front .spin-btn{background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 75%,#342811),var(--accent),color-mix(in srgb,var(--accent) 75%,#342811));border-color:var(--accent)}.front .stage{border-color:color-mix(in srgb,var(--accent) 45%,#191916)}.front .prize.lit{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 30%,#191916);box-shadow:0 0 25px color-mix(in srgb,var(--accent) 25%,transparent)}.front .reel{color:color-mix(in srgb,var(--accent) 45%,#221b10)}
@media(max-width:650px){.brand-logo{width:38px;height:34px}.top .logo{max-width:52%;letter-spacing:1px}.top .logo small{letter-spacing:1px}.prize-image{width:52px;height:39px}.reel-image{width:55px;height:60px}.save-strip{flex-direction:column;align-items:stretch;padding:14px;gap:10px}.custom-rules{font-size:12px}}
