:root{--bg:#000205;--panel:#02070b;--panel2:#030a10;--line:#122b3b;--text:#e9f5ff;--muted:#7f9caf;--blue:#43c8ff;--green:#57f0b5;--amber:#ffc857;--red:#ff6276}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 70% -10%,#07131d 0,transparent 32%),var(--bg);color:var(--text);font:14px/1.5 Inter,Arial,sans-serif}a{color:var(--blue);text-decoration:none}.admin-top{height:64px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#000306f2;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.admin-logo{color:white;font-weight:900;letter-spacing:.08em;font-size:17px}.admin-logo span{color:var(--blue);font-weight:500}.admin-top nav{display:flex;gap:20px}.admin-layout{display:grid;grid-template-columns:210px minmax(0,1fr);max-width:1600px;margin:auto}aside{position:sticky;top:64px;height:calc(100vh - 64px);padding:24px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px;background:#000306d9}aside a{padding:10px 12px;border-radius:6px;color:#9eb7c8;text-transform:uppercase;font-size:11px;letter-spacing:.08em}aside a:hover{background:#0d2030;color:white}main{padding:30px;min-width:0}section{scroll-margin-top:82px;margin:0 0 54px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:15px}.kicker{font:700 10px/1 monospace;color:var(--blue);letter-spacing:.2em}.section-head h1,.section-head h2{margin:6px 0 0;font-size:30px;letter-spacing:-.03em}.version{font-family:monospace;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(8,minmax(110px,1fr));gap:10px;margin-bottom:16px}.stat-grid div,.panel{border:1px solid var(--line);background:linear-gradient(180deg,#030a10,#010509);border-radius:5px;box-shadow:0 16px 50px #0004}.stat-grid div{padding:17px}.stat-grid strong{display:block;font-size:25px;color:white}.stat-grid span{display:block;margin-top:4px;color:var(--muted);font-size:11px;text-transform:uppercase}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.panel{padding:20px;margin-bottom:16px}.panel h2,.panel h3{margin-top:0}.bars{display:grid;gap:7px}.bar-row{display:grid;grid-template-columns:45px 1fr 35px;gap:8px;align-items:center;font-size:11px;color:var(--muted)}.bar-row i{display:block;height:8px;background:#0f2738;border-radius:5px;overflow:hidden}.bar-row i:after{content:"";display:block;width:var(--w);height:100%;background:linear-gradient(90deg,var(--blue),var(--green))}.bar-row b{text-align:right;color:white}.mini-list,.check-list{display:grid;gap:0}.mini-list div,.check-list div{display:flex;justify-content:space-between;border-bottom:1px solid #16304488;padding:9px 0}.good{color:var(--green)}.bad{color:var(--red)}.warn{color:var(--amber)}.hint,.muted{color:var(--muted);font-size:12px}.codebox{display:block;padding:12px;background:#03090e;border:1px solid var(--line);overflow:auto;color:#a9e9ff;border-radius:5px;white-space:nowrap}.inline-actions,.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-actions{margin-top:12px}button,.button-link{border:1px solid #226287;background:#0e79a7;color:white;padding:9px 13px;border-radius:5px;font-weight:800;font-size:11px;letter-spacing:.04em;cursor:pointer;text-transform:uppercase}.secondary{background:#030a10!important;border-color:#284255!important;color:#a8c2d4!important}.danger{color:var(--red)!important}.table-wrap{width:100%;overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{text-align:left;color:#6f91a8;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:8px}td{border-bottom:1px solid #142a3a;padding:10px 8px;vertical-align:top}td small{display:block;color:var(--muted);margin-top:3px}.pill{display:inline-block;padding:3px 7px;border:1px solid currentColor;border-radius:999px;font:700 9px monospace}.pill.on{color:var(--green)}.pill.off{color:#71899a}.pill.warn{color:var(--amber)}.linkbtn{border:0;background:none!important;padding:0;color:var(--blue);text-transform:none;font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;color:#91aabc;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.form-grid .wide{grid-column:1/-1}input,select,textarea{width:100%;padding:10px 11px;border:1px solid #244358;background:#01070c;color:white;border-radius:5px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue)}textarea{resize:vertical}.switch{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;text-transform:none!important;font-size:13px!important}.switch input{width:auto}.switches{display:flex;gap:20px;flex-wrap:wrap}.flash{padding:12px 15px;border-radius:6px;border:1px solid var(--green);background:#0b2a20;color:#bfffe5;margin-bottom:18px}.flash.error{border-color:var(--red);background:#301018;color:#ffd8de}.admin-login{min-height:100vh;display:grid;place-items:center}.login-card{width:min(420px,calc(100% - 30px));padding:34px;border:1px solid var(--line);background:#02080d;border-radius:5px;box-shadow:0 30px 100px #000}.login-card p{color:var(--muted);margin:5px 0 25px}.login-card form{display:grid;gap:14px}.login-card label{display:grid;gap:6px;color:var(--muted)}.login-card button{margin-top:6px}.login-card .muted{display:block;margin-top:18px}@media(max-width:1150px){.stat-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:800px){.admin-layout{display:block}aside{display:none}main{padding:18px}.two-col,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.stat-grid{grid-template-columns:repeat(2,1fr)}.admin-top{padding:0 16px}.section-head h1,.section-head h2{font-size:25px}}

/* 1.3.7: no-code asset upload manager. */
.asset-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.asset-admin-card,.asset-object-row{border:1px solid var(--line);background:#02080d;border-radius:6px;padding:14px}.asset-admin-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.asset-admin-head strong{display:block}.asset-admin-head small{display:block;color:var(--muted);margin-top:3px}.asset-fallback{width:54px;height:54px;display:grid;place-items:center;border:1px solid #29485c;background:#07131d;font-size:30px;flex:0 0 auto}.asset-fallback.small{width:36px;height:36px;font-size:20px}.asset-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px}.asset-slot{border:1px solid #173247;background:#01060a;padding:10px;min-width:0}.asset-slot>span{display:block;color:#86a9bf;font:700 9px/1 monospace;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.asset-slot>img,.asset-empty{width:100%;aspect-ratio:1;max-height:190px;object-fit:contain;border:1px solid #1e3d52;background:#050d13}.asset-empty{display:grid;place-items:center;font-size:42px;color:#dcefff}.asset-empty small{display:block;font:700 9px monospace;color:var(--muted);margin-top:-35%}.asset-upload-form{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px}.file-pick{display:flex;align-items:center;min-height:35px;border:1px solid #244358;background:#06111a;color:#9ec5db;padding:0 9px;font:800 9px monospace;cursor:pointer;overflow:hidden}.file-pick input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.asset-upload-form button{padding:7px 9px}.asset-slot form+form{margin-top:6px}.asset-slot .secondary{width:100%;font-size:9px}.asset-object-list{display:grid;gap:8px;margin-top:18px}.asset-object-row{padding:0;overflow:hidden}.asset-object-row summary{display:grid;grid-template-columns:auto minmax(160px,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;cursor:pointer;list-style:none}.asset-object-row summary::-webkit-details-marker{display:none}.asset-object-row summary small,.asset-object-row summary span:last-child{color:var(--muted)}.asset-object-row[open] summary{border-bottom:1px solid var(--line);background:#07131d}.asset-object-row>.asset-slots{padding:12px}.asset-object-row>.linkbtn{margin:0 12px 12px}.asset-new-object{margin-bottom:4px}.zodiac-assets{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){.asset-admin-grid,.zodiac-assets{grid-template-columns:1fr}.asset-slots{grid-template-columns:1fr 1fr}}@media(max-width:680px){.asset-slots{grid-template-columns:1fr}.asset-object-row summary{grid-template-columns:auto 1fr}.asset-object-row summary span:last-child{grid-column:2}}

/* 1.3.8 — real admin pages, active navigation, explicit frontend button. */
.admin-top nav{align-items:center}.admin-top .front-button{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid var(--blue);background:#0e79a7;color:#fff;border-radius:5px;font-weight:800;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.admin-top .front-button:hover{filter:brightness(1.08)}
.admin-menu a.active{background:#0e79a7;color:#fff;border-left:3px solid var(--blue);padding-left:9px}
.admin-layout main>section{margin-top:0}
@media(max-width:800px){.admin-layout{display:block}.admin-menu{position:sticky;top:64px;z-index:18;display:flex!important;height:auto;padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);overflow-x:auto;gap:6px;background:#000306f2;white-space:nowrap}.admin-menu a{flex:0 0 auto;padding:8px 10px}.admin-menu a.active{border-left:0;border-bottom:2px solid var(--blue);padding-left:10px}.admin-top nav{gap:8px}.admin-top .front-button{padding:0 9px;font-size:9px}}


/* 1.3.27 — visible sketch fallbacks, replacement comparison and upload specifications. */
.asset-slot-sketch{grid-column:1/-1}.asset-slot-sketch>.asset-spec{margin-top:9px}.asset-spec{display:block!important;margin:8px 0 0!important;padding:7px 8px;border-left:2px solid var(--blue);background:#041019;color:#86a9bf!important;font:600 10px/1.45 monospace!important}.asset-spec b{color:#dff5ff;letter-spacing:.08em}.admin-sketch-box{display:grid;place-items:center;width:100%;min-height:190px;aspect-ratio:100/74;border:1px solid #1e3d52;background:#050d13;color:var(--blue);overflow:hidden;padding:12px}.admin-sketch-box svg{display:block;width:100%;height:100%;max-height:190px;color:inherit}.admin-sketch-box .visual-outline{fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;opacity:.96}.admin-sketch-box .visual-fill{fill:currentColor;fill-opacity:.10;stroke:currentColor;stroke-width:1.55;stroke-linejoin:round}.admin-sketch-box .visual-detail{fill:none;stroke:currentColor;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;opacity:.58}.admin-sketch-box .visual-emphasis{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:1}.admin-sketch-box ellipse.visual-emphasis,.admin-sketch-box circle.visual-emphasis{fill:currentColor;fill-opacity:.22}.admin-sketch-box .constellation-lines line{stroke:currentColor;stroke-width:1.7;stroke-linecap:round;opacity:.75}.admin-sketch-box .constellation-stars circle{fill:currentColor;filter:drop-shadow(0 0 2px currentColor)}.admin-sketch-mask{display:block;width:100%;height:100%;min-height:160px;background:var(--blue);-webkit-mask-image:var(--asset-sketch);mask-image:var(--asset-sketch);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.asset-sketch-compare{display:grid;grid-template-columns:1fr 1fr;gap:9px}.asset-sketch-compare>div>b{display:block;margin-bottom:5px;color:#dff5ff;font:800 9px/1 monospace;letter-spacing:.1em}.asset-sketch-compare>div>small,.asset-fallback-note{display:block!important;margin-top:5px!important;color:var(--muted)!important;font:600 9px/1.35 monospace!important}.asset-slot-sketch .file-pick{border-color:#2b637f}.asset-slot-sketch .file-pick:after{content:"S/W + TRANSPARENT";margin-left:auto;color:var(--blue);font-size:8px;white-space:nowrap}.asset-admin-card .asset-slots{grid-template-columns:1fr 1fr}.asset-admin-card .asset-slot-sketch{grid-column:1/-1}
@media(max-width:760px){.asset-sketch-compare{grid-template-columns:1fr}.asset-slot-sketch{grid-column:auto}.asset-admin-card .asset-slots{grid-template-columns:1fr}}
