:root{
    --bg:#03070e;
    --bg-2:#09101d;
    --panel:rgba(2, 18, 38, 0.9);
    --panel-2:rgba(5, 24, 52, 0.96);
    --line:rgba(0, 229, 255, 0.7);
    --line-soft:rgba(0, 229, 255, 0.18);
    --cyan:#00e5ff;
    --cyan-2:#92f7ff;
    --lime:#84ffae;
    --orange:#ffb24d;
    --pink:#ff5fd2;
    --red:#ff5770;
    --text:#d8fbff;
    --shadow:0 0 22px rgba(0, 229, 255, 0.18);
    --radius:18px;
}

*{ box-sizing:border-box; }

html,body{
    margin:0;
    min-height:100%;
    background:radial-gradient(circle at top, #091a34 0%, var(--bg) 58%, #000 100%);
    color:var(--text);
    font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;
    overflow:hidden;
}

body{
    user-select:none;
    -webkit-tap-highlight-color:transparent;
}

button,input,select,textarea{
    font:inherit;
}

.app-shell{
    position:relative;
    width:100vw;
    height:100vh;
    overflow:hidden;
}

#bgfx,
canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
}

.hud-layer{
    position:absolute;
    inset:0;
    z-index:10;
    pointer-events:none;
}

.panel{
    background:linear-gradient(180deg, rgba(5, 24, 52, 0.404), rgba(2, 16, 33, 0.39));
    border:1px solid var(--line);
    border-radius:var(--radius);
    box-shadow:var(--shadow), inset 0 0 0 1px rgba(255,255,255,0.03);
    backdrop-filter: blur(2px);
}

.window{
    position:absolute;
    pointer-events:auto;
    overflow:hidden;
}

.window.is-collapsed .window-body{
    display:none;
}

.window.is-collapsed{
    height:auto !important;
}

.window.compact{ width:330px; left:14px; top:14px; }
.window.center-panel{ width:360px; left:50%; top:14px; transform:translateX(-50%); }
#shopWindow{ width:320px; right:14px; top:14px; }
#towerWindow{ width:320px; right:14px; bottom:14px; }
#jarvisWindow{ left:14px; bottom:14px; width:560px; }

.window-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    border-bottom:1px solid rgba(0,229,255,0.22);
    background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(0,0,0,0));
}

.window-head.slim{
    padding-block:10px;
}

.window-title-wrap{
    display:flex;
    align-items:center;
    gap:10px;
}

.window-icon{
    width:34px;
    height:34px;
    filter:drop-shadow(0 0 10px rgba(0,229,255,0.32));
}

.window-kicker{
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#94eefa;
    opacity:0.88;
}

.window-title{
    margin:2px 0 0;
    font-size:18px;
    line-height:1;
    color:#f3feff;
}

.window-actions{
    display:flex;
    gap:8px;
}

.window-btn{
    width:34px;
    height:34px;
    border-radius:10px;
    border:1px solid rgba(0,229,255,0.34);
    background:rgba(0,11,22,0.72);
    color:var(--cyan-2);
    cursor:pointer;
    transition:0.18s ease;
}

.window-btn:hover{
    background:rgba(0,43,72,0.88);
    box-shadow:0 0 14px rgba(0,229,255,0.24);
}

.window-body{
    padding:14px;
}

.identity-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}

.badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 12px;
    border-radius:999px;
    background:rgba(0,229,255,0.12);
    border:1px solid rgba(0,229,255,0.22);
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
}

.identity-name{
    font-weight:700;
    color:#fff;
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.stat-box{
    border:1px solid rgba(0,229,255,0.18);
    border-radius:14px;
    padding:10px 12px;
    background:rgba(0,0,0,0.18);
}

.stat-box .label{
    display:block;
    font-size:12px;
    color:#9befff;
    opacity:0.86;
    margin-bottom:4px;
}

.stat-box strong{
    font-size:24px;
    line-height:1;
    color:#fff;
}

.center-readout{
    text-align:center;
    font-size:18px;
    line-height:1.5;
    color:#fff;
}

.tower-btn{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:8px 0;
    padding:12px 14px;
    border-radius:14px;
    border:1px solid rgba(0,229,255,0.32);
    background:linear-gradient(180deg, rgba(1,21,40,0.96), rgba(0,12,24,0.92));
    color:var(--text);
    cursor:pointer;
    transition:0.2s ease;
    text-align:left;
}

.tower-btn:hover,
.tower-btn.is-active{
    transform:translateY(-1px);
    background:linear-gradient(180deg, rgba(2,49,84,0.95), rgba(1,21,40,0.96));
    box-shadow:0 0 14px rgba(0,229,255,0.18);
}

.tower-btn span{
    color:#8ef7ff;
    font-size:13px;
}

.alt-btn{
    border-color:rgba(255,95,210,0.35);
}

.ghost-btn{
    border-color:rgba(255,255,255,0.18);
}

.danger-btn{
    border-color:rgba(255,87,112,0.48);
    color:#ffd7de;
}

.divider{
    height:1px;
    margin:14px 0;
    background:linear-gradient(90deg, transparent, rgba(0,229,255,0.45), transparent);
}

.hint-block,
.micro-note{
    font-size:12px;
    line-height:1.5;
    color:#9befff;
    opacity:0.9;
}

.tower-stats{
    min-height:156px;
    line-height:1.6;
    font-size:14px;
}

.window-stack{ display:grid; gap:8px; }

.jarvis-log{
    line-height:1.6;
    font-size:15px;
    color:#f8ffff;
}

.window-dock{
    position:absolute;
    bottom:10px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
    pointer-events:auto;
    max-width:min(90vw, 860px);
}

.dock-btn{
    border:1px solid rgba(0,229,255,0.24);
    background:rgba(2,16,32,0.92);
    color:#baf8ff;
    padding:8px 12px;
    border-radius:999px;
    cursor:pointer;
}

.range-chip{
    display:inline-block;
    margin-top:8px;
    padding:6px 10px;
    background:rgba(0,229,255,0.1);
    border-radius:999px;
    border:1px solid rgba(0,229,255,0.18);
    font-size:12px;
}

.mobile-hide{ display:block; }

.zoom-panel{
    margin-top:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    flex-wrap:wrap;
}

.zoom-label{
    font-size:11px;
    letter-spacing:0.16em;
    color:#97f5ff;
    opacity:0.86;
}

.zoom-btn{
    width:38px;
    height:38px;
}

.zoom-level{
    min-width:54px;
    display:inline-block;
    text-align:center;
    font-size:13px;
    color:#fff;
}

.db-note{
    margin-top:6px;
}
