/* Garden Defense: a framed fantasy arena, with the field owning the screen. */
:root{--ink:#f7ecd0;--muted:#a9b99b;--gold:#e7c77b;--edge:#8c8955;--bark:#2b3021;--moss:#263e2d;--panel:#172d24;--leaf:#bbd777}
body{background:radial-gradient(ellipse at 45% 0,#304738 0,#111f1b 60%,#0b1613 100%);font-family:'Trebuchet MS',Arial,sans-serif}
.game-shell{max-width:1640px;background:linear-gradient(120deg,#26372c55,transparent 45%);padding:0 12px}
.topbar{height:66px;min-height:66px;padding:9px 12px;gap:22px;background:linear-gradient(180deg,#1a2b22,#101f19);border-bottom:1px solid #b3a26466;box-shadow:0 5px 20px #0003;position:relative;z-index:8}
.brand{font-size:21px;line-height:.9;rotate:-3deg;filter:drop-shadow(0 3px 0 #0005)}.brand span{color:#f0da8c}.brand strong{color:#d9b3e4;font-size:22px}
.playtest-tag{border:0;background:#d5bf7710;color:#b6c49d;font-size:8px;letter-spacing:1.7px;padding:5px 0}
.topbar nav{margin-left:0;gap:5px}.mode-tab{padding:10px 18px;border:1px solid transparent;border-radius:6px;font-size:12px;color:#9cac91;min-height:38px}
.mode-tab.active{background:linear-gradient(#5a6340,#394b31);border-color:#d8bd7377;box-shadow:inset 0 1px #eee4ac33,0 2px 3px #0003;color:#ffedba}.mode-tab small{font-size:8px;color:#d8d79b}
.balance strong{font-size:22px}.balance small{font-size:7px}.coin{background:linear-gradient(135deg,#f4da80,#9c7537);border-color:#efd58b;width:29px;height:29px;font-size:20px}
.icon-button{background:linear-gradient(#3c4e35,#24382a);border-color:#a3925e88;color:#e8d89e;min-height:33px;width:33px}
main{padding:14px 4px 7px;grid-template-columns:minmax(0,1fr) 264px;gap:14px}
.battle-panel{border-radius:10px;min-width:0;background:#12271c;border:1px solid #8b865877;box-shadow:0 8px 30px #0005,inset 0 0 0 3px #d8c9850a;padding:10px}
.arena-heading{margin:0;padding:0 3px 10px;gap:10px;flex-shrink:0}.arena-heading h1{font-size:26px;line-height:1.1;color:#f4deb0;letter-spacing:-.4px}.eyebrow{font-size:7px;letter-spacing:2.2px;color:#c5b77d;margin-bottom:4px}.connection{font-size:8px;color:#a2b693}.connection i{width:5px;height:5px;margin-right:4px}
.battle-hud{border-radius:6px 6px 0 0;background:linear-gradient(100deg,#293c2b,#1d3124);border:1px solid #aaa16b88;padding:9px 13px;gap:26px;min-height:58px;box-shadow:inset 0 2px #fff5bf0b;flex-shrink:0}
.battle-hud>div{gap:8px}.battle-hud small{font-size:7px;letter-spacing:1px;color:#acb693}.battle-hud strong{font-size:21px;color:#f9dfa0}.battle-hud .hud-icon{font-size:24px}.battle-hud .hud-icon.energy{font-size:30px}.battle-hud em{font-size:11px}.health-track{height:4px;width:106px;background:#101f17}.health-track i{background:linear-gradient(90deg,#81ad5d,#d3e98b)}
.arena-frame{background:radial-gradient(ellipse at center,#405939,#203a29 75%);border:1px solid #a69660;border-top:0;border-bottom:0;box-shadow:inset 0 0 55px #071e1bb3;min-height:260px}
.arena-frame:before,.arena-frame:after{content:'';position:absolute;pointer-events:none;z-index:2;width:65px;height:65px;border-color:#c4b57366;border-style:solid;opacity:.65}.arena-frame:before{left:9px;top:9px;border-width:1px 0 0 1px;border-radius:7px 0 0 0}.arena-frame:after{right:9px;bottom:9px;border-width:0 1px 1px 0;border-radius:0 0 7px 0}
.field-viewport{box-shadow:0 0 45px #061d1677,0 0 0 1px #d5cf9a22}
.field-label{font-size:7px;letter-spacing:1.2px;padding:4px 7px;left:10px;bottom:9px;background:#173328cc;border-color:#d5c88b55;color:#e3dbb9;z-index:3}
.build-pad.available{background:transparent;box-shadow:none}.build-pad:hover:not(:disabled),.build-pad:focus-visible{background:#fbe2a326;outline:2px solid #ffe0a4;outline-offset:2px}
.arena-banner{background:linear-gradient(transparent,#0c2d22b3 35%,#0a251de6 60%,transparent);text-shadow:0 2px 8px #0a1f18}.arena-banner strong{font-size:clamp(28px,3.4vw,48px);font-weight:500;color:#fff0c8;max-width:400px;line-height:1.1}.arena-banner span{max-width:300px;line-height:1.6;font-size:12px;color:#d5debd;margin-top:12px}.arena-banner .primary-button{margin-top:22px;padding:12px 24px;font-size:12px;box-shadow:0 4px #6b4c25,0 8px 20px #0004}.arena-banner small{letter-spacing:.2px;color:#b9c69f;font-size:9px}
.battle-command{min-height:60px;padding:9px 10px;border-color:#a69660;background:linear-gradient(#283b29,#1d3023);border-radius:0 0 6px 6px;gap:10px;flex-shrink:0}
.battle-command p{max-width:none;flex:1;color:#bfcca8;font-size:10px;line-height:1.5}.hint-key{font-size:9px;border-color:#a3975b88;color:#d8d394;width:21px;height:21px}
.primary-button{background:linear-gradient(#f4df9e,#d7b567);border:1px solid #f5e1a7;border-bottom-color:#ac8243;border-radius:5px;color:#35402a;text-shadow:0 1px #fff3bf55;font-size:11px;min-height:40px;box-shadow:inset 0 1px #fff6c8,0 3px #70522b;padding:9px 12px}
.start-button{width:auto;min-width:130px;font-size:11px;white-space:nowrap}.mother-button{background:linear-gradient(#354a2e,#253c29);border-color:#b8a36988;min-width:165px;color:#ebd8a0;border-radius:5px;min-height:42px}.mother-button small{color:#a8b38e}.mother-thumb{width:34px;height:34px}
.selection-actions{margin:6px 0 0;padding:7px 9px;border-color:#aa9b6177;background:#283c29;min-height:42px;border-radius:5px}.selection-actions strong{font-size:10px}.selection-actions button{min-height:30px;padding:4px 9px;font-size:9px}
.side-panel{padding:0;gap:10px;scrollbar-width:thin;scrollbar-color:#8e925b #16261c}.side-panel section,.squad-panel{border:1px solid #8b865866;border-radius:7px;padding:13px;background:linear-gradient(135deg,#2c3b2955,#16291e 80%);box-shadow:inset 0 1px #fff6c00a,0 3px 10px #0002}
.squad-panel{order:1;flex-shrink:0}.squad-heading{margin:0 0 11px;gap:5px;flex-wrap:wrap}.squad-heading h2{font-size:21px;font-weight:500;flex:1;color:#f2ddaf}.squad-heading>span{display:none}.squad-heading strong{font-size:8px;color:#c8ce9a;font-weight:400;margin:0}.squad-heading:before{content:'CHOOSE YOUR DEFENDERS';display:block;flex:0 0 100%;font-size:7px;color:#9daa7f;letter-spacing:1.6px;margin-bottom:2px}
.plant-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;overflow:visible}
.plant-card{background:radial-gradient(ellipse at 50% 25%,#53634555,transparent 70%),linear-gradient(#2d412e,#1d3225);border:1px solid #8b94615e;box-shadow:inset 0 0 0 2px #111e171c,0 2px 3px #0002;border-radius:5px;min-height:93px;padding:6px 1px 5px;transition:border-color .15s,background .15s;isolation:isolate}
.plant-card:before{content:'';position:absolute;left:15%;right:15%;height:13px;top:42px;border-radius:50%;background:#0e211955;filter:blur(3px);z-index:-1}.plant-card .plant-art{width:54px;height:45px}.plant-card strong{font-size:9px;margin-top:3px;font-weight:400;color:#e5e7c6}.plant-card small{font-size:9px;color:#efcc79;line-height:1.4}.plant-card .plant-status{font-size:6.8px;color:#acbd92;line-height:1.35;margin-top:2px;white-space:nowrap}.plant-card kbd{font-size:7px;left:4px;top:4px;color:#809273}.plant-card .placed-dot{width:4px;height:4px;right:4px;top:5px;background:#c6df84}
.plant-card.active{border-color:#f2ce7a;background:radial-gradient(ellipse at 50% 15%,#9ca36244,transparent 75%),linear-gradient(#57603b,#33482d);box-shadow:inset 0 0 0 1px #ebd89933,0 0 12px #c6a75615}.plant-card.unavailable{background:linear-gradient(#263629,#1c2e23);border-color:#7a825044}.plant-card.unavailable .plant-art{opacity:.65}.plant-card.unavailable .plant-status{color:#c1aa8a}
.mode-panel,.room-panel{order:0;flex-shrink:0}.section-kicker{font-size:7px;color:#b7b882;letter-spacing:1.8px;margin-bottom:7px}.side-panel h2{font-size:22px;font-weight:500}.mode-panel>p{font-size:10px;color:#b5c1a1;line-height:1.6;margin:8px 0 10px}.field-label-text{font-size:7px;letter-spacing:1px;margin:12px 0 5px}select,input{background:#15271d;border-color:#89905b66;color:#e0e2bc;min-height:34px;font-size:10px;padding:7px}.entry-price{display:flex;align-items:center;justify-content:space-between;margin:12px 0 9px}.entry-price>span{font-size:9px;color:#9eb28c}.entry-price strong{font-size:20px}.entry-price small{font-size:9px}.split-note{margin-top:10px;gap:4px;font-size:8px;color:#9daf8d}
.room-code-line strong{font-size:20px;letter-spacing:2px;color:#efd18c}.room-panel>p{font-size:9px;margin:8px 0;line-height:1.5}.small-button{border-color:#87915c88;background:linear-gradient(#3b5134,#293f2c);border-radius:4px;color:#d6dfb2;min-height:32px;font-size:9px;padding:6px 9px}.room-panel #cancel-match{font-size:8px;min-height:32px;margin-top:4px}.rival-status{font-size:8px;padding:7px;background:#11251c;border-color:#83945d55}.dispatch button{font-size:9px}.dispatch button small{font-size:9px}.dispatch>small{font-size:8px}
.tower-inspector{order:2;flex-shrink:0}.inspector-title{gap:9px;margin:0 0 5px}.inspector-title .plant-art{width:54px;height:56px}.inspector-title h2{font-size:21px}.inspector-title span{font-size:9px;color:#c7ce9d}.tower-inspector>p{font-size:9px;line-height:1.6;margin:5px 0;color:#9fb38f}.tower-stats{padding-top:9px;margin-top:9px;border-color:#9a975333;gap:7px}.tower-stats small{font-size:6px;letter-spacing:1px}.tower-stats strong{font-size:16px;color:#f0d28c}#upgrade-actions{display:none!important}
.round-summary{order:3;border:1px solid #89845855;border-radius:6px;background:#14261c;flex-shrink:0}.round-summary>summary{cursor:pointer;padding:10px 12px;font-size:9px;color:#b9c69a;list-style:none;display:flex;justify-content:space-between;gap:8px}.round-summary>summary:after{content:'+';color:#dac47e;font-size:12px}.round-summary[open]>summary:after{content:'−'}.round-summary .pool-panel{border:0;padding-top:0;background:none;box-shadow:none}.pool-row{font-size:9px}.pool-row strong{font-size:12px}.pool-panel p{font-size:8px;line-height:1.6;margin-top:8px}
footer{padding:6px 6px 9px;font-size:8px;color:#809674}footer strong{font-size:7px;letter-spacing:1px}.toast{background:linear-gradient(#2d402c,#1b3021);border-color:#e0c37e;color:#f4e4b9;border-radius:6px;font-size:11px;bottom:18px;box-shadow:0 5px 20px #0007}.wave-announcement{font:700 14px Georgia,serif;color:#f6dfaa;border-color:#e3c78177;background:#1d3326e8;z-index:5}.result-banner{background:radial-gradient(ellipse at center,#183d2def,#10251ed9);backdrop-filter:blur(3px)}.result-banner h2{font-weight:500}
dialog{background:linear-gradient(#2d412d,#182d22);border-color:#b5a668;color:#e7e8c8}dialog h2{font-weight:500}button:focus-visible{outline-color:#ffe4a0}
@media(min-width:821px){.game-shell{height:100dvh;min-height:650px}.topbar,footer{flex-shrink:0}main{min-height:0}.battle-panel{height:100%;min-height:0}.arena-frame{flex:1;min-height:250px;aspect-ratio:auto}.side-panel{height:100%;min-height:0;overflow-y:auto}}
@media(min-width:1500px){main{grid-template-columns:minmax(0,1fr) 292px;gap:18px;padding-top:18px}.side-panel section{padding:15px}.plant-card{min-height:99px}.plant-card .plant-art{width:60px;height:51px}.arena-heading h1{font-size:29px}.plant-card .plant-status{font-size:7.5px}}
@media(min-width:821px) and (max-height:780px){.topbar{height:58px;min-height:58px}.side-panel{gap:8px}.side-panel section{padding:10px}.plant-card{min-height:83px}.plant-card .plant-art{height:38px}.squad-heading{margin-bottom:8px}.squad-heading h2{font-size:19px}.tower-inspector>p{display:none}.battle-command{min-height:56px}.arena-heading h1{font-size:24px}.arena-heading{padding-bottom:8px}.battle-hud{min-height:54px;padding-top:7px;padding-bottom:7px}}
@media(min-width:821px) and (max-width:1140px){.game-shell{padding:0 8px}.topbar{gap:14px}.topbar nav{gap:0}.mode-tab{padding:9px 12px}.playtest-tag{display:none}main{grid-template-columns:minmax(0,1fr) 232px;gap:10px;padding-top:11px}.side-panel section{padding:10px}.plant-card{min-height:88px}.plant-card .plant-art{width:49px;height:42px}.plant-card .plant-status{font-size:6px}.arena-heading h1{font-size:23px}.battle-hud{gap:15px;padding:9px}.battle-hud strong{font-size:18px}.battle-hud .time-stat{display:none}.battle-command{flex-wrap:wrap;gap:7px}.battle-command .hint-key{display:none}.battle-command p{flex:0 0 100%;font-size:9px}.battle-command .start-button{flex:1;min-width:0;margin:0}.mother-button{flex:1;min-width:145px;justify-content:center}.squad-heading h2{font-size:19px}.inspector-title h2{font-size:19px}.inspector-title .plant-art{width:45px;height:49px}}
@media(max-width:820px){.game-shell{padding:0;min-height:100dvh}.topbar{height:auto;min-height:101px;padding:12px 13px 9px;gap:9px;border-bottom-color:#b1a36566}.brand{width:99px}.brand span{font-size:20px}.brand strong{font-size:21px}.balance{margin-left:auto;order:1}.topbar>.icon-button{order:2}.topbar nav{order:3;flex-basis:100%;margin:2px 0 0;justify-content:center;gap:10px}.mode-tab{min-height:30px;padding:7px 18px;font-size:11px}.playtest-tag{display:none}.balance strong{font-size:22px}main{display:flex;flex-direction:column;padding:11px 8px;gap:10px}.battle-panel{padding:7px;border-radius:8px}.arena-heading{padding:3px 2px 10px;gap:7px}.arena-heading h1{font-size:22px}.eyebrow{font-size:6px;letter-spacing:1.8px}.connection{font-size:7px;max-width:75px}.arena-heading>.icon-button{width:28px;min-height:28px}.battle-hud{padding:8px;gap:18px;min-height:53px;flex-wrap:nowrap}.battle-hud .time-stat{display:none}.battle-hud .hud-icon{font-size:20px}.battle-hud .hud-icon.energy{font-size:25px}.battle-hud strong{font-size:18px}.battle-hud small{font-size:6px;letter-spacing:.5px}.battle-hud em{font-size:10px}.health-track{width:75px}.arena-frame{aspect-ratio:3/2;min-height:0;flex:none}.arena-frame:before,.arena-frame:after{width:28px;height:28px;inset:6px auto auto 6px}.arena-frame:after{inset:auto 6px 6px auto}.field-label{font-size:6px;left:6px;bottom:5px;padding:3px 5px}.battle-command{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px;min-height:0}.battle-command .hint-key{display:none}.battle-command p{grid-column:1/-1;font-size:9px;min-height:27px}.battle-command .start-button,.battle-command .mother-button{margin:0;min-height:43px;min-width:0;width:100%;font-size:10px}.mother-button small{font-size:7px}.selection-actions{gap:6px;padding:7px;flex-wrap:wrap}.selection-actions strong{font-size:9px;width:100%}.selection-actions button{flex:1;min-height:39px;font-size:9px}.side-panel{display:flex;flex-direction:column;gap:10px;overflow:visible;padding:0}.side-panel section{padding:12px}.squad-panel{order:-1}.squad-heading{margin-bottom:10px}.squad-heading h2{font-size:22px}.squad-heading strong{font-size:9px}.squad-heading:before{font-size:7px}.plant-deck{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;overflow:visible;padding:0}.plant-card{min-width:0;min-height:95px;scroll-snap-align:none}.plant-card .plant-art{width:56px;height:47px}.plant-card strong{font-size:9px}.plant-card small{font-size:9px}.plant-card .plant-status{font-size:6px;white-space:normal;min-height:16px}.plant-card kbd{font-size:7px}.mode-panel,.room-panel{order:0}.tower-inspector{order:2}.inspector-title{flex-direction:row;align-items:center;gap:10px}.inspector-title .plant-art{width:60px;height:60px}.tower-inspector>p{font-size:10px;margin:6px 0}.tower-stats{grid-template-columns:repeat(3,1fr);margin-top:10px;padding-top:10px}.tower-stats>div:last-child{display:block}.tower-stats small{font-size:7px}.tower-stats strong{font-size:19px}.mode-panel h2,.side-panel .room-panel h2{font-size:24px}.mode-panel>p{font-size:11px}.entry-price strong{font-size:24px}.mode-panel .split-note{flex-direction:row;justify-content:space-between;font-size:9px}.room-panel>p{font-size:10px}.room-panel #cancel-match{font-size:10px;min-height:40px}.room-code-line strong{font-size:23px}.round-summary{order:3}.round-summary>summary{min-height:42px;align-items:center;font-size:11px}.pool-row{font-size:11px}.pool-row strong{font-size:14px}.pool-panel p{font-size:10px}.arena-banner strong{font-size:29px;max-width:260px}.arena-banner span{font-size:9px;max-width:250px;margin-top:8px}.arena-banner .primary-button{font-size:10px;padding:8px 13px;min-height:39px;margin-top:12px}.arena-banner small{font-size:7px;margin-top:9px;max-width:230px}footer{font-size:7px;gap:4px;padding:2px 12px 12px}footer strong{font-size:6px}.toast{font-size:10px;padding:10px 12px;bottom:12px}}
@media(max-width:359px){.plant-deck{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.plant-card{min-height:89px}.plant-card .plant-art{height:43px}.plant-card .plant-status{font-size:7px;min-height:10px}.battle-hud{gap:10px;padding:7px 5px}.health-track{width:57px}.battle-hud .hud-icon{font-size:17px}.battle-hud strong{font-size:16px}.battle-hud small{font-size:5.6px}.arena-heading h1{font-size:19px}.connection{max-width:66px;font-size:6px}.arena-banner strong{font-size:24px;max-width:220px}.arena-banner span{display:none}.arena-banner .primary-button{margin-top:10px;font-size:9px}.arena-banner small{font-size:6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

@media(min-width:360px) and (max-width:600px){.plant-deck{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.plant-card{min-height:95px}.plant-card .plant-art{width:61px;height:49px}.plant-card .plant-status{font-size:8px;min-height:11px}.plant-card strong{font-size:10px}.plant-card small{font-size:10px}}

.combat-status{flex-shrink:0;border-left:1px solid #a69660;border-right:1px solid #a69660;background:linear-gradient(#203928,#1b3225);padding:7px 11px 8px;min-height:39px;box-shadow:inset 0 1px #ced7990b}
.combat-caption{display:flex;gap:12px;align-items:center;justify-content:space-between;min-height:12px;margin-bottom:6px}
.combat-caption>strong{color:#ddd8a8;font-size:9px;font-weight:400;letter-spacing:.2px}.combat-caption>span{font-size:8px;color:#9db18e;text-align:right;font-variant-numeric:tabular-nums}
.wave-track{display:flex;align-items:center;gap:4px;height:5px}.wave-step{flex:1;height:3px;border-radius:2px;background:#52674a66;box-shadow:0 0 0 1px #152c2166}.wave-step.boss-step{height:5px;background:#6d665377;border:1px solid #a58b5f66}.wave-step.complete{background:#a3bd76;box-shadow:0 0 4px #b3cf6522}.wave-step.current{background:#e3cd85;box-shadow:0 0 6px #ebce6b55}.wave-step.boss-step.current{background:#c4a1ce;border-color:#e1bbdc;box-shadow:0 0 8px #d8afe355}
.boss-status{display:flex;align-items:center;gap:7px;width:230px;min-width:0;color:#d9b9dd}.boss-status>span{font-size:9px;white-space:nowrap}.boss-status>div{flex:1;min-width:36px;height:5px;border-radius:4px;overflow:hidden;background:#382d3a;border:1px solid #b69b9c55}.boss-status>div>i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#9a79b5,#dfb6d4);margin:0;border-radius:0}.boss-status>strong{font:8px 'Trebuchet MS',sans-serif;color:#e5d5c3;white-space:nowrap}
.range-button svg{display:block;width:19px;height:19px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.2}.range-button.active{background:#666b3d;box-shadow:inset 0 0 0 1px #dfcc7b66;color:#ffe6a1;border-color:#c7b674}
.mother-button.blessing-active:disabled{opacity:1;background:linear-gradient(#667344,#3d5736);border-color:#e6cc84;box-shadow:inset 0 0 16px #e9d37c22,0 0 9px #dfc96922}.mother-button.blessing-active small{color:#f2e5ad}
@media(max-width:820px){.combat-status{min-height:36px;padding:6px 8px 7px}.combat-caption{gap:7px;margin-bottom:5px}.combat-caption>strong{font-size:8px}.combat-caption>span{font-size:7px;letter-spacing:-.15px}.wave-track{gap:3px}.boss-status{width:62%;gap:5px}.boss-status>span{font-size:8px}.boss-status>strong{font-size:7px}.boss-status>div{min-width:30px}.arena-heading>.range-button{width:28px;min-height:28px}.range-button svg{width:17px;height:17px}}
@media(max-width:420px){.arena-heading .connection{width:8px;max-width:8px;flex-shrink:0}.arena-heading .connection>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.arena-heading .connection>i{margin:0}.arena-heading h1{font-size:20px}.arena-heading{gap:7px}.combat-caption>span{font-size:6.8px}}

.wave-announcement.boss-wave{color:#f3d3e7;background:linear-gradient(#4e3b4be8,#2c3030ef);border-color:#d7b5cfb3;font-size:19px;padding:9px 22px;box-shadow:0 5px 20px #141b1b55;text-shadow:0 2px #20302c}
@media(max-width:820px){.wave-announcement.boss-wave{font-size:12px;padding:7px 12px;white-space:nowrap}}

/* Illustrated sanctuary: restrained framing lets the terrain and characters lead. */
.battle-panel{background:linear-gradient(120deg,#1b3527,#10251c 70%);border-color:#aca06c88;box-shadow:inset 0 0 0 3px #d4c4860d,0 10px 35px #0005}
.arena-frame{background:radial-gradient(ellipse at 50% 40%,#375541,#102b23 80%)}
.field-viewport{box-shadow:0 0 0 1px #c3bb7766,0 0 40px #071e18cc}
.battle-hud{background:linear-gradient(105deg,#344b31,#1b3226 65%);box-shadow:inset 0 1px #f7df9d20}
.side-panel section{border-color:#9c996455;background:linear-gradient(135deg,#32442e77,#14291f 75%)}
.campaign-room{padding-top:10px!important;padding-bottom:10px!important}.campaign-room .room-code-line{display:none}.campaign-room .section-kicker{margin-bottom:4px;color:#d4c78e}.campaign-room>p{margin:0;line-height:1.6}
.plant-card{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 27%,color-mix(in srgb,var(--element-color) 17%,transparent),transparent 68%),linear-gradient(#2d4331,#1b3025);border-color:color-mix(in srgb,var(--element-color) 30%,#526646);border-top-color:color-mix(in srgb,var(--element-color) 62%,#526646)}
.plant-card .plant-art{width:59px;height:48px;filter:var(--plant-filter);transition:transform .15s}.plant-card:hover .plant-art,.plant-card:focus-visible .plant-art{transform:translateY(-2px)}
.plant-card.active{border-color:#f1d28e;background:radial-gradient(ellipse at 50% 20%,color-mix(in srgb,var(--element-color) 24%,transparent),transparent 74%),linear-gradient(#4b6140,#304b34);box-shadow:inset 0 0 0 1px #edcf8144,0 3px 7px #0003}
.plant-card.is-planted:not(.active){border-bottom-color:#c6dc8999}.plant-card .element-mark{position:absolute;right:5px;top:5px;width:12px;height:12px;color:var(--element-color);opacity:.85}.element-mark svg{display:block;width:100%;height:100%}.plant-card .placed-dot{top:auto;bottom:6px;right:5px;box-shadow:0 0 4px #b7d57c66}
.tower-inspector{--element-color:#f8834b;background:radial-gradient(ellipse at 10% 25%,color-mix(in srgb,var(--element-color) 12%,transparent),transparent 70%),linear-gradient(#273e2e,#13291e)!important;position:relative;overflow:hidden}
.inspector-title{flex-direction:row;align-items:center;gap:12px;min-height:98px;margin:3px 0 7px}.inspector-title>div:last-child{min-width:0}.inspector-title h2{font-size:21px;line-height:1.1;margin:5px 0 7px;color:#f6e4b8}.inspector-title>div>span:not(.portrait-element){font-size:9px;line-height:1.5;color:#c7d4ae}
.inspector-portrait{width:86px;height:96px;flex-shrink:0;position:relative;display:grid;place-items:center;border-radius:50%;background:radial-gradient(ellipse at 50% 55%,color-mix(in srgb,var(--element-color) 28%,transparent),transparent 68%)}
.inspector-title .inspector-portrait .plant-art{position:relative;width:86px;height:86px;max-width:none;z-index:1;filter:var(--plant-filter)}
.portrait-rune{position:absolute;inset:7px 0 4px;border:1px solid color-mix(in srgb,var(--element-color) 30%,transparent);border-radius:50%;transform:rotate(-20deg)}.portrait-rune:before,.portrait-rune:after{content:'';position:absolute;border:1px solid color-mix(in srgb,var(--element-color) 20%,transparent);border-radius:50%;inset:5px}.portrait-rune:after{inset:-4px 10px;border-style:dashed}
.inspector-title .portrait-element{position:absolute;z-index:2;width:23px;height:23px;bottom:1px;right:2px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--element-color) 60%,#739164);background:#182e23;border-radius:50%;color:var(--element-color)}.portrait-element svg{width:14px;height:14px}
.inspector-title .role-tag{display:inline-block;font-size:7px!important;text-transform:uppercase;letter-spacing:1px;color:var(--element-color)!important;border:1px solid color-mix(in srgb,var(--element-color) 27%,transparent);border-radius:3px;padding:2px 5px;background:color-mix(in srgb,var(--element-color) 7%,transparent)}
.tower-stats{background:#10261b66;border-top:1px solid #bdc89029;border-radius:0 0 4px 4px;padding:10px 5px 2px}.tower-stats strong{font-size:18px}.tower-inspector>p{font-size:9px;line-height:1.7;color:#b4c5a3}
@media(min-width:1141px) and (max-width:1499px){main{grid-template-columns:minmax(0,1fr) 320px}.plant-card .plant-art{width:65px;height:48px}.inspector-title h2{font-size:23px}}
@media(min-width:821px) and (max-width:1140px){.inspector-title{gap:8px}.inspector-portrait{width:67px;height:84px}.inspector-title .inspector-portrait .plant-art{width:73px;height:79px}.inspector-title h2{font-size:18px}.plant-card .plant-art{width:52px;height:43px}}
@media(min-width:821px) and (max-height:780px){.inspector-title{min-height:82px}.inspector-portrait{height:80px}.inspector-title .inspector-portrait .plant-art{height:79px}.plant-card .plant-art{height:39px}}
@media(max-width:820px){.inspector-title{min-height:95px;gap:15px}.inspector-title h2{font-size:25px}.inspector-title>div>span:not(.portrait-element){font-size:11px}.tower-inspector>p{font-size:11px}.tower-stats strong{font-size:21px}.plant-card .plant-art{height:51px}.plant-card .element-mark{width:14px;height:14px}.campaign-room>p{font-size:11px}}
.mother-thumb{background-image:var(--garden-plant-mother,url('assets/plants-soil.png'));background-size:var(--garden-mother-size,300% 200%);background-position:var(--garden-mother-position,100% 100%)}
.attempts-note{color:#e3da9f!important;font-size:11px!important;margin:8px 0!important}.practice-button{width:100%;margin-top:10px;border-color:#92aa75;color:#d7e7bd}.practice-note{font-size:10px!important;color:#afc0a0!important;line-height:1.5!important}.pve-history{display:grid;gap:8px;margin-top:9px}.pool-panel h3{font:600 14px Georgia,serif;color:#e4d6a6;margin:14px 0 0}.reward-receipt{display:grid;grid-template-columns:1fr auto;gap:4px;border:1px solid #6f825244;background:#122d22;padding:9px;border-radius:5px;font-size:10px}.reward-receipt strong{color:#d4e5ae}.reward-receipt span{color:#eed491;font-weight:700}.reward-receipt small{grid-column:1/-1;color:#a9bb9c;overflow-wrap:anywhere;line-height:1.5}.round-pending{border-left:2px solid #d4b76d;padding-left:8px;color:#efd8a4!important}

/* Server-classified GardenFarm leagues; no client league selector. */
.league-panel{padding:16px;border:1px solid #708c54;border-radius:10px;background:#193e32;color:#e5e8c9}.league-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.league-heading h2{font-size:20px;margin:8px 0}.league-heading strong{font-size:12px;white-space:nowrap;color:#e6cb81}.league-panel p,.league-panel>small{font-size:12px;line-height:1.5}.league-tiers{display:flex;gap:6px;margin:10px 0}.league-tiers>span{flex:1;text-align:center;padding:7px 2px;border:1px solid #56724b;border-radius:6px;font-size:12px}.league-tiers small{display:block;font-size:10px;color:#c9ccaa}.league-tiers .current{border-color:#e8c978;background:#405637}.league-panel #account-mode{margin-bottom:0;color:#a6c190}#reservation-expiry{display:block;color:#ebd59a;line-height:1.6}#reservation-expiry[hidden]{display:none}

/* Scout report: prepared once per wave, not a new network subscription. */
.encounter-panel{order:-2;flex-shrink:0;border-color:#adad7088!important;background:linear-gradient(130deg,#35452c,#172e22)!important}.encounter-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.encounter-top>span{font-size:8px;letter-spacing:1.3px;color:#d6ca91}.encounter-top button{min-height:30px;font-size:9px;padding:4px 7px}.encounter-panel h2{font-size:22px!important;margin:5px 0 3px;color:#f2ddab}.encounter-panel p{font-size:11px;line-height:1.5;color:#c5d2ad;margin:5px 0 0}.encounter-roster{display:flex;flex-wrap:wrap;gap:4px;min-height:49px}.enemy-token{position:relative;width:42px;height:48px;background:#0e271d66;border:1px solid #758b5340;border-radius:5px}.enemy-token canvas{display:block;width:42px;height:42px}.enemy-token span{position:absolute;right:1px;bottom:1px;font-size:9px;color:#f5e6b3;line-height:1;background:#183323d9;padding:2px 3px;border-radius:3px}.elite-report{border-color:#dab875!important}.enemy-guide{width:min(740px,calc(100vw - 24px));max-height:85dvh;overflow:auto;padding:24px;box-sizing:border-box}.enemy-guide>p{font-size:12px;color:#bfcea9;line-height:1.6}.enemy-guide h2{font-size:30px;margin:10px 0}.guide-close{float:right}.enemy-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0}.enemy-guide-card{display:flex;align-items:center;gap:6px;padding:10px;background:#102b2090;border:1px solid #6d865333;border-radius:7px}.enemy-guide-card canvas{width:72px;height:72px;flex-shrink:0}.enemy-guide-card h3{font:600 16px Georgia,serif;color:#f0daab;margin:0 0 5px}.enemy-guide-card strong{font-size:10px;color:#d8d3a0}.enemy-guide-card p{font-size:10px;line-height:1.5;color:#aec39a;margin:5px 0 0}.guide-tip{border-top:1px solid #7b8a5555;padding-top:12px}.wave-announcement{max-width:90%;font-size:13px;text-align:center}.boss-status>span{white-space:nowrap}
@media(max-width:820px){.encounter-panel{order:0!important}.encounter-panel h2{font-size:22px!important}.encounter-roster{gap:7px}.enemy-token{width:45px}.enemy-token canvas{width:45px;height:45px}.encounter-top>span{font-size:9px}.encounter-top button{min-height:36px}.enemy-guide{padding:17px}.enemy-guide-grid{grid-template-columns:1fr}.enemy-guide-card h3{font-size:18px}.enemy-guide-card strong,.enemy-guide-card p{font-size:12px}.enemy-guide-card canvas{width:80px;height:80px}}

.enemy-token canvas,.enemy-guide-card canvas{background:transparent;min-height:0;max-height:none;aspect-ratio:1/1;object-fit:contain}.squad-panel{order:-3}
