:root{--bg:#0e1116;--p:#171b22;--p2:#11161d;--line:#2c333d;--ink:#eef0ea;--mut:#9299a3;--acc:#d7ad63;--good:#6faa7b;--bad:#c96a68;--blue:#6b91b6;--vio:#9d7fbb}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:1500px;margin:auto;padding:14px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.brand{display:flex;align-items:baseline;gap:10px}.brand b{font:700 22px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.brand span,.mono{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--mut)}.top-right{display:flex;gap:8px;align-items:center}.chip{border:1px solid var(--line);background:var(--p2);border-radius:999px;padding:6px 9px;font:10px ui-monospace;color:var(--mut)}.back{color:var(--mut);font-size:12px;text-decoration:none}.grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px}.sidebar,.main{border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#171c24,#11161d)}.sidebar{padding:12px;height:calc(100dvh - 64px);position:sticky;top:12px;overflow:auto}.profile{padding:12px;border:1px solid var(--line);background:#10151c;border-radius:10px}.profile h2{margin:0;font-size:18px}.profile small{color:var(--mut)}.xpbar{height:7px;background:#080c10;border-radius:99px;overflow:hidden;margin-top:9px}.xpbar i{display:block;height:100%;background:var(--acc)}.side-title{font:9px ui-monospace;color:var(--mut);letter-spacing:.12em;margin:14px 4px 7px}.nav{display:grid;gap:4px}.nav button{border:1px solid transparent;background:transparent;color:#c7cbd1;text-align:left;border-radius:8px;padding:8px 9px;font-size:11px}.nav button:hover,.nav button.on{background:#202733;border-color:#343d49;color:white}.nav button span{display:inline-block;min-width:22px;color:var(--acc);font:10px ui-monospace}.main{min-height:calc(100dvh - 64px);padding:18px;overflow:hidden}.home-hero{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;border-bottom:1px solid var(--line);padding-bottom:17px}.eyebrow{font:9px ui-monospace;color:var(--acc);letter-spacing:.13em}.home-hero h1,.gamehead h1{font-size:clamp(28px,4vw,46px);margin:5px 0 6px;letter-spacing:-.04em}.home-hero p,.gamehead p{margin:0;color:var(--mut);font-size:12px;line-height:1.65}.daily{padding:12px;border:1px solid #51472f;background:#211c14;border-radius:10px;min-width:240px}.daily b{font-size:12px}.daily small{display:block;color:#b9aa88;margin-top:3px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}.card{border:1px solid var(--line);background:#11171f;border-radius:10px;padding:12px;text-align:left;color:var(--ink);min-height:128px;display:flex;flex-direction:column}.card:hover{border-color:#566172;transform:translateY(-1px)}.card .num{font:9px ui-monospace;color:var(--acc)}.card b{margin-top:8px;font-size:14px}.card p{font-size:10px;line-height:1.45;color:var(--mut);margin:5px 0}.card small{margin-top:auto;color:#a9b0ba}.gamehead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.gamehead .actions{display:flex;gap:6px}.btn{border:1px solid var(--line);background:#1c2430;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:11px}.btn:hover{border-color:#586676}.btn.primary{background:#2d2619;border-color:#6b5938;color:#f0d49a}.btn.good{border-color:#42624b;background:#17251b}.btn.bad{border-color:#673f40;background:#271919}.panel{border:1px solid var(--line);background:#10161d;border-radius:10px;padding:12px}.cols2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:7px}.stat{border:1px solid var(--line);border-radius:8px;background:#0d1319;padding:9px}.stat b{display:block;font:700 18px ui-monospace}.stat small{font:9px ui-monospace;color:var(--mut)}.row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:8px}.label{font:9px ui-monospace;color:var(--mut);letter-spacing:.09em}.notice{border-left:3px solid var(--acc);padding:9px 11px;background:#1c1a15;color:#cfc5b0;font-size:11px;line-height:1.55}.goodtxt{color:#8fc79a}.badtxt{color:#df8b87}.mut{color:var(--mut)}.log{max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#090e13;padding:8px;font:10px/1.55 ui-monospace;color:#aeb4bc}.log div+div{border-top:1px solid #181e26;padding-top:4px;margin-top:4px}input,select{border:1px solid var(--line);background:#0d131a;color:var(--ink);border-radius:7px;padding:8px;font-size:11px}input[type=range]{padding:0}.bar{height:8px;background:#080c11;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--blue)}table{width:100%;border-collapse:collapse;font-size:10px}th,td{text-align:left;padding:7px;border-bottom:1px solid var(--line)}th{color:var(--mut);font:9px ui-monospace}.terminal{background:#05090d;border:1px solid #26323a;border-radius:9px;padding:10px;min-height:380px;color:#9ed4a9;font:11px/1.6 ui-monospace;overflow:auto}.termline{white-space:pre-wrap}.termform{display:flex;gap:6px;margin-top:7px}.termform input{flex:1;color:#9ed4a9;background:#05090d}.board8{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;max-width:560px}.cell{aspect-ratio:1;border:1px solid #2c3440;background:#111821;border-radius:5px;display:grid;place-items:center;font:10px ui-monospace;color:#8e98a4}.cell.player{background:#28394a;color:#b9dcff}.cell.enemy{background:#3a2325;color:#ffc0ba}.cell.goal{box-shadow:inset 0 0 0 2px #8a7445}.cell.wall{background:#242a30}.cell.sel{outline:2px solid var(--acc)}.market-up{color:#77be86}.market-down{color:#d97c78}.cards-hand{display:flex;gap:7px;flex-wrap:wrap}.playcard{width:130px;min-height:155px;border:1px solid var(--line);border-radius:9px;background:#151d27;color:var(--ink);padding:9px;text-align:left}.playcard b{display:block}.playcard small{display:block;color:var(--mut);margin-top:6px}.playcard .cost{float:right;color:var(--acc)}.machine{border:1px solid var(--line);border-radius:9px;padding:10px;background:#0c1218}.achievement{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:8px 0;font-size:10px}.achievement.done b{color:var(--acc)}.modalback{position:fixed;inset:0;background:rgba(0,0,0,.65);display:grid;place-items:center;z-index:20;padding:16px}.modal{width:min(560px,100%);max-height:80dvh;overflow:auto;background:#171d25;border:1px solid #46515f;border-radius:12px;padding:16px}.modal h2{margin-top:0}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.shell{padding:7px}.top{margin-bottom:7px}.grid{display:block}.sidebar{display:none}.main{padding:11px;min-height:calc(100dvh - 51px)}.cards{grid-template-columns:1fr 1fr;gap:6px}.card{min-height:118px;padding:10px}.cols2,.cols3{grid-template-columns:1fr}.home-hero{grid-template-columns:1fr}.daily{min-width:0}.gamehead h1{font-size:28px}.gamehead{display:block}.gamehead .actions{margin-top:9px}.board8{width:100%}.playcard{width:calc(50% - 4px)}.top-right .chip:nth-child(2){display:none}}@media(max-width:430px){.cards{grid-template-columns:1fr}.card{min-height:105px}.brand b{font-size:18px}.playcard{width:100%}}
