/* ============================================================
   Jūrų Imperijos — „Senasis žemėlapis" tema
   Pergamentas · rašalas · žvariai · daug animacijų
   ============================================================ */

:root{
    --paper:#ece0c0; --paper-card:#f5ecd5; --paper-2:#e2d1a8; --paper-3:#d8c69b;
    --ink:#2c2113; --ink-2:#5a4a30; --ink-3:#917b54;
    --brass:#b27d2d; --brass-d:#8a5e1f; --brass-l:#d8a24a;
    --seal:#9c3326; --seal-d:#7a2519;
    --teal:#2f6a64;
    --line:#cbb588; --line-d:#b39a68;
    --disp:'Cinzel', Georgia, 'Times New Roman', serif;
    --body:'EB Garamond', Georgia, serif;
    --shadow:0 6px 22px rgba(60,40,16,.22);
    --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font-family:var(--body);color:var(--ink);font-size:17px;line-height:1.5;min-height:100vh;
    background-color:#e7d6af;
    background-image:
        radial-gradient(circle at 16% 10%, #f4ead0, rgba(244,234,208,0) 42%),
        radial-gradient(circle at 86% 90%, #ddc99c, rgba(221,201,156,0) 50%),
        radial-gradient(circle at 78% 16%, #efe4c6, rgba(239,228,198,0) 40%),
        linear-gradient(165deg,#ecdfbd, #e2d1a6);
    background-attachment:fixed;
}
a{color:var(--brass-d);text-decoration:none;transition:color .15s}
a:hover{color:var(--seal)}
h1,h2,h3,h4{font-family:var(--disp);font-weight:600;color:var(--ink);margin:.2em 0 .5em;letter-spacing:.4px}
h2{font-size:25px}h3{font-size:19px}h4{font-size:16px}
pre{white-space:pre-wrap;font-family:var(--body);margin:0}
img{ -webkit-user-drag:none;user-select:none}

/* ---- Popieriaus grūdėtumas (tekstūra) ---- */
.paper-grain{
    position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.55;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.32 0 0 0 0 0.24 0 0 0 0 0.12 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

/* ============================ Keyframes ============================ */
@keyframes reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes floatShip{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-7px) rotate(1.2deg)}}
@keyframes bob{0%,100%{transform:translate(-50%,-62%)}50%{transform:translate(-50%,-38%)}}
@keyframes sheen{0%{background-position:200% 0}100%{background-position:-120% 0}}
@keyframes shimmer{0%{background-position:-150% 0}100%{background-position:150% 0}}
@keyframes spinSlow{to{transform:rotate(360deg)}}
@keyframes sealIn{0%{transform:scale(1.5) rotate(-18deg);opacity:0}60%{transform:scale(.92) rotate(4deg);opacity:1}100%{transform:scale(1) rotate(0)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(156,51,38,.55)}70%{box-shadow:0 0 0 7px rgba(156,51,38,0)}}
@keyframes flashIn{from{opacity:0;transform:translateY(-14px) rotate(-.4deg)}to{opacity:1;transform:none}}
@keyframes inkRise{from{opacity:0;transform:translateY(8px)}to{opacity:1}}

/* ============================ Layout ============================ */
.sidebar{
    position:fixed;left:0;top:0;bottom:0;width:250px;z-index:40;
    display:flex;flex-direction:column;padding:18px 14px 14px;overflow-y:auto;
    background:linear-gradient(180deg,#e7d6ad,#dcc89c);
    border-right:2px solid var(--brass-d);
    box-shadow:4px 0 14px rgba(60,40,16,.18), inset -4px 0 0 rgba(244,236,213,.35);
}
.stage{margin-left:250px;min-height:100vh;display:flex;flex-direction:column}

/* Brand */
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:4px 6px 14px;border-bottom:1px solid var(--line-d);margin-bottom:14px}
.brand:hover{text-decoration:none}
.brand-medallion{width:50px;height:50px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 38% 32%, #3c2c18, #1c140a);border:2px solid var(--brass);box-shadow:0 3px 8px rgba(0,0,0,.35), inset 0 0 8px rgba(0,0,0,.5)}
.brand-medallion img{width:36px;height:36px}
.brand-name{font-family:var(--disp);font-weight:700;font-size:19px;line-height:1.05;color:var(--ink);letter-spacing:1px}

/* Captain card */
.cap-card{display:flex;gap:11px;align-items:center;background:var(--paper-card);border:1px solid var(--line-d);
    border-radius:10px;padding:10px;margin-bottom:14px;box-shadow:inset 0 0 0 1px rgba(244,236,213,.6), var(--shadow)}
.cap-emblem{width:46px;height:46px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
.cap-info{min-width:0;flex:1}
.cap-name{font-family:var(--disp);font-weight:600;color:var(--ink);font-size:15px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cap-class{font-size:13px;color:var(--ink-2);margin:1px 0 6px}
.xp{height:7px;border-radius:4px;background:rgba(90,74,48,.22);overflow:hidden;border:1px solid var(--line-d)}
.xp-bar{display:block;height:100%;background:linear-gradient(90deg,var(--brass),#e0b75a);
    background-size:200% 100%;animation:shimmer 2.6s linear infinite;transition:width .8s cubic-bezier(.23,1,.32,1)}

/* Nav */
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 13px;position:relative;border-radius:9px;
    color:var(--ink-2);font-family:var(--disp);font-size:14px;letter-spacing:.4px;transition:background .2s,color .2s}
.nav-ico{width:22px;height:22px;display:flex;color:var(--brass-d);transition:transform .25s,color .2s}
.nav-ico svg{width:100%;height:100%}
.nav-item:hover{background:rgba(178,125,45,.12);color:var(--ink);text-decoration:none}
.nav-item:hover .nav-ico{transform:scale(1.14) rotate(-5deg)}
.nav-item::after{content:'';position:absolute;left:13px;right:13px;bottom:5px;height:1px;background:var(--brass);
    transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav-item:hover::after{transform:scaleX(.45)}
.nav-item.active{background:linear-gradient(90deg,rgba(178,125,45,.2),rgba(178,125,45,0))}
.nav-item.active::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--seal)}
.nav-item.active,.nav-item.active .nav-ico{color:var(--seal-d)}
.nav-item.active .nav-ico{color:var(--seal)}
.nav-item.active::after{transform:scaleX(1);background:var(--seal)}
.badge{margin-left:auto;background:var(--seal);color:#f5ecd5;border-radius:10px;font-size:11px;font-weight:700;
    padding:1px 7px;font-family:var(--body);animation:pulse 2s infinite}

.logout-form{margin-top:12px}
.sidebar-compass{margin:14px auto 2px;width:54px;height:54px;color:var(--ink-3);opacity:.55}
.sidebar-compass svg{width:100%;height:100%;animation:spinSlow 60s linear infinite}

/* Mobile nav toggle */
.nav-toggle{display:none;position:fixed;top:12px;left:12px;z-index:50;width:44px;height:44px;border:1px solid var(--brass-d);
    border-radius:10px;background:var(--paper-card);cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center;box-shadow:var(--shadow)}
.nav-toggle span{width:20px;height:2px;background:var(--ink);border-radius:2px;transition:.25s}
.nav-scrim{display:none;position:fixed;inset:0;background:rgba(40,28,12,.45);z-index:35}
body.nav-open .nav-scrim{display:block}

/* ============================ Resursų juosta ============================ */
.resbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
    padding:11px 22px;border-bottom:2px solid var(--line-d);
    background:linear-gradient(180deg,rgba(245,236,213,.94),rgba(232,222,190,.86));
    -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}
.res{display:flex;gap:9px;flex-wrap:wrap}
.res .r{display:inline-flex;align-items:center;gap:6px;background:var(--paper-card);border:1px solid var(--line-d);
    border-radius:22px;padding:4px 13px 4px 5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 2px rgba(60,40,16,.15)}
.res .r img{width:22px;height:22px;display:block}
.res .r b{font-weight:600;font-variant-numeric:tabular-nums}
.res .rcap{color:var(--ink-3);font-size:13px}
.statline{display:flex;gap:8px;flex-wrap:wrap}
.statline .st{display:flex;flex-direction:column;align-items:flex-end;line-height:1.05;padding:2px 10px;border-left:1px solid var(--line-d)}
.statline .st i{font-style:normal;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-3)}
.statline .st strong{font-family:var(--disp);font-size:16px;color:var(--ink);font-variant-numeric:tabular-nums}
.statline .prot strong{color:var(--teal)}

.content{flex:1;max-width:1060px;width:100%;margin:0 auto;padding:20px 22px 50px;animation:inkRise .5s ease both}
.foot{text-align:center;color:var(--ink-3);font-size:13px;padding:16px;font-style:italic}

/* ============================ Flash ============================ */
.flash{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:16px;animation:flashIn .4s ease both;
    border:1px solid;box-shadow:var(--shadow)}
.flash.ok{background:#e6efd6;border-color:#7d9a4e;color:#3f5417}
.flash.err{background:#f4dcd4;border-color:var(--seal);color:var(--seal-d)}

/* ============================ Paneliai / kortelės ============================ */
.panel{position:relative;background:var(--paper-card);border:1px solid var(--line-d);border-radius:var(--radius);
    padding:18px 20px;margin-bottom:18px;box-shadow:inset 0 0 0 1px rgba(255,250,235,.55), var(--shadow)}
.panel::before{content:'';position:absolute;inset:5px;border:1px solid rgba(138,94,31,.22);border-radius:8px;pointer-events:none}
.panel > *{position:relative}
.panel h2{margin-top:0;border-bottom:1px solid var(--line-d);padding-bottom:8px;display:inline-block}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.muted{color:var(--ink-2)}
.muted.sm{font-size:14px}
.note{color:var(--ink-2);margin-top:12px;font-style:italic}

/* Onboarding */
.steps{border-color:var(--brass)}
.steps::before{border-color:rgba(156,51,38,.3)}
.steps h3{color:var(--seal-d)}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{padding:7px 0;display:flex;align-items:center;gap:10px;border-bottom:1px dashed var(--line)}
.checklist li:last-child{border-bottom:none}
.checklist li.done a{color:var(--ink-3);text-decoration:line-through}
.checklist .tick{font-family:var(--body);color:var(--teal);width:18px;text-align:center}
.checklist li.done .tick{color:var(--brass)}

/* ============================ Tinklelis / kortelės ============================ */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:14px;margin-top:14px}
.tile{position:relative;background:linear-gradient(180deg,#f6eed8,#efe3c7);border:1px solid var(--line-d);border-radius:11px;
    padding:14px;display:flex;flex-direction:column;box-shadow:0 3px 10px rgba(60,40,16,.16);transition:transform .2s,box-shadow .2s}
.tile:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(60,40,16,.26)}
.tile-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.tile-head h4{margin:0;color:var(--brass-d)}
.lvl{font-size:12px;color:var(--ink-3);white-space:nowrap;font-family:var(--disp)}
.tile .desc{font-size:14px;color:var(--ink-2);margin:6px 0}
.tile .effect{font-size:14px;color:var(--teal);margin:4px 0;font-weight:500}
.tile .stats{font-size:14px;margin:4px 0}
.tile .cost{font-size:13px;color:var(--ink-2);margin:6px 0 10px;display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.tile form{margin-top:auto}
.cost .ic{display:inline-flex;align-items:center;gap:3px}
.cost .ic img{width:16px;height:16px;vertical-align:middle}

/* iliustruotos kortelės */
.tile.has-art{padding-top:0;overflow:hidden}
.art-box{margin:0 -14px 10px;height:124px;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(circle at 50% 36%, rgba(47,106,100,.14), transparent 70%);
    border-bottom:1px solid var(--line-d)}
.art-box img{max-height:112px;max-width:82%;filter:drop-shadow(0 5px 8px rgba(60,40,16,.3))}
.ship-art{background:linear-gradient(180deg,#cfe0e4,#bcd2d6)}
.ship-art img{max-width:98%;max-height:122px;animation:floatShip 5s ease-in-out infinite}
.crew-art{background:radial-gradient(circle at 50% 34%, rgba(178,125,45,.16), transparent 72%)}
.crew-art img{max-height:118px}

/* ============================ Mygtukai ============================ */
.btn{position:relative;overflow:hidden;display:inline-block;border:1px solid var(--brass-d);border-radius:9px;
    padding:10px 16px;font-size:14px;font-weight:500;font-family:var(--disp);letter-spacing:.4px;cursor:pointer;
    background:var(--paper-2);color:var(--ink);transition:transform .15s,box-shadow .15s,background .15s}
.btn::before{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
    background:linear-gradient(100deg,transparent,rgba(255,248,230,.55),transparent);transform:skewX(-18deg);transition:left .5s}
.btn:hover::before{left:130%}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(60,40,16,.25)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn.primary{background:linear-gradient(180deg,#e0b75a,var(--brass));color:#3a2a06;border-color:var(--brass-d)}
.btn.danger{background:linear-gradient(180deg,#c3564a,var(--seal));color:#f6e6df;border-color:var(--seal-d)}
.btn.ghost{background:transparent;color:var(--ink-2)}
.btn.sm{padding:7px 12px;font-size:13px}
.btn.block{width:100%}
.btn.disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn.disabled::before,.btn:disabled::before{display:none}
.card .btn.primary{width:100%;margin-top:6px}

/* ============================ Sala ============================ */
.island-panel h2{margin-bottom:10px}
.island-map{position:relative;width:100%;aspect-ratio:800/460;min-height:280px;
    background:url('img/island_scene.svg') center/cover no-repeat;border-radius:12px;overflow:hidden;
    border:2px solid var(--brass-d);
    box-shadow:inset 0 0 0 4px rgba(245,236,213,.5), inset 0 0 60px rgba(12,32,52,.45), 0 6px 18px rgba(60,40,16,.3)}
.island-map::after{content:'';position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.12) 50%,transparent 58%);
    background-size:280% 100%;animation:sheen 8s linear infinite}
.bmark{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;
    text-decoration:none;width:clamp(48px,8.4vw,82px);transition:transform .18s;z-index:2}
.bmark img{width:100%;height:auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45))}
.bmark:hover{transform:translate(-50%,-56%) scale(1.08);text-decoration:none;z-index:6}
.bmark-badge{position:absolute;top:-4px;right:4px;background:linear-gradient(180deg,#e0b75a,var(--brass));color:#3a2a06;
    font-size:11px;font-weight:700;font-family:var(--body);border-radius:10px;padding:0 7px;box-shadow:0 2px 4px rgba(0,0,0,.4);z-index:2}
.bmark-name{margin-top:-3px;font-size:11px;font-family:var(--disp);color:#f5ecd5;background:rgba(34,24,12,.78);
    padding:1px 8px;border-radius:8px;white-space:nowrap;letter-spacing:.3px}
.bmark-build{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);font-size:20px;animation:bob 1.1s ease-in-out infinite}
.bmark.building img{filter:drop-shadow(0 0 9px var(--brass))}

.building-progress{background:rgba(47,106,100,.12);border:1px solid var(--teal);border-radius:10px;
    padding:10px 13px;margin:12px 0;font-size:15px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.countdown{color:var(--seal-d);font-weight:600;font-variant-numeric:tabular-nums}

.mission-active{margin:6px 0 4px}
.mission-active .row{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;margin-bottom:6px;
    background:var(--paper-2);border:1px solid var(--line-d);border-radius:9px}

/* ============================ Lentelės ============================ */
.tbl{width:100%;border-collapse:collapse;margin-top:10px;font-size:15px}
.tbl th,.tbl td{padding:10px 9px;text-align:left;border-bottom:1px solid var(--line)}
.tbl th{color:var(--ink-3);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.6px;font-family:var(--disp)}
.tbl tr.me{background:rgba(178,125,45,.16)}
.tbl tr.me td{color:var(--brass-d);font-weight:500}
.cls-cell{white-space:nowrap}
.cls-mini{width:24px;height:24px;vertical-align:middle;margin-right:7px}

/* ============================ Kova ============================ */
.report{background:#efe3c5;border:1px solid var(--line-d);border-left:4px solid var(--seal);border-radius:9px;
    padding:14px 16px;margin:12px 0;font-size:14px;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(255,250,235,.5)}
.battle-log{list-style:none;padding:0;margin:8px 0 0}
.battle-log li{padding:8px 0;border-bottom:1px dashed var(--line);font-size:15px}
.battle-log .res-dot{display:inline-block;width:22px;font-weight:700}
.battle-log li.win .res-dot{color:var(--teal)}
.battle-log li.lose .res-dot{color:var(--seal)}

/* ============================ Krantas (chat) ============================ */
.chat-box{background:#efe4c8;border:1px solid var(--line-d);border-radius:10px;padding:13px;max-height:430px;
    overflow-y:auto;margin:12px 0;box-shadow:inset 0 0 14px rgba(138,94,31,.1)}
.chat-msg{padding:7px 0;border-bottom:1px solid rgba(138,94,31,.12)}
.chat-msg .who{color:var(--brass-d);font-weight:600;font-family:var(--disp);font-size:14px}
.chat-msg .when{color:var(--ink-3);font-size:11px;margin-left:6px}
.chat-msg .txt{font-size:16px}
.chat-form{display:flex;gap:9px}
.chat-form input{margin:0}

/* ============================ Pranešimai ============================ */
.notes{list-style:none;padding:0;margin:8px 0 0}
.notes li{display:flex;gap:12px;padding:12px 8px;border-bottom:1px solid var(--line)}
.notes li.unread{background:rgba(178,125,45,.1)}
.notes .ico{font-size:21px;width:28px;text-align:center}
.notes .msg{font-size:15px}
.notes .when{font-size:12px;color:var(--ink-3)}

/* ============================ Formų laukai ============================ */
input[type=text],input[type=password],input[type=number],select{
    width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--line-d);
    background:#fbf5e4;color:var(--ink);font-size:16px;font-family:var(--body);transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(178,125,45,.18)}
.inline-form{display:flex;gap:8px;align-items:center}
.qty{width:80px;margin:0;padding:8px}
select.qty{width:auto;min-width:128px}

/* ============================ Auth ekranai ============================ */
.auth-body{display:flex;align-items:center;justify-content:center;padding:26px;min-height:100vh}
.auth-wrap{width:100%;max-width:430px}
.brand-block{text-align:center;margin-bottom:18px}
.brand-mark{width:78px;height:78px;display:block;margin:0 auto 4px;
    filter:drop-shadow(0 4px 10px rgba(60,40,16,.4));animation:reveal .7s ease both}
.brand-block h1{font-family:var(--disp);font-size:30px;margin:.1em 0;letter-spacing:2px;color:var(--ink)}
.tag{color:var(--ink-2);margin:0;font-style:italic}
.fineprint{text-align:center;color:var(--ink-3);font-size:13px;margin-top:16px;font-style:italic}
.switch{text-align:center;color:var(--ink-2);margin-top:14px}
.card{position:relative;background:var(--paper-card);border:1px solid var(--line-d);border-radius:14px;padding:24px;
    box-shadow:inset 0 0 0 1px rgba(255,250,235,.55), var(--shadow);animation:reveal .6s ease both}
.card::before{content:'';position:absolute;inset:6px;border:1px solid rgba(138,94,31,.25);border-radius:9px;pointer-events:none}
.card > *{position:relative}
.card h2{color:var(--ink);margin-top:0}
label{display:block;margin:13px 0;color:var(--ink-2);font-size:14px}
label input,label select{margin-top:6px}
.lbl{color:var(--ink-2);font-size:14px;margin:15px 0 7px}

.class-pick{display:grid;gap:10px}
.class-opt{margin:0;cursor:pointer}
.class-opt input{position:absolute;opacity:0}
.class-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line-d);border-radius:10px;padding:12px;
    background:#f6eed8;transition:border-color .2s,transform .15s,box-shadow .2s}
.class-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.class-emblem{width:54px;height:54px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
.class-txt{display:flex;flex-direction:column}
.class-card strong{color:var(--brass-d);font-family:var(--disp)}
.class-card small{color:var(--ink-2)}
.class-opt input:checked + .class-card{border-color:var(--seal);box-shadow:0 0 0 2px var(--seal) inset, var(--shadow)}

/* ============================ Reveal (JS) ============================ */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.23,1,.32,1)}
.reveal.in{opacity:1;transform:none}

/* ============================ Mobile ============================ */
@media(max-width:900px){
    .sidebar{transform:translateX(-100%);transition:transform .3s cubic-bezier(.23,1,.32,1);width:264px}
    body.nav-open .sidebar{transform:translateX(0);box-shadow:6px 0 30px rgba(0,0,0,.4)}
    .stage{margin-left:0}
    .nav-toggle{display:flex}
    body.nav-open .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
    body.nav-open .nav-toggle span:nth-child(2){opacity:0}
    body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
    .resbar{padding-left:66px}
}
@media(max-width:560px){
    body{font-size:16px}
    .island-map{aspect-ratio:1/1;min-height:330px}
    .bmark{width:clamp(50px,17vw,78px)}
    .bmark-name{font-size:10px;padding:1px 6px}
    .grid{grid-template-columns:1fr 1fr}
    .statline{width:100%;justify-content:space-between}
    .statline .st{align-items:flex-start;border-left:none}
}
@media(max-width:400px){.grid{grid-template-columns:1fr}}

/* ============================ Pastato popup ============================ */
.modal-scrim{position:fixed;inset:0;background:rgba(34,24,12,.5);opacity:0;visibility:hidden;z-index:70;
    transition:opacity .25s ease,visibility .25s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.modal-scrim.open{opacity:1;visibility:visible}
.modal{position:fixed;z-index:71;left:50%;top:50%;width:min(92vw,400px);
    transform:translate(-50%,-46%) scale(.94);opacity:0;visibility:hidden;pointer-events:none;
    transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .25s ease,visibility .3s;
    background:var(--paper-card);border:1px solid var(--brass-d);border-radius:14px;padding:18px 20px 20px;
    box-shadow:inset 0 0 0 1px rgba(255,250,235,.55),0 22px 52px rgba(40,28,12,.45)}
.modal.open{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible;pointer-events:auto}
.modal::before{content:'';position:absolute;inset:5px;border:1px solid rgba(138,94,31,.25);border-radius:9px;pointer-events:none}
.modal > *{position:relative}
.modal-x{position:absolute;top:8px;right:10px;width:30px;height:30px;border:none;background:none;
    font-size:24px;line-height:1;color:var(--ink-3);cursor:pointer;transition:color .15s,transform .15s}
.modal-x:hover{color:var(--seal);transform:scale(1.18) rotate(90deg)}
.modal-art{height:98px;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.modal-art img{max-height:94px;filter:drop-shadow(0 6px 9px rgba(60,40,16,.32))}
.modal h3{margin:.1em 0 .2em;text-align:center}
#bmDesc{text-align:center;margin:0 0 10px}
.modal-eff{display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;margin-bottom:12px;flex-wrap:wrap}
.modal-arrow{color:var(--ink-3)}
.modal-cost{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:8px}
.crow{display:inline-flex;align-items:center;gap:5px;background:var(--paper-2);border:1px solid var(--line-d);
    border-radius:8px;padding:5px 10px;font-size:14px}
.crow img{width:18px;height:18px}
.crow b{font-variant-numeric:tabular-nums}
.crow i{font-style:normal;font-size:12px}
.crow.ok i.have{color:var(--teal);font-weight:700}
.crow.lack{border-color:var(--seal);background:#f4dcd4}
.crow.lack i{color:var(--seal-d);font-weight:500}
.modal-msg{text-align:center;font-size:14px;margin:2px 0 12px;min-height:1.1em}
.modal-msg.lack{color:var(--seal-d);font-weight:500}
.modal-msg.warn{color:var(--brass-d)}
#bmTime{text-align:center;margin:0 0 8px}

/* „galima tobulinti" žyma žemėlapyje */
.bmark{background:none;border:none;padding:0;font:inherit;cursor:pointer}
.bmark-up{position:absolute;top:-3px;left:50%;color:#1d6e63;font-size:13px;text-shadow:0 1px 2px rgba(0,0,0,.4);
    animation:bobUp 1.3s ease-in-out infinite}
@keyframes bobUp{0%,100%{transform:translate(-50%,0);opacity:.8}50%{transform:translate(-50%,-4px);opacity:1}}
.bmark.can-up img{filter:drop-shadow(0 0 7px rgba(47,106,100,.85)) drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.island-hint{font-style:italic}

/* ============================ Dešinysis skydelis ============================ */
.resbar-right{display:flex;align-items:center;gap:12px}
.bell-btn{position:relative;width:42px;height:42px;border:1px solid var(--line-d);border-radius:11px;flex:none;
    background:var(--paper-card);color:var(--ink-2);cursor:pointer;display:flex;align-items:center;justify-content:center;
    transition:transform .15s,box-shadow .15s,color .15s;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.bell-btn svg{width:22px;height:22px}
.bell-btn:hover{transform:translateY(-2px);color:var(--seal);box-shadow:0 6px 14px rgba(60,40,16,.22)}
.bell-badge{position:absolute;top:-5px;right:-5px;background:var(--seal);color:#f5ecd5;border-radius:10px;
    font-size:11px;font-weight:700;padding:1px 6px;font-family:var(--body);animation:pulse 2s infinite;transition:opacity .28s,transform .28s}
.bell-badge.fade-out{opacity:0;transform:scale(.4)}

.drawer-scrim{position:fixed;inset:0;background:rgba(34,24,12,.42);opacity:0;visibility:hidden;z-index:80;
    transition:opacity .3s ease,visibility .3s}
body.drawer-open .drawer-scrim{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(92vw,360px);z-index:81;display:flex;flex-direction:column;
    transform:translateX(100%);transition:transform .36s cubic-bezier(.23,1,.32,1);
    background:linear-gradient(180deg,#efe3c5,#e5d4ab);border-left:2px solid var(--brass-d);
    box-shadow:-10px 0 36px rgba(40,28,12,.35)}
body.drawer-open .drawer{transform:translateX(0)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line-d)}
.drawer-head h3{margin:0}
.drawer-x{width:34px;height:34px;border:none;background:none;font-size:26px;line-height:1;color:var(--ink-3);cursor:pointer;transition:color .15s,transform .15s}
.drawer-x:hover{color:var(--seal);transform:scale(1.12) rotate(90deg)}
.drawer-body{flex:1;overflow-y:auto;padding:14px 18px 26px}
.drawer-sec{margin-bottom:20px}
.drawer-sec h4{font-family:var(--disp);color:var(--brass-d);border-bottom:1px solid var(--line-d);padding-bottom:6px;margin:0 0 8px}
.steps-sec{background:rgba(178,125,45,.08);border:1px solid var(--line-d);border-radius:10px;padding:12px 14px}
.steps-sec h4{color:var(--seal-d);border-color:rgba(156,51,38,.25)}
.drawer .notes li{padding:10px 4px;border-bottom:1px solid var(--line)}
.drawer .notes li.unread{background:rgba(178,125,45,.12);border-radius:8px;padding-left:8px}

/* ============================ Turgus / Dirbtuvės ============================ */
.g-ico{width:22px;height:22px;vertical-align:middle}
.g-name{display:flex;align-items:center;gap:7px}
.market-tbl td{vertical-align:middle}
.market-tbl .qty{width:66px}
.mform{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mform .btn{white-space:nowrap}
.unlock-tile.unlocked{border-color:var(--teal);box-shadow:0 0 0 1px var(--teal) inset,0 3px 10px rgba(60,40,16,.16)}
.lvl.ok{color:var(--teal);font-weight:600}

@media(max-width:560px){
    .drawer{width:90vw}
    .modal{width:92vw}
    .resbar-right{gap:8px}
    .market-tbl{font-size:13px}
    .market-tbl .qty{width:54px}
}
