:root{--accent:#65f3b5;--ink:#f7fbff;--muted:#aebbd0;--glass:#07111dcc;--line:#ffffff24;color-scheme:dark}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#02060d;color:var(--ink);font-family:Inter,system-ui,sans-serif}button,a{font:inherit}.world-app,#world-canvas{position:fixed;inset:0;width:100%;height:100%}#world-canvas{touch-action:none;outline:none}.game-topbar{position:fixed;z-index:20;left:18px;right:18px;top:16px;display:flex;align-items:center;gap:18px;padding:10px 12px;border:1px solid var(--line);border-radius:17px;background:var(--glass);backdrop-filter:blur(18px)}.game-brand{display:flex;align-items:center;gap:9px;padding-right:16px;border-right:1px solid var(--line);color:#fff;text-decoration:none}.game-brand img{width:38px;height:38px;border-radius:10px}.game-brand span,.world-identity,.world-clock{display:grid}.game-brand b{font-size:13px;letter-spacing:.1em}.game-brand small,.world-identity small,.world-clock small{font:8px ui-monospace;color:var(--muted);letter-spacing:.12em}.world-identity{position:relative;padding-left:14px;min-width:170px}.world-identity .live-dot{position:absolute;left:0;top:5px}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}.world-clock{margin-left:auto;text-align:right}.top-action{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#ffffff08;color:#fff;text-decoration:none;cursor:pointer}.buddy-link{color:var(--accent)}.mission-board{position:fixed;z-index:15;left:36px;top:104px;width:min(390px,calc(100vw - 72px));padding:25px;border:1px solid var(--line);border-radius:22px;background:#061222ef;box-shadow:0 25px 80px #0009;backdrop-filter:blur(18px);transition:.35s}.mission-board.hidden{opacity:0;transform:translateX(-30px);pointer-events:none}.mission-board>small,.property-card>small,.region-drawer header small{font:9px ui-monospace;color:var(--accent);letter-spacing:.16em}.mission-board h1{margin:9px 0 8px;font-size:clamp(27px,3vw,43px);line-height:1}.mission-board>p{margin:0 0 22px;color:var(--muted);font-size:13px}.mission-row{display:flex;gap:13px;padding:11px 0;border-top:1px solid var(--line)}.mission-row i{color:#62dbff;font:10px ui-monospace;font-style:normal}.mission-row span{display:grid}.mission-row b{font-size:12px}.mission-row small{color:var(--muted);font-size:10px}.mission-board button{width:100%;margin-top:14px;padding:12px;border:0;border-radius:12px;background:linear-gradient(100deg,#44d49e,#37a8ff);color:#02100c;font-weight:800}.region-drawer{position:fixed;z-index:30;inset:0 0 0 auto;width:min(520px,100%);padding:24px;background:#030912fa;border-left:1px solid var(--line);transform:translateX(105%);transition:.35s}.region-drawer.open{transform:none}.region-drawer header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.region-drawer header span{display:grid}.region-drawer header b{font-size:25px}.region-drawer header button{border:1px solid var(--line);border-radius:50%;width:38px;height:38px;background:#ffffff08;color:#fff;font-size:25px}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:calc(100vh - 100px);overflow:auto}.region-grid button{position:relative;min-height:120px;padding:17px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(140deg,var(--region),#06101d 72%);color:#fff;text-align:left}.region-grid button:hover,.region-grid button.active{border-color:var(--accent)}.region-grid button span{display:grid}.region-grid button small{color:#d5e2ef}.region-grid button em{position:absolute;right:10px;bottom:4px;font:700 38px ui-monospace;color:#ffffff18}.city-feed{position:fixed;z-index:12;right:24px;top:94px;width:235px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--glass)}.city-feed header{display:flex;gap:8px;align-items:center;font-size:11px}.city-feed #city-feed{display:grid;gap:7px;margin-top:8px}.feed-item{padding:8px;border-radius:9px;background:#ffffff08;font-size:10px;color:var(--muted)}.feed-item b{color:#fff}.action-dock{position:fixed;z-index:20;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:5px;padding:7px;border:1px solid var(--line);border-radius:18px;background:var(--glass)}.action-dock button{display:grid;place-items:center;min-width:65px;padding:8px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--muted)}.action-dock i{font-style:normal;font-size:18px}.action-dock span{font-size:9px}.action-dock button.active,.action-dock button:hover{border-color:#65f3b55c;background:#65f3b516;color:#fff}.property-card{position:fixed;z-index:12;left:24px;bottom:23px;display:grid;width:230px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--glass)}.property-card b{font-size:12px;margin:4px 0}.property-card span{font-size:9px;color:var(--muted)}#mini-map{position:fixed;z-index:12;right:24px;bottom:24px;width:150px;height:150px;border:1px solid var(--line);border-radius:50%;background:#03101bdd;transition:.25s}#mini-map.hidden{opacity:0;transform:scale(.8)}.save-state,.world-toast{position:fixed;z-index:40;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#07111eee;font-size:10px;opacity:0;transition:.25s}.save-state{right:185px;bottom:25px;color:var(--accent)}.world-toast{left:50%;top:90px;transform:translate(-50%,-12px)}.save-state.show,.world-toast.show{opacity:1}.world-toast.show{transform:translate(-50%,0)}.touch-pad{display:none;position:fixed;z-index:21;left:16px;bottom:94px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px);gap:4px}.touch-pad button{border:1px solid var(--line);border-radius:12px;background:var(--glass);color:#fff}.touch-pad button:first-child{grid-column:2}.touch-pad button:nth-child(2){grid-row:2}.touch-pad button:nth-child(3){grid-row:2}.touch-pad button:last-child{grid-row:2}@media(max-width:800px){.game-topbar{inset:8px 8px auto;gap:8px}.game-brand small,.buddy-link,.world-clock,.city-feed{display:none}.game-brand{padding-right:8px}.world-identity{min-width:0}.top-action{padding:8px;font-size:10px}.mission-board{left:16px;top:74px}.property-card{display:none}.action-dock{bottom:8px;max-width:calc(100vw - 16px);overflow:auto}.action-dock button{min-width:51px}#mini-map{right:12px;bottom:78px;width:105px;height:105px}.touch-pad{display:grid}.region-grid{grid-template-columns:1fr}}

/* --- civilization registry drawer --------------------------------------- */
.registry-drawer{position:fixed;inset:auto 0 0 0;max-height:78vh;z-index:60;display:none;flex-direction:column;gap:9px;padding:14px 16px 18px;background:rgba(4,7,10,.97);border-top:1px solid rgba(185,255,104,.26);overflow-y:auto}
.registry-drawer.open{display:flex}
.registry-drawer>header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.registry-drawer>header small{display:block;font-size:9.5px;letter-spacing:.14em;color:rgba(255,255,255,.46)}
.registry-drawer>header b{font-size:15px;color:#fff}
#close-registry{width:30px;height:30px;border:0;border-radius:8px;background:rgba(255,255,255,.08);color:#fff;font-size:17px;cursor:pointer}
.reg-tabs{display:flex;gap:6px}
.reg-tabs button{padding:6px 13px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:transparent;color:rgba(255,255,255,.66);font:600 11.5px/1 system-ui,sans-serif;cursor:pointer}
.reg-tabs button.active{border-color:#b9ff68;color:#b9ff68;background:rgba(185,255,104,.12)}
.reg-note{margin:0;font-size:11px;line-height:1.55;color:rgba(255,255,255,.56)}
.reg-note b{color:rgba(255,255,255,.84)}
#reg-search{padding:8px 11px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(8,11,9,.7);color:#fff;font:400 12.5px/1.3 system-ui,sans-serif}
#reg-search:focus-visible{outline:none;border-color:#b9ff68}
.reg-count{margin:0;font-size:10.5px;letter-spacing:.05em;color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums}
.reg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:8px}
.reg-card{display:flex;flex-direction:column;gap:4px;padding:10px 11px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:rgba(10,14,12,.7);border-left:3px solid var(--reg,#b9ff68)}
.reg-card header{display:flex;align-items:center;gap:8px}
.reg-card header span{display:grid;min-width:0}
.reg-card header b{font-size:12.5px;color:#fff}
.reg-card header small{font-size:10.5px;color:rgba(255,255,255,.46)}
.reg-badge{display:grid;place-items:center;width:29px;height:29px;flex:0 0 auto;border-radius:9px;font:600 10.5px/1 system-ui,sans-serif;font-style:normal;color:#050a06;background:var(--reg,#b9ff68)}
.reg-role{margin:0;font-size:11px;font-weight:600;color:var(--reg,#b9ff68)}
.reg-desc{margin:0;font-size:11px;line-height:1.45;color:rgba(255,255,255,.6)}
.reg-card footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:3px;padding-top:6px;border-top:1px solid rgba(255,255,255,.07)}
.reg-card footer code{font-size:9.5px;color:rgba(255,255,255,.42);font-family:ui-monospace,monospace}
.reg-state{font-style:normal;font-size:9px;letter-spacing:.1em;padding:2px 5px;border-radius:5px;color:rgba(255,255,255,.62);background:rgba(255,255,255,.07)}
.reg-zero{font-size:9px;letter-spacing:.07em;color:rgba(255,255,255,.4)}
.reg-more{align-self:start;padding:7px 14px;border:1px solid rgba(185,255,104,.3);border-radius:9px;background:transparent;color:#b9ff68;font:600 11.5px/1 system-ui,sans-serif;cursor:pointer}
.reg-ev-block{display:flex;flex-direction:column;gap:7px;margin-top:4px}
.reg-ev{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:7px 9px;border-radius:9px;background:rgba(10,14,12,.7);border:1px solid rgba(255,255,255,.09)}
.reg-ev b{font-size:11.5px;color:#fff}
.reg-ev small{font-size:10.5px;color:rgba(255,255,255,.5)}
.reg-ev code{flex:1 1 100%;font-size:9.5px;color:rgba(185,255,104,.72);font-family:ui-monospace,monospace;word-break:break-all}
.krdid-claim{display:flex;flex-direction:column;gap:5px;padding:9px 10px;border-radius:11px;border:1px solid rgba(255,255,255,.1);background:rgba(10,14,12,.6)}
.krdid-claim label{font-size:9.5px;letter-spacing:.13em;color:rgba(255,255,255,.5)}
.krdid-row{display:flex;gap:6px}
#krdid-claim-input{flex:1;min-width:0;padding:7px 10px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:rgba(6,9,8,.8);color:#fff;font:400 12.5px/1.3 ui-monospace,monospace;text-transform:uppercase}
#krdid-claim-input:focus-visible{outline:none;border-color:#b9ff68}
#krdid-claim-btn{padding:7px 14px;border:1px solid rgba(185,255,104,.32);border-radius:9px;background:transparent;color:#b9ff68;font:600 11.5px/1 system-ui,sans-serif;cursor:pointer}
.krdid-result{margin:0;font-size:11px;line-height:1.5;color:rgba(255,255,255,.56);min-height:1.2em}
.krdid-result[data-state="refused"]{color:#f8a5a5}
.krdid-result[data-state="provisional"]{color:#b9ff68}
