:root {
    --gold:#d4af37; --bg:#0d0b08; --panel:#120e06;
    --border:rgba(212,175,55,0.2); --text:#e8d5a3; --dim:#a09070;
    --sw:270px;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Crimson Pro',Georgia,serif;background:var(--bg);color:var(--text);height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:none;}

/* Header */
.site-header{height:50px;background:linear-gradient(90deg,#0d0b08,#1a1005,#0d0b08);border-bottom:1px solid var(--border);flex-shrink:0;}
.hinner{height:100%;padding:0 20px;display:flex;align-items:center;justify-content:space-between;}
.hlogo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--gold);font-family:'Cinzel',serif;font-size:1rem;font-weight:700;}
.hlogo img{width:30px;height:30px;object-fit:contain;}
.hlogo em{font-style:normal;color:var(--dim);font-weight:400;}
nav{display:flex;align-items:center;gap:14px;}
nav a{color:var(--dim);text-decoration:none;font-size:0.82rem;transition:color .2s;}
nav a:hover{color:var(--gold);}
.vip-badge{padding:3px 10px;border-radius:20px;font-family:'Cinzel',serif;font-size:0.62rem;font-weight:700;background:rgba(212,175,55,0.15);border:1px solid var(--gold);color:var(--gold);}

/* Gate */
.vip-gate{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#1a1005,#0d0b08);}
.gate-card{text-align:center;padding:48px 40px;background:linear-gradient(160deg,#1e1608,#17110a);border:1px solid var(--border);border-radius:20px;max-width:380px;width:90%;}
.gate-icon{font-size:3rem;margin-bottom:14px;}
.gate-card h2{font-family:'Cinzel',serif;color:var(--gold);font-size:1.3rem;margin-bottom:10px;}
.gate-card p{color:var(--dim);font-size:0.9rem;margin-bottom:24px;line-height:1.6;}
.btn-gold{display:block;padding:12px 28px;margin-bottom:8px;background:linear-gradient(135deg,#b8860b,#d4af37);color:#1a1005;border-radius:10px;text-decoration:none;font-family:'Cinzel',serif;font-size:0.82rem;font-weight:700;}
.btn-outline{display:block;padding:10px 28px;border:1px solid var(--border);border-radius:10px;color:var(--dim);text-decoration:none;font-size:0.82rem;transition:border-color .2s,color .2s;}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}

/* App */
.app{flex:1;display:flex;overflow:hidden;}

/* Sidebar */
.sidebar{width:var(--sw);background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;}
.sidebar-top{padding:16px 14px 12px;border-bottom:1px solid var(--border);}
.sidebar-top h1{font-family:'Cinzel',serif;font-size:1rem;color:var(--gold);}
.sidebar-sub{font-size:0.74rem;color:var(--dim);margin-top:3px;}
.slabel{padding:10px 14px 5px;font-family:'Cinzel',serif;font-size:0.72rem;color:var(--gold);letter-spacing:.08em;display:flex;align-items:center;gap:6px;border-top:1px solid rgba(212,175,55,0.15);}
.slabel .stats-inline{flex:1;}
.sec-toggle{margin-left:auto;background:none;border:1px solid rgba(212,175,55,0.3);color:var(--gold);border-radius:4px;width:17px;height:17px;font-size:0.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;font-family:monospace;transition:background .15s;}
.sec-toggle:hover{background:rgba(212,175,55,0.15);}
.stats-inline{color:var(--gold);font-family:'Crimson Pro',serif;font-size:0.8rem;font-weight:600;letter-spacing:0;text-transform:none;}

/* Team tabs — vertical layout */
.team-tabs{padding:6px 10px 4px;display:flex;flex-direction:column;gap:4px;border-bottom:1px solid var(--border);}

/* Group row */
.group-row-v{display:flex;align-items:center;gap:6px;padding:5px 0;}
.group-row-v.active .group-lbl-btn{border-color:var(--gold);background:rgba(212,175,55,0.1);color:var(--gold);}

/* Group label */
.group-lbl-btn{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:7px;border:1px solid var(--border);cursor:pointer;font-family:'Cinzel',serif;font-size:0.75rem;font-weight:700;color:var(--dim);transition:all .2s;min-width:44px;}
.group-lbl-btn:hover{border-color:var(--gold);color:var(--text);}
.group-lbl-btn.active{border-color:var(--gold);background:rgba(212,175,55,0.1);color:var(--gold);}
.gdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

/* Split button */
.split-btn{padding:5px 10px;border-radius:7px;border:1px dashed rgba(212,175,55,0.35);background:transparent;color:var(--dim);cursor:pointer;font-family:'Cinzel',serif;font-size:0.68rem;transition:all .2s;flex:1;}
.split-btn:hover{border-color:var(--gold);color:var(--gold);}
.split-full{font-family:'Cinzel',serif;font-size:0.65rem;color:var(--dim);padding:5px 8px;flex:1;}

/* Delete group */
.group-del{color:var(--dim);cursor:pointer;font-size:0.7rem;padding:3px 6px;border-radius:4px;transition:color .15s,background .15s;flex-shrink:0;}
.group-del:hover{color:#f44336;background:rgba(244,67,54,0.1);}

/* Sub-teams under active group */
.subteam-wrap{display:flex;flex-direction:column;gap:3px;padding-left:16px;border-left:2px solid rgba(212,175,55,0.2);margin-left:6px;margin-bottom:2px;}
.subteam-tab{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);cursor:pointer;font-size:0.72rem;transition:all .15s;}
.subteam-tab.active{background:rgba(212,175,55,0.1);border-color:var(--gold);}
.subteam-tab:hover{background:rgba(212,175,55,0.06);}
.tdot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.tname{flex:1;color:var(--text);font-family:'Cinzel',serif;font-size:0.7rem;}
.tremove{color:var(--dim);cursor:pointer;font-size:0.68rem;padding:2px 4px;border-radius:3px;transition:color .15s;}
.tremove:hover{color:#f44336;}

/* Add Team button */
.add-group-btn{margin-top:2px;padding:7px;border-radius:8px;border:1px dashed rgba(212,175,55,0.3);background:transparent;color:var(--dim);cursor:pointer;font-family:'Cinzel',serif;font-size:0.7rem;width:100%;transition:all .2s;}
.add-group-btn:hover{border-color:var(--gold);color:var(--gold);}

/* Action row */
.action-row{padding:6px 10px;display:flex;gap:6px;border-bottom:1px solid var(--border);}
.abtn{flex:1;padding:6px;border-radius:7px;border:1px solid var(--border);background:transparent;color:var(--dim);cursor:pointer;font-size:0.75rem;transition:all .2s;}
.abtn:hover{border-color:var(--gold);color:var(--text);}

/* Waypoint list */
.wp-list{flex:1;overflow-y:auto;padding:6px 10px;border-bottom:1px solid var(--border);min-height:80px;max-height:260px;}
.wp-empty{text-align:center;padding:20px 10px;color:var(--dim);font-size:0.8rem;line-height:1.6;}
.wp-empty div{font-size:1.5rem;margin-bottom:6px;}
.wp-item{display:flex;align-items:center;gap:7px;padding:6px 4px;border-bottom:1px solid rgba(212,175,55,0.06);cursor:pointer;transition:background .15s;border-radius:4px;}
.wp-item:last-child{border-bottom:none;}
.wp-item:hover{background:rgba(212,175,55,0.06);}
.wp-num{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.62rem;font-weight:700;flex-shrink:0;color:#111;}
.wp-body{flex:1;min-width:0;}
.wp-label{font-size:0.78rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wp-meta{font-size:0.7rem;color:var(--dim);margin-top:1px;}
.wp-del{color:var(--dim);cursor:pointer;font-size:0.72rem;padding:3px 5px;border-radius:4px;flex-shrink:0;transition:color .15s;}
.wp-del:hover{color:#f44336;}
.wp-ins{color:transparent;font-size:0.72rem;padding:3px 4px;border-radius:4px;flex-shrink:0;transition:color .15s;cursor:pointer;}
.wp-item:hover .wp-ins{color:var(--dim);}
.wp-cursor{background:rgba(212,175,55,0.1);border-left:2px solid var(--gold) !important;}
.wp-cursor .wp-ins{color:var(--gold);}
.wp-cursor:hover{background:rgba(212,175,55,0.15);}
.wp-list::-webkit-scrollbar{width:3px;}
.wp-list::-webkit-scrollbar-thumb{background:rgba(212,175,55,0.15);border-radius:2px;}

/* Share */
.share-panel{padding:10px;display:flex;gap:6px;border-bottom:1px solid var(--border);}
.btn-share{flex:2;padding:9px;background:linear-gradient(135deg,#b8860b,#d4af37);color:#1a1005;border:none;border-radius:8px;font-family:'Cinzel',serif;font-size:0.72rem;font-weight:700;cursor:pointer;transition:opacity .2s;}
.btn-share:hover{opacity:.9;}
.btn-new{flex:1;padding:9px;background:transparent;border:1px solid var(--border);color:var(--dim);border-radius:8px;font-family:'Cinzel',serif;font-size:0.72rem;cursor:pointer;transition:all .2s;}
.btn-new:hover{border-color:var(--gold);color:var(--gold);}

/* Legend */
.legend{padding:8px 14px 10px;border-bottom:1px solid var(--border);}
.leg-rows{display:flex;flex-direction:column;gap:4px;}
.lr{display:flex;align-items:center;gap:7px;font-size:0.74rem;color:var(--dim);}
.ld{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1px solid rgba(255,255,255,0.2);}

/* Map controls */
.map-controls{padding:10px 14px;display:flex;gap:6px;justify-content:center;}
.map-controls button{width:34px;height:34px;border-radius:8px;background:rgba(212,175,55,0.08);border:1px solid var(--border);color:var(--gold);font-size:1.1rem;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center;}
.map-controls button:hover{background:rgba(212,175,55,0.2);}

/* Map area */
.map-area{flex:1;position:relative;overflow:hidden;background:#060402;cursor:none;touch-action:none;overscroll-behavior:none;}

/* Custom map cursor */
#mapCursor{position:absolute;pointer-events:none;z-index:50;display:none;transform:translate(-50%,-50%);}
@media (pointer:coarse){#mapCursor{display:none !important;}}
#mapCursor .mc-top,#mapCursor .mc-bottom{position:absolute;left:-1px;width:2px;background:#d4af37;box-shadow:0 0 0 1px rgba(0,0,0,0.9),0 0 8px rgba(212,175,55,0.8);}
#mapCursor .mc-left,#mapCursor .mc-right{position:absolute;top:-1px;height:2px;background:#d4af37;box-shadow:0 0 0 1px rgba(0,0,0,0.9),0 0 8px rgba(212,175,55,0.8);}
#mapCursor .mc-top{top:-20px;height:14px;}
#mapCursor .mc-bottom{top:6px;height:14px;}
#mapCursor .mc-left{left:-20px;width:14px;}
#mapCursor .mc-right{left:6px;width:14px;}
#mapCursor .mc-dot{position:absolute;width:4px;height:4px;background:#fff;border-radius:50%;top:-2px;left:-2px;box-shadow:0 0 0 1px rgba(0,0,0,0.8);}
#mapCursor .mc-coord{position:absolute;left:12px;top:8px;font-family:'Cinzel',serif;font-size:0.6rem;font-weight:700;color:#d4af37;background:rgba(6,4,2,0.88);border:1px solid rgba(212,175,55,0.35);border-radius:4px;padding:1px 6px;white-space:nowrap;letter-spacing:0.05em;}
.map-viewport{width:100%;height:100%;overflow:hidden;position:relative;}
.map-world{position:absolute;transform-origin:0 0;user-select:none;will-change:transform;}
.map-world img{display:block;width:11343px;}
#mapCanvas{position:absolute;top:0;left:0;width:11343px;pointer-events:none;}
.markers-layer{position:absolute;top:0;left:0;width:11343px;height:6258px;pointer-events:auto;}

/* Gate markers */
.gate-marker{position:absolute;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;border:2px solid rgba(0,0,0,0.4);cursor:pointer;transition:transform .15s;z-index:10;box-shadow:0 1px 4px rgba(0,0,0,0.5);pointer-events:auto;}
.gate-marker:hover{transform:translate(-50%,-50%) scale(1.6);z-index:20;}

/* UI */
.info-mode-btn{position:absolute;bottom:42px;right:12px;width:28px;height:28px;background:rgba(6,4,2,0.85);border:1px solid var(--border);border-radius:6px;font-family:serif;font-size:0.85rem;font-style:italic;font-weight:900;color:var(--dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s,border-color .2s;}
.info-mode-btn.active{color:var(--gold);border-color:var(--gold);}
.zoom-ind{position:absolute;bottom:12px;right:12px;background:rgba(6,4,2,0.85);border:1px solid var(--border);border-radius:6px;padding:3px 9px;font-family:'Cinzel',serif;font-size:0.67rem;color:var(--dim);pointer-events:none;}
.map-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:rgba(6,4,2,0.8);border:1px solid var(--border);border-radius:6px;padding:4px 14px;font-size:0.69rem;color:var(--dim);pointer-events:none;white-space:nowrap;transition:opacity 1s;}
.map-hint.hidden{opacity:0;}

/* Draw mode banner */
.draw-mode-banner{
    display:none;
    position:absolute;top:12px;left:50%;transform:translateX(-50%);
    background:linear-gradient(135deg,rgba(30,10,0,0.92),rgba(20,8,0,0.92));
    border:1px solid rgba(255,120,0,0.7);border-radius:20px;
    padding:7px 20px;
    font-family:'Cinzel',serif;font-size:0.72rem;font-weight:700;
    color:#ff9944;letter-spacing:.04em;
    cursor:pointer;white-space:nowrap;z-index:200;
    box-shadow:0 0 14px rgba(255,100,0,0.35);
    animation:draw-pulse 1.4s ease-in-out infinite;
}
.draw-mode-banner.active{display:block;}
.draw-mode-banner:hover{background:linear-gradient(135deg,rgba(60,20,0,0.95),rgba(40,14,0,0.95));border-color:rgba(255,160,40,0.9);}
@keyframes draw-pulse{
    0%,100%{box-shadow:0 0 14px rgba(255,100,0,0.35);}
    50%{box-shadow:0 0 26px rgba(255,130,0,0.65),0 0 8px rgba(255,130,0,0.3) inset;}
}

/* Notification */
.notification{position:fixed;top:70px;left:50%;transform:translateX(-50%) translateY(-20px);background:linear-gradient(135deg,#1e1608,#17110a);border:1px solid rgba(212,175,55,0.4);border-radius:10px;padding:10px 20px;color:var(--gold);font-family:'Cinzel',serif;font-size:0.8rem;opacity:0;pointer-events:none;transition:all .3s;z-index:1000;}
.notification.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Tooltip */
.map-tooltip{position:fixed;z-index:1000;background:linear-gradient(135deg,#1e1608,#17110a);border:1px solid rgba(212,175,55,0.35);border-radius:8px;padding:7px 11px;font-size:0.75rem;color:var(--text);pointer-events:none;opacity:0;transition:opacity .12s;max-width:240px;box-shadow:0 4px 14px rgba(0,0,0,0.6);}
.map-tooltip.show{opacity:1;}
.map-tooltip strong{color:var(--gold);display:block;font-family:'Cinzel',serif;font-size:0.72rem;margin-bottom:2px;}
.map-tooltip span{color:var(--dim);font-size:0.7rem;}
.tt-body{margin-top:6px;padding-top:6px;border-top:1px solid rgba(212,175,55,0.15);display:flex;flex-direction:column;gap:3px;}
.tt-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:0.68rem;}
.tt-row span{color:var(--dim);white-space:nowrap;}
.tt-row b{color:var(--text);text-align:right;}
.tt-row em{color:var(--dim);font-style:normal;font-size:0.65rem;}

/* Building info badge (shown next to Lv badge when info mode is on) */
.bld-info-badge{position:absolute;bottom:calc(100% + 3px);left:calc(50% + 22px);transform:translateX(-50%);background:#d4af37;color:#0d0b08;font-family:serif;font-size:9px;font-style:italic;font-weight:900;padding:2px 5px;border-radius:4px;white-space:nowrap;cursor:pointer;z-index:10;line-height:14px;}

/* Mobile building bottom sheet */
.bld-sheet{position:fixed;inset:0;z-index:900;background:rgba(0,0,0,0.55);display:none;}
.bld-sheet.open{display:block;}
.bld-sheet-card{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(180deg,#1a1208,#120d06);border-top:1px solid rgba(212,175,55,0.35);border-radius:18px 18px 0 0;padding:12px 20px 32px;transform:translateY(100%);transition:transform .3s cubic-bezier(.32,1,.4,1);}
.bld-sheet.open .bld-sheet-card{transform:translateY(0);}
.bld-sheet-handle{width:36px;height:4px;background:rgba(212,175,55,0.3);border-radius:2px;margin:0 auto 16px;}
.bld-sheet-header{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.bld-sheet-icon{font-size:2rem;line-height:1;}
.bld-sheet-name{font-family:'Cinzel',serif;font-size:1rem;color:var(--gold);font-weight:600;}
.bld-sheet-sub{font-size:0.78rem;color:var(--dim);margin-top:2px;}
.bld-sheet-stats{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1px solid rgba(212,175,55,0.12);border-bottom:1px solid rgba(212,175,55,0.12);margin-bottom:16px;}
.bld-sheet-row{display:flex;justify-content:space-between;align-items:center;font-size:0.85rem;}
.bld-sheet-row span{color:var(--dim);}
.bld-sheet-row b{color:var(--text);}
.bld-sheet-row em{color:var(--dim);font-style:normal;font-size:0.75rem;}
.bld-sheet-add{width:100%;padding:13px;background:linear-gradient(135deg,#b8952a,#d4af37);color:#0d0b08;font-family:'Cinzel',serif;font-size:0.85rem;font-weight:700;border:none;border-radius:10px;cursor:pointer;letter-spacing:0.5px;}
.bld-sheet-add:active{opacity:0.85;}
@media(min-width:769px){.bld-sheet{display:none;}}

/* Coord input */
.coord-input-panel{padding:6px 10px 4px;border-bottom:1px solid var(--border);}
.coord-input-row{display:flex;align-items:center;gap:4px;}
.coord-input-row input{flex:1;padding:6px 8px;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:'Crimson Pro',serif;font-size:0.95rem;outline:none;text-align:center;transition:border-color .2s;-moz-appearance:textfield;}
.coord-input-row input::-webkit-outer-spin-button,.coord-input-row input::-webkit-inner-spin-button{-webkit-appearance:none;}
.coord-input-row input:focus{border-color:var(--gold);}
.coord-input-row input::placeholder{color:rgba(160,144,112,0.4);}
.coord-semi{color:var(--dim);font-size:1rem;font-weight:600;flex-shrink:0;}
.coord-add-btn{width:30px;height:30px;border-radius:7px;background:linear-gradient(135deg,#b8860b,#d4af37);border:none;color:#1a1005;font-size:1.1rem;font-weight:700;cursor:pointer;flex-shrink:0;transition:opacity .2s;}
.coord-add-btn:hover{opacity:.85;}

/* Building markers */
.building-marker{
    position:absolute;transform:translate(-50%,-50%);
    width:10px;height:10px;border-radius:2px;
    border:2px solid rgba(0,0,0,0.4);
    cursor:pointer;transition:transform .15s;z-index:8;
    box-shadow:0 1px 3px rgba(0,0,0,0.4);
}
.building-marker:hover{transform:translate(-50%,-50%) scale(1.6);z-index:18;}

/* Total banner */
.wp-total{
    display:flex;justify-content:space-between;align-items:center;
    padding:8px 10px;margin-top:4px;border-radius:8px;
    background:rgba(212,175,55,0.1);border:1px solid rgba(212,175,55,0.25);
    font-family:'Cinzel',serif;font-size:0.72rem;
}
.wp-total span{color:var(--dim);letter-spacing:.06em;}
.wp-total b{color:var(--gold);font-size:0.9rem;}

/* Building wrapper + level badge */
.building-wrap{position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:8;pointer-events:auto;}
.building-wrap:hover .building-marker{transform:scale(1.6);}
.building-marker{transition:transform .15s;}
.bld-level{
    position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);
    background:rgba(10,8,4,0.92);color:#f0e080;
    font-family:'Cinzel',serif;font-size:10px;font-weight:700;
    padding:2px 6px;border-radius:4px;white-space:nowrap;
    border:1px solid rgba(212,175,55,0.5);
    pointer-events:none;line-height:1.4;
    text-shadow:0 1px 2px rgba(0,0,0,0.8);
    box-shadow:0 2px 5px rgba(0,0,0,0.5);
}
/* Active state for Lv button */
#btnLevels.active{background:rgba(212,175,55,0.3)!important;border-color:var(--gold)!important;color:#fff!important;}

/* ── Mobile ─────────────────────────────────────────────────── */
@media (max-width: 640px) {
    /* Hide sidebar by default on mobile */
    .sidebar {
        position: fixed;
        top: 50px; left: 0; bottom: 0;
        z-index: 200;
        transform: translateX(-100%);
        transition: transform .28s ease;
        width: 85vw;
        max-width: 300px;
        box-shadow: 4px 0 20px rgba(0,0,0,0.6);
    }
    .sidebar.mob-open {
        transform: translateX(0);
    }
    /* Overlay behind open sidebar */
    .mob-overlay {
        display: none;
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.5);
        z-index: 199;
    }
    .mob-overlay.show { display: block; }

    /* Hamburger button on map */
    .mob-menu-btn {
        display: flex;
        position: absolute;
        top: 10px; left: 10px;
        z-index: 50;
        width: 40px; height: 40px;
        align-items: center; justify-content: center;
        background: rgba(13,11,8,0.88);
        border: 1px solid rgba(212,175,55,0.4);
        border-radius: 9px;
        color: var(--gold);
        font-size: 1.2rem;
        cursor: pointer;
        box-shadow: 0 2px 8px rgba(0,0,0,0.5);
    }
}
@media (min-width: 641px) {
    .mob-menu-btn { display: none; }
}

/* ── Shield Wall ────────────────────────────────────────────── */
.sw-panel{padding:8px 10px;border-bottom:1px solid var(--border);}
.sw-info{font-size:0.68rem;color:var(--dim);margin-bottom:8px;line-height:1.5;text-align:center;}
.sw-place-btn{width:100%;padding:8px;border-radius:8px;border:1px solid rgba(100,180,255,0.4);background:rgba(100,180,255,0.08);color:#82cbff;font-family:'Cinzel',serif;font-size:0.72rem;font-weight:700;cursor:pointer;transition:all .2s;margin-bottom:8px;}
.sw-place-btn:hover{background:rgba(100,180,255,0.18);border-color:#82cbff;}
.sw-place-active{background:rgba(255,200,50,0.2)!important;border-color:#ffd700!important;color:#ffd700!important;animation:sw-pulse 1s ease-in-out infinite;}
@keyframes sw-pulse{0%,100%{opacity:1}50%{opacity:0.6}}

.sw-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto;}
.sw-list::-webkit-scrollbar{width:3px;}
.sw-list::-webkit-scrollbar-thumb{background:rgba(212,175,55,.15);border-radius:2px;}
.sw-empty{font-size:0.73rem;color:var(--dim);text-align:center;padding:10px 6px;line-height:1.6;}
.sw-empty b{color:var(--text);}

.sw-item{border-radius:8px;padding:8px 10px;border:1px solid var(--border);transition:border-color .2s;}
.sw-inactive{border-color:rgba(160,144,112,0.2);}
.sw-charging{border-color:rgba(255,200,50,0.4);background:rgba(255,200,50,0.04);}
.sw-active{border-color:rgba(100,200,255,0.5);background:rgba(100,200,255,0.06);}

.sw-item-top{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap;}
.sw-name{font-family:'Cinzel',serif;font-size:0.72rem;color:var(--text);cursor:pointer;flex:1;}
.sw-name:hover{color:var(--gold);}
.sw-coords{font-size:0.65rem;color:var(--dim);}
.sw-badge{font-size:0.65rem;font-weight:700;padding:2px 7px;border-radius:10px;white-space:nowrap;}
.sw-off{background:rgba(160,144,112,0.15);color:var(--dim);}
.sw-charging{background:rgba(255,200,50,0.2);color:#ffd700;}
.sw-on{background:rgba(100,200,255,0.2);color:#82cbff;}

.sw-item-actions{display:flex;gap:6px;}
.sw-act-btn{flex:1;padding:5px 8px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--dim);font-family:'Cinzel',serif;font-size:0.65rem;cursor:pointer;transition:all .2s;}
.sw-act-btn:hover{border-color:var(--gold);color:var(--text);}
.sw-del-btn{padding:5px 8px;border-radius:6px;border:1px solid rgba(244,67,54,.2);background:transparent;color:#f87171;font-size:0.75rem;cursor:pointer;transition:background .15s;}
.sw-del-btn:hover{background:rgba(244,67,54,.1);}

/* Castle map marker */
.castle-marker{
    position:absolute;transform:translate(-50%,-50%);
    display:flex;align-items:center;justify-content:center;
    border-radius:4px;border:2px solid rgba(255,255,255,0.5);
    cursor:pointer;transition:all .3s;z-index:15;
    background:rgba(30,20,10,0.7);
}
.castle-inactive{border-color:rgba(160,144,112,0.6);}
.castle-charging{
    border-color:#ffd700;
    box-shadow:0 0 10px rgba(255,215,0,0.6);
    animation:castle-charge .8s ease-in-out infinite;
}
.castle-active{
    border-color:#82cbff;
    box-shadow:0 0 16px rgba(100,200,255,0.8),0 0 30px rgba(100,200,255,0.3);
    animation:castle-shield 2s ease-in-out infinite;
}
@keyframes castle-charge{0%,100%{box-shadow:0 0 6px rgba(255,215,0,0.4)}50%{box-shadow:0 0 16px rgba(255,215,0,0.9)}}
@keyframes castle-shield{0%,100%{box-shadow:0 0 12px rgba(100,200,255,0.6),0 0 24px rgba(100,200,255,0.2)}50%{box-shadow:0 0 20px rgba(100,200,255,0.9),0 0 40px rgba(100,200,255,0.4)}}
.castle-icon{font-size:14px;line-height:1;pointer-events:none;}
#btnLegend.active{background:rgba(212,175,55,0.3)!important;border-color:var(--gold)!important;color:#fff!important;}

/* Shield Wall form */
.sw-form{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;}
.sw-coords-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;}
.sw-coord-pair{display:flex;align-items:center;gap:3px;}
.sw-coord-pair input{flex:1;width:0;padding:5px 4px;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:'Crimson Pro',serif;font-size:0.85rem;outline:none;text-align:center;transition:border-color .2s;-moz-appearance:textfield;}
.sw-coord-pair input::-webkit-outer-spin-button,.sw-coord-pair input::-webkit-inner-spin-button{-webkit-appearance:none;}
.sw-coord-pair input:focus{border-color:var(--gold);}
.sw-coord-pair input::placeholder{color:rgba(160,144,112,0.35);}
.sw-form-error{font-size:0.68rem;color:#f87171;background:rgba(244,67,54,0.1);border:1px solid rgba(244,67,54,0.25);border-radius:6px;padding:5px 8px;line-height:1.4;}

/* Castle icon overlay */
.castle-icon-overlay{
    position:absolute;transform:translate(-50%,-50%);
    font-size:16px;cursor:pointer;z-index:16;
    pointer-events:auto;
    filter:drop-shadow(0 1px 3px rgba(0,0,0,0.8));
    transition:transform .15s;
}
.castle-icon-overlay:hover{transform:translate(-50%,-50%) scale(1.3);}
.btn-save{flex:1;padding:9px;background:rgba(212,175,55,0.12);border:1px solid rgba(212,175,55,0.4);color:var(--gold);border-radius:8px;font-family:'Cinzel',serif;font-size:0.72rem;font-weight:700;cursor:pointer;transition:all .2s;}
.btn-save:hover{background:rgba(212,175,55,0.25);border-color:var(--gold);}

/* ── Map Marks ──────────────────────────────────────────────── */
.marks-panel{padding:8px 10px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px;}
.mark-colors{display:flex;gap:6px;align-items:center;}
.mark-color-dot{width:18px;height:18px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .15s,border-color .15s;flex-shrink:0;}
.mark-color-dot:hover{transform:scale(1.2);}
.mark-color-dot.selected{border-color:#fff;transform:scale(1.15);}
.mark-input-row input{width:100%;padding:6px 8px;background:rgba(255,255,255,0.05);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:'Crimson Pro',serif;font-size:0.88rem;outline:none;transition:border-color .2s;}
.mark-input-row input:focus{border-color:var(--gold);}
.mark-input-row input::placeholder{color:rgba(160,144,112,0.4);}
.mark-draw-btn{padding:8px;border-radius:8px;border:1px solid rgba(255,100,100,0.4);background:rgba(255,100,100,0.08);color:#ff8888;font-family:'Cinzel',serif;font-size:0.72rem;font-weight:700;cursor:pointer;transition:all .2s;width:100%;}
.mark-draw-btn:hover{background:rgba(255,100,100,0.18);}
.mark-active{background:rgba(255,200,50,0.2)!important;border-color:#ffd700!important;color:#ffd700!important;animation:sw-pulse 1s ease-in-out infinite;}
.mark-list{display:flex;flex-direction:column;gap:4px;max-height:120px;overflow-y:auto;}
.mark-list::-webkit-scrollbar{width:3px;}
.mark-list::-webkit-scrollbar-thumb{background:rgba(212,175,55,.15);border-radius:2px;}
.mark-empty{font-size:0.72rem;color:var(--dim);text-align:center;padding:6px;}
.mark-item{display:flex;align-items:center;gap:7px;padding:5px 4px;border-radius:5px;transition:background .15s;}
.mark-item:hover{background:rgba(255,255,255,0.04);}
.mark-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.mark-name{flex:1;font-size:0.75rem;color:var(--text);cursor:pointer;}
.mark-name:hover{color:var(--gold);}
.mark-del{color:var(--dim);cursor:pointer;font-size:0.7rem;padding:2px 5px;border-radius:3px;transition:color .15s;}
.mark-del:hover{color:#f44336;}
