:root{--bg: rgba(18, 23, 34, .9);--line: rgba(255, 255, 255, .12);--text: #e9e4d8;--dim: #9aa3b5;--accent: #f2c14e;--good: #7fd68a;--bad: #ff7a6b}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#0d1320;color:var(--text);font:13px/1.4 system-ui,Segoe UI,sans-serif;overflow:hidden}.app{position:relative;height:100%}.view{position:absolute;top:0;right:0;bottom:0;left:0}.view canvas{display:block}.panel{position:absolute;background:var(--bg);border:1px solid var(--line);border-radius:8px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}h1{margin:0 0 8px;font-size:26px}h2{margin:0;font-size:17px}h3{margin:8px 0 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}p{margin:6px 0}small{display:block;color:var(--dim);font-size:11.5px}.dim{color:var(--dim)}.warn{color:var(--accent)}.bad{color:var(--bad)}button{font:inherit;color:var(--text);background:#ffffff14;border:1px solid var(--line);border-radius:6px;padding:4px 9px;cursor:pointer}button:hover:not(:disabled){background:#ffffff29}button:disabled{opacity:.45;cursor:not-allowed}button.on{background:var(--accent);color:#1a1408;border-color:var(--accent)}button.primary{background:var(--accent);color:#1a1408;border-color:var(--accent);font-weight:600}button.danger{border-color:#ff7a6b99;color:var(--bad)}button.x{border:none;background:none;font-size:18px;padding:0 6px}input[type=number]{width:62px;font:inherit;color:var(--text);background:#00000059;border:1px solid var(--line);border-radius:5px;padding:3px 5px}.row{display:flex;gap:6px;align-items:center;margin-top:6px}.row.between{justify-content:space-between;margin-top:0}.row.wrap{flex-wrap:wrap}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:#888}.dot.food{background:#e0a23b}.dot.wood{background:#9a6a3c}.dot.stone{background:#a9a9a9}.dot.hides{background:#c9a877}.dot.copper{background:#d9792b}.dot.iron{background:#6f86a6}.topbar{top:8px;left:8px;right:8px;display:flex;justify-content:space-between;gap:10px;padding:6px 10px;flex-wrap:wrap}.resources{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.res{display:flex;align-items:baseline;gap:4px;white-space:nowrap}.res b{font-size:15px}.res .lbl{color:var(--dim);font-size:11.5px}.res.low b{color:var(--bad)}.up{color:var(--good);font-size:11.5px}.down{color:var(--bad);font-size:11.5px}.clock{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.season{font-weight:700}.season.s3{color:#bfe3ff}.season.s1{color:#ffd76a}.season.s0{color:#9be08a}.season.s2{color:#f0a15a}.speeds{display:flex;gap:2px}.build{top:62px;left:8px;width:190px;padding:6px 8px 8px;max-height:calc(100% - 150px);overflow-y:auto}.item{display:block;width:100%;text-align:left;margin-bottom:3px;padding:4px 8px}.item small{color:var(--dim)}.item.on small{color:#4a3a10}.item small.bad{color:var(--bad)}.side{top:62px;right:8px;width:310px;bottom:8px;display:flex;flex-direction:column}.tabs{display:flex;gap:4px;padding:6px;border-bottom:1px solid var(--line)}.tabs button{flex:1}.scroll{overflow-y:auto;padding:8px;flex:1}.tech{border:1px solid var(--line);border-radius:6px;padding:6px 8px;margin-bottom:6px}.tech.known{opacity:.55}.tech.now{border-color:var(--accent)}.tag{font-size:11px;color:var(--dim)}.tag.rel.neg{color:var(--bad)}.tag.rel.pos{color:var(--good)}.tally{color:#c9d4ea;margin-top:3px}.link{cursor:pointer}.link:hover{text-decoration:underline}.progress{position:relative;height:20px;background:#0006;border-radius:5px;overflow:hidden;margin:6px 0 8px}.progress div{position:absolute;inset:0 auto 0 0;background:#b9892a}.progress span{position:relative;padding-left:8px;line-height:20px;font-size:12px}.msg{padding:2px 0}.msg.good{color:var(--good)}.msg.bad{color:var(--bad)}.msg.talk{color:#a9c8ff}.feed{position:absolute;left:208px;bottom:10px;max-width:420px;padding:6px 10px;background:#0d1320b3;border-radius:8px;pointer-events:none}.feed:empty{display:none}.hint{position:absolute;left:50%;bottom:96px;transform:translate(-50%);background:var(--bg);border:1px solid var(--accent);border-radius:8px;padding:6px 14px;pointer-events:none}.paused{position:absolute;left:50%;top:62px;transform:translate(-50%);background:#f2c14eeb;color:#1a1408;padding:4px 14px;border-radius:6px;font-weight:600;pointer-events:none}.bcard{left:208px;top:62px;width:250px;padding:8px 10px}.inbox{position:absolute;left:50%;top:96px;transform:translate(-50%);display:flex;flex-direction:column;gap:6px;width:340px}.letter{position:static;padding:8px 10px;border-color:#a9c8ff}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#06090fb8;display:flex;align-items:center;justify-content:center;z-index:10}.card{background:#171d2b;border:1px solid var(--line);border-radius:10px;padding:16px 18px;max-width:92vw;max-height:92vh;overflow:auto}.card.big{width:480px}.card.trade{width:500px}table{width:100%;border-collapse:collapse;margin:8px 0}th{text-align:left;color:var(--dim);font-weight:500;font-size:11.5px}td{padding:3px 4px 3px 0}.reply{margin-top:10px;padding:8px 10px;border-radius:6px;background:#ffffff0f;border-left:3px solid var(--dim)}.reply.accept{border-left-color:var(--good)}.reply.refuse{border-left-color:var(--bad)}.reply.counter{border-left-color:var(--accent)}@media (max-width: 900px){.side{width:250px}.build{width:150px}.feed,.bcard{left:166px}}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.date{display:flex;gap:6px;align-items:baseline;padding:2px 8px;border:1px solid var(--line);border-radius:6px;white-space:nowrap}.date b{font-size:14px}.mono{font-variant-numeric:tabular-nums}
