@import url("./arcane-morphing-frame.css?v=0.35.239");@import url("./arcane-gallery-kit.css?v=0.35.239&kit=4");@import url("./arcane-carousel.css?v=04&thumb=01");@import url("./goose-player-shutter.css?v=10");@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:wght@400;500;600&display=swap');/* extracted style block 1 */
:root{font-family:Inter,system-ui,sans-serif;color-scheme:dark;background:#100e0c;color:#f5eadc;--panel:#211b16;--line:#574530;--gold:#c69a58;--red:#6f1e1e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#2a2118 0,#14110e 44%,#0e0c0a 100%);min-height:100vh}header{position:sticky;top:0;z-index:5;padding:14px 20px;background:#100e0cee;backdrop-filter:blur(10px);border-bottom:1px solid #4b3a29}.bar{max-width:1180px;margin:auto;display:flex;gap:12px;align-items:center}.bar h1{font:700 24px Georgia,serif;margin:0}.pill{font-size:12px;padding:4px 8px;border-radius:999px;background:#3b2d21;color:#e7cda8}.btn{border:1px solid #765b3d;background:#2b2119;color:#fff;border-radius:10px;padding:9px 12px;cursor:pointer}.btn.primary{background:#76542f}main{max-width:1180px;margin:auto;padding:18px}.hidden{display:none!important}.muted{color:#b8a793}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card,.box{background:#211b16;border:1px solid #55432f;border-radius:16px;box-shadow:0 12px 34px #0006}.card{padding:16px;cursor:pointer}.avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#3a2d21;font-size:27px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px}.sheet{padding:16px}.hero{display:grid;grid-template-columns:190px 1fr;gap:16px}.portrait{min-height:260px;border-radius:14px;background:linear-gradient(145deg,#34271d,#17120f);border:1px solid #5a4631;display:grid;place-items:center;overflow:hidden}.portrait .bigicon{font-size:76px}.portrait img{width:100%;height:100%;object-fit:cover;display:block}.tabs{display:flex;gap:8px;margin:0 0 14px}.tab{border:1px solid #5a4631;background:#17130f;color:#d8c7b0;border-radius:10px;padding:9px 14px;cursor:pointer}.tab.active{background:#6d1e1e;color:#fff}.skilltable{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.skilltable>div{padding:10px 12px;border-bottom:1px solid #443527}.skilltable>div:nth-last-child(-n+3){border-bottom:0}.skillhead{background:#6d1e1e;font-weight:700}.skillnum{text-align:center;font-weight:700}.skillrow input,.langtable input{width:100%;padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}.magictable{display:grid;grid-template-columns:minmax(0,1fr) 110px;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.magictable>div{padding:10px 12px;border-bottom:1px solid #443527}.magictable>div:nth-last-child(-n+2){border-bottom:0}.magictable input{width:100%;padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}.langtable{display:grid;grid-template-columns:minmax(0,1fr) 110px 110px;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.langtable>div{padding:10px 12px;border-bottom:1px solid #443527}.langtable>div:nth-last-child(-n+3){border-bottom:0}.smallbtn{border:1px solid #6b543b;background:#30241a;color:#fff;border-radius:8px;padding:7px 10px;cursor:pointer;margin-top:10px}.identity{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.field{background:#17130f;border:1px solid #493a2b;border-radius:10px;padding:10px;min-height:62px}.field.name{grid-column:1/-1}.field.wide{grid-column:span 2}.label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#bca98f}.field .val{font-size:17px;margin-top:4px}.section{margin-top:16px}.section-title{margin:0 0 8px;font:700 19px Georgia,serif;color:#f2dfc5}.basegrid{display:grid;grid-template-columns:1fr 90px 90px;overflow:hidden;border:1px solid #5a4631;border-radius:12px}.basegrid>div{padding:10px 12px;border-bottom:1px solid #443527}.basegrid>div:nth-last-child(-n+3){border-bottom:0}.head{background:#6d1e1e;font-weight:700}.num{text-align:center;font-weight:700}.derived{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.derived .field{display:flex;justify-content:space-between;align-items:center;background:#541b1b}.derived .field .label{color:#f1d8c0;font-size:13px}.derived .field .val{background:#efe1ca;color:#24160f;border-radius:8px;padding:7px 12px;min-width:58px;text-align:center;margin:0}.side{position:sticky;top:78px;height:max-content;padding:14px}.side h2{font:700 20px Georgia,serif;margin:0 0 12px}.quick{display:grid;gap:10px}.quickstat{background:#17130f;border:1px solid #493a2b;border-radius:12px;padding:10px}.quicktop{display:flex;justify-content:space-between;align-items:center}.stepper{display:grid;grid-template-columns:38px 1fr 38px;gap:7px;align-items:center;margin-top:8px}.stepper button{height:38px;border-radius:9px;border:1px solid #6b543b;background:#30241a;color:#fff;font-size:20px}.stepper .value{text-align:center;font-size:20px;font-weight:750}.edit{margin-top:12px;padding-top:12px;border-top:1px solid #493a2b}.editgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.editgrid label{font-size:12px;color:#c9b69e}.editgrid input{width:100%;margin-top:4px;padding:8px;border-radius:8px;border:1px solid #624d37;background:#15110e;color:#fff}.note{margin-top:12px;font-size:12px;color:#9f8f7c}@media(max-width:820px){.layout{grid-template-columns:1fr}.side{position:static;order:-1}.quick{grid-template-columns:repeat(3,1fr)}.hero{grid-template-columns:140px 1fr}.portrait{min-height:210px}.identity{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){main{padding:10px}.bar h1{font-size:19px}.mobile-home-version{display:block;text-align:center;margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.04em;color:#9f8f7c}.hero{grid-template-columns:1fr}.portrait{min-height:180px}.identity{grid-template-columns:1fr 1fr}.field.name,.field.wide{grid-column:1/-1}.quick{grid-template-columns:1fr}.basegrid{grid-template-columns:1fr 66px 66px}.derived{grid-template-columns:1fr}.sheet{padding:12px}}

.skill-link{cursor:pointer;font-weight:800;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.skill-link:hover{color:var(--red)}
.skill-name-roll{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}.skill-name-roll .skill-link{min-width:0;flex:1;line-height:1.25;overflow-wrap:anywhere;word-break:normal}
.skill-roll-btn{flex:0 0 auto;width:34px;height:34px;border:1px solid #765b3d;background:#2b2119;color:#f3dfbb;border-radius:9px;display:grid;place-items:center;cursor:pointer;font-size:17px;line-height:1;padding:0;touch-action:manipulation;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.skill-roll-btn:hover{background:#3a2b1e;border-color:#c69a58}.skill-roll-btn:active{transform:scale(.94)}
.skill-roll-menu{width:min(520px,100%)}.skill-roll-menu-sub{margin:4px 0 14px;color:#6b5b4a;font-size:14px}.skill-difficulty-list{display:grid;gap:8px}.skill-difficulty-btn{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;text-align:left;border:1px solid #b89d70;background:#fff7e8;color:#2d2118;border-radius:10px;padding:11px 12px;font:700 15px system-ui,sans-serif;cursor:pointer}.skill-difficulty-btn .mod{font-weight:800;color:#7a5525}.skill-difficulty-btn .target{min-width:48px;text-align:right;color:#5f4a34}.skill-difficulty-btn:disabled{opacity:.38;cursor:not-allowed;background:#eee6d9}.skill-custom{margin-top:15px;padding-top:14px;border-top:1px solid #d8c5a4}.skill-custom-title{font-weight:800;margin-bottom:8px}.skill-custom-row{display:grid;grid-template-columns:44px minmax(80px,1fr) 44px;gap:8px;align-items:center}.skill-custom-row button{height:42px;border:1px solid #9b805d;background:#f7ecd7;color:#2b2118;border-radius:9px;font-size:22px;font-weight:800}.skill-custom-row button:disabled{opacity:.35}.skill-custom-value{text-align:center;font-size:20px;font-weight:800}.skill-custom-target{text-align:center;margin:8px 0 10px;color:#6b5b4a}.skill-custom-roll{width:100%}
@media(max-width:560px){.skill-name-roll{gap:5px}.skill-roll-btn{width:30px;height:30px;font-size:15px}}
.dice-context{margin-top:8px;font-size:13px;color:#d8c7b0}.dice-context b{color:#f2dfc5}.roll-outcome{margin-top:8px;font:800 22px Georgia,serif;letter-spacing:.04em}.roll-outcome.success{color:#9ed28f}.roll-outcome.fail{color:#e08f82}.roll-outcome.special{color:#8fc8df}.roll-outcome.perfect{color:#e8cf77;text-shadow:0 0 12px rgba(232,207,119,.22)}.roll-outcome.fumble{color:#ef7468;text-shadow:0 0 12px rgba(239,116,104,.22)}.skill-roll-sequence{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:7px;color:#d8c7b0}.skill-roll-sequence span{border:1px solid #594630;border-radius:9px;padding:5px 9px;background:#17120e}.skill-roll-note{margin-top:7px;color:#bca98f;font-size:13px}.skill-erf-award{margin-top:10px;padding:8px 10px;border:1px solid #5c4933;border-radius:9px;background:#17120e;color:#d8c7b0;font-size:13px}.skill-erf-award.gained{border-color:#667d4c;color:#bfe0a8}.skill-erf-award.perfect{border-color:#9b7e3f;color:#f0d584}.skill-erf-award.locked{color:#a99782}
.modalback{position:fixed;inset:0;background:rgba(20,14,10,.62);display:flex;align-items:center;justify-content:center;padding:18px;z-index:1000}.modalback.hidden{display:none}.modal{width:min(680px,100%);max-height:82vh;overflow:auto;background:#fffaf0;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.35);padding:22px}.modalhead{display:flex;align-items:flex-start;gap:12px}.modalhead h2{margin:0;color:#741f1b;font-size:25px}.modalclose{margin-left:auto;border:1px solid #705b43;background:#f7ecd7;color:#2b2118;border-radius:10px;width:38px;height:38px;font-size:26px;font-weight:800;line-height:1;cursor:pointer}.modalclose:hover{background:#ead9bc}.skillmeta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 16px}.skillmeta span{background:#e6d3ad;border:1px solid #b89d70;color:#302419;border-radius:999px;padding:6px 10px;font-weight:800;font-size:13px}.modal{color:#2a2119}.modal p{color:#2a2119;line-height:1.6;margin:12px 0;font-size:16px}.modal .hint{font-size:12px;color:#6b5b4a;margin-top:14px;border-top:1px solid #d9c7a8;padding-top:10px}
.weapontable{display:grid;grid-template-columns:minmax(150px,1.5fr) 65px 90px 65px 95px 90px 65px 65px;border:1px solid #5a4631;border-radius:12px;overflow:auto}.armortable{display:grid;grid-template-columns:minmax(150px,1fr) 80px 80px 80px;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.shieldtable{display:grid;grid-template-columns:minmax(150px,1fr) 75px 75px 75px 75px;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.weapontable>div,.armortable>div,.shieldtable>div{padding:10px 9px;border-bottom:1px solid #443527;min-width:0}.weapontable input,.armortable input,.shieldtable input{width:100%;padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}.weapon-link{color:#f1cf96;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;cursor:pointer}@media(max-width:700px){.weapontable{font-size:13px;grid-template-columns:minmax(125px,1.5fr) 50px 70px 50px 75px 70px 50px 50px}.weapontable>div{padding:9px 6px}.tabs{overflow-x:auto;white-space:nowrap}}.inventorytable{display:grid;grid-template-columns:minmax(180px,1fr) 90px;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.artifacttable{display:grid;grid-template-columns:1fr;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.inventorytable>div,.artifacttable>div{padding:10px 9px;border-bottom:1px solid #443527;min-width:0}.inventorytable input,.artifacttable input,.cointable input{width:100%;padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}.cointable{display:grid;grid-template-columns:minmax(110px,1.2fr) repeat(3,minmax(70px,1fr));border:1px solid #5a4631;border-radius:12px;overflow:hidden}.cointable>div{padding:10px 9px;border-bottom:1px solid #443527;border-right:1px solid #443527;text-align:center}.cointable>div:nth-child(4n+1){text-align:left;font-weight:700}@media(max-width:700px){.cointable{grid-template-columns:95px repeat(3,65px);font-size:13px}.cointable>div{padding:8px 5px}}.simpletable{display:grid;grid-template-columns:1fr;border:1px solid #5a4631;border-radius:12px;overflow:hidden}.simpletable>div{padding:10px 12px;border-bottom:1px solid #443527}.simpletable input{width:100%;padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}.backgroundbox{border:1px solid #5a4631;border-radius:12px;background:#17130f;overflow:hidden}.backgroundbox summary{cursor:pointer;padding:12px;font:700 17px Georgia,serif;color:#f2dfc5}.backgroundcontent{padding:0 12px 12px;white-space:pre-wrap;line-height:1.55;color:#d8c7b0}.backgroundcontent textarea{width:100%;min-height:150px;resize:vertical;padding:10px;border-radius:9px;border:1px solid #624d37;background:#15110e;color:#fff;font:inherit}.healthwrap{margin:10px 0 2px}.healthbar{height:16px;border-radius:999px;background:#302923;border:1px solid #5a4631;overflow:hidden}.healthfill{height:100%;transition:width .25s ease,background .25s ease}.healthlabel{display:flex;justify-content:space-between;font-size:12px;color:#cdbb9f;margin-top:5px}.mini-stepper{display:inline-flex;align-items:center;gap:5px;justify-content:center}.mini-stepper button,.coin-stepper button{width:28px;height:28px;border-radius:7px;border:1px solid #6d563e;background:#2a2119;color:#f4dfbd;font-weight:800;font-size:17px;line-height:1;cursor:pointer}.mini-stepper .erfval{min-width:24px;text-align:center;font-weight:700}.coin-stepper{display:flex;align-items:center;justify-content:center;gap:5px}.coin-stepper .coinval{min-width:30px;font-weight:800}
/* v0.8.1 compact steppers */
.mini-stepper{gap:2px;white-space:nowrap}
.mini-stepper button{width:22px;height:24px;padding:0;border-radius:6px;font-size:14px}
.mini-stepper .erfval{min-width:18px;font-size:13px}
.coin-stepper{display:grid;grid-template-columns:22px minmax(20px,1fr) 22px;gap:3px;width:100%;max-width:92px;margin:auto}
.coin-stepper button{width:22px;height:26px;padding:0;border-radius:6px;font-size:14px}
.coin-stepper .coinval{min-width:0;text-align:center;font-size:14px}
@media(max-width:700px){.weapontable{grid-template-columns:minmax(110px,1.45fr) 42px 60px 42px 62px 60px 68px 46px}.weapontable>div{padding:8px 4px}.cointable{grid-template-columns:82px repeat(3,minmax(72px,1fr));width:100%}.cointable>div{padding:8px 3px}.coin-stepper{max-width:78px}}.statusvalue{flex:1;min-width:0;text-align:center}.statusvalue .value{margin-bottom:7px}.statusvalue .healthbar{height:10px;margin:0 auto;max-width:260px}.healthfill.h10{background:#236b38}.healthfill.h9{background:#2f8445}.healthfill.h8{background:#4b9b4f}.healthfill.h7{background:#79a943}.healthfill.h6{background:#b0ad35}.healthfill.h5{background:#d0a62f}.healthfill.h4{background:#d8842f}.healthfill.h3{background:#d76543}.healthfill.h2{background:#c94b3f}.healthfill.h1{background:#9f302f}
.grund-input{width:100%;padding:7px 8px;border-radius:8px;border:1px solid #806443;background:#120f0c;color:#fff;font:inherit}.field .grund-input{margin-top:5px}.basegrid .grund-input{text-align:center;padding:6px 4px}.derived .grund-input{text-align:center;background:#fff4df;color:#24160f;border-color:#d2b98f}.edit-actions-note{font-size:12px;color:#b8a793;margin-top:8px}.maxedit{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.maxedit .field{background:#541b1b}.maxedit .label{color:#f1d8c0}.maxedit input{margin-top:6px}@media(max-width:560px){.maxedit{grid-template-columns:1fr}}
.delete-row{width:30px;height:30px;border-radius:8px;border:1px solid #7d4b42;background:#3b1b18;color:#f4d8cf;font-size:20px;line-height:1;cursor:pointer}.delete-row:hover{background:#672820}@media(max-width:560px){.skilltable{grid-template-columns:minmax(0,1fr) 58px 74px!important}.skilltable[style*="52px"]{grid-template-columns:minmax(0,1fr) 58px 74px 42px!important}.skilltable input{min-width:0;padding:6px 4px}}.skill-fv-input{width:68px!important;max-width:68px;text-align:center;margin:0 auto;display:block} @media(max-width:560px){.skill-fv-input{width:58px!important;max-width:58px}}

.fv-input{width:68px!important;max-width:68px!important;text-align:center}.deletebtn{width:44px;height:44px;border-radius:12px;border:1px solid #8b443d;background:#4b1f1d;color:#f8e9df;font-size:24px;line-height:1;cursor:pointer}.confirmbtn{width:44px;height:44px;border-radius:12px;border:1px solid #3f7a4d;background:#1f5a31;color:#f1fff3;font-size:22px;line-height:1;cursor:pointer}.rowactions{display:flex;gap:6px;align-items:center;justify-content:center}.row-confirmed{animation:rowok .55s ease}@keyframes rowok{0%{background:#245c32}100%{background:transparent}}.editcol{width:48px}.simpletable:has(.editcol:not(.hidden)),.artifacttable:has(.editcol:not(.hidden)){grid-template-columns:minmax(0,1fr) 52px}.inventorytable:has(.editcol:not(.hidden)){grid-template-columns:minmax(0,1fr) 90px 52px}.langtable:has(.editcol:not(.hidden)){grid-template-columns:minmax(150px,1fr) 82px 110px 52px}.magictable:has(.editcol:not(.hidden)){grid-template-columns:minmax(150px,1fr) 82px 82px 52px}

/* v0.9.8 responsive edit-mode repair */
.skilltable:has(.editcol:not(.hidden)){grid-template-columns:minmax(180px,1fr) 76px 132px 52px}
.weapontable:has(.editcol){grid-template-columns:180px 70px 95px 70px 95px 95px 75px 132px 52px;min-width:864px;overflow:visible}
.armortable:has(.editcol){grid-template-columns:minmax(160px,1fr) 80px 80px 80px 52px}
.shieldtable:has(.editcol){grid-template-columns:minmax(160px,1fr) 75px 75px 132px 75px 52px}
.weapontable,.armortable,.shieldtable,.skilltable,.langtable,.magictable,.inventorytable,.artifacttable,.simpletable{align-items:stretch}
.weapontable>div,.armortable>div,.shieldtable>div,.skilltable>div,.langtable>div,.magictable>div,.inventorytable>div,.artifacttable>div,.simpletable>div{min-width:0}
.weapontable input,.armortable input,.shieldtable input,.skilltable input,.langtable input,.magictable input,.inventorytable input,.artifacttable input,.simpletable input{min-width:0;max-width:100%}
@media(max-width:700px){
  .sheet{overflow:hidden}
  .tabs{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .skilltable:has(.editcol:not(.hidden)){grid-template-columns:minmax(150px,1fr) 64px 112px 46px}
  .skilltable:has(.editcol:not(.hidden)) .deletebtn,
  .langtable:has(.editcol:not(.hidden)) .deletebtn,
  .magictable:has(.editcol:not(.hidden)) .deletebtn,
  .inventorytable:has(.editcol:not(.hidden)) .deletebtn,
  .artifacttable:has(.editcol:not(.hidden)) .deletebtn,
  .simpletable:has(.editcol:not(.hidden)) .deletebtn{width:38px;height:38px;font-size:21px}
  .skilltable:has(.editcol:not(.hidden))>div{padding:8px 5px}
  .skilltable .fv-input{width:56px!important;max-width:56px!important;padding-left:4px;padding-right:4px}
  .mini-stepper{gap:3px!important;justify-content:center}
  .mini-stepper button{width:30px!important;height:32px!important;min-width:30px!important;padding:0!important}
  .mini-stepper .erfval{min-width:20px!important}
  #weaponsPanel .section{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:3px}
  #weaponsPanel .weapontable{min-width:864px;width:max-content}
  #weaponsPanel .armortable:has(.editcol){min-width:560px;width:max-content}
  #weaponsPanel .shieldtable:has(.editcol){min-width:650px;width:max-content}
  .langtable:has(.editcol:not(.hidden)){grid-template-columns:minmax(150px,1fr) 64px 82px 46px;min-width:342px}
  .magictable:has(.editcol:not(.hidden)){grid-template-columns:minmax(150px,1fr) 64px 46px}
  .inventorytable:has(.editcol:not(.hidden)){grid-template-columns:minmax(150px,1fr) 70px 46px}
  header .bar{min-width:0}
  header .bar h1{min-width:0;white-space:normal;line-height:1.05}
  header .btn{padding:8px 10px}
}

/* v0.9.8 mobile edit layout: explicit body.editing, no :has dependency */
body.editing .skilltable{grid-template-columns:minmax(0,1fr) 68px 118px 48px}
body.editing .langtable{grid-template-columns:minmax(0,1fr) 68px 92px 48px}
body.editing .magictable{grid-template-columns:minmax(0,1fr) 68px 48px}
body.editing .simpletable,body.editing .artifacttable{grid-template-columns:minmax(0,1fr) 48px}
body.editing .inventorytable{grid-template-columns:minmax(0,1fr) 76px 48px}
body.editing .armortable{grid-template-columns:minmax(150px,1fr) 72px 72px 72px 48px}
body.editing .shieldtable{grid-template-columns:minmax(150px,1fr) 66px 66px 112px 66px 48px}
body.editing .weapontable{grid-template-columns:170px 62px 86px 62px 84px 84px 68px 112px 48px;min-width:776px}
body.editing .editcol{display:block!important}
@media(max-width:700px){
  body.editing .skilltable{grid-template-columns:minmax(0,1fr) 54px 96px 40px}
  body.editing .langtable{grid-template-columns:minmax(0,1fr) 50px 68px 40px;min-width:0!important;width:100%}
  body.editing .magictable{grid-template-columns:minmax(0,1fr) 54px 40px;min-width:0!important;width:100%}
  body.editing .simpletable,body.editing .artifacttable{grid-template-columns:minmax(0,1fr) 40px}
  body.editing .inventorytable{grid-template-columns:minmax(0,1fr) 58px 40px}
  body.editing .skilltable>div,body.editing .langtable>div,body.editing .magictable>div,
  body.editing .simpletable>div,body.editing .artifacttable>div,body.editing .inventorytable>div{padding:8px 5px}
  body.editing .deletebtn{width:34px!important;height:34px!important;font-size:20px!important;border-radius:9px}
  body.editing input{min-width:0!important;max-width:100%!important}
  body.editing .fv-input{width:100%!important;max-width:100%!important;text-align:center;padding-left:3px;padding-right:3px}
  body.editing .mini-stepper{gap:2px!important;white-space:nowrap}
  body.editing .mini-stepper button{width:25px!important;min-width:25px!important;height:30px!important;font-size:16px!important}
  body.editing .mini-stepper .erfval{min-width:18px!important;font-size:14px}
  #weaponsPanel .section{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body.editing #weaponsPanel .weapontable{min-width:776px;width:776px}
  body.editing #weaponsPanel .armortable{min-width:500px;width:500px}
  body.editing #weaponsPanel .shieldtable{min-width:570px;width:570px}
}
@media(max-width:560px){
  header{padding:8px 10px}
  header .bar{gap:7px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center}
  header .bar h1{font-size:16px!important;line-height:1.05;white-space:normal;overflow:hidden;margin:0}
  header .pill{display:none}
  header .btn{padding:7px 8px!important;font-size:13px;min-width:0}
  header #back{max-width:86px}
  header #cancelEditBtn{max-width:76px}
  header #editBtn{max-width:68px}
  .tabs{display:flex;width:100%;max-width:100%;overflow-x:auto;gap:7px;padding-bottom:4px;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:0 0 auto;padding:8px 11px}
  body.editing .skillhead{font-size:14px;padding-left:5px;padding-right:5px}
}

/* v0.9.8: stabilt spelläge för Vapen/Rustning/Sköld på mobil */
@media(max-width:700px){
  #weaponsPanel .section{max-width:100%;overflow-x:hidden;padding-bottom:3px}
  #weaponsPanel .weapontable,
  #weaponsPanel .armortable,
  #weaponsPanel .shieldtable{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;box-sizing:border-box}
  body:not(.editing) #weaponsPanel .weapontable{
    min-width:0;width:100%;
    grid-template-columns:minmax(118px,1.45fr) 44px 64px 44px 64px 64px 54px 92px;
  }
  body:not(.editing) #weaponsPanel .armortable{
    min-width:0;width:100%;grid-template-columns:minmax(150px,1fr) 58px 66px 58px;
  }
  body:not(.editing) #weaponsPanel .shieldtable{
    min-width:0;width:100%;grid-template-columns:minmax(120px,1fr) 48px 54px 92px 52px;
  }
  body:not(.editing) #weaponsPanel .weapontable>div,
  body:not(.editing) #weaponsPanel .armortable>div,
  body:not(.editing) #weaponsPanel .shieldtable>div{padding:8px 5px;box-sizing:border-box}
  body:not(.editing) #weaponsPanel .mini-stepper{gap:3px}
  body:not(.editing) #weaponsPanel .mini-stepper button{width:24px;height:26px;font-size:15px}
  body:not(.editing) #weaponsPanel .mini-stepper .erfval{min-width:18px}
  body.editing #weaponsPanel .section{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* v0.9.8 row confirmation */
body.editing .editcol{width:86px!important}
body.editing .skilltable{grid-template-columns:minmax(0,1fr) 54px 96px 86px}
body.editing .langtable{grid-template-columns:minmax(0,1fr) 50px 68px 86px}
body.editing .magictable{grid-template-columns:minmax(0,1fr) 54px 86px}
body.editing .simpletable,body.editing .artifacttable{grid-template-columns:minmax(0,1fr) 86px}
body.editing .inventorytable{grid-template-columns:minmax(0,1fr) 58px 86px}
body.editing .armortable{grid-template-columns:minmax(150px,1fr) 72px 72px 72px 86px}
body.editing .shieldtable{grid-template-columns:minmax(150px,1fr) 66px 66px 112px 66px 86px}
body.editing .weapontable{grid-template-columns:170px 62px 86px 62px 84px 84px 68px 112px 86px;min-width:814px}
@media(max-width:560px){body.editing .confirmbtn,body.editing .deletebtn{width:34px!important;height:34px!important;font-size:19px!important}.rowactions{gap:4px}}

/* v0.9.8 mobile skill width + explicit row-save feedback */
.save-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(12px);background:#1d6b38;color:#fff;border:1px solid #4aa568;border-radius:999px;padding:10px 16px;font-weight:800;box-shadow:0 10px 30px #0008;opacity:0;pointer-events:none;transition:.18s ease;z-index:3000}.save-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.confirmbtn.saved{background:#1d6b38!important;border-color:#55a96f!important;box-shadow:0 0 0 3px rgba(60,160,90,.18)}
@media(max-width:560px){
 body:not(.editing) #skillsPanel .skilltable{grid-template-columns:minmax(0,1fr) 54px 112px!important;width:100%;overflow:hidden}
 body:not(.editing) #skillsPanel .skilltable>div{padding-left:7px;padding-right:7px}
 body:not(.editing) #skillsPanel .mini-stepper{display:grid;grid-template-columns:28px 24px 28px;gap:2px;justify-content:center;width:84px;margin:0 auto}
 body:not(.editing) #skillsPanel .mini-stepper button{width:28px;height:32px;padding:0;font-size:17px}
 body:not(.editing) #skillsPanel .mini-stepper .erfval{min-width:24px;text-align:center}
}

/* v0.9.10 — Besvärjelser: egen stabil grid på mobil */
#spelltable{grid-template-columns:minmax(0,1fr) 90px 110px;width:100%;min-width:0;overflow:hidden}
body.editing #spelltable{grid-template-columns:minmax(0,1fr) 64px 104px 82px;width:100%;min-width:0;overflow:hidden}
#spelltable>div{min-width:0}
#spelltable input{width:100%;min-width:0;max-width:100%}
#spelltable .rowactions{width:100%;justify-content:center}
@media(max-width:560px){
  #spelltable{grid-template-columns:minmax(0,1fr) 54px 106px!important;width:100%!important;min-width:0!important;overflow:hidden!important}
  body.editing #spelltable{grid-template-columns:minmax(0,1fr) 54px 92px 78px!important;width:100%!important;min-width:0!important;overflow:hidden!important}
  #spelltable>div{padding:8px 5px!important;min-width:0!important}
  #spelltable .skillhead{padding:9px 5px!important}
  #spelltable .fv-input{width:48px!important;max-width:48px!important;margin:0 auto!important;display:block!important;text-align:center}
  #spelltable .mini-stepper{display:grid!important;grid-template-columns:26px 22px 26px!important;gap:2px!important;justify-content:center!important;width:78px!important;margin:0 auto!important}
  #spelltable .mini-stepper button{width:26px!important;min-width:26px!important;height:30px!important;padding:0!important}
  #spelltable .mini-stepper .erfval{min-width:22px!important;text-align:center!important}
  #spelltable .rowactions{display:flex!important;gap:4px!important;align-items:center!important;justify-content:center!important}
  #spelltable .confirmbtn,#spelltable .deletebtn{width:34px!important;height:34px!important;min-width:34px!important;padding:0!important}
}

/* v0.9.10 — ERF är speldata och döljs helt i redigeringsläge */
body.editing .skilltable{grid-template-columns:minmax(0,1fr) 68px 86px!important}
body.editing #spelltable{grid-template-columns:minmax(0,1fr) 68px 86px!important}
body.editing .weapontable{grid-template-columns:170px 62px 86px 62px 84px 84px 68px 86px!important;min-width:702px!important}
body.editing .shieldtable{grid-template-columns:minmax(150px,1fr) 66px 66px 66px 86px!important;min-width:0}
@media(max-width:560px){
 body.editing .skilltable{grid-template-columns:minmax(0,1fr) 58px 78px!important}
 body.editing #spelltable{grid-template-columns:minmax(0,1fr) 58px 78px!important}
 body.editing .weapontable{grid-template-columns:160px 58px 82px 58px 78px 78px 64px 78px!important;min-width:656px!important}
 body.editing .shieldtable{grid-template-columns:minmax(120px,1fr) 54px 58px 54px 78px!important}
}

/* v0.9.11 — sista mobilputs: språk, magi och header-actions */
.barspacer{flex:1}
.langtable .skillnum{text-align:center}
.langtable .fv-input{display:block;margin-left:auto;margin-right:auto;text-align:center}
@media(max-width:560px){
  /* Spara ska alltid ligga direkt intill Avbryt i headern. */
  header .bar{grid-template-columns:auto minmax(0,1fr) auto auto!important}
  header .barspacer{display:none!important}
  header #cancelEditBtn,header #editBtn{justify-self:end;white-space:nowrap}
  header #cancelEditBtn{max-width:none!important}
  header #editBtn{max-width:none!important}

  /* Språk: ge namnet plats men håll Tala tydligt centrerat under sin rubrik. */
  body:not(.editing) #langtable{grid-template-columns:minmax(0,1fr) 72px 104px!important;width:100%!important}
  body.editing #langtable{grid-template-columns:minmax(0,1fr) 62px 92px 78px!important;width:100%!important;min-width:0!important}
  #langtable>div{min-width:0!important}
  #langtable .skillnum{display:flex;align-items:center;justify-content:center;text-align:center!important}
  #langtable .fv-input{width:52px!important;max-width:52px!important;margin:0 auto!important;text-align:center!important}

  /* Magi i redigeringsläge: varje sektion får egen kontrollerad sidscroll om den behövs. */
  body.editing #magicPanel .section{max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  body.editing #spelltable{grid-template-columns:minmax(210px,1fr) 62px 78px!important;min-width:390px!important;width:390px!important;overflow:visible!important}
  body.editing #schooltable{grid-template-columns:minmax(210px,1fr) 62px 78px!important;min-width:390px!important;width:390px!important}
  body.editing #familiarisTable{grid-template-columns:minmax(240px,1fr) 78px!important;min-width:360px!important;width:360px!important}
}


.homehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.homehead p{margin:0}.addcharbtn{white-space:nowrap}.charcard{position:relative}.char-delete{position:absolute;right:10px;top:10px;width:34px;height:34px;border-radius:9px;border:1px solid rgba(220,90,75,.55);background:rgba(95,24,20,.72);color:#ffd7d0;font-size:23px;line-height:28px;cursor:pointer;z-index:2}.char-delete:hover{background:#8b2d26}.charcard:hover .char-delete{border-color:#e07a6d}@media(max-width:600px){.homehead{align-items:stretch;flex-direction:column}.addcharbtn{align-self:flex-start}.char-delete{width:38px;height:38px}}

/* v0.11 character management, portraits and compact derived values */
.derived .field{justify-content:flex-start!important;gap:14px}.derived .field .val{margin-left:auto!important;min-width:54px!important;width:auto!important;max-width:120px}.derived .grund-input{margin-left:auto!important;width:110px!important;max-width:42%!important;flex:0 0 110px!important}
.portrait{position:relative}.portrait-edit-btn{position:absolute;right:10px;bottom:10px;z-index:2;border:1px solid #a98452;background:#2b2119e8;color:#fff;border-radius:10px;padding:9px 11px;font-weight:700;cursor:pointer}.portrait-edit-btn:hover{background:#493521}.portrait-file{display:none}
.avatar{overflow:hidden;flex:0 0 58px}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.charcard .avatar{border:1px solid #59442e}
.appconfirm{position:fixed;inset:0;z-index:12000;background:#000b;display:grid;place-items:center;padding:18px}.appconfirmbox{width:min(420px,100%);background:linear-gradient(145deg,#2b2119,#17120f);border:1px solid #765b3d;border-radius:18px;box-shadow:0 22px 70px #000b;padding:20px;color:#f5eadc}.appconfirmbox h2{font:700 22px Georgia,serif;color:#f1dcc0;margin:0 0 10px}.appconfirmbox p{margin:0;color:#d2c0a9;line-height:1.45}.appconfirmactions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.appconfirm .danger{background:#711f1c;border-color:#a74c43}.appconfirm .primary{background:#76542f}.appconfirm .btn{min-width:92px}
@media(max-width:560px){.derived .field{min-height:70px!important}.derived .grund-input{width:92px!important;flex-basis:92px!important;max-width:38%!important}.portrait-edit-btn{right:8px;bottom:8px}.appconfirmbox{padding:18px}.appconfirmactions .btn{flex:1}}

/* v0.11.1 – tydligare rollfigurskort på startsidan */
#home .charcard{
  background:linear-gradient(145deg,#30271f 0%,#292018 55%,#241b15 100%);
  border-color:#70583d;
  box-shadow:0 12px 34px #0008,inset 0 1px 0 rgba(255,225,185,.035);
}
#home .charcard:hover{background:linear-gradient(145deg,#382d23 0%,#2f251c 55%,#291f18 100%);border-color:#8a6947}

/* v0.12 — grafiskt lyft av startsidan */
#home{max-width:820px;margin:0 auto;padding-top:4px}
#home .homehead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:2px 0 22px;padding-bottom:18px;border-bottom:1px solid rgba(198,154,88,.22)}
#home .homehead .muted{font:400 20px Georgia,serif;color:#c9b79e}
#home .addcharbtn{background:linear-gradient(180deg,#792723,#5c1b19);border:1px solid #bd8952;color:#fff4e5;font:700 16px Georgia,serif;padding:11px 17px;box-shadow:inset 0 1px 0 rgba(255,225,185,.12),0 7px 18px #0005}
#home .addcharbtn:hover{background:linear-gradient(180deg,#8b302a,#69201d);border-color:#d2a065}
#home .cards{display:grid;grid-template-columns:1fr;gap:14px}
#home .charcard{min-height:154px;padding:18px 72px 18px 18px;display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:22px;background:radial-gradient(circle at 15% 10%,rgba(120,85,48,.13),transparent 35%),linear-gradient(135deg,#2e251d 0%,#241c16 62%,#1c1612 100%);border:1px solid #806344;border-radius:19px;box-shadow:0 13px 34px #0008,inset 0 1px 0 rgba(255,226,186,.05);overflow:hidden;isolation:isolate;transition:.16s ease}
#home .charcard:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;opacity:.12;background-image:repeating-linear-gradient(25deg,rgba(255,255,255,.025) 0 1px,transparent 1px 5px)}
#home .charcard:hover{transform:translateY(-1px);background:radial-gradient(circle at 15% 10%,rgba(135,95,52,.17),transparent 35%),linear-gradient(135deg,#352a20,#2a2018 62%,#211914);border-color:#a27b4e}
#home .charportrait{width:112px;height:112px;flex:none;border-radius:50%;border:2px solid #a57b45!important;background:#17120f;box-shadow:0 0 0 4px #1b1510,0 5px 18px #0009;overflow:hidden;font-size:42px}
#home .charportrait img{width:100%;height:100%;object-fit:cover;display:block}
#home .charinfo{min-width:0;align-self:center}
#home .charinfo h2{font:700 27px Georgia,serif;color:#fff0da;margin:0 0 10px;line-height:1.08;text-shadow:0 1px 1px #000}
#home .charmeta{font-size:16px;color:#c4b099;margin-bottom:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#home .charstats{display:flex;gap:24px;align-items:center;color:#f0dfcc;font-size:18px;font-variant-numeric:tabular-nums}
#home .charstats span{white-space:nowrap}#home .charstats b{font-weight:800;color:#fff7ed}
#home .char-delete{right:15px;top:15px;width:42px;height:42px;border-radius:11px;border:1px solid #a84a3e;background:linear-gradient(#6f211e,#541714);color:#ffe4dc;font-size:27px;line-height:35px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 5px 12px #0006}
#home .char-delete:hover{background:linear-gradient(#873029,#661c18);border-color:#cf695a}
@media(max-width:600px){
 #home{padding-top:0}
 #home .homehead{align-items:flex-start;gap:12px;margin-bottom:16px;padding-bottom:16px}
 #home .homehead .muted{font-size:18px}
 #home .addcharbtn{font-size:15px;padding:10px 14px}
 #home .charcard{min-height:132px;padding:14px 58px 14px 13px;grid-template-columns:86px minmax(0,1fr);gap:15px;border-radius:17px}
 #home .charportrait{width:86px;height:86px;font-size:34px;box-shadow:0 0 0 3px #1b1510,0 4px 14px #0008}
 #home .charinfo h2{font-size:23px;margin-bottom:7px}
 #home .charmeta{font-size:14px;margin-bottom:9px}
 #home .charstats{gap:15px;font-size:16px}
 #home .char-delete{right:10px;top:10px;width:38px;height:38px;font-size:24px}
}
@media(max-width:380px){#home .charcard{grid-template-columns:76px minmax(0,1fr);gap:12px;padding-left:11px}.charportrait{width:76px!important;height:76px!important}#home .charinfo h2{font-size:21px}#home .charstats{gap:10px;font-size:15px}}


/* v0.13 — sammanhållet grafiskt lyft av hela rollformuläret */
#view .layout{gap:18px}
#view .box{background:radial-gradient(circle at 12% 0%,rgba(128,88,48,.08),transparent 28%),linear-gradient(145deg,#241c16,#18130f 72%);border-color:#755a3d;box-shadow:0 16px 40px #0008,inset 0 1px 0 rgba(255,228,191,.045)}
#view .sheet{padding:18px}
#view .tabs{gap:6px;padding:5px;background:#120f0c;border:1px solid #4d3a29;border-radius:14px;box-shadow:inset 0 1px 8px #0008}
#view .tab{flex:1;background:transparent;border-color:transparent;border-radius:9px;color:#c9b69d;font:700 14px Georgia,serif;padding:10px 11px}
#view .tab:hover{background:#2b2119;color:#f4dfc5}
#view .tab.active{background:linear-gradient(180deg,#7b2925,#5d1c1a);border:1px solid #a8644b;color:#fff4e7;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 3px 10px #0007}
#view .hero{gap:20px;align-items:stretch;margin-top:4px}
#view .portrait{border:2px solid #8e6840;background:#17120f;box-shadow:0 0 0 4px #17120f,0 10px 28px #0009}
#view .identity{align-content:start;gap:9px}
#view .field{background:linear-gradient(145deg,#211a14,#18130f);border-color:#5e4832;box-shadow:inset 0 1px 0 rgba(255,228,190,.025)}
#view .field.name{background:linear-gradient(145deg,#302319,#211812);border-color:#765a3d}
#view .field.name .val{font:700 26px Georgia,serif;color:#fff0dc}
#view .label{color:#bda98f}
#view .section{margin-top:22px;padding-top:2px}
#view .section-title{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:#f5e3ca;font-size:20px}
#view .section-title:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,#7d5e3d,transparent)}
#view .basegrid,#view .skilltable,#view .langtable,#view .magictable,#view .simpletable,#view .weapontable,#view .armortable,#view .shieldtable,#view .inventorytable,#view .artifacttable,#view .cointable{background:#15110e;border-color:#665039;box-shadow:inset 0 1px 10px #0005}
#view .basegrid>div,#view .skilltable>div,#view .langtable>div,#view .magictable>div,#view .simpletable>div,#view .weapontable>div,#view .armortable>div,#view .shieldtable>div,#view .inventorytable>div,#view .artifacttable>div,#view .cointable>div{border-color:#3d3024}
#view .head,#view .skillhead{background:linear-gradient(180deg,#70231f,#571a18);color:#f7e6d2;text-shadow:0 1px #000;border-color:#7b342b!important}
#view .derived{gap:10px}
#view .derived .field{background:linear-gradient(135deg,#64211f,#4c1817);border-color:#844039;min-height:64px}
#view .derived .field .val{background:#f1dfc1;border:1px solid #c8aa7d;box-shadow:inset 0 1px 4px #8b6b3a33;min-width:66px;max-width:110px}
#view .backgroundbox{background:linear-gradient(145deg,#1d1712,#15110e);border-color:#624c35}
#view .backgroundbox summary{background:#211912;border-bottom:1px solid #493827}
#view .side{background:linear-gradient(160deg,#2b2119,#18130f 76%);border-color:#7a5b3c}
#view .side h2{color:#f6e3c9;border-bottom:1px solid #59432d;padding-bottom:9px}
#view .quickstat{background:linear-gradient(145deg,#211912,#15110e);border-color:#604932;box-shadow:inset 0 1px 0 rgba(255,230,194,.03)}
#view .stepper button,#view .mini-stepper button,#view .coin-stepper button{background:linear-gradient(#3a2b20,#271d17);border-color:#73583d;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
#view .smallbtn{background:linear-gradient(#3b2b20,#281d17);border-color:#806040;color:#f5e3cc;font-weight:700}
#view .smallbtn:hover{border-color:#b28250;background:linear-gradient(#493426,#302119)}
#view input,#view textarea{box-shadow:inset 0 2px 6px #0007}
#view .grund-input,#view .skillrow input,#view .langtable input,#view .magictable input,#view .weapontable input,#view .armortable input,#view .shieldtable input,#view .inventorytable input,#view .artifacttable input,#view .simpletable input{background:#100d0b;border-color:#70563d;color:#fff3e2}
#view .note{border-top:1px solid #493827;padding-top:10px;line-height:1.45}
#view .skill-link,#view .weapon-link{color:#e8c48f;text-decoration-color:#9d7447}
#view .healthbar{background:#0d0b09;border-color:#4f3d2c;box-shadow:inset 0 2px 5px #000}
header .bar h1{font-family:Georgia,serif;color:#f7e5cf}
header{border-bottom-color:#5d452f;box-shadow:0 5px 18px #0005}
header .btn{background:linear-gradient(#33261d,#211812);border-color:#73573b;color:#f6e5d0}
header #editBtn{font-size:20px;min-width:42px}
.appconfirmbox{background:linear-gradient(145deg,#2b2119,#17120f)!important;border:1px solid #8a6846!important;box-shadow:0 24px 70px #000c!important;color:#f4e3cf!important}
.appconfirmbox h2{font-family:Georgia,serif;color:#f7e3c8!important}
.appconfirmbox p{color:#d3c0a7!important}
@media(max-width:820px){#view .layout{gap:12px}#view .side{order:-1}#view .quick{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){
 #view .sheet{padding:10px;border-radius:15px}
 #view .tabs{margin:0 0 12px;padding:4px;gap:3px;border-radius:12px}
 #view .tab{flex:0 0 auto;padding:9px 12px;font-size:13px}
 #view .side{padding:11px;border-radius:15px}
 #view .side h2{font-size:18px;margin-bottom:9px}
 #view .quick{grid-template-columns:1fr 1fr;gap:8px}
 #view .quickstat{padding:8px}
 #view .hero{gap:12px}
 #view .portrait{min-height:210px;border-radius:16px}
 #view .identity{gap:7px}
 #view .field{min-height:57px;padding:9px}
 #view .field.name .val{font-size:23px}
 #view .section{margin-top:18px}
 #view .section-title{font-size:18px;margin-bottom:8px}
 #view .basegrid>div,#view .skilltable>div,#view .langtable>div,#view .magictable>div,#view .simpletable>div,#view .weapontable>div,#view .armortable>div,#view .shieldtable>div,#view .inventorytable>div,#view .artifacttable>div,#view .cointable>div{padding-top:9px;padding-bottom:9px}
 #view .derived .field{min-height:58px}
}


/* v0.14 — administrativ grunddata */
.adminbtn{font-size:20px;min-width:44px;padding:7px 11px;color:#d8b979}.mobile-home-version{display:none}
.adminpage{max-width:980px;margin:0 auto;display:grid;gap:18px}.adminhead,.adminsectionhead{display:flex;align-items:center;justify-content:space-between;gap:12px}.adminhead h2,.adminsectionhead h2{margin:0}.adminbox{background:linear-gradient(145deg,rgba(54,42,32,.94),rgba(31,25,21,.96));border:1px solid rgba(184,145,82,.42);border-radius:14px;padding:16px;box-shadow:0 8px 24px rgba(0,0,0,.24)}
.admintable{display:grid;grid-template-columns:minmax(130px,1fr) minmax(170px,1.4fr) 90px 86px;gap:1px;background:rgba(176,135,73,.25);border:1px solid rgba(176,135,73,.32);border-radius:10px;overflow:hidden;margin-top:12px}.admintable>div{background:#241d18;padding:10px;min-width:0;overflow-wrap:anywhere}.admintable .ahead{background:#64251f;color:#f1dfbb;font-weight:700}.adminactions{display:flex;gap:6px;justify-content:center}.adminactions button{min-width:32px}.campaigntable{grid-template-columns:minmax(130px,1fr) minmax(140px,1fr) minmax(140px,1fr) 86px}.currentcampaign{margin-top:18px;padding-top:15px;border-top:1px solid rgba(184,145,82,.28);display:flex;align-items:center;gap:12px}.currentcampaign label{font-weight:700;color:#e6d2a8}.currentcampaign select,.admineditor input,.admineditor select{background:#171310;color:#f3e7cf;border:1px solid #80643d;border-radius:8px;padding:9px 10px;max-width:100%}.currentcampaign select{min-width:220px}.adminform{display:grid;gap:12px}.adminform label{display:grid;gap:5px;color:#d8c39c;font-weight:700}.admincheck{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px}.admincheck input{width:auto}.memberpick{border:1px solid rgba(184,145,82,.28);border-radius:9px;padding:9px;display:grid;gap:7px;max-height:180px;overflow:auto}.memberpick label{display:flex;align-items:center;gap:8px;font-weight:400}.memberpick input{width:auto}.adminformactions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.ownersection{margin-top:14px;padding-top:14px;border-top:1px solid rgba(184,145,82,.28)}.ownersection select{background:#171310;color:#f3e7cf;border:1px solid #80643d;border-radius:8px;padding:8px 10px;min-width:220px}.ownerdisplay{font-size:15px;color:#e6d2a8}.ownerdisplay b{color:#f3e7cf}.currentcampaigngm{color:#cdbb99;font-size:14px}.currentcampaigngm b{color:#f1dfbb}.charowner{margin-top:7px;color:#cdbb99;font-size:14px}.charowner b{color:#ead9b8;font-weight:700}
@media(max-width:650px){.adminpage{gap:12px}.adminhead{align-items:flex-start}.adminbox{padding:12px}.admintable{grid-template-columns:minmax(100px,1fr) 80px 72px}.admintable .emailcol,.admintable>div.emailcol{display:none}.campaigntable{grid-template-columns:minmax(110px,1fr) minmax(90px,.9fr) 72px}.campaigntable .slcol,.campaigntable>div.slcol{display:none}.currentcampaign{display:grid}.currentcampaign select{width:100%;min-width:0}.adminbtn{order:3}}

/* v0.14.1 — mobil snabbstatus + lösenordsvisning */
.passwordrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.passwordrow label{min-width:0}.passwordtoggle{height:39px;min-width:46px;margin-bottom:0;font-size:18px;padding:6px 10px}
@media(max-width:560px){
 #view .quick{grid-template-columns:1fr;gap:8px}
 #view .quickstat{padding:9px 10px}
 #view .quickstat .stepper{grid-template-columns:46px minmax(0,1fr) 46px;gap:9px;margin-top:5px}
 #view .quickstat .stepper button{height:44px;font-size:22px}
 #view .quickstat .value{font-size:21px;white-space:nowrap}
 #view .quicktop{min-height:20px}
}
.calculated-value{display:inline-flex;min-width:42px;justify-content:center;font-weight:800;color:var(--gold,#d8bd91)}body.editing .calculated-value{opacity:.9}
.projectiletable{display:grid;grid-template-columns:minmax(0,1fr) 112px auto;align-items:center;gap:0}.projectiletable>div{padding:9px 7px;border-bottom:1px solid rgba(184,137,83,.18)}body:not(.editing) .projectiletable{grid-template-columns:minmax(0,1fr) 128px}body:not(.editing) .projectiletable .editcol{display:none}

.hero-stats{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:10px;margin-top:12px}.hero-stat-box{background:#17130f;border:1px solid #574530;border-radius:12px;padding:10px 12px}.hero-stepper{margin-top:7px;grid-template-columns:36px 54px 36px;justify-content:start}.hero-stepper button{height:36px}@media(max-width:560px){.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stepper{grid-template-columns:34px minmax(36px,1fr) 34px;justify-content:stretch}}
.magic-limit{margin:8px 0 2px;color:#a99784;font-size:13px;line-height:1.3}.magic-limit b{color:#d8c2a7;font-weight:700}.total-bep{margin-top:12px;padding:10px 12px;border:1px solid rgba(177,132,75,.45);border-radius:10px;background:rgba(0,0,0,.16);font-size:14px;color:#b9a58d}.total-bep b{color:#ead7b9;font-size:16px}.bonus-exp-row{grid-column:1/-1;display:flex!important;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px!important;background:rgba(177,132,75,.06)}.bonus-exp-row .label{font-weight:700;color:#d8c2a7}.bonus-exp-row .mini-stepper{margin-left:auto}.dataactions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.dataactions .btn{min-height:44px}@media(max-width:560px){.dataactions{display:grid;grid-template-columns:1fr}.dataactions .btn{width:100%}}

/* v0.15.0 — Alea Crusaders lokal inloggningssida */
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 22%,rgba(28,78,119,.42),transparent 34%),linear-gradient(180deg,#07121d 0%,#03080d 100%);position:fixed;inset:0;z-index:5000;overflow:auto}.login-card{width:min(430px,100%);background:linear-gradient(180deg,rgba(22,31,40,.97),rgba(9,14,20,.98));border:1px solid rgba(194,153,86,.55);border-radius:18px;padding:26px;box-shadow:0 24px 80px rgba(0,0,0,.55),inset 0 0 0 1px rgba(255,255,255,.025)}.login-logo{display:block;width:min(290px,78vw);aspect-ratio:1/1;object-fit:cover;margin:-12px auto -30px;filter:drop-shadow(0 12px 24px rgba(0,0,0,.5))}.login-title{text-align:center;font-family:Georgia,serif;letter-spacing:.08em;color:#ead7ad;margin:0;font-size:28px}.login-sub{text-align:center;color:#aeb8c2;margin:7px 0 22px}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:6px;color:#d7c7a5;font-size:13px;font-weight:700}.login-form input{width:100%;box-sizing:border-box;background:#0b1219;color:#f2eadb;border:1px solid #46515b;border-radius:9px;padding:12px 13px;font:inherit}.login-password{display:grid;grid-template-columns:1fr 46px;gap:8px}.login-password button{border:1px solid #46515b;border-radius:9px;background:#151d25;color:#ead7ad;font-size:18px}.login-submit{margin-top:4px;width:100%;padding:12px;border:1px solid #b48a4d;border-radius:9px;background:linear-gradient(#7b2630,#541922);color:#fff3df;font-weight:800;font-size:16px;cursor:pointer}.login-error{min-height:20px;text-align:center;color:#f2a7a7;font-size:13px}.login-setup{border-top:1px solid rgba(194,153,86,.25);margin-top:16px;padding-top:16px;text-align:center}.login-setup p{color:#aeb8c2;font-size:13px}.login-setup .btn{width:100%}.session-user{font-size:12px;color:#d7c7a5;white-space:nowrap}.logoutbtn{padding:7px 10px!important}@media(max-width:620px){.login-card{padding:20px 18px}.login-logo{margin:-8px auto -24px;width:min(260px,80vw)}.login-title{font-size:24px}.session-user{display:none}}

/* v0.15.3 — mobil header: egen synlig Admin-knapp utan överlappning */
@media(max-width:650px){
  header .bar{display:flex!important;grid-template-columns:none!important;flex-wrap:wrap;gap:7px!important;align-items:center!important;min-width:0}
  header .bar h1{order:10;flex:1 1 120px;min-width:100px;font-size:16px!important;line-height:1.05;white-space:normal;overflow:hidden}
  header .barspacer,header .pill,header .session-user{display:none!important}
  header #back{order:5;flex:0 0 auto;max-width:86px}
  header #adminBtn{order:20;flex:0 0 42px;align-items:center;justify-content:center;position:static!important;z-index:auto!important;margin:0!important;font-size:21px;padding:7px!important}
  header #adminBtn:not(.hidden){display:inline-flex!important}
  header #logoutBtn{order:30;flex:0 0 auto;white-space:nowrap;position:static!important;margin:0!important}
  header #cancelEditBtn{order:40;flex:0 0 auto}
  header #editBtn{order:50;flex:0 0 44px;padding:7px!important}
}

/* v0.19.0 — centralt färdighetsregister */
.adminskilltable{display:grid;grid-template-columns:minmax(150px,1.5fr) 70px 120px 80px 80px 90px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminskilltable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminskilltable .rule-name{font-weight:800;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;cursor:pointer}
.rule-description{white-space:pre-line;line-height:1.6}
.rule-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rule-editor-grid label{font-size:12px;color:#6b5b4a;font-weight:800}.rule-editor-grid input,.rule-editor-grid select,.rule-editor-grid textarea{width:100%;margin-top:5px;padding:9px;border:1px solid #9b805d;border-radius:8px;background:#fffaf0;color:#2a2119}.rule-editor-grid .wide{grid-column:1/-1}.rule-editor-grid textarea{min-height:180px;resize:vertical}.rule-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.skill-picker-list{display:grid;gap:10px}.skill-picker-list select,.skill-picker-list input{width:100%;padding:10px;border:1px solid #9b805d;border-radius:8px;background:#fffaf0;color:#2a2119}
@media(max-width:700px){.adminskilltable{grid-template-columns:170px 60px 105px 72px 60px 78px;font-size:13px}.adminskilltable>div{padding:9px 6px}.rule-editor-grid{grid-template-columns:1fr}}
.adminweapontable{display:grid;grid-template-columns:74px minmax(150px,1.5fr) 100px minmax(120px,1.1fr) 74px 82px 92px minmax(110px,1fr) 90px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminweapontable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminweapontable .ahead{background:#6d1e1e;font-weight:800}
.adminweapontable .admin-weapon-empty{grid-column:1/-1;color:#b9a68f;padding:14px}
.weapon-rule-editor textarea{min-height:120px}
.weapon-choice-stack{display:grid;gap:5px;width:100%;min-width:0}
.weapon-choice-stack select,.weapon-choice-stack input{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.weapon-choice-stack select{padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}
.rowactions{gap:4px;flex-wrap:nowrap}
.rowactions .smallbtn{min-width:30px;padding-left:5px;padding-right:5px}
.slp-weapon-actions{display:flex;gap:4px;align-items:center;justify-content:flex-end;min-width:0}
.slp-weapon-actions .smallbtn,.slp-weapon-actions .deletebtn{min-width:30px;padding-left:5px;padding-right:5px}
#skillModal.weapon-instance-modal{z-index:1400}
.weapon-instance-editor .rule-editor-grid{margin-top:12px}
.weapon-instance-editor .rule-editor-grid input,.weapon-instance-editor .rule-editor-grid select{box-sizing:border-box}

@media(max-width:700px){
 .adminweapontable{grid-template-columns:70px 160px 90px 120px 64px 76px 82px 105px 78px;font-size:13px}
 .adminweapontable>div{padding:9px 6px}
}

.adminmaptable{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(130px,1fr) 90px 160px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminmaptable>div,.adminsitetable>div,.adminlocationtable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminsitetable{display:grid;grid-template-columns:90px minmax(150px,1fr) 110px 120px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminlocationtable{display:grid;grid-template-columns:80px minmax(140px,1fr) minmax(130px,1fr) 110px 120px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminmaptable .ahead,.adminsitetable .ahead,.adminlocationtable .ahead{background:#6d1e1e;font-weight:800}
.admin-map-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.admin-map-actions .smallbtn,.admin-map-actions .deletebtn{margin:0}.admin-map-toggle.active{background:#7a572f;border-color:#d0a764;color:#fff3d9;box-shadow:inset 0 0 0 1px #d0a76455}.admin-map-visible{display:inline-block;padding:3px 7px;border-radius:999px;background:#365b3b;color:#e5f4e7;font-size:11px;font-weight:800}.admin-map-hidden{display:inline-block;padding:3px 7px;border-radius:999px;background:#4a4036;color:#d4c7b8;font-size:11px;font-weight:800}
.admin-map-current{display:inline-block;padding:3px 7px;border-radius:999px;background:#6f522f;color:#f6dfb5;font-size:11px;font-weight:800}
.admin-subsection{margin-top:16px;padding-top:14px;border-top:1px solid rgba(184,145,82,.28)}.admin-subsection-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.admin-subsection-head h3{margin:0;font:700 17px Georgia,serif;color:#ecd8b8}
.adminform select{width:100%;padding:9px;border:1px solid #9b805d;border-radius:8px;background:#fffaf0;color:#2a2119}
.campaigncontenttable{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(110px,1fr) 90px 110px;border:1px solid #5a4631;border-radius:12px;overflow:auto}.campaigncontenttable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}.campaigncontenttable .ahead{background:#6d1e1e;font-weight:800}.content-badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#4b3928;color:#ead7b8;font-size:11px;font-weight:800}.content-badge.visible{background:#365b3b;color:#e5f4e7}.location-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.location-content-grid .wide{grid-column:1/-1}.location-content-grid label{display:grid;gap:6px;font-weight:800;color:#5e4a35}.location-content-grid textarea,.location-content-grid input,.location-content-grid select{width:100%;padding:9px;border:1px solid #9b805d;border-radius:8px;background:#fffaf0;color:#2a2119}.location-content-grid textarea{min-height:130px;resize:vertical}.location-link-group{border:1px solid #cbb28a;border-radius:10px;background:#fff7e8;padding:10px;max-height:220px;overflow:auto}.location-link-group h4{margin:0 0 8px;color:#6d1e1e;font:700 15px Georgia,serif}.location-link-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#34291f;margin:5px 0}.location-link-group input{width:auto}.location-assets{display:grid;gap:8px}.location-asset-row{display:grid;grid-template-columns:72px minmax(0,1fr) 42px;gap:9px;align-items:center;border:1px solid #cfb995;border-radius:10px;padding:7px;background:#fff8eb}.location-asset-thumb{width:72px;height:54px;object-fit:cover;border-radius:7px;background:#1a1510}.content-empty{padding:12px;color:#8d775e;font-style:italic}.content-schema-note{padding:10px;border:1px dashed #8c6f4d;border-radius:10px;color:#d9c19c;background:#2c221a}
@media(max-width:700px){.campaigncontenttable{grid-template-columns:150px 115px 72px 100px;font-size:13px}.location-content-grid{grid-template-columns:1fr}.location-content-grid .wide{grid-column:auto}}
@media(max-width:700px){.adminmaptable{grid-template-columns:150px 130px 80px 150px;font-size:13px}.adminsitetable{grid-template-columns:80px 145px 100px 115px;font-size:13px}.adminlocationtable{grid-template-columns:70px 135px 125px 100px 115px;font-size:13px}}
.map-area-editor{width:min(1100px,96vw);max-height:92vh}.map-area-editor .modalhead{position:sticky;top:-22px;background:#fffaf0;padding-top:22px;z-index:4}
.map-area-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:12px 0}.map-area-toolbar select{flex:1;min-width:220px;padding:9px;border:1px solid #9b805d;border-radius:8px;background:#fffaf0;color:#2a2119}
.map-area-notice{font-size:13px;color:#6b5b4a;margin:6px 0 10px}.map-area-notice.error{color:#9a2520;font-weight:800}
.map-area-canvas{position:relative;width:100%;background:#17130f;border:1px solid #71583d;border-radius:12px;overflow:hidden;touch-action:none}.map-area-canvas img{display:block;width:100%;height:auto;user-select:none;-webkit-user-drag:none}.map-area-svg{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair}
.map-editor-zone{fill:rgba(198,154,88,.10);stroke:#c69a58;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:auto;cursor:pointer}
/* Smart Polygon Editor: strong, zoom-independent editing affordances */
.map-area-svg .map-editor-zone{stroke:#f1e4c8;stroke-width:2;fill:rgba(198,154,88,.11)}
.map-area-svg .map-editor-zone.selected{stroke:#ffdb63;stroke-width:3;fill:rgba(255,205,86,.16)}
.map-area-svg .map-editor-vertex{fill:#fff;stroke:#193645;stroke-width:2.5;cursor:grab;pointer-events:all;filter:drop-shadow(0 1px 2px #111)}
.map-area-svg .map-editor-vertex.shared{fill:#3cdeff;stroke:#fff}
.map-area-svg .map-editor-vertex:hover{fill:#ffdb63;stroke:#142d3d;stroke-width:3;cursor:grab}
.map-area-svg .map-editor-vertex:active{cursor:grabbing}
.map-area-svg .map-editor-hole{fill:rgba(43,205,224,.35);stroke:#55f1ff;stroke-width:3;stroke-dasharray:8 4;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:all}
.map-area-svg .map-editor-hole:hover{fill:rgba(43,205,224,.60);stroke:#fff}

.map-editor-zone.overlap{fill:rgba(181,47,40,.18);stroke:#d45449}.map-editor-draft{fill:rgba(235,203,132,.18);stroke:#f0cf85;stroke-width:2.5;vector-effect:non-scaling-stroke;pointer-events:none}.map-editor-draft.overlap{fill:rgba(190,37,30,.25);stroke:#e15349}.map-editor-point{fill:#f7e4b3;stroke:#402b18;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.map-area-list{margin-top:12px;border:1px solid #c6ad84;border-radius:10px;overflow:hidden}.map-area-list-row{display:grid;grid-template-columns:84px minmax(160px,1fr) 118px 48px;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #ddccb0;color:#2a2119}.map-area-list-row select{width:100%;min-width:0;padding:7px 8px;border:1px solid #b89d70;border-radius:8px;background:#fffaf0;color:#2a2119}.map-area-list-row:last-child{border-bottom:0}.map-area-list-row .muted{color:#765f49}.map-area-empty{padding:12px;color:#765f49}.map-area-list-row button{justify-self:end}
@media(max-width:650px){.map-area-editor{width:100%;padding:14px}.map-area-toolbar{align-items:stretch}.map-area-toolbar select{width:100%;flex-basis:100%}.map-area-list-row{grid-template-columns:68px minmax(122px,1fr) 104px 40px;font-size:12px}.map-status-pill{width:28px;height:28px}}

/* v0.19.0 – Tärningsskålen */
.dice-nav,.map-nav{font-size:18px;min-width:44px}.dicepage{max-width:920px;margin:0 auto}.dicehead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.dicehead h2{margin:0;font:700 26px Georgia,serif}.dice-tray{position:relative;min-height:390px;border:14px solid #5a321d;border-radius:24px;background:radial-gradient(ellipse at 45% 38%,#24483b 0,#173329 42%,#0d211b 100%);box-shadow:inset 0 0 0 4px #9a6b39,inset 0 0 45px #000c,0 14px 34px #0008;overflow:hidden;padding:22px;display:flex;align-items:center;justify-content:center}.dice-tray:before{content:'';position:absolute;inset:8px;border:1px solid #b08a52aa;border-radius:12px;pointer-events:none}.dice-tray:after{content:'✦';position:absolute;font-size:120px;color:#c6a05b0f;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.dice-stage{position:relative;z-index:1;width:100%;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center}.tray-empty{position:relative;z-index:1;color:#d7c7ad99;text-align:center;font:italic 18px Georgia,serif}.rolled-die{width:70px;height:70px;display:grid;place-items:center;background:linear-gradient(145deg,#eee0bd,#b68c4f);color:#23170e;border:3px solid #f4dfaa;box-shadow:0 8px 14px #0008,inset 0 -7px 10px #6e482c66;font:800 24px Georgia,serif;clip-path:polygon(50% 0,95% 24%,88% 78%,50% 100%,12% 78%,5% 24%)}.rolled-die.rolling{animation:diceRoll .85s cubic-bezier(.2,.8,.25,1)}@keyframes diceRoll{0%{transform:translate(-90px,-55px) rotate(-240deg) scale(.7)}35%{transform:translate(35px,25px) rotate(210deg) scale(1.12)}68%{transform:translate(-18px,-8px) rotate(430deg) scale(.94)}100%{transform:translate(0,0) rotate(720deg) scale(1)}}.dice-result{margin:14px 0 0;text-align:center;min-height:64px}.dice-result .expr{font-weight:700;color:#e4c68f}.dice-result .total{font:800 30px Georgia,serif;color:#fff;margin-top:4px}.dice-controls{margin-top:16px;background:#211b16;border:1px solid #55432f;border-radius:16px;padding:14px}.dice-types{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));gap:9px}.die-pick{border:1px solid #604a34;background:#17120f;border-radius:12px;padding:9px 6px;text-align:center}.die-pick.active{border-color:#c69a58;background:#2e241a}.die-icon{height:42px;display:grid;place-items:center;font:800 16px Georgia,serif;color:#ead6ad}.die-icon span{width:38px;height:38px;display:grid;place-items:center;background:#74512f;border:2px solid #c79a58;clip-path:polygon(50% 0,95% 25%,88% 78%,50% 100%,12% 78%,5% 25%)}.die-count{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:5px}.die-count button{width:28px;height:28px;border-radius:8px;border:1px solid #6e563d;background:#2b2119;color:#fff;font-size:18px}.die-count b{min-width:20px}.rollbtn{width:100%;margin-top:12px;padding:14px;font-size:19px;font-weight:800;letter-spacing:.08em;background:#7c572f}.dice-clear{margin-top:8px;width:100%}@media(max-width:760px){.dicepage{margin:-4px}.dicehead h2{font-size:22px}.dice-tray{min-height:360px;border-width:10px;border-radius:18px;padding:14px}.dice-types{grid-template-columns:repeat(4,1fr)}.rolled-die{width:58px;height:58px;font-size:20px}.bar h1{font-size:19px}.dice-nav{padding:8px 10px}}@media(max-width:390px){.dice-types{grid-template-columns:repeat(3,1fr)}.dice-tray{min-height:330px}.rolled-die{width:52px;height:52px}}

/* v0.19.0 – kompakt tärningsval och polyedriska tärningar */
.dice-controls{padding:10px}.dice-types{grid-template-columns:repeat(7,minmax(58px,1fr));gap:6px}.die-pick{padding:5px 3px;border-radius:9px}.die-icon{height:32px}.die-count{gap:2px;margin-top:2px}.die-count button{width:23px;height:23px;border-radius:6px;font-size:15px;padding:0}.die-count b{min-width:16px;font-size:13px}.rollbtn{margin:10px 0 0}.dice-rollbar{margin:10px 0 0}.dice-rollbar .rollbtn{margin:0}.dice-clear{font-size:12px;padding:7px;margin-top:6px}.poly-die{position:relative;width:34px;height:34px;display:grid;place-items:center;color:#f5e4bb;font:800 11px Georgia,serif;filter:drop-shadow(0 3px 3px #0008)}.poly-die:before{content:'';position:absolute;inset:0;background:linear-gradient(145deg,#a87a43,#5b381f);border:1px solid #d3aa69;z-index:-1}.poly-die.d3:before{clip-path:polygon(50% 5%,96% 88%,4% 88%)}.poly-die.d4:before{clip-path:polygon(50% 2%,96% 88%,4% 88%)}.poly-die.d6:before{clip-path:polygon(10% 10%,90% 10%,90% 90%,10% 90%)}.poly-die.d8:before{clip-path:polygon(50% 0,96% 50%,50% 100%,4% 50%)}.poly-die.d10:before{clip-path:polygon(50% 0,94% 35%,78% 90%,22% 90%,6% 35%)}.poly-die.d20:before{clip-path:polygon(50% 0,88% 18%,100% 58%,72% 96%,28% 96%,0 58%,12% 18%)}.poly-die.d100:before{clip-path:polygon(50% 0,82% 10%,100% 38%,94% 72%,68% 96%,32% 96%,6% 72%,0 38%,18% 10%)}.poly-die:after{content:'';position:absolute;inset:5px;border:1px solid #e4c68f55;clip-path:inherit}.rolled-die.d3{clip-path:polygon(50% 2%,98% 92%,2% 92%)}.rolled-die.d4{clip-path:polygon(50% 0,96% 88%,4% 88%)}.rolled-die.d6{clip-path:polygon(8% 8%,92% 8%,92% 92%,8% 92%)}.rolled-die.d8{clip-path:polygon(50% 0,98% 50%,50% 100%,2% 50%)}.rolled-die.d10{clip-path:polygon(50% 0,94% 34%,80% 88%,50% 100%,20% 88%,6% 34%)}.rolled-die.d20{clip-path:polygon(50% 0,86% 14%,100% 50%,78% 90%,50% 100%,22% 90%,0 50%,14% 14%)}.rolled-die.d100{clip-path:polygon(50% 0,80% 8%,98% 34%,94% 70%,68% 96%,32% 96%,6% 70%,2% 34%,20% 8%)}@media(max-width:760px){.dice-types{grid-template-columns:repeat(7,minmax(42px,1fr));gap:4px}.die-pick{padding:4px 1px}.poly-die{width:29px;height:29px;font-size:9px}.die-count button{width:20px;height:22px}.die-count b{min-width:13px;font-size:12px}}@media(max-width:390px){.dice-types{grid-template-columns:repeat(7,minmax(39px,1fr));gap:3px}}

/* v0.19.0 – resultat vänster, RULLA höger */
.dice-actionrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,220px);gap:10px;align-items:stretch;margin-top:10px}.dice-actionrow .dice-result{margin:0;min-height:58px;text-align:left;display:flex;flex-direction:column;justify-content:center;padding:6px 10px}.dice-actionrow .rollbtn{margin:0;width:100%;height:100%;min-height:58px}@media(max-width:420px){.dice-actionrow{grid-template-columns:minmax(0,1fr) 118px;gap:7px}.dice-actionrow .dice-result{padding:4px 5px}.dice-actionrow .dice-result .total{font-size:24px}.dice-actionrow .rollbtn{font-size:16px;padding:10px 6px}}

/* v0.19.0 – Alea Crusaders tärningsskål */
.dice-tray{aspect-ratio:1/1;min-height:0;border:0;border-radius:14px;padding:13%;background-image:url('./file_00000000b81c820a8d0864da066da367-C8WzFUAN.png');background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:0 14px 34px #0008}.dice-tray:before,.dice-tray:after{display:none}@media(max-width:760px){.dice-tray{min-height:0;border-width:0;border-radius:12px;padding:13%}}

/* v0.19.0 – facetterade SVG-tärningar */
.dice-stage{position:absolute;inset:13%;width:auto;height:auto;display:block;z-index:2;overflow:hidden}
.tray-empty{position:absolute;inset:0;display:grid;place-items:center}
.svg-die{position:absolute;width:76px;height:76px;filter:drop-shadow(0 8px 6px #0009);will-change:transform,left,top;transition:left .22s ease-out,top .22s ease-out}
.svg-die svg{width:100%;height:100%;overflow:visible}
.svg-die .face-main{fill:#e2cf9e;stroke:#6d4c25;stroke-width:2}
.svg-die .face-light{fill:#f4e7bd;stroke:#8b6736;stroke-width:1.4}
.svg-die .face-mid{fill:#c9a86c;stroke:#6d4c25;stroke-width:1.4}
.svg-die .face-dark{fill:#9a7443;stroke:#5b3b20;stroke-width:1.4}
.svg-die .edge{fill:none;stroke:#fff1c0;stroke-width:1;opacity:.55}
.svg-die text{font:800 25px Georgia,serif;fill:#2a1b10;stroke:#fff6d8;stroke-width:.45;paint-order:stroke;dominant-baseline:middle;text-anchor:middle}
.svg-die.d100 text{font-size:20px}.svg-die.d3 text,.svg-die.d4 text{font-size:23px}
.svg-die.rolling{animation:polyTumble 1.28s cubic-bezier(.18,.7,.2,1)}
@keyframes polyTumble{0%{transform:translate(var(--sx),var(--sy)) rotate(var(--r0)) scale(.65);filter:drop-shadow(0 22px 12px #0005)}28%{transform:translate(18px,-28px) rotate(var(--r1)) scale(1.12);filter:drop-shadow(0 24px 12px #0005)}48%{transform:translate(-12px,8px) rotate(var(--r2)) scale(.94);filter:drop-shadow(0 7px 5px #0009)}67%{transform:translate(8px,-12px) rotate(var(--r3)) scale(1.04);filter:drop-shadow(0 14px 8px #0007)}82%{transform:translate(-4px,3px) rotate(var(--r4)) scale(.98)}100%{transform:translate(0,0) rotate(var(--rf)) scale(1);filter:drop-shadow(0 7px 5px #0009)}}
@media(max-width:760px){.svg-die{width:62px;height:62px}.svg-die text{font-size:23px}}
@media(max-width:390px){.svg-die{width:56px;height:56px}.svg-die text{font-size:21px}}

/* v0.19.0 – D20 från uppladdad polyhedral_sharp.svg */
.svg-die.d20 .source-d20 path{stroke:#6d4c25;stroke-width:8;stroke-linejoin:round}.svg-die.d20 .source-d20 text{font-size:150px;stroke-width:3}

/* v0.19.0 – source-SVG för T4/T6/T8/T10/T20 + facettanpassade siffror */
.svg-die svg path{stroke:#6d4c25;stroke-linejoin:round}
.svg-die .die-number{fill:#28190d;stroke:#fff1c8;paint-order:stroke;dominant-baseline:middle;text-anchor:middle;font-family:Georgia,serif;font-weight:800}
.svg-die.d4 svg path,.svg-die.d6 svg path,.svg-die.d8 svg path,.svg-die.d10 svg path,.svg-die.d100 svg path{stroke-width:7}
.svg-die .d4num{font-size:105px;transform:rotate(-4deg);transform-origin:363px 350px}
.svg-die .d6num{font-size:115px;transform:skewY(4deg) rotate(-2deg);transform-origin:892px 405px}
.svg-die .d8num{font-size:105px;transform:rotate(10deg) skewX(-5deg);transform-origin:1600px 405px}
.svg-die .d10num{font-size:105px;transform:rotate(-12deg) skewX(8deg);transform-origin:397px 1065px}
.svg-die.d100 .d10num{font-size:86px}
.svg-die .d20num{font-size:145px;transform:rotate(20.4deg) skewX(-7deg) scaleY(.88);transform-origin:1810px 1010px}

/* v0.19.0 – T6 plant mot skålen och centrerade resultatsiffror */
.svg-die.d6 .face-main{fill:#e2cf9e;stroke:#6d4c25;stroke-width:3}.svg-die.d6 .edge{stroke:#fff1c0;stroke-width:1.2;opacity:.5}.svg-die .d6num{font-size:42px;transform:none;transform-origin:center;stroke-width:.7}
.svg-die .d4num{transform:rotate(-1.5deg);transform-origin:363px 350px}.svg-die .d8num{transform:rotate(2deg);transform-origin:1600px 405px}.svg-die .d10num{transform:rotate(-4deg);transform-origin:397px 1065px}.svg-die .d20num{transform:rotate(19deg) scaleY(.92);transform-origin:1810px 1010px}

/* v0.19.0 – ren symmetrisk T10 och bättre sifferplacering */
.svg-die.d10 .d10num,.svg-die.d100 .d10num{font-size:23px;transform:none;transform-origin:50px 61px;stroke-width:.45}
.svg-die.d100 .d10num{font-size:20px}
.svg-die .d4num{transform:none}.svg-die .d8num{transform:none}.svg-die .d20num{transform:none}

/* v0.19.0 – T8-resultat på den mörkare högra facetten */
.svg-die .d8num{font-size:100px;transform:rotate(21deg) skewX(-5deg);transform-origin:1850px 390px;stroke-width:2.5}

/* v0.19.0 – riktig 3D-tärningsmotor */
.dice3d-host{position:absolute;inset:-25%;z-index:3;overflow:hidden;pointer-events:none;transform:scale(.5);transform-origin:center center}
.dice3d-host canvas{display:block;width:100%!important;height:100%!important;background:transparent!important}
.dice-stage.fallback-only{z-index:4}
.dice3d-host.unavailable{display:none}
.dice3d-status{display:inline-block;margin-top:4px;font-size:11px;color:#b8a793}
.dice3d-status.ready{color:#9bc58b}
.dice3d-status.error{color:#d79a83}
/* v0.20.0 – Kartpanel */
.mappage{max-width:1180px;margin:0 auto}.maphead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.maphead h2{margin:0;font:700 26px Georgia,serif}.maptoolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.maptoolbar .btn{min-width:42px}.maptoolbar select{max-width:260px;min-width:150px;padding:9px 30px 9px 10px;border:1px solid #765b3d;background:#211a15;color:#f5eadc;border-radius:10px}.mapzoom{min-width:58px;text-align:center;color:#d9c7ae;font-weight:800}.map-admin-actions{display:flex;gap:8px;flex-wrap:wrap}.map-current-badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#5b4328;color:#f0d5a7;font-size:11px;font-weight:800}.map-loading{opacity:.7}.map-file{display:none}.maplegend{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:#b8a793}.maplegend span{display:inline-flex;gap:5px;align-items:center}.maplegend i{width:13px;height:13px;border-radius:4px;border:1px solid #71583d;display:inline-block}.maplegend .unknown i{background:#080808}.maplegend .unexplored i{background:#5c5c5c}.maplegend .explored i{background:#d8c5a5}.mapviewport{position:relative;width:100%;height:min(72vh,760px);min-height:430px;overflow:hidden;border:1px solid #55432f;border-radius:16px;background:#0b0a09;box-shadow:inset 0 0 36px #000b;touch-action:none;cursor:grab}.mapviewport.dragging{cursor:grabbing}.mapcanvas{position:absolute;left:50%;top:50%;transform-origin:0 0;will-change:transform}.mapimage{display:block;max-width:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.mapoverlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.map-fog{fill:#050505}.map-zone{fill:transparent;pointer-events:auto;cursor:pointer}.map-zone.sl-outline{stroke:#c69a58;stroke-width:2;vector-effect:non-scaling-stroke}.map-zone.sl-outline:hover{fill:rgba(198,154,88,.10)}.map-status-menu{position:fixed;z-index:10050;min-width:220px;max-width:calc(100vw - 24px);padding:10px;border:1px solid #8d6b43;border-radius:12px;background:#17110d;color:#f4e7d2;box-shadow:0 14px 34px #000b}.map-status-menu.hidden{display:none}.map-status-title{font:700 15px Georgia,serif;margin:0 0 8px}.map-status-actions{display:flex;gap:6px;flex-wrap:wrap}.map-status-choice{border:1px solid #795e3e;border-radius:9px;background:#2a2018;color:#eadac3;padding:7px 9px;font-weight:700}.map-status-choice.active{outline:2px solid #d5aa68;background:#4a3824}.map-status-choice:disabled{opacity:.4}.map-status-pills{display:flex;gap:4px;flex-wrap:wrap}.map-status-pill{width:30px;height:30px;padding:0;border:1px solid #aa8a61;border-radius:8px;background:#f6ecd9;color:#2b2118;font-size:13px}.map-status-pill.active{outline:2px solid #8a5b25;background:#d8be8f}.map-status-pill:disabled{opacity:.35}.mapplaceholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;color:#b8a793}.mapplaceholder h3{margin:0 0 6px;color:#ead9c0;font:700 24px Georgia,serif}.mapplaceholder p{margin:0;max-width:520px;line-height:1.5}.mapstatusbar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:9px;font-size:12px;color:#9f8f7c}
@media(max-width:700px){.maphead{align-items:center}.maphead h2{font-size:22px}.mapviewport{height:68vh;min-height:360px;border-radius:12px}.maplegend{width:100%;margin-left:0}.maptoolbar{gap:6px}.maptoolbar .btn{padding:8px 10px}}
.die-icon.quick-drag-source{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.die-icon.quick-drag-source:active{cursor:grabbing}
.drag-die-ghost{position:fixed;left:0;top:0;width:76px;height:76px;z-index:9999;pointer-events:none;display:grid;place-items:center;opacity:.94;filter:drop-shadow(0 10px 16px #0009);transform:translate(-9999px,-9999px) scale(1.08) rotate(-8deg);transform-origin:center;will-change:transform}
.drag-die-ghost.hidden{display:none!important}
.drag-die-ghost .poly-die{width:68px!important;height:68px!important;display:grid!important;place-items:center!important;font:800 23px Georgia,serif!important;color:#f4e4bd!important;background:#74512f!important;border:3px solid #c79a58!important}
.dice-tray.quick-drop-ready{box-shadow:inset 0 0 0 4px #d4ac68,inset 0 0 48px #d7b46d44,0 14px 34px #0008,0 0 24px #d1aa6355}
.dice-tray.quick-drop-ready:before{border-color:#e4c58ddd}

/* extracted style block 2 */
/* v0.14.14 — Sköld: exakt fyrkolumnslayout efter borttagen ABS */
body:not(.editing) #weaponsPanel .shieldtable{
  grid-template-columns:minmax(120px,1fr) 58px 64px 126px!important;
  min-width:0!important;width:100%!important;
}
body.editing #weaponsPanel .shieldtable{
  grid-template-columns:minmax(140px,1fr) 62px 68px 86px!important;
  min-width:0!important;width:100%!important;
}
@media(max-width:560px){
  body:not(.editing) #weaponsPanel .shieldtable{grid-template-columns:minmax(105px,1fr) 52px 58px 122px!important}
  body.editing #weaponsPanel .shieldtable{grid-template-columns:minmax(110px,1fr) 54px 58px 78px!important}
}
#weaponsPanel .shieldtable>div.skillnum{display:flex;align-items:center;justify-content:center;text-align:center}
#weaponsPanel .shieldtable>div:not(.skillhead):not(.rowactions):first-of-type{align-items:center}

/* extracted style block 3 */
/* v0.14.16 — robust responsiv vapenlayout: varje rad är en egen grid */
#weaponsPanel .weapontable{display:block!important;width:100%!important;min-width:0!important;overflow:hidden!important}
#weaponsPanel .weapon-head,#weaponsPanel .weapon-row{display:grid;grid-template-columns:minmax(150px,1.7fr) 58px 78px 58px 82px 78px 58px 116px;align-items:stretch;width:100%;min-width:0}
#weaponsPanel .weapon-head>div,#weaponsPanel .weapon-row>div{min-width:0;padding:10px 8px;border-bottom:1px solid #3d3024;display:flex;align-items:center}
#weaponsPanel .weapon-head>div{background:#6d1e1e;font-weight:700}
#weaponsPanel .weapon-head .skillnum,#weaponsPanel .weapon-row .skillnum{justify-content:center;text-align:center}
#weaponsPanel .weapon-row:last-child>div{border-bottom:0}
#weaponsPanel .weapon-row .weapon-link{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#weaponsPanel .weapon-row .mini-stepper{margin:auto}
body.editing #weaponsPanel .weapon-head,body.editing #weaponsPanel .weapon-row{grid-template-columns:minmax(160px,1.7fr) 62px 86px 62px 84px 84px 68px 86px}
body.editing #weaponsPanel .weapon-row input{width:100%;min-width:0;max-width:100%}
@media(max-width:700px){
 #weaponsPanel .weapontable{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}
 #weaponsPanel .weapon-head,#weaponsPanel .weapon-row{grid-template-columns:125px 48px 68px 48px 70px 68px 54px 94px;width:575px;min-width:575px}
 body.editing #weaponsPanel .weapon-head,body.editing #weaponsPanel .weapon-row{grid-template-columns:150px 58px 82px 58px 78px 78px 64px 78px;width:646px;min-width:646px}
 #weaponsPanel .weapon-head>div,#weaponsPanel .weapon-row>div{padding:8px 5px}
}

/* extracted style block 4 */
/* v0.23.0 – klickbar platsinformation på kartan */
.mapworkarea{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:12px;align-items:start}
.mapmain{min-width:0}
.map-location-panel{min-width:0;max-height:760px;overflow:auto;border:1px solid #55432f;border-radius:16px;background:#17120f;padding:14px;position:sticky;top:82px}
.map-location-panel.empty{color:#a99782}
.map-location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.map-location-head h3{margin:0;font:700 22px Georgia,serif;color:#f1dfc4}
.map-location-close{border:0;background:transparent;color:#cdbb9f;font-size:22px;line-height:1;cursor:pointer;padding:2px 5px}
.map-location-meta{font-size:12px;color:#ad9a82;margin-top:3px}
.map-location-section{border-top:1px solid #4b3a29;padding-top:11px;margin-top:11px}
.map-location-section h4{margin:0 0 7px;font:700 15px Georgia,serif;color:#e8cfaa}
.map-location-text{white-space:pre-wrap;line-height:1.55;color:#eadfce}
.map-location-empty{color:#927f69;font-style:italic}
.map-location-gm{background:#241b14;border:1px solid #654b31;border-radius:11px;padding:10px}
.map-location-status{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 2px}
.map-location-status button{border:1px solid #795e3e;border-radius:9px;background:#2a2018;color:#eadac3;padding:7px 9px;font-weight:700;cursor:pointer}
.map-location-status button.active{outline:2px solid #d5aa68;background:#4a3824}
.map-location-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.map-location-photo{border:1px solid #55432f;border-radius:10px;overflow:hidden;background:#0c0a08}
.map-location-photo img{display:block;width:100%;height:auto;max-height:240px;object-fit:cover;cursor:zoom-in}
.map-location-photo figcaption{padding:7px;font-size:12px;color:#cdbb9f}
.map-location-photo .gm-only{display:inline-block;margin-left:4px;padding:2px 5px;border-radius:999px;background:#5d3827;color:#f0d6bd;font-size:10px;font-weight:800}
.map-zone.player-hit{stroke:transparent;stroke-width:1;fill:transparent;pointer-events:auto;cursor:pointer}
.map-zone.selected{stroke:#f0c882!important;stroke-width:3!important;fill:rgba(222,185,119,.10)}
.map-location-loading{color:#b7a38d;padding:10px 0}
.location-asset-row-actions{display:flex;gap:5px;align-items:center}
@media(max-width:900px){
 .mapworkarea{grid-template-columns:1fr}
 .map-location-panel{position:static;max-height:none}
}
@media(max-width:520px){
 .map-location-gallery{grid-template-columns:1fr}
}

/* extracted style block 5 */
/* v0.24.0 – aktuell utrustning */
.current-equipment-launch{display:flex;align-items:center;gap:10px;margin:0 0 16px}
.current-equipment-launch .btn{background:linear-gradient(#6c4c2b,#4d351f);border-color:#9b7448;color:#fff0d7;font-weight:800}
.current-equipment-modal{width:min(760px,100%);max-height:90vh;overflow:auto}
.current-equipment-intro{color:#6d5a45;margin:6px 0 14px;line-height:1.45}
.current-equipment-bodygrid,.current-equipment-hands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.current-equipment-hands{margin-top:10px}
.current-equip-slot{min-height:104px;border:1px solid #9c805d;border-radius:13px;background:linear-gradient(145deg,#fff8e9,#ead7b6);color:#2d2118;padding:12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:7px;box-shadow:inset 0 1px 0 #fff9}
.current-equip-slot:hover{border-color:#7d552b;background:linear-gradient(145deg,#fffaf0,#e7cfa7)}
.current-equip-slot .slot-label{font:800 12px Georgia,serif;letter-spacing:.06em;text-transform:uppercase;color:#7b5a35}
.current-equip-slot .slot-value{font:800 18px Georgia,serif;color:#2b2118;overflow-wrap:anywhere}
.current-equip-slot .slot-kind{font-size:12px;color:#806d58}
.current-equip-slot.empty .slot-value{color:#8e7d69;font-weight:600}
.current-equip-slot.twohand{grid-column:1/-1;min-height:104px;background:linear-gradient(145deg,#f8e7c8,#dcb987)}
.current-equip-slot.twohand .slot-label{text-align:center}
.current-equip-slot.twohand .slot-value{text-align:center;font-size:21px}
.current-equipment-picker{margin-top:16px;border-top:1px solid #cdb894;padding-top:14px}
.current-equipment-pickerhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.current-equipment-pickerhead h3{margin:0;font:800 18px Georgia,serif;color:#5e321d}
.current-equipment-picker-close{border:0;background:transparent;font-size:22px;cursor:pointer;color:#72583d}
.current-equipment-group{margin-top:12px}
.current-equipment-group h4{margin:0 0 7px;color:#70431f;font:800 14px Georgia,serif}
.current-equipment-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid #ddcdb2}
.current-equipment-choice:last-child{border-bottom:0}
.current-equipment-choice-name{font-weight:800;color:#33251a}
.current-equipment-choice-meta{font-size:12px;color:#816f5b;margin-top:2px}
.current-equipment-choice-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.current-equipment-choice-actions button,.current-equipment-emptybtn{border:1px solid #9b7a52;border-radius:9px;background:#f1dfbf;color:#382719;padding:7px 10px;font-weight:800;cursor:pointer}
.current-equipment-choice-actions button:hover,.current-equipment-emptybtn:hover{background:#e4c99d}
.current-equipment-emptybtn{width:100%;margin-bottom:4px}
@media(max-width:560px){
 .current-equipment-modal{padding:16px}
 .current-equip-slot{min-height:94px;padding:10px}
 .current-equip-slot .slot-value{font-size:16px}
 .current-equipment-choice{grid-template-columns:1fr}
 .current-equipment-choice-actions{justify-content:flex-start}
}

/* extracted style block 6 */
/* v0.24.1 – rustningsregister och materialval */
.armor-picker-modal{width:min(760px,100%);max-height:90vh;overflow:auto}
.armor-picker-intro{color:#6d5a45;line-height:1.45;margin:6px 0 14px}
.armor-picker-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.armor-picker-toolbar label{display:grid;gap:5px;font-weight:800;color:#5f432a}
.armor-picker-toolbar select{min-width:190px;padding:9px 10px;border-radius:9px;border:1px solid #a28764;background:#fff8e9;color:#2f2319}
.armor-picker-list{display:grid;gap:8px}
.armor-choice{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #c7ad84;border-radius:12px;background:#fff7e8;padding:11px 12px}
.armor-choice-name{font:800 17px Georgia,serif;color:#4f301c}
.armor-choice-meta{font-size:13px;color:#78644e;margin-top:3px}
.armor-choice button{border:1px solid #9b7549;border-radius:9px;background:#e8c995;color:#352417;padding:8px 12px;font-weight:800;cursor:pointer}
.armor-choice button:hover{background:#ddb981}
.armor-material-note{font-size:13px;color:#775f45;background:#f5ead5;border:1px solid #d1bc96;border-radius:10px;padding:9px 10px;margin-bottom:10px}
.armor-material-select{width:100%;padding:7px;border-radius:7px;border:1px solid #624d37;background:#15110e;color:#fff}
@media(max-width:560px){.armor-choice{grid-template-columns:1fr}.armor-choice button{width:100%}.armor-picker-toolbar{align-items:stretch}.armor-picker-toolbar label,.armor-picker-toolbar select{width:100%}}

/* extracted style block 7 */
/* v0.24.2 – STY-styrd vapenfattning */
.weapon-grip-note{display:inline-block;margin-top:4px;font-size:12px;color:#7a6247}
.weapon-grip-note.warn{color:#8b4c28;font-weight:800}
.weapon-grip-note.blocked{color:#8f2f28;font-weight:800}
.current-equipment-choice-actions button[disabled]{opacity:.48;cursor:not-allowed;background:#ddd0ba}

/* extracted style block 8 */
/* v0.26.0 – kampanjdag, väder och daglig ERF */
.day-nav{white-space:nowrap}
.day-nav.rested{border-color:#7d8f5d;background:#26301f}
.day-nav.norest{border-color:#8b6844;background:#30231b}
.campaign-day-modal{width:min(680px,100%)}
.campaign-day-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.campaign-day-card{border:1px solid #c5aa80;border-radius:12px;background:#fff6e7;color:#2c2118;padding:12px}
.campaign-day-card .k{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#7a654e}
.campaign-day-card .v{font:800 20px Georgia,serif;margin-top:4px}
.campaign-day-section{border-top:1px solid #d9c8ac;margin-top:14px;padding-top:14px}
.campaign-day-section h3{margin:0 0 9px;color:#5f321f;font:800 18px Georgia,serif}
.campaign-day-field{display:grid;gap:5px;margin-bottom:10px;color:#5e4a37;font-weight:800;font-size:13px}
.campaign-day-field input{width:100%;padding:10px;border:1px solid #a68964;border-radius:9px;background:#fffaf0;color:#2b2118}
.campaign-day-actions{display:flex;gap:8px;flex-wrap:wrap}
.campaign-day-note{font-size:13px;line-height:1.5;color:#6d5a45;background:#f4ead9;border:1px solid #d6c1a0;border-radius:10px;padding:10px}
.erf-day-locked{opacity:.42;cursor:not-allowed!important}
@media(max-width:650px){
 header #dayNavBtn{order:18;flex:0 0 auto;padding:7px 9px!important;font-size:13px}
 .campaign-day-summary{grid-template-columns:1fr}
}

/* extracted style block 9 */
/* v0.26.3 – automatiserad ERF-visning */
.erf-static{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:34px;font-weight:800}
.erf-earned-badge{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#315f36;border:1px solid #76a778;color:#eaffdf;font-size:12px;line-height:1;box-shadow:0 0 0 1px rgba(255,255,255,.05) inset}
.erf-edit-input{width:62px!important;max-width:62px!important;text-align:center}

/* extracted style block 10 */
/* v0.26.4 – Färdigheter: separat tärningskolumn + kompakt FV/ERF */
body:not(.editing) #skilltable{
  grid-template-columns:minmax(0,1fr) 58px 54px 62px!important;
}
body:not(.editing) #skilltable>div{
  min-width:0;
}
body:not(.editing) #skilltable .skill-roll-col,
body:not(.editing) #skilltable .skill-roll-head{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding-left:4px;
  padding-right:4px;
}
body:not(.editing) #skilltable .skill-roll-head{
  font-size:18px;
}
body:not(.editing) #skilltable .skill-roll-btn{
  margin:0;
}
body:not(.editing) #skilltable .skill-name-roll{
  display:block;
}
body:not(.editing) #skilltable>div:nth-last-child(-n+4){
  border-bottom:0;
}
@media(max-width:560px){
  body:not(.editing) #skilltable{
    grid-template-columns:minmax(0,1fr) 52px 46px 54px!important;
  }
  body:not(.editing) #skilltable>div{
    padding-left:8px;
    padding-right:8px;
  }
  body:not(.editing) #skilltable .skill-roll-col,
  body:not(.editing) #skilltable .skill-roll-head{
    padding-left:2px;
    padding-right:2px;
  }
  body:not(.editing) #skilltable .skillnum{
    padding-left:3px;
    padding-right:3px;
  }
}

/* extracted style block 11 */
/* v0.26.5 – slutlig kompakt färdighetslayout */
body:not(.editing) #skilltable .skill-roll-col,
body:not(.editing) #skilltable .skill-roll-head{
  padding-left:2px!important;
  padding-right:2px!important;
}
body:not(.editing) #skilltable .skillnum{
  padding-left:4px!important;
  padding-right:4px!important;
}
body:not(.editing) #skilltable .skill-roll-btn{
  width:32px;
  height:32px;
}
@media(max-width:560px){
  body:not(.editing) #skilltable>div{padding-top:10px;padding-bottom:10px}
  body:not(.editing) #skilltable .skill-roll-btn{width:30px;height:30px}
}

/* extracted style block 12 */
/* v0.27.0 – vilotid, PSY-återhämtning och rasspecifik ERF-reset */
.rest-hours-row{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px;align-items:end}
.rest-hours-row .campaign-day-field{margin-bottom:0}
.rest-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.rest-rule-card{border:1px solid #d2bd9a;border-radius:10px;background:#f8efdf;padding:9px 10px;color:#594735;font-size:13px;line-height:1.4}
@media(max-width:560px){.rest-hours-row,.rest-rule-grid{grid-template-columns:1fr}}

/* extracted style block 13 */
/* v0.27.1 – baschansfärdigheter */
.skill-subactions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.basechance-modal{width:min(720px,100%);max-height:88vh;overflow:auto}
.basechance-intro{margin:4px 0 12px;color:#705c45;line-height:1.45}
.basechance-table{display:grid;grid-template-columns:minmax(0,1fr) 52px 56px 62px;border:1px solid #7a5b3c;border-radius:12px;overflow:hidden;background:#120f0c;color:#f3dfbb}
.basechance-table>div{padding:10px 8px;border-bottom:1px solid #3e3025;min-width:0;display:flex;align-items:center}
.basechance-table .bc-head{background:linear-gradient(#8b2623,#6f1f1d);font-weight:800;color:#fff0d7}
.basechance-table .bc-num,.basechance-table .bc-dice{justify-content:center;text-align:center}
.basechance-table .bc-name{font-weight:800;cursor:pointer;text-decoration-line:underline;text-decoration-style:dotted;text-underline-offset:4px;text-decoration-color:#8f734e}
.basechance-table .bc-last{border-bottom:0}
.basechance-empty{padding:14px;border:1px dashed #b89b72;border-radius:10px;color:#6f5d49;background:#f8efdf}
@media(max-width:560px){
 .basechance-modal{padding:14px}
 .basechance-table{grid-template-columns:minmax(0,1fr) 48px 48px 54px}
 .basechance-table>div{padding:9px 5px}
}

/* extracted style block 14 */
/* v0.28.0 – stridsmotor, grundpanel */
.combatpage{max-width:1500px;margin:0 auto;padding:18px}
.combathead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.combathead h2{margin:0;color:#5e231f;font-family:Georgia,serif;font-size:28px}
.combat-empty{border:1px solid rgba(116,83,46,.4);border-radius:14px;background:#f6eddd;padding:28px;text-align:center;color:#5c4a38}
.combat-empty h3{margin:0 0 8px;color:#6d211d}
.combat-empty .combat-foundation-note{max-width:700px;margin:10px auto 0;line-height:1.5}
.combat-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}
.combat-topbar{grid-column:1/-1;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid #8e6b43;border-radius:12px;background:#211912;color:#f2dfbf;padding:10px 12px}
.combat-round{font:800 18px Georgia,serif;color:#f2ca83}
.combat-phase{padding:5px 9px;border-radius:999px;background:#6f221f;color:#fff0d7;font-weight:800;font-size:13px}
.combat-status{font-size:13px;color:#ceb995}
.combat-panel{border:1px solid #9c7a52;border-radius:12px;background:#f6eddd;overflow:hidden}
.combat-panel h3{margin:0;padding:10px 12px;background:#35281e;color:#f1d7aa;font:700 16px Georgia,serif}
.combat-participant-list{padding:7px}
.combatant-card{width:100%;border:1px solid #c8ae88;border-radius:9px;background:#fffaf0;padding:8px 9px;margin:5px 0;text-align:left;cursor:pointer;color:#3e3328}
.combatant-card:hover{border-color:#8b5d30;background:#fff5e3}
.combatant-card.selected{outline:2px solid #8e2722;border-color:#8e2722}
.combatant-card .name{font-weight:800}
.combatant-card .meta{font-size:12px;color:#75624e;margin-top:3px}
.combatant-card.hero .name{color:#2e5c3a}
.combatant-card.enemy .name{color:#8e2722}
.combatant-card.neutral .name{color:#755d2b}
.combat-board-wrap{border:1px solid #745a3d;border-radius:12px;overflow:hidden;background:#17120e;min-width:0}
.combat-board-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;background:#2a2018;color:#e9d3af;font-size:13px}
.combat-board-footer{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 grid-template-areas:"description controls" "legends legends";
 gap:7px 12px;
 align-items:center;
 padding:9px 11px;
 background:#2a2018;
 border-top:1px solid #4d3c2c;
 color:#e9d3af;
 font-size:13px;
}
.combat-board-description{
 grid-area:description;
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:2px;
}
.combat-board-description span{
 font-weight:800;
 letter-spacing:.03em;
}
.combat-board-description small{
 color:#bfa987;
 font-size:10px;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.combat-board-footer .combat-map-zoom-controls{
 grid-area:controls;
 justify-self:end;
}
.combat-board-footer .combat-board-legends{
 grid-area:legends;
 justify-content:flex-start;
}
.combat-board{position:relative;width:100%;height:auto;min-height:0;overflow:hidden;background:
 radial-gradient(circle at 50% 35%,rgba(100,80,52,.13),transparent 50%),
 #17120e}
.combat-board svg{display:block;min-width:100%;min-height:100%;width:100%;height:100%}
.combat-hex{fill:rgba(239,216,178,.025);stroke:#6b5945;stroke-width:1.15;vector-effect:non-scaling-stroke}
.combat-hex.difficult{fill:rgba(152,112,47,.18)}
.combat-hex.move-blocked{fill:rgba(85,58,43,.55)}
.combat-hex.sight-obscuring{stroke:#a98f62;stroke-dasharray:4 3}
.combat-hex.sight-blocked{stroke:#9b3b34;stroke-width:2}
.combat-token{cursor:pointer;stroke:#ead7b6;stroke-width:2.2;vector-effect:non-scaling-stroke}
.combat-token.hero{fill:#3c7150}
.combat-token.enemy{fill:#8e312a}
.combat-token.neutral{fill:#8a763e}
.combat-token.selected{stroke:#ffd37b;stroke-width:4}
.combat-token-label{pointer-events:none;fill:#fff7e8;font-weight:800;font-size:12px;text-anchor:middle;dominant-baseline:middle}
.combat-target-body{padding:11px}
.combat-target-name{font:800 20px Georgia,serif;color:#6f221f}
.combat-target-stat{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #dac5a3;font-size:13px}
.combat-target-note{font-size:12px;color:#77634f;line-height:1.45;margin-top:10px}
.combat-log{grid-column:1/-1;border:1px solid #9c7a52;border-radius:12px;background:#f6eddd;overflow:hidden}
.combat-log h3{margin:0;padding:9px 12px;background:#35281e;color:#f1d7aa;font:700 16px Georgia,serif}
.combat-log-list{max-height:220px;overflow:auto;padding:8px 11px}
.combat-log-row{font-size:13px;padding:6px 0;border-bottom:1px solid #ddc9a8;color:#4a3b2e}
.combat-log-row:last-child{border-bottom:0}
.combat-log-phase{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8b6b46;font-weight:800;margin-right:6px}
.combat-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:#bfa987}
.combat-legend span:before{content:'⬡';margin-right:4px}
.combat-schema-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:18px}
.combat-schema-card{border:1px solid #c8ae88;border-radius:9px;padding:10px;background:#fff9ed;text-align:left}
.combat-schema-card b{display:block;color:#6c241f;margin-bottom:3px}
@media(max-width:980px){
 .combat-shell{grid-template-columns:1fr}
 .combat-topbar,.combat-log{grid-column:1}

 .combat-participants{order:2}.combat-board-wrap{order:1}.combat-log{order:3}
 .combat-schema-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
 .combatpage{padding:10px}
 .combathead h2{font-size:24px}

 .combat-schema-cards{grid-template-columns:1fr}
}

/* extracted style block 15 */
/* v0.28.1 – strukturerad administration */
.adminhead-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-overview{margin-top:4px}
.admin-overview-intro{margin:0 0 10px}
.admin-overview-intro h3{margin:0 0 4px;color:#6a251f;font:700 19px Georgia,serif}
.admin-overview-intro p{margin:0;color:#725f4c}
.admin-overview-secondary{margin-top:22px}
.admin-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-card-grid-primary{grid-template-columns:repeat(2,minmax(0,1fr))}
.admin-nav-card{border:1px solid #b69770;border-radius:12px;background:linear-gradient(180deg,#fffaf0,#f2e5d1);padding:14px 15px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;cursor:pointer;color:#44352a;min-height:86px;box-shadow:0 2px 6px rgba(70,46,26,.08)}
.admin-nav-card:hover{border-color:#8f5e35;background:#fff7e9;transform:translateY(-1px)}
.admin-nav-card.compact{min-height:76px}
.admin-nav-icon{width:38px;height:38px;border-radius:10px;background:#35281e;color:#f1d7aa;display:grid;place-items:center;font-size:20px}
.admin-nav-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.admin-nav-copy b{font:700 17px Georgia,serif;color:#69251f}
.admin-nav-copy small{font-size:12px;color:#776450;line-height:1.35}
.admin-nav-count{min-width:31px;height:31px;padding:0 7px;border-radius:999px;background:#7c2924;color:#fff1d9;display:grid;place-items:center;font-weight:800;font-size:12px}
.admin-detail{margin-top:4px}
.admin-detail .adminsectionhead{margin-bottom:12px}
@media(max-width:760px){
 .admin-card-grid,.admin-card-grid-primary{grid-template-columns:1fr}
 .admin-nav-card{min-height:78px}
 .adminhead{align-items:flex-start}
 .adminhead-actions{width:100%;justify-content:flex-start}
}

/* extracted style block 16 */
/* v0.28.2 – platsstruktur först, fiendemallar */
.admin-site-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.admin-site-card{border:1px solid #b69770;border-radius:11px;background:#fff8ec;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.admin-site-card-main{cursor:pointer;min-width:0}
.admin-site-card-main b{display:block;font:700 17px Georgia,serif;color:#69251f;margin-bottom:3px}
.admin-site-card-main small{color:#776450;line-height:1.35}
.admin-site-card-actions{display:flex;gap:5px;align-items:center}
.admin-site-detail-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:14px}
.admin-site-detail-head h2{margin:0;color:#69251f;font:700 22px Georgia,serif}
.admin-site-empty{border:1px dashed #b69770;border-radius:10px;padding:16px;text-align:center;color:#755f49;background:#fff8ec}
.combat-quick-note{margin-top:14px;padding:11px;border:1px solid #c8ae88;border-radius:9px;background:#fff9ed;text-align:left}
.combat-quick-note b{color:#6c241f}
@media(max-width:700px){
 .admin-site-cards{grid-template-columns:1fr}
 .admin-site-detail-head{grid-template-columns:1fr}
}

/* extracted style block 17 */
/* v0.28.2 – kampanjfiender i händelser */
.adminform-section{grid-column:1/-1;border-top:1px solid #d7bf9b;padding-top:12px;margin-top:4px}
.event-enemy-grid{display:grid;gap:7px;margin-top:8px}
.event-enemy-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;gap:9px;align-items:center;border:1px solid #d3bb98;border-radius:9px;padding:8px 10px;background:#fff9ed}
.event-enemy-row>span{display:flex;flex-direction:column;gap:2px}
.event-enemy-row small{color:#76614b}
.event-enemy-qty{flex-direction:row!important;align-items:center!important;gap:6px!important;font-size:12px;color:#6e5943}
.event-enemy-qty input{width:64px!important;margin:0!important;padding:5px 6px!important}

/* extracted style block 18 */
/* v0.28.4 – mobil admin för platsstruktur */
#admin .adminmaptable{
  grid-template-columns:minmax(0,1fr) 112px 176px;
}
#admin .adminlocationtable{
  grid-template-columns:72px minmax(0,1fr) 92px 150px;
}
#admin .adminmaptable>div,
#admin .adminlocationtable>div{
  overflow-wrap:anywhere;
}
#admin .admin-map-actions{
  align-content:flex-start;
}
@media(max-width:700px){
  #admin .adminpage{width:100%;max-width:100%;padding:0 10px;box-sizing:border-box}
  #admin .adminbox{overflow:hidden}
  #admin .admin-site-detail-head{display:flex;flex-wrap:wrap;align-items:flex-start}
  #admin .admin-site-detail-head>div{flex:1 1 180px}
  #admin .admin-site-detail-head>.smallbtn{flex:0 0 auto}
  #admin .admin-subsection-head{align-items:flex-start}
  #admin .adminmaptable{
    width:100%;
    grid-template-columns:minmax(110px,1fr) 86px 116px;
    font-size:12px;
    overflow:visible;
  }
  #admin .adminlocationtable{
    width:100%;
    grid-template-columns:42px minmax(92px,1fr) 60px 104px;
    font-size:12px;
    overflow:visible;
  }
  #admin .adminmaptable>div,
  #admin .adminlocationtable>div{padding:8px 6px}
  #admin .admin-map-actions{gap:4px}
  #admin .admin-map-actions .smallbtn,
  #admin .admin-map-actions .deletebtn{
    min-width:34px;
    width:34px;
    height:34px;
    padding:4px;
    display:grid;
    place-items:center;
  }
  #admin .admin-map-current,
  #admin .admin-map-visible,
  #admin .admin-map-hidden{
    padding:3px 5px;
    font-size:9px;
    margin:1px 0;
  }
}
@media(max-width:430px){
  #admin .adminmaptable{grid-template-columns:minmax(92px,1fr) 74px 92px}
  #admin .adminlocationtable{grid-template-columns:34px minmax(78px,1fr) 48px 88px}
  #admin .adminmaptable>div,
  #admin .adminlocationtable>div{padding:7px 4px}
  #admin .admin-map-actions .smallbtn,
  #admin .admin-map-actions .deletebtn{
    min-width:30px;width:30px;height:30px;font-size:13px
  }
}

/* extracted style block 19 */
/* v0.29.0 – händelsens hex- och terrängeditor */
.admineditor.event-combat-editor{width:min(1180px,96vw);max-width:1180px;max-height:94vh;overflow:auto}
.event-combat-editor-layout{display:grid;gap:12px}
.event-combat-settings{display:grid;grid-template-columns:minmax(220px,1.5fr) 180px auto;gap:10px;align-items:end}
.event-combat-settings label,.event-combat-tools label,.event-combat-offsets label{display:grid;gap:5px;color:#d8c39c;font-weight:700}
.event-combat-settings input,.event-combat-settings select,.event-combat-tools select,.event-combat-offsets input{width:100%;box-sizing:border-box;background:#171310;color:#f3e7cf;border:1px solid #80643d;border-radius:8px;padding:9px 10px}
.event-combat-derived{padding:9px 11px;border:1px solid rgba(184,145,82,.32);border-radius:8px;background:#211a15;color:#d8c39c;white-space:nowrap}
.event-combat-settings details{grid-column:1/-1;border:1px solid rgba(184,145,82,.24);border-radius:8px;padding:8px 10px;color:#d8c39c}
.event-combat-settings summary{cursor:pointer;font-weight:700}
.event-combat-offsets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}
.event-combat-tools{display:flex;gap:9px;align-items:end;flex-wrap:wrap;padding:10px;border:1px solid rgba(184,145,82,.34);border-radius:10px;background:#211a15}
.event-combat-tools>div{align-self:center;color:#ead7b8;margin-right:auto}
.event-combat-tools label{min-width:155px}
.event-combat-legend{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:#d9c6a6}
.event-combat-legend span{padding:5px 8px;border:1px solid rgba(184,145,82,.3);border-radius:999px;background:#211a15}
.legend-difficult{color:#e8b85d!important}.legend-move-blocked{color:#d87968!important}.legend-obscuring{color:#8fc0d8!important}.legend-sight-blocked{color:#c8a0d6!important}
.event-combat-help{font-size:13px;color:#bfa98b;line-height:1.45}
.event-combat-drawtools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:9px;border:1px solid rgba(184,145,82,.32);border-radius:10px;background:#1b1612}
.event-combat-drawtools .smallbtn{margin:0}
.event-combat-drawtools .smallbtn.active{background:#76542f;border-color:#d7ad6e;box-shadow:0 0 0 1px rgba(215,173,110,.28) inset}
.event-combat-drawtools label{display:flex;align-items:center;gap:6px;color:#d8c39c;font-weight:700}
.event-combat-drawtools select{background:#171310;color:#f3e7cf;border:1px solid #80643d;border-radius:8px;padding:7px 9px}
.event-combat-zoom{display:flex;gap:5px;align-items:center;margin-left:auto}
.event-combat-zoom .smallbtn{min-width:36px}
.event-combat-zoom-value{min-width:48px;text-align:center;color:#ead7b8;font-weight:800;font-size:12px}
.event-combat-canvas{position:relative;width:100%;height:min(62vh,680px);min-height:300px;border:1px solid #71583d;border-radius:12px;overflow:auto;background:#0d0b09;overscroll-behavior:contain}
.event-combat-canvas.panning{cursor:grabbing}
.event-combat-loading{padding:50px 20px;text-align:center;color:#bfa98b}
.event-combat-stage{position:relative;width:100%;min-width:0;transform-origin:0 0}
.event-combat-stage img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none;pointer-events:none}
.event-combat-stage svg{position:absolute;inset:0;width:100%;height:100%;touch-action:none}
.ec-hex{fill:rgba(255,255,255,.015);stroke:rgba(239,219,182,.45);stroke-width:1.2;vector-effect:non-scaling-stroke;cursor:pointer}
.ec-hex:hover{fill:rgba(255,218,140,.13);stroke:rgba(255,220,150,.9)}
.ec-hex.selected{fill:rgba(255,203,89,.20);stroke:#ffd36f;stroke-width:3}
.ec-terrain-overlay{pointer-events:none;stroke:none}
.ec-sight-blocked{fill:rgba(84,47,96,.16);stroke:#bd8fd2;stroke-width:3;vector-effect:non-scaling-stroke}
@media(max-width:760px){
 .admineditor.event-combat-editor{width:96vw;padding:12px}
 .event-combat-settings{grid-template-columns:1fr}
 .event-combat-derived{white-space:normal}
 .event-combat-offsets{grid-template-columns:1fr}
 .event-combat-tools{align-items:stretch}
 .event-combat-tools>div{width:100%;margin:0}
 .event-combat-tools label{flex:1 1 140px;min-width:0}
 .event-combat-stage{min-width:0}
 .event-combat-canvas{height:52vh;min-height:300px}
 .event-combat-drawtools{align-items:stretch}
 .event-combat-drawtools label{width:100%;justify-content:space-between}
 .event-combat-zoom{width:100%;margin-left:0;justify-content:center}
}

/* extracted style block 20 */
/* v0.29.1 – plats ↔ händelse */
.event-place-grid{display:grid;gap:6px;margin-top:9px;max-height:260px;overflow:auto;border:1px solid #cdb58f;border-radius:9px;padding:7px;background:#fff9ed}
.event-place-row{display:flex!important;align-items:center!important;gap:9px!important;padding:6px!important;border-bottom:1px solid #eadcc5;color:#3f3228!important}
.event-place-row:last-child{border-bottom:0}
.event-place-row>span{display:flex;flex-direction:column;gap:2px}
.event-place-row small{color:#76614b;font-weight:500}
.event-place-mini,.location-event-mini{margin-top:3px;font-size:11px;color:#a88d6d;font-weight:500;line-height:1.3}
.location-link-group label span{display:inline-flex;align-items:baseline;gap:3px}
.location-link-group label small{font-size:11px;color:#8b6238}

/* extracted style block 21 */
/* v0.29.3 – kompakt händelselista och flera stridsscener */
.admin-event-list{display:grid;border:1px solid #5a4631;border-radius:12px;overflow:hidden}
.admin-event-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #443527}
.admin-event-row:last-child{border-bottom:0}
.admin-event-name{font-weight:800;min-width:0;overflow-wrap:anywhere}
.admin-event-actions{display:flex;gap:6px;flex:0 0 auto}
.admin-event-actions .smallbtn,.admin-event-actions .deletebtn{margin:0}
.event-scene-list{display:grid;gap:7px;margin-top:8px}
.event-scene-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #cfb995;border-radius:9px;background:#fff8eb}
.event-scene-copy{min-width:0;display:flex;flex-direction:column;gap:2px;color:#34291f}
.event-scene-copy b{overflow-wrap:anywhere}
.event-scene-copy small{color:#806a52;font-weight:500;line-height:1.3}
.scene-participants{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.scene-participant-group{border:1px solid rgba(184,145,82,.34);border-radius:10px;background:#211a15;padding:10px;min-width:0}
.scene-participant-group h4{margin:0 0 8px;color:#ead7b8;font-size:15px}
.scene-participant-list{display:grid;gap:6px;max-height:220px;overflow:auto}
.scene-participant-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:6px 7px;border:1px solid rgba(184,145,82,.18);border-radius:8px;color:#ead7b8}
.scene-participant-row.monster{grid-template-columns:auto minmax(0,1fr) auto}
.scene-participant-row small{display:block;color:#aa9679;font-size:11px}
.scene-participant-row input[type="number"]{width:58px;background:#171310;color:#f3e7cf;border:1px solid #80643d;border-radius:7px;padding:6px}
.scene-participant-empty{color:#aa9679;font-size:12px;padding:5px 2px}
.scene-combatants{border:1px solid rgba(184,145,82,.34);border-radius:12px;background:#211a15;padding:12px}
.scene-combatants-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.scene-combatants-head h3{margin:0;color:#ead7b8}
.scene-combatant-list{display:grid;gap:6px}
.scene-combatant-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 9px;border:1px solid rgba(184,145,82,.22);border-radius:9px;background:#171310}
.scene-combatant-badge{font-size:10px;font-weight:900;letter-spacing:.04em;border:1px solid rgba(184,145,82,.4);border-radius:999px;padding:3px 6px;color:#d9c5a4;white-space:nowrap}
.scene-combatant-copy{min-width:0;color:#ead7b8}.scene-combatant-copy b{overflow-wrap:anywhere}.scene-combatant-copy small{display:block;color:#9f8c72;margin-top:2px}
.scene-combatant-actions{display:flex;gap:5px}.scene-combatant-actions button{margin:0}
.scene-combatant-edit{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 140px auto auto;gap:7px;align-items:center}
.scene-combatant-edit input,.scene-combatant-edit select{min-width:0;background:#100d0b;color:#f0dfc1;border:1px solid #765b38;border-radius:7px;padding:7px}
.scene-combatant-picker{margin-top:10px;padding-top:10px;border-top:1px solid rgba(184,145,82,.25)}
.scene-combatant-picker-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}
.scene-template-row{display:grid;grid-template-columns:auto minmax(0,1fr) 64px 94px;gap:7px;align-items:center;padding:6px 7px;border:1px solid rgba(184,145,82,.18);border-radius:8px;color:#ead7b8}
.scene-template-row input[type="number"],.scene-template-row select{width:100%;background:#171310;color:#f3e7cf;border:1px solid #80643d;border-radius:7px;padding:6px}
@media(max-width:520px){.scene-combatant-edit{grid-template-columns:1fr 110px}.scene-combatant-edit .smallbtn{width:100%}.scene-template-row{grid-template-columns:auto minmax(0,1fr) 56px}.scene-template-row select{grid-column:2/4}}
@media(max-width:520px){
 .admin-event-row{padding:9px 10px}
 .event-scene-row{align-items:flex-start}
 .scene-participants{grid-template-columns:1fr}
}

/* extracted style block 22 */
/* v0.29.2 – platsbundna händelser i spelvyn */
.map-event-list{display:grid;gap:7px}
.map-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #51402f;border-radius:9px;padding:8px;background:#211912}
.map-event-row b{color:#ead9bb}
.map-event-meta{margin-top:3px;font-size:11px;color:#a9957d}
.map-event-status{display:inline-block;padding:2px 5px;border-radius:999px;background:#514133;color:#d7c5ae;font-weight:800;font-size:9px}
.map-event-status.active{background:#315d3a;color:#e5f3e4}
.map-event-status.resolved{background:#4a443b;color:#bdb09f}
.map-event-actions{display:flex;gap:5px;align-items:center}
.map-event-actions .smallbtn{margin:0;white-space:nowrap}
@media(max-width:520px){
 .map-event-row{grid-template-columns:1fr}
 .map-event-actions .smallbtn{width:100%}
}

/* extracted style block 23 */
/* v0.30.2 – direkta terrängknappar i hexeditorn */
.event-combat-terrain-panel{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
  align-items:stretch;
}
.event-combat-selection-summary{
  color:#ead7b8;
  padding:1px 2px 3px;
}
.event-combat-terrain-choice{
  display:grid;
  gap:5px;
}
.event-combat-terrain-label{
  color:#d8c39c;
  font-weight:800;
  font-size:12px;
  letter-spacing:.02em;
}
.event-combat-terrain-buttons{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.event-combat-terrain-buttons .terrain-choice{
  width:100%;
  margin:0;
  min-height:40px;
  white-space:normal;
  line-height:1.15;
}
.event-combat-terrain-buttons .terrain-choice.active{
  background:#76542f;
  border-color:#e0b676;
  color:#fff1d5;
  box-shadow:inset 0 0 0 1px rgba(224,182,118,.32),0 0 0 1px rgba(224,182,118,.12);
}
.event-combat-apply-terrain{
  width:100%;
  min-height:42px;
  margin:1px 0 0!important;
  font-weight:900;
  background:#6d1e1e!important;
  border-color:#b76d58!important;
  color:#fff1dc!important;
}
@media(max-width:520px){
  .event-combat-terrain-buttons{gap:5px}
  .event-combat-terrain-buttons .terrain-choice{
    min-height:44px;
    padding:7px 5px;
    font-size:12px;
  }
}

/* extracted style block 24 */
/* v0.30.4 – scenlokal stridsbild, händelsekoppling och markeringsverktyg */
.event-combat-map-source{
  display:grid;
  gap:7px;
  min-width:0;
}
.event-combat-map-upload{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:9px 10px;
  border:1px solid rgba(184,145,82,.4);
  border-radius:9px;
  background:#211a15;
}
.event-combat-map-upload>div{
  min-width:0;
  display:grid;
  gap:2px;
}
.event-combat-map-upload b{
  color:#ead7b8;
  font-size:13px;
}
.event-combat-map-upload small{
  color:#9f8c72;
  font-size:11px;
  line-height:1.3;
}
.event-combat-existing-map{
  margin:0;
}
.event-combat-direct-status{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border:1px solid rgba(184,145,82,.28);border-radius:8px;background:#171310;color:#d8c39c;font-size:12px}
.event-combat-direct-status .smallbtn{margin:0}
@media(max-width:520px){
  .event-combat-map-upload{
    grid-template-columns:1fr;
  }
  .event-combat-map-upload .smallbtn{
    width:100%;
  }
}


/* v0.31.1 — yrkesregister */
.adminprofessiontable{display:grid;grid-template-columns:minmax(180px,1fr) 100px 110px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminprofessiontable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminprofessiontable .ahead{background:#6d1e1e;font-weight:800}
@media(max-width:700px){.adminprofessiontable{grid-template-columns:minmax(150px,1fr) 80px 100px;font-size:13px}}


/* v0.31.2 — rasregister */
.adminracetable{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.8fr) 90px 110px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminracetable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminracetable .ahead{background:#6d1e1e;font-weight:800}
@media(max-width:700px){.adminracetable{grid-template-columns:minmax(140px,1fr) 110px 70px 100px;font-size:13px}}


/* v0.31.3 — individuell ERF-vila */
.campaign-rest-status{margin-top:12px}
.character-rest-grid{display:grid;gap:7px}
.character-rest-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d2bd9a;border-radius:10px;background:#f8efdf;padding:9px 10px;color:#594735}
.character-rest-row>div:first-child{display:grid;gap:2px}.character-rest-row>div:first-child span{font-size:12px;color:#78634e}
.character-rest-rule{display:grid;text-align:right;gap:1px}.character-rest-rule strong{font-size:16px}.character-rest-rule span{font-size:11px}
.character-rest-row.rest-ok{border-color:#8eaa87;background:#eef5e9}.character-rest-row.rest-ok .character-rest-rule{color:#365b3b}
.character-rest-row.rest-need .character-rest-rule{color:#8a4b38}
@media(max-width:560px){.character-rest-row{align-items:flex-start}.character-rest-rule{min-width:112px}}


/* v0.31.4 — startpositioner för stridsscener */
.scene-combatant-drag{cursor:grab;user-select:none}
.scene-combatant-drag.dragging{opacity:.55}
.scene-combatant-row.placement-active{border-color:#d2a64f;background:#251e14}
.scene-combatant-position.placed{color:#a9c48d}.scene-combatant-position.unplaced{color:#bd8a78}
.scene-placement-count{display:block;color:#9f8c72;margin-top:2px}
.scene-placement-help{margin:-2px 0 9px;color:#ad9a80;font-size:12px;line-height:1.4}
.scene-combatant-actions{flex-wrap:wrap;justify-content:flex-end}
.scene-place-btn.active{border-color:#d7ad58;background:#5c431d;color:#fff2cf}
.event-combat-canvas.combatant-drop-ready{outline:3px solid rgba(218,172,83,.72);outline-offset:-3px}
.ec-combatant-token{cursor:pointer}
.ec-combatant-token circle{stroke:#f5e6c9;stroke-width:2.2;vector-effect:non-scaling-stroke}
.ec-combatant-token text{fill:#fff;font-weight:900;text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-size:12px}
.ec-combatant-token.player circle{fill:#376a92}.ec-combatant-token.npc circle{fill:#6d6b73}.ec-combatant-token.enemy circle{fill:#9a493e}.ec-combatant-token.monster circle{fill:#70478c}
.ec-combatant-token.active circle{stroke:#ffd36f;stroke-width:4}
@media(max-width:520px){.scene-combatant-row{grid-template-columns:auto minmax(0,1fr)}.scene-combatant-actions{grid-column:1/-1;justify-content:flex-start}.scene-placement-help{font-size:13px}}


/* v0.31.5 — kompakt stridsscensverktyg */
.event-combat-compact-toolbar,.event-combat-terrain-row{
 display:flex;align-items:center;gap:5px;min-height:36px;padding:5px 6px;
 border:1px solid rgba(184,145,82,.28);background:#171310
}
.event-combat-compact-toolbar{border-radius:9px 9px 0 0;margin-top:5px}
.event-combat-terrain-row{border-top:0;border-radius:0 0 9px 9px;margin-bottom:7px;overflow-x:auto}
.event-combat-compact-toolbar .smallbtn,.event-combat-terrain-row .smallbtn{padding:5px 8px;min-height:28px;margin:0;white-space:nowrap}
.event-combat-brush-compact{display:flex;align-items:center;gap:4px;color:#a99476;font-size:11px;white-space:nowrap}
.event-combat-brush-compact select{height:28px;min-width:48px;padding:2px 4px;background:#100d0b;color:#f0dfc1;border:1px solid #765b38;border-radius:6px}
.event-combat-toolbar-spacer{flex:1 1 auto;min-width:8px}
.event-combat-row-label{font-weight:850;color:#ead7b8;margin-right:3px;white-space:nowrap}
.event-combat-mini-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#8f7d65;margin-left:2px;white-space:nowrap}
.event-combat-terrain-divider{width:1px;height:22px;background:rgba(184,145,82,.28);margin:0 3px;flex:0 0 auto}
.event-combat-selected-compact{font-size:11px;color:#a99476;white-space:nowrap}
.event-combat-terrain-row .terrain-choice.active{background:#5b431d;border-color:#d5aa58;color:#fff1cf}
.event-combat-terrain-row .event-combat-apply-terrain{font-weight:800}
.ec-hex.token-drop-target{fill:rgba(255,211,111,.28);stroke:#ffd36f;stroke-width:4}

.scene-combatants-compact{padding:7px 8px;border-radius:9px;background:#171310}
.scene-combatants-compact-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.scene-combatants-compact-head>div:first-child{display:flex;align-items:baseline;gap:8px;min-width:0}
.scene-combatants-compact-head b{color:#ead7b8}
.scene-combatants-compact-head small{color:#8f7d65;white-space:nowrap}
.scene-combatants-compact-actions{display:flex;gap:5px}
.scene-combatants-compact-actions .smallbtn{margin:0;padding:5px 8px}
.scene-combatant-strip{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding:2px 0 5px}
.scene-combatant-chip{flex:0 0 auto;min-width:112px;max-width:150px;border:1px solid rgba(184,145,82,.24);border-radius:8px;background:#100d0b}
.scene-combatant-chip.reserve{border-style:dashed}
.scene-combatant-chip.placement-active{border-color:#d5aa58;box-shadow:inset 0 0 0 1px rgba(213,170,88,.35)}
.scene-combatant-chip-main{display:flex;align-items:center;gap:7px;width:100%;min-height:42px;padding:5px 7px;border:0;background:transparent;color:#ead7b8;text-align:left;cursor:grab}
.scene-combatant-chip-main.dragging{opacity:.55}
.scene-combatant-chip-token{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:2px solid #f0dfc1;color:#fff;font-weight:900;font-size:11px;flex:0 0 auto}
.scene-combatant-chip.player .scene-combatant-chip-token{background:#376a92}
.scene-combatant-chip.npc .scene-combatant-chip-token{background:#6d6b73}
.scene-combatant-chip.enemy .scene-combatant-chip-token{background:#9a493e}
.scene-combatant-chip.monster .scene-combatant-chip-token{background:#70478c}
.scene-combatant-chip-copy{min-width:0;display:grid;gap:1px}
.scene-combatant-chip-copy b{font-size:12px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scene-combatant-chip-copy small{font-size:10px;color:#9f8c72}
.scene-combatant-chip.reserve .scene-combatant-chip-copy small{color:#c18c76;font-weight:750}
.scene-combatant-strip-note{font-size:11px;color:#8f7d65;line-height:1.35}
.scene-combatant-picker,.scene-combatant-manage-list{margin-top:8px;padding-top:8px;border-top:1px solid rgba(184,145,82,.2)}
.scene-combatant-manage-list{display:grid;gap:5px}
.event-combat-canvas.token-dragging{cursor:grabbing}

@media(max-width:720px){
 .event-combat-compact-toolbar{overflow-x:auto}
 .event-combat-toolbar-spacer{display:none}
 .event-combat-zoom{margin-left:auto}
 .scene-combatants-compact-head{align-items:flex-start}
 .scene-combatants-compact-head>div:first-child{display:grid;gap:1px}
}


/* v0.31.6 — hexagonala stridsikoner */
.combat-icon-hex{
 --combat-side:#aeb7c2;
 display:inline-grid;place-items:center;width:46px;height:52px;
 clip-path:polygon(50% 0,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);
 background:var(--combat-side);padding:3px;box-sizing:border-box;flex:0 0 auto
}
.combat-icon-hex.player{--combat-side:#43a65b}
.combat-icon-hex.npc{--combat-side:#4d8fc9}
.combat-icon-hex.enemy{--combat-side:#c64d45}
.combat-icon-hex-inner{
 display:grid;place-items:center;width:100%;height:100%;
 clip-path:inherit;background:#1a1714;color:#eee;font-size:22px;font-weight:800;overflow:hidden
}
.combat-icon-hex-inner img{width:100%;height:100%;object-fit:cover;display:block}
.character-combat-icon-control,.admin-combat-icon-row{display:flex;align-items:center;gap:10px}
.character-combat-icon-actions,.admin-combat-icon-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.character-combat-icon-actions small{flex-basis:100%;color:#8f7d65}
.admin-combat-icon-picker{grid-column:1/-1;display:grid;gap:7px;padding:9px;border:1px solid rgba(184,145,82,.25);border-radius:9px;background:#171310}
.admin-combat-icon-picker>div:first-child small{display:block;color:#9f8c72;margin-top:2px}
.admin-combat-icon-picker .combat-icon-hex{width:58px;height:66px}

.scene-combatant-chip .combat-icon-hex{width:34px;height:38px;padding:2px}
.scene-combatant-chip .combat-icon-hex-inner{font-size:16px}
.ec-combatant-token .ec-token-border{fill:none;stroke-width:4;vector-effect:non-scaling-stroke;pointer-events:all}
.ec-combatant-token.player .ec-token-border{stroke:#43a65b}
.ec-combatant-token.npc .ec-token-border{stroke:#4d8fc9}
.ec-combatant-token.enemy .ec-token-border,.ec-combatant-token.monster .ec-token-border{stroke:#c64d45}
.ec-combatant-token.active .ec-token-border{stroke:#ffd36f;stroke-width:6}
.ec-combatant-token .ec-token-fallback{fill:rgba(22,20,18,.92);pointer-events:none}
.ec-combatant-token .ec-token-glyph{fill:#f6ead2;font-size:18px;font-weight:900;text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.ec-combatant-token image{pointer-events:none}


/* v0.31.7 — SLP-administration */
.admineditor.slp-editor{width:min(1080px,96vw);max-height:94vh}
.slp-admin-form{gap:12px}
.slp-top-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}
.slp-basic-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.slp-portrait-picker{display:grid;gap:8px}
.slp-portrait-preview{
 width:220px;aspect-ratio:4/5;border:1px solid #5a4631;border-radius:12px;overflow:hidden;
 display:grid;place-items:center;background:#15110e;color:#8f7d65;font-size:56px
}
.slp-portrait-preview img{width:100%;height:100%;object-fit:cover;display:block}
.slp-portrait-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.slp-portrait-actions b,.slp-portrait-actions small{flex-basis:100%}
.slp-portrait-actions small{color:#9f8c72;font-size:11px}
.slp-attribute-grid{display:grid;grid-template-columns:repeat(7,minmax(74px,1fr));gap:7px}
.slp-attribute-grid label{display:grid;gap:4px}
.slp-attribute-grid span{font-size:11px;color:#a99476}
.slp-attribute-grid input{text-align:center;font-weight:800}
.slp-derived-note{margin-top:7px;color:#a99476;font-size:12px}
.slp-list{display:grid;gap:6px}
.slp-list-row{display:grid;gap:6px;align-items:center}
.slp-skill-row{grid-template-columns:minmax(220px,1fr) 80px 36px}
.slp-weapon-row{grid-template-columns:minmax(180px,1fr) minmax(140px,.8fr) 72px 110px 36px}
.slp-list-empty{padding:9px;border:1px dashed rgba(184,145,82,.25);border-radius:8px;color:#8f7d65;font-size:12px}
.slp-equipment-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;margin-top:9px}
.slp-admin-flags{display:flex;gap:14px;flex-wrap:wrap}
.npcadmintable{grid-template-columns:minmax(240px,1.3fr) minmax(150px,.8fr) 110px 100px}
.npc-admin-name{display:flex;align-items:center;gap:9px;min-width:0}
.npc-admin-name img,.npc-admin-placeholder{
 width:42px;height:48px;border-radius:7px;object-fit:cover;flex:0 0 auto;
 border:1px solid #5a4631;background:#171310;display:grid;place-items:center
}
.npc-admin-name>span:last-child{display:grid;gap:2px;min-width:0}
.npc-admin-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.npc-admin-name small{font-size:10px;color:#9f8c72}
@media(max-width:760px){
 .slp-top-grid{grid-template-columns:1fr}
 .slp-portrait-preview{width:min(220px,100%)}
 .slp-basic-fields{grid-template-columns:1fr}
 .slp-attribute-grid{grid-template-columns:repeat(4,1fr)}
 .slp-weapon-row{grid-template-columns:1fr 1fr 70px}
 .slp-weapon-row input:nth-of-type(2){grid-column:1/3}
 .slp-weapon-row .deletebtn{grid-column:3;grid-row:1}
 .slp-equipment-grid{grid-template-columns:1fr 1fr}
 .slp-equipment-grid label:first-child{grid-column:1/-1}
 .npcadmintable{grid-template-columns:minmax(200px,1fr) 130px 90px 90px;font-size:12px}
}

.admin-overview-version{
 margin-top:18px;padding-top:12px;border-top:1px solid rgba(184,145,82,.18);
 text-align:center;font-size:11px;font-weight:700;letter-spacing:.04em;color:#8f806d
}


/* v0.31.13 — rasregler + mobil SLP */
.adminracetable{grid-template-columns:minmax(150px,1fr) minmax(110px,.75fr) minmax(125px,.85fr) 100px}
.race-rule-summary{font-size:12px;color:#cdbb99}
.race-attribute-editor{display:grid;gap:6px;margin-top:6px}
.race-attribute-head,.race-attribute-row{display:grid;grid-template-columns:90px minmax(120px,1fr) 100px;gap:8px;align-items:center}
.race-attribute-head{font-size:11px;font-weight:800;color:#765f47;padding:0 2px}
.race-attribute-row{padding:6px 8px;border:1px solid #d4c09e;border-radius:8px;background:#fbf3e5}
.race-attribute-row input{margin:0!important}
.race-attribute-editor>small{color:#78634e}

.admineditor.slp-editor{
 width:100%;max-width:1080px;min-width:0;box-sizing:border-box;overflow-x:hidden
}
.slp-admin-form,.slp-top-grid,.slp-basic-fields,.slp-list,.slp-list-row,.slp-equipment-grid,.adminform-section{min-width:0}
.slp-admin-form input,.slp-admin-form select,.slp-admin-form textarea{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.slp-attribute-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.slp-attribute-actions .smallbtn:disabled{opacity:.45;cursor:not-allowed}
#npcRaceRuleNote{color:#8f7d65}

@media(max-width:760px){
 #adminEditor.modalback{padding:8px}
 .admineditor.slp-editor{width:100%;max-width:100%;padding:14px;border-radius:14px}
 .admineditor.slp-editor .modalhead h2{font-size:22px}
 .slp-admin-form{overflow-x:hidden}
 .slp-top-grid{grid-template-columns:minmax(0,1fr)}
 .slp-basic-fields{grid-template-columns:minmax(0,1fr)}
 .slp-attribute-head{align-items:flex-start;flex-direction:column}
 .slp-attribute-actions{width:100%;justify-content:stretch}
 .slp-attribute-actions .smallbtn{flex:1 1 140px}
 .slp-attribute-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .slp-skill-row{grid-template-columns:minmax(0,1fr) 64px 36px}
 .slp-skill-row>*{min-width:0}
 .slp-weapon-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px}
 .slp-weapon-row>*{min-width:0}
 .slp-weapon-row>select{grid-column:1/-1}
 .slp-weapon-row>input:nth-of-type(1){grid-column:1/-1}
 .slp-weapon-row>input:nth-of-type(2){grid-column:1}
 .slp-weapon-row>input:nth-of-type(3){grid-column:2}
 .slp-weapon-row>.deletebtn{grid-column:3;grid-row:3}
 .slp-weapon-actions{grid-column:3;grid-row:3}
 .slp-equipment-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .slp-equipment-grid>*{min-width:0}
 .slp-admin-flags{display:grid;grid-template-columns:1fr}
 .adminformactions{flex-wrap:wrap}
 .adminformactions .btn{flex:1 1 130px}
 .race-attribute-head,.race-attribute-row{grid-template-columns:56px minmax(0,1fr) 78px}
 .race-attribute-row{padding:6px}
 .adminracetable{grid-template-columns:minmax(120px,1fr) 90px 110px 82px;font-size:12px}
}


/* v0.31.15 — SLP-lista utan horisontell mobilscroll */
.npcadmintable{
 width:100%;
 max-width:100%;
 min-width:0;
 box-sizing:border-box;
 overflow:hidden;
}
.npcadmintable>div{min-width:0;box-sizing:border-box}
.npc-admin-mobile-title{display:none}
@media(max-width:760px){
 .npcadmintable{
  grid-template-columns:minmax(0,1fr) 64px 72px;
  width:100%;
  max-width:100%;
  overflow:hidden;
  font-size:12px;
 }
 .npcadmintable .npc-col-title{display:none}
 .npcadmintable .npc-col-name{min-width:0}
 .npcadmintable .npc-col-visibility{
  min-width:0;
  padding-left:4px;
  padding-right:4px;
  text-align:center;
 }
 .npcadmintable .npc-col-actions{
  min-width:0;
  padding-left:3px;
  padding-right:3px;
  gap:3px;
  flex-wrap:nowrap;
  justify-content:center;
 }
 .npcadmintable .npc-col-actions .smallbtn,
 .npcadmintable .npc-col-actions .deletebtn{
  min-width:28px;
  width:28px;
  padding-left:3px;
  padding-right:3px;
 }
 .npcadmintable .content-badge{
  max-width:100%;
  box-sizing:border-box;
  padding:3px 4px;
  font-size:9px;
  white-space:nowrap;
 }
 .npc-admin-mobile-title{
  display:block;
  color:#d7c19d!important;
  font-size:11px!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
 }
 .npc-admin-summary{
  overflow-wrap:anywhere;
  line-height:1.25;
 }
 .npc-admin-name img,.npc-admin-placeholder{
  width:36px;
  height:42px;
 }
 .npc-admin-name{gap:7px}
}


/* v0.31.16 — mobil stridsscen utan horisontell sidscroll + kartval i kartytan */
.admineditor.event-combat-editor{
 width:100%;
 max-width:1180px;
 min-width:0;
 box-sizing:border-box;
 overflow-y:auto;
 overflow-x:hidden;
}
.event-combat-editor-layout,
.event-combat-settings,
.event-combat-settings>*,
.event-combat-compact-toolbar,
.event-combat-terrain-row,
#sceneCombatantsMount,
.scene-combatants-compact,
.scene-combatant-picker,
.scene-participants,
.scene-participant-group{
 min-width:0;
 max-width:100%;
 box-sizing:border-box;
}
.event-combat-settings input,
.event-combat-settings select,
.event-combat-offsets input,
.scene-combatant-edit input,
.scene-combatant-edit select,
.scene-template-row input,
.scene-template-row select{
 min-width:0;
 max-width:100%;
 box-sizing:border-box;
}
.event-combat-map-picker{
 width:100%;
 height:100%;
 min-height:300px;
 border:0;
 background:linear-gradient(145deg,#15110e,#0c0a08);
 color:#d8c39c;
 display:grid;
 place-items:center;
 align-content:center;
 gap:8px;
 padding:24px;
 cursor:pointer;
 font:inherit;
 text-align:center;
}
.event-combat-map-picker:hover{background:linear-gradient(145deg,#1d1712,#100d0a)}
.event-combat-map-picker span{font-size:38px}
.event-combat-map-picker b{font:800 19px Georgia,serif;color:#f0dab7}
.event-combat-map-picker small{max-width:360px;color:#9f8c72;line-height:1.4}
.event-combat-change-map{
 position:absolute;
 z-index:8;
 top:8px;
 right:8px;
 margin:0!important;
 box-shadow:0 3px 12px rgba(0,0,0,.45);
}
.event-combat-canvas.empty-map{overflow:hidden}
@media(max-width:760px){
 #adminEditor.modalback{padding:8px}
 .admineditor.event-combat-editor{
  width:100%;
  max-width:100%;
  min-width:0;
  padding:12px;
  border-radius:14px;
  box-sizing:border-box;
 }
 .event-combat-editor-layout{overflow-x:hidden}
 .event-combat-settings{grid-template-columns:minmax(0,1fr)}
 .event-combat-settings details{min-width:0}
 .event-combat-offsets{grid-template-columns:minmax(0,1fr)}
 .event-combat-compact-toolbar,
 .event-combat-terrain-row{
  flex-wrap:wrap;
  overflow-x:hidden;
  width:100%;
 }
 .event-combat-compact-toolbar .smallbtn,
 .event-combat-terrain-row .smallbtn{
  white-space:normal;
  flex:0 1 auto;
 }
 .event-combat-brush-compact{white-space:normal;min-width:0}
 .event-combat-toolbar-spacer{display:none}
 .event-combat-terrain-divider{display:none}
 .event-combat-row-label{flex:1 0 100%}
 .event-combat-mini-label{margin-left:0}
 .event-combat-selected-compact{margin-left:auto}
 .event-combat-zoom{
  width:auto;
  max-width:100%;
  margin-left:auto;
  flex-wrap:wrap;
 }
 .scene-combatant-strip{
  flex-wrap:wrap;
  overflow-x:hidden;
  width:100%;
 }
 .scene-combatant-chip{
  flex:1 1 120px;
  min-width:0;
  max-width:none;
 }
 .scene-combatants-compact-head{
  flex-wrap:wrap;
 }
 .scene-combatants-compact-actions{
  flex-wrap:wrap;
 }
 .scene-participants{grid-template-columns:minmax(0,1fr)}
 .scene-template-row>*{min-width:0}
 .scene-combatant-row{min-width:0}
 .scene-combatant-edit{grid-template-columns:minmax(0,1fr)}
 .scene-combatant-edit .smallbtn{width:100%}
 .event-combat-map-picker{min-height:260px}
 .event-combat-change-map{top:6px;right:6px}
 .adminformactions{flex-wrap:wrap}
 .adminformactions .btn{flex:1 1 140px;min-width:0}
}


/* v0.31.17 — rollperson mörkgrön, SLP blå + utrustningsval */
#view .box{
 background:linear-gradient(145deg,#17241d,#101713);
 border-color:#365746;
}
#view .portrait{
 background:linear-gradient(145deg,#20372a,#0e1712);
 border-color:#3f6851;
}
#view .field,#view .quickstat{
 background:#111c16;
 border-color:#31503f;
}
#view .tab{
 border-color:#3b5e49;
 background:#101914;
}
#view .tab.active,
#view .skillhead,
#view .head,
#view #weaponsPanel .weapon-head>div{
 background:#1f5138;
 color:#f0f7f2;
}
#view .derived .field{background:#183d2c}
#view .derived .field .label{color:#d2eadb}
#view .smallbtn,#view .btn,#view .stepper button{
 border-color:#4d755d;
 background:#1b3023;
}
#view .smallbtn:hover,#view .btn:hover,#view .stepper button:hover{background:#244633}
#view .skill-link:hover{color:#8fc5a1}
#view .current-equipment-launch .btn{
 background:linear-gradient(#28523a,#193725);
 border-color:#5f8b6c;
 color:#eff8f1;
}
#view .section-title{color:#e4f1e8}
#view .label{color:#a9c7b3}
#view .basegrid,#view .skilltable,#view .langtable,#view .magictable,#view .weapontable,#view .armortable,#view .shieldtable,#view .inventorytable,#view .simpletable{
 border-color:#365947;
}
#view .basegrid>div,#view .skilltable>div,#view .langtable>div,#view .magictable>div,#view .armortable>div,#view .shieldtable>div,#view .inventorytable>div,#view .simpletable>div,
#view #weaponsPanel .weapon-head>div,#view #weaponsPanel .weapon-row>div{
 border-bottom-color:#294535;
}

#admin [data-admin-section="people"].adminbox{
 border-color:rgba(78,139,181,.55);
 background:linear-gradient(145deg,rgba(29,50,67,.96),rgba(17,31,43,.97));
}
#admin [data-admin-section="people"] .adminsectionhead h2{color:#d8efff}
#admin [data-admin-section="people"] .campaigncontenttable{border-color:#315c79}
#admin [data-admin-section="people"] .campaigncontenttable>div:not(.ahead){background:#10202d}
#admin [data-admin-section="people"] .campaigncontenttable .ahead{background:#1f5579}
#admin [data-admin-section="people"] .npc-admin-name img,
#admin [data-admin-section="people"] .npc-admin-placeholder{border-color:#3b6987;background:#0b1720}
#admin [data-admin-section="enemies"] .campaigncontenttable .ahead{background:#6d1e1e}

.admineditor.slp-editor{
 --slp-bg:#09131c;
 --slp-panel:#0f1e2b;
 --slp-field:#0b1822;
 --slp-line:#315d7a;
 --slp-accent:#24678f;
 --slp-accent-strong:#1f7caf;
 --slp-text:#edf7fd;
 --slp-muted:#9eb9cb;
 background:linear-gradient(145deg,#102333,#08131c)!important;
 border:1px solid #376985!important;
 color:var(--slp-text)!important;
 box-shadow:0 26px 80px rgba(0,0,0,.55),inset 0 0 0 1px rgba(118,188,230,.035);
}
.admineditor.slp-editor .modalhead{
 padding-bottom:12px;
 margin-bottom:14px;
 border-bottom:1px solid rgba(81,139,178,.38);
}
.admineditor.slp-editor .modalhead h2{color:#dff3ff!important;font-family:Georgia,serif}
.admineditor.slp-editor .modalclose{
 border-color:#47718b;
 background:#122738;
 color:#eaf7ff;
}
.admineditor.slp-editor .modalclose:hover{background:#19364b}
.admineditor.slp-editor .slp-portrait-picker,
.admineditor.slp-editor .adminform-section{
 border:1px solid rgba(65,113,145,.55);
 border-radius:14px;
 background:linear-gradient(145deg,rgba(15,31,44,.96),rgba(10,22,32,.98));
 padding:12px;
}
.admineditor.slp-editor .adminform-section{
 border-top:1px solid rgba(65,113,145,.55);
 margin-top:0;
}
.admineditor.slp-editor .slp-portrait-preview{
 border-color:#416d8a;
 background:linear-gradient(145deg,#122b3d,#08131c);
}
.admineditor.slp-editor .slp-basic-fields label,
.admineditor.slp-editor .slp-attribute-grid label{
 background:var(--slp-field);
 border:1px solid rgba(65,113,145,.48);
 border-radius:10px;
 padding:9px;
 color:#b9d3e4;
}
.admineditor.slp-editor .slp-basic-fields label{
 text-transform:uppercase;
 letter-spacing:.05em;
 font-size:11px;
}
.admineditor.slp-editor input,
.admineditor.slp-editor select,
.admineditor.slp-editor textarea{
 background:#08131c!important;
 color:#f1f8fc!important;
 border-color:#3b6884!important;
}
.admineditor.slp-editor input[readonly]{opacity:.78;background:#0d1b25!important}
.admineditor.slp-editor .admin-subsection-head h3{
 color:#dceefa;
 font-family:Georgia,serif;
 font-size:18px;
}
.admineditor.slp-editor .muted,
.admineditor.slp-editor .slp-derived-note,
.admineditor.slp-editor .slp-portrait-actions small,
.admineditor.slp-editor #npcRaceRuleNote{color:var(--slp-muted)!important}
.admineditor.slp-editor .smallbtn{
 border-color:#467694;
 background:#153247;
 color:#eef8fe;
}
.admineditor.slp-editor .smallbtn:hover{background:#1b4965;border-color:#65a7d0}
.admineditor.slp-editor .btn.primary{
 background:linear-gradient(#2879a5,#1d5d83);
 border-color:#62a6ce;
 color:#fff;
}
.admineditor.slp-editor .btn:not(.primary){
 border-color:#416a84;
 background:#122736;
}
.admineditor.slp-editor .slp-list-row{
 border:1px solid rgba(65,113,145,.42);
 border-radius:10px;
 background:#0b1720;
 padding:7px;
}
.admineditor.slp-editor .slp-list-empty{
 border-color:rgba(78,137,176,.42);
 color:#89a8bc;
}
.admineditor.slp-editor .admin-combat-icon-picker{
 border-color:rgba(65,113,145,.48);
 background:#0b1720;
}
.slp-shield-grid{grid-template-columns:minmax(160px,1.5fr) minmax(140px,1.2fr) 78px 78px}
@media(max-width:760px){
 .slp-shield-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .slp-shield-grid label:nth-last-child(-n+2){grid-column:auto}
 #view .box{border-color:#315441}
}


/* v0.31.18 — fiender och monster som röda profilkort */
#admin [data-admin-section="enemies"].adminbox{
 border-color:rgba(151,65,60,.58);
 background:linear-gradient(145deg,rgba(58,22,21,.96),rgba(31,13,13,.98));
}
#admin [data-admin-section="enemies"]>.adminsectionhead h2{color:#ffd9d5}
.enemy-admin-group{
 margin-top:14px;
 padding:12px;
 border:1px solid rgba(145,61,57,.46);
 border-radius:14px;
 background:linear-gradient(145deg,rgba(48,18,18,.92),rgba(27,11,11,.96));
}
.enemy-admin-group:first-of-type{margin-top:4px}
.enemy-admin-group .admin-subsection-head{margin-bottom:10px}
.enemy-admin-group .admin-subsection-head h3{
 margin:0;
 color:#f7d0cc;
 font:700 18px Georgia,serif;
}
.enemyadmintable{
 width:100%;
 max-width:100%;
 border-color:#713431!important;
 overflow:hidden;
}
.enemyadmintable>div:not(.ahead){background:#211010}
.enemyadmintable .ahead{background:#762723!important;color:#ffe5e1}
.enemyadmintable .npc-admin-placeholder{border-color:#7a3833;background:#190b0b}
.enemyadmintable .npc-admin-name img{border-color:#7a3833}
.enemyadmintable .npc-admin-mobile-title{color:#e1aaa4!important}
.actor-table-empty{grid-column:1/-1!important}

.admineditor.slp-editor.enemy-editor{
 --slp-bg:#190909;
 --slp-panel:#2b1111;
 --slp-field:#210d0d;
 --slp-line:#793733;
 --slp-accent:#8e2d29;
 --slp-accent-strong:#aa3a34;
 --slp-text:#fff1ef;
 --slp-muted:#cda8a3;
 background:linear-gradient(145deg,#301313,#160909)!important;
 border-color:#82403a!important;
 color:var(--slp-text)!important;
}
.admineditor.slp-editor.enemy-editor .modalhead{border-bottom-color:rgba(156,69,64,.42)}
.admineditor.slp-editor.enemy-editor .modalhead h2{color:#ffe1dd!important}
.admineditor.slp-editor.enemy-editor .modalclose{
 border-color:#82443e;
 background:#351817;
 color:#fff0ee;
}
.admineditor.slp-editor.enemy-editor .modalclose:hover{background:#4a201e}
.admineditor.slp-editor.enemy-editor .slp-portrait-picker,
.admineditor.slp-editor.enemy-editor .adminform-section{
 border-color:rgba(145,62,58,.58);
 background:linear-gradient(145deg,rgba(48,19,18,.97),rgba(27,11,11,.99));
}
.admineditor.slp-editor.enemy-editor .slp-portrait-preview{
 border-color:#7a3a35;
 background:linear-gradient(145deg,#351615,#160909);
}
.admineditor.slp-editor.enemy-editor .slp-basic-fields label,
.admineditor.slp-editor.enemy-editor .slp-attribute-grid label{
 background:var(--slp-field);
 border-color:rgba(145,62,58,.52);
 color:#dfb8b3;
}
.admineditor.slp-editor.enemy-editor input,
.admineditor.slp-editor.enemy-editor select,
.admineditor.slp-editor.enemy-editor textarea{
 background:#190a0a!important;
 color:#fff3f1!important;
 border-color:#7b3a35!important;
}
.admineditor.slp-editor.enemy-editor input[readonly]{background:#24100f!important}
.admineditor.slp-editor.enemy-editor .admin-subsection-head h3{color:#f6d4d0}
.admineditor.slp-editor.enemy-editor .muted,
.admineditor.slp-editor.enemy-editor .slp-derived-note,
.admineditor.slp-editor.enemy-editor .slp-portrait-actions small,
.admineditor.slp-editor.enemy-editor #npcRaceRuleNote{color:var(--slp-muted)!important}
.admineditor.slp-editor.enemy-editor .smallbtn{
 border-color:#85453f;
 background:#3c1a18;
 color:#fff0ee;
}
.admineditor.slp-editor.enemy-editor .smallbtn:hover{
 background:#582420;
 border-color:#b15b52;
}
.admineditor.slp-editor.enemy-editor .btn.primary{
 background:linear-gradient(#a43b34,#792823);
 border-color:#d06960;
 color:#fff;
}
.admineditor.slp-editor.enemy-editor .btn:not(.primary){
 border-color:#75403b;
 background:#321716;
}
.admineditor.slp-editor.enemy-editor .slp-list-row{
 border-color:rgba(145,62,58,.48);
 background:#210e0d;
}
.admineditor.slp-editor.enemy-editor .slp-list-empty{
 border-color:rgba(145,62,58,.44);
 color:#c49590;
}
.admineditor.slp-editor.enemy-editor .admin-combat-icon-picker{
 border-color:rgba(145,62,58,.5);
 background:#210e0d;
}
@media(max-width:760px){
 .enemy-admin-group{padding:9px}
 .enemy-admin-group .admin-subsection-head{align-items:flex-start;gap:8px;flex-wrap:wrap}
 .enemy-admin-group .admin-subsection-head .smallbtn{flex:0 0 auto}
}


/* v0.33.0 — SL-start av stridsscen */
.combat-gm-controls{
 display:grid;
 grid-template-columns:minmax(150px,auto) minmax(180px,360px) auto auto minmax(120px,1fr);
 gap:8px;
 align-items:center;
 margin:0 0 12px;
 padding:9px 10px;
 border:1px solid #8e6b43;
 border-radius:11px;
 background:#211912;
 color:#f2dfbf
}
.combat-gm-controls.hidden{display:none}
.combat-gm-control-copy{display:flex;flex-direction:column;gap:1px}
.combat-gm-control-copy span{font-size:10px;font-weight:900;letter-spacing:.1em;color:#f2ca83}
.combat-gm-control-copy small{font-size:10px;color:#a99577}
.combat-gm-controls select{
 min-width:0;
 min-height:38px;
 padding:7px 9px;
 border:1px solid #745a3d;
 border-radius:8px;
 background:#f7ead6;
 color:#3c3025;
 font-weight:700
}
.combat-gm-controls .btn{min-height:38px;padding:7px 12px}
.combat-play-btn{background:#315d3f!important;border-color:#467957!important;color:#fff!important}
.combat-reset-btn{background:#6f221f!important;border-color:#8b3731!important;color:#fff!important}
.combat-gm-active{justify-self:end;font-size:11px;color:#ceb995;text-align:right}
.combat-gm-active.idle{color:#8f806c}
@media(max-width:760px){
 .combat-gm-controls{grid-template-columns:1fr 1fr}
 .combat-gm-control-copy,.combat-gm-controls select,.combat-gm-active{grid-column:1/-1}
 .combat-gm-active{justify-self:start;text-align:left}
}


/* v0.33.1 — stridskartan använder stridsscenens kartbild och fulla kalibrerade hexnät */
.combat-board{
 display:flex;
 align-items:center;
 justify-content:center;
}
.combat-board .combat-map-svg{
 display:block;
 width:100%;
 height:100%;
 min-width:0;
 min-height:0;
}
.combat-map-background{
 pointer-events:none;
}
.combat-map-missing{
 width:100%;
 padding:32px 18px;
 text-align:center;
 color:#c9b99f;
 font-size:13px;
 line-height:1.45;
}


/* v0.33.2 — nåbara hexar för markerad kombatant i Rörelse */
.combat-hex.move-reachable{
 fill:rgba(74,156,92,.28);
 stroke:#72cf86;
 stroke-width:2.2;
}
.combat-hex.move-reachable.difficult{
 fill:rgba(194,145,52,.32);
 stroke:#e4bc67;
}
.combat-hex.move-origin{
 fill:rgba(255,211,123,.22);
 stroke:#ffd37b;
 stroke-width:3;
}
.combat-hex.move-blocked{
 cursor:not-allowed;
}


/* v0.33.3 — halv förflyttning behåller handling */
.combat-hex.move-reachable.move-action-kept{
 fill:rgba(64,178,89,.38);
 stroke:#82e296;
 stroke-width:2.8;
}
.combat-hex.move-reachable.move-action-spent{
 fill:rgba(74,156,92,.11);
 stroke:rgba(114,207,134,.48);
 stroke-width:1.5;
}
.combat-hex.move-reachable.difficult.move-action-kept{
 fill:rgba(214,162,55,.40);
 stroke:#f0c96e;
 stroke-width:2.8;
}
.combat-hex.move-reachable.difficult.move-action-spent{
 fill:rgba(194,145,52,.12);
 stroke:rgba(228,188,103,.50);
 stroke-width:1.5;
}
.combat-board-legends{
 display:flex;
 align-items:center;
 justify-content:flex-end;
 gap:12px;
 flex-wrap:wrap;
}
.combat-move-legend{
 display:flex;
 gap:8px;
 align-items:center;
 font-size:11px;
 color:#cdbb9d;
}
.combat-move-legend span{
 display:inline-flex;
 align-items:center;
 gap:5px;
 white-space:nowrap;
}
.combat-move-legend span:before{
 content:'⬡';
 font-size:14px;
}
.combat-move-legend .keep-action:before{
 color:#82e296;
 text-shadow:0 0 5px rgba(130,226,150,.45);
}
.combat-move-legend .spend-action:before{
 color:rgba(114,207,134,.46);
}
@media(max-width:700px){
 .combat-board-head{align-items:flex-start}
 .combat-board-legends{gap:5px;justify-content:flex-end}
 .combat-move-legend{width:100%;justify-content:flex-end}
}


/* v0.33.5 — actionval för kombatanten vars tur det är */
.combatant-card.active-turn{
 box-shadow:inset 4px 0 0 #d7a84d;
 background:#fff3d8;
}
.combat-token.active-turn{
 stroke:#ffe08b;
 stroke-width:5;
 filter:drop-shadow(0 0 5px rgba(255,211,123,.8));
}
.combat-action-box{
 margin-top:12px;
 padding:10px;
 border:1px solid #b8935f;
 border-radius:10px;
 background:#fff5e2;
}
.combat-action-box.waiting{
 display:flex;
 flex-direction:column;
 gap:4px;
 color:#6d5a43;
}
.combat-action-head{
 display:flex;
 justify-content:space-between;
 align-items:flex-start;
 gap:10px;
 margin-bottom:8px;
}
.combat-action-head>div{display:flex;flex-direction:column;gap:2px}
.combat-action-head b{color:#6f221f}
.combat-action-head span{font-size:11px;color:#7b654e}
.combat-action-head strong{
 font-size:11px;
 color:#315d3f;
 text-align:right;
}
.combat-action-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:6px;
}
.combat-action-btn{
 min-height:44px;
 border:1px solid #c9aa7d;
 border-radius:8px;
 background:#fffaf0;
 color:#44352a;
 display:flex;
 align-items:center;
 gap:7px;
 padding:7px 8px;
 text-align:left;
 cursor:pointer;
}
.combat-action-btn:hover{border-color:#8f6536;background:#fff1d9}
.combat-action-btn.active{
 border-color:#467957;
 outline:2px solid rgba(70,121,87,.32);
 background:#e8f1e7;
}
.combat-action-btn span{font-size:17px}
.combat-action-btn b{font-size:12px}
.combat-action-note{
 margin-top:8px;
 font-size:10px;
 line-height:1.35;
 color:#7b654e;
}
@media(max-width:560px){
 .combat-action-grid{grid-template-columns:1fr}
}


/* v0.33.7 — rörelse/action-koppling och attackmål */
.combat-token.attack-target{
 stroke:#ff645c;
 stroke-width:5;
 filter:drop-shadow(0 0 7px rgba(255,80,70,.88));
}
.combatant-card.attack-target{
 box-shadow:inset 4px 0 0 #c93f38,0 0 0 1px rgba(201,63,56,.2);
 background:#fff0eb;
}
.combat-action-box.full-move{
 border-color:#9b7550;
 background:#f3e4cb;
}
.combat-attack-summary{
 margin-top:10px;
 padding:8px 9px;
 border:1px solid #c78980;
 border-radius:8px;
 background:#fff0eb;
 display:flex;
 flex-direction:column;
 gap:2px;
 color:#6f2925;
}
.combat-attack-summary b{font-size:12px}
.combat-attack-summary span{font-size:10px;color:#7c5b52}
.combat-attack-summary.empty{
 border-color:#b9a98e;
 background:#f4ede2;
 color:#665c4f;
}


/* v0.33.8 — klickbar förflyttning och automatisk avvaktan efter full rörelse */
.combat-hex.move-reachable{
 cursor:pointer;
}
.combat-hex.move-reachable:hover{
 stroke-width:3.4;
 filter:drop-shadow(0 0 4px rgba(114,207,134,.5));
}
.combat-hex.move-occupied{
 cursor:not-allowed;
 fill:rgba(120,80,70,.18)!important;
 stroke:rgba(120,80,70,.6)!important;
}


/* v0.33.10 — attack använder aktuellt handvapen; två vapen kräver val */
.combat-weapon-choice{
 margin-top:8px;padding:8px;border:1px solid #c7aa7c;border-radius:8px;background:#fffaf0;
 display:flex;flex-direction:column;gap:6px;
}
.combat-weapon-choice>span{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#725c43}
.combat-weapon-choice.single,.combat-weapon-choice.empty{flex-direction:row;align-items:center;justify-content:space-between}
.combat-weapon-choice.single b{color:#315d3f}
.combat-weapon-choice.empty b{color:#8a493f;font-size:11px}
.combat-weapon-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.combat-weapon-choice-btn{
 border:1px solid #c9aa7d;border-radius:7px;background:#fff;padding:7px 8px;
 display:flex;flex-direction:column;gap:2px;text-align:left;cursor:pointer;color:#44352a;
}
.combat-weapon-choice-btn.active{border-color:#467957;outline:2px solid rgba(70,121,87,.28);background:#e8f1e7}
.combat-weapon-choice-btn small{font-size:10px;color:#7c6a54}
@media(max-width:560px){.combat-weapon-choice-grid{grid-template-columns:1fr}}


/* v0.33.11 — parering erbjuds först efter lyckat närstridsanfall */
.combat-reaction-prompt{
 grid-column:1/-1;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:14px;
 padding:11px 13px;
 border:1px solid #c58b55;
 border-radius:10px;
 background:#fff0dc;
 box-shadow:0 3px 12px rgba(68,39,24,.12);
}
.combat-reaction-prompt>div:first-child{
 display:flex;
 flex-direction:column;
 gap:2px;
}
.combat-reaction-prompt span{
 font-size:10px;
 font-weight:900;
 letter-spacing:.08em;
 color:#8e4e28;
}
.combat-reaction-prompt b{
 color:#6f221f;
 font-size:13px;
}
.combat-reaction-prompt small{
 color:#725b49;
 font-size:11px;
}
.combat-reaction-actions{
 display:flex;
 gap:7px;
 flex:0 0 auto;
}
.combat-parry-btn{
 background:#315d3f!important;
 color:#fff!important;
 border-color:#315d3f!important;
}
.combat-take-hit-btn{
 background:#fffaf1!important;
 color:#6f352e!important;
 border-color:#bd9580!important;
}
@media(max-width:700px){
 .combat-reaction-prompt{align-items:stretch;flex-direction:column}
 .combat-reaction-actions{width:100%}
 .combat-reaction-actions .btn{flex:1}
}


/* v0.33.12 — samma DiceBox-motor rullar stridstärningar ovanpå hexkartan */
.combat-dice-layer{
 position:fixed;
 z-index:1200;
 overflow:hidden;
 pointer-events:none;
 opacity:0;
 transition:opacity .12s ease;
}
.combat-dice-layer.positioned{opacity:1}
.combat-dice-host{
 position:absolute;
 /* Keep the DiceBox canvas and physics world in the exact same coordinate
    space as the combat board. The old oversized, scaled wrapper could make
    the 3D presentation look oddly stretched on non-square maps. */
 inset:0;
 width:100%;
 height:100%;
 box-sizing:border-box;
 overflow:hidden;
 pointer-events:none;
 opacity:1;
 transition:opacity .82s ease;
}
.combat-dice-host.initiative-fading{opacity:0}
.combat-dice-host canvas{
 display:block;
 width:100%!important;
 height:100%!important;
 background:transparent!important;
}
.combat-dice-host.unavailable{display:none}
.combat-dice-readout{
 position:absolute;
 left:50%;
 bottom:14px;
 transform:translateX(-50%) translateY(8px);
 display:flex;
 align-items:center;
 gap:9px;
 max-width:calc(100% - 28px);
 padding:7px 11px;
 border:1px solid rgba(224,191,132,.72);
 border-radius:999px;
 background:rgba(31,23,17,.90);
 color:#f4e1bf;
 opacity:0;
 white-space:nowrap;
 box-shadow:0 4px 18px rgba(0,0,0,.28);
 transition:opacity .15s ease,transform .15s ease;
}
.combat-dice-readout.show{opacity:1;transform:translateX(-50%) translateY(0)}
.combat-dice-readout b{font-size:11px;color:#e7c77e}
.combat-dice-readout span{font-size:11px;overflow:hidden;text-overflow:ellipsis}
.combat-dice-readout strong{font-size:18px;color:#fff3cf}
.combat-dice-layer.rolling .combat-dice-readout{border-color:#f0ca79}
@media(max-width:620px){
 .combat-dice-readout{bottom:8px;gap:6px;padding:6px 8px}
 .combat-dice-readout span{max-width:46vw}
}


/* v0.33.13 — samtidiga färgkodade initiativslag */
.combat-initiative-legend{
 position:absolute;
 left:10px;
 right:10px;
 bottom:12px;
 top:auto;
 display:none;
 pointer-events:none;
 z-index:6;
}
.combat-initiative-legend.show{display:block}
.combat-initiative-title{
 display:inline-flex;
 margin-bottom:6px;
 padding:4px 8px;
 border-radius:999px;
 background:rgba(31,23,17,.90);
 color:#f1d7a8;
 border:1px solid rgba(224,191,132,.58);
 font-size:10px;
 font-weight:900;
 letter-spacing:.06em;
 text-transform:uppercase;
}
.combat-initiative-chips{
 display:flex;
 flex-wrap:wrap;
 gap:5px;
 align-items:flex-end;
}
.combat-initiative-chip{
 display:grid;
 grid-template-columns:10px auto;
 column-gap:6px;
 row-gap:1px;
 align-items:center;
 min-width:150px;
 padding:5px 8px;
 border:1px solid color-mix(in srgb,var(--initiative-color) 72%,#fff 28%);
 border-radius:8px;
 background:rgba(26,20,16,.90);
 color:#f8ead2;
 box-shadow:0 3px 12px rgba(0,0,0,.22);
 transition:opacity .32s ease,transform .32s ease,filter .32s ease;
}
.combat-initiative-chip i{
 grid-row:1/3;
 width:9px;
 height:24px;
 border-radius:5px;
 background:var(--initiative-color);
 box-shadow:0 0 7px color-mix(in srgb,var(--initiative-color) 60%,transparent);
}
.combat-initiative-chip b{font-size:11px;line-height:1.1}
.combat-initiative-chip span{font-size:10px;color:#d6c6ae;line-height:1.15}
.combat-initiative-chip strong{color:#fff4c8}
.combat-initiative-legend.resolved .combat-initiative-chip{background:rgba(26,20,16,.93)}
.combat-initiative-legend.resolved .combat-initiative-chips{justify-content:center}
.combat-initiative-chip.departing{opacity:.14;transform:translateY(7px) scale(.96);filter:grayscale(.25)}
.combat-initiative-flyer{
 display:grid;
 grid-template-columns:10px auto;
 column-gap:6px;
 row-gap:1px;
 align-items:center;
 padding:5px 8px;
 border:1px solid color-mix(in srgb,var(--initiative-color) 72%,#fff 28%);
 border-radius:8px;
 background:rgba(26,20,16,.95);
 color:#f8ead2;
 box-shadow:0 6px 20px rgba(0,0,0,.34);
}
.combat-initiative-flyer i{
 grid-row:1/3;
 width:9px;
 height:24px;
 border-radius:5px;
 background:var(--initiative-color);
}
.combat-initiative-flyer b{font-size:11px;line-height:1.1}
.combat-initiative-flyer span{font-size:10px;color:#d6c6ae;line-height:1.15}
.combat-initiative-flyer strong{color:#fff4c8}
@media(max-width:620px){
 .combat-initiative-chip{min-width:0;flex:1 1 44%;padding:4px 6px}
 .combat-initiative-chip span{font-size:9px}
}


/* v0.33.14 — vapenattacker använder samma Expert-färdighetsslagsmotor */
.combat-attack-execute{
 margin-top:10px;padding:9px;border:1px solid #b87863;border-radius:9px;background:#fff0e8;
 display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.combat-attack-execute>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.combat-attack-execute span{font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#8a5846}
.combat-attack-execute b{font-size:13px;color:#6f221f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.combat-attack-execute small{font-size:10px;color:#715d51}
.combat-attack-execute.disabled{display:block;color:#7c6659}
.combat-attack-roll-btn{flex:0 0 auto;background:#7b302b!important;color:#fff!important;border-color:#7b302b!important}
.combat-attack-result{
 margin-top:10px;padding:9px;border:1px solid #ad8d68;border-radius:9px;background:#f5ecdd;
 display:grid;grid-template-columns:minmax(0,1fr);gap:10px;
 align-items:start;
}
.combat-attack-result.has-hit-camera{
 grid-template-columns:minmax(0,1fr) 126px;
}
.combat-attack-result-main{
 min-width:0;
 display:flex;
 flex-direction:column;
 gap:5px;
}
.combat-attack-result-heading{display:flex;justify-content:space-between;gap:8px;align-items:center}
.combat-attack-result-heading span{font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#806c58}
.combat-attack-result-heading b{font-size:13px}
.combat-attack-result-rolls{display:flex;gap:9px;flex-wrap:wrap;font-size:10px;color:#715f4d}
.combat-attack-result.success,.combat-attack-result.special,.combat-attack-result.perfect{border-color:#65916d;background:#edf5e9}
.combat-attack-result.fail,.combat-attack-result.fumble{border-color:#b56e65;background:#fae9e5}
.combat-attack-result.special .combat-attack-result-heading b,.combat-attack-result.perfect .combat-attack-result-heading b{color:#2f6a3b}
.combat-attack-result-main>strong{
 align-self:flex-start;padding:4px 7px;border-radius:999px;background:#7b302b;color:#fff4d9;font-size:10px;letter-spacing:.05em
}
.combat-attack-hit-camera{
 width:126px;
 min-width:0;
 justify-self:end;
 align-self:start;
}
@media(max-width:620px){.combat-attack-execute{align-items:stretch;flex-direction:column}.combat-attack-roll-btn{width:100%}}


/* v0.33.15 — vapenattacker ger ERF via samma Expert-regler */
.combat-erf-result{
 align-self:flex-start;margin-top:2px;padding:4px 7px;border-radius:999px;font-size:10px;
 border:1px solid #98aa81;background:#eef4e8;color:#355c38;
}
.combat-erf-result.gained b{color:#275f31}
.combat-erf-result.locked{border-color:#b8a995;background:#f0ebe3;color:#756757}


/* v0.33.16 — gemensam visuell hierarki för Expert-slag */
.roll-outcome{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:8px;
 min-width:210px;
 padding:8px 14px;
 border:1px solid currentColor;
 border-radius:10px;
 background:rgba(20,16,12,.62);
 font:800 22px Georgia,serif;
 letter-spacing:.04em;
 line-height:1.05;
}
.roll-outcome .outcome-icon{font:900 24px/1 system-ui,sans-serif}
.roll-outcome.success{color:#9ed28f}
.roll-outcome.fail{color:#e08f82}
.roll-outcome.special{
 color:#9fdcf0;
 font-size:27px;
 padding:10px 17px;
 border-width:2px;
 box-shadow:0 0 18px rgba(143,200,223,.18),inset 0 0 18px rgba(143,200,223,.06);
}
.roll-outcome.special .outcome-icon{font-size:31px}
.roll-outcome.perfect{
 color:#f0d46f;
 font-size:31px;
 padding:12px 20px;
 border-width:2px;
 background:linear-gradient(135deg,rgba(88,66,22,.65),rgba(25,19,12,.78));
 box-shadow:0 0 28px rgba(232,207,119,.32),inset 0 0 22px rgba(232,207,119,.09);
 animation:expertPerfectPulse .8s ease-out 1;
}
.roll-outcome.perfect .outcome-icon{font-size:38px}
.roll-outcome.fumble{
 color:#ff776b;
 font-size:30px;
 padding:12px 20px;
 border-width:2px;
 background:linear-gradient(135deg,rgba(91,26,23,.72),rgba(25,14,13,.82));
 box-shadow:0 0 28px rgba(239,92,80,.30),inset 0 0 22px rgba(239,92,80,.08);
 animation:expertFumbleHit .46s ease-out 1;
}
.roll-outcome.fumble .outcome-icon{font-size:36px}
@keyframes expertPerfectPulse{
 0%{transform:scale(.88);filter:brightness(1.7)}
 55%{transform:scale(1.06)}
 100%{transform:scale(1)}
}
@keyframes expertFumbleHit{
 0%{transform:translateX(0) scale(.92)}
 25%{transform:translateX(-6px) scale(1.03)}
 50%{transform:translateX(5px)}
 75%{transform:translateX(-2px)}
 100%{transform:translateX(0) scale(1)}
}
@media(prefers-reduced-motion:reduce){
 .roll-outcome.perfect,.roll-outcome.fumble{animation:none}
}

.combat-attack-result>div:first-child b{
 display:inline-flex;
 align-items:center;
 gap:6px;
}
.combat-result-icon{font-style:normal;font-family:system-ui,sans-serif}
.combat-attack-result.success{border-width:1px}
.combat-attack-result.special{
 border-width:2px;
 box-shadow:0 0 16px rgba(79,145,171,.18);
}
.combat-attack-result.special>div:first-child b{font-size:16px;color:#23677e}
.combat-attack-result.special .combat-result-icon{font-size:21px}
.combat-attack-result.perfect{
 border-width:2px;
 background:linear-gradient(135deg,#fff5c9,#f5ead2);
 box-shadow:0 0 22px rgba(196,157,54,.24);
}
.combat-attack-result.perfect>div:first-child b{font-size:18px;color:#8a650e}
.combat-attack-result.perfect .combat-result-icon{font-size:24px}
.combat-attack-result.fumble{
 border-width:2px;
 background:linear-gradient(135deg,#ffe1dc,#f8e5df);
 box-shadow:0 0 20px rgba(181,73,62,.22);
}
.combat-attack-result.fumble>div:first-child b{font-size:18px;color:#9b2d27}
.combat-attack-result.fumble .combat-result-icon{font-size:23px}

.combat-dice-readout.outcome-show{
 bottom:18px;
 min-width:min(430px,calc(100% - 28px));
 justify-content:center;
 border-radius:12px;
 padding:10px 14px;
 gap:11px;
}
.combat-dice-readout.outcome-show .combat-outcome-icon{
 font:900 28px/1 system-ui,sans-serif;
 flex:0 0 auto;
}
.combat-outcome-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.combat-outcome-copy b{font:800 17px/1.05 Georgia,serif!important}
.combat-outcome-copy span{font-size:10px!important;color:inherit!important;opacity:.82}
.combat-dice-readout.outcome-show.success{border-color:#7fb774;color:#bce2af}
.combat-dice-readout.outcome-show.fail{border-color:#bd7168;color:#f0a198}
.combat-dice-readout.outcome-show.special{
 border-width:2px;border-color:#79c5df;color:#bcecff;
 box-shadow:0 0 24px rgba(91,184,216,.24);
}
.combat-dice-readout.outcome-show.special .combat-outcome-icon{font-size:35px}
.combat-dice-readout.outcome-show.special .combat-outcome-copy b{font-size:21px!important}
.combat-dice-readout.outcome-show.perfect{
 border-width:2px;border-color:#e8c957;color:#ffe893;
 background:rgba(63,49,16,.94);
 box-shadow:0 0 32px rgba(232,201,87,.34);
 animation:expertPerfectPulse .8s ease-out 1;
}
.combat-dice-readout.outcome-show.perfect .combat-outcome-icon{font-size:41px}
.combat-dice-readout.outcome-show.perfect .combat-outcome-copy b{font-size:24px!important}
.combat-dice-readout.outcome-show.fumble{
 border-width:2px;border-color:#ee685d;color:#ff9d94;
 background:rgba(70,22,19,.95);
 box-shadow:0 0 32px rgba(238,104,93,.32);
 animation:expertFumbleHit .46s ease-out 1;
}
.combat-dice-readout.outcome-show.fumble .combat-outcome-icon{font-size:39px}
.combat-dice-readout.outcome-show.fumble .combat-outcome-copy b{font-size:23px!important}
@media(prefers-reduced-motion:reduce){
 .combat-dice-readout.outcome-show.perfect,.combat-dice-readout.outcome-show.fumble{animation:none}
}


/* v0.33.18 — automatiskt fummelslag och fummelresultat */
.combat-fumble-results{
 margin-top:7px;
 border-top:1px solid rgba(137,58,49,.28);
 padding-top:7px;
 display:flex;
 flex-direction:column;
 gap:5px;
}
.combat-fumble-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:8px;
 color:#922f29;
}
.combat-fumble-head b{font-size:11px}
.combat-fumble-head span{
 font-size:9px;
 text-transform:uppercase;
 letter-spacing:.05em;
 color:#8b7067;
}
.combat-fumble-row{
 display:grid;
 grid-template-columns:52px minmax(0,1fr);
 gap:7px;
 align-items:start;
 padding:6px 7px;
 border:1px solid #d4a199;
 border-radius:7px;
 background:#fff3f0;
}
.combat-fumble-row>strong{font-size:11px;color:#9b3029}
.combat-fumble-row>div{display:flex;flex-direction:column;gap:1px}
.combat-fumble-row b{font-size:11px;color:#72251f}
.combat-fumble-row span{font-size:10px;color:#715a54}
.combat-fumble-warning{font-size:10px;color:#8d3a32;font-weight:700}
.combat-dice-readout.fumble-detail .combat-outcome-copy span{
 white-space:normal;
 overflow:visible;
 text-overflow:clip;
 max-width:min(520px,62vw);
}


/* v0.33.19 — sociala stånd som centralt Expert-register */
.adminstandtable{
 display:grid;
 grid-template-columns:minmax(160px,1fr) 120px 90px 110px;
 border:1px solid #5a4631;
 border-radius:12px;
 overflow:auto;
}
.adminstandtable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminstandtable .ahead{background:#6d1e1e;font-weight:800}
@media(max-width:700px){
 .adminstandtable{grid-template-columns:minmax(140px,1fr) 100px 70px 100px;font-size:13px}
}


/* v0.33.20 — tydlig turordning per kombatanttyp */
.combatant-card{
 display:grid;
 grid-template-columns:44px minmax(0,1fr);
 gap:9px;
 align-items:center;
 color:#2f2a24;
}
.combatant-card .name{color:#2f2a24!important}
.combatant-card .meta{color:#514a42}
.combatant-card.player-row{background:#d9eadc;border-color:#8eb497}
.combatant-card.player-row:hover{background:#cfe5d3;border-color:#5e916b}
.combatant-card.npc-row{background:#d9e7f3;border-color:#8baaca}
.combatant-card.npc-row:hover{background:#ccdef0;border-color:#5d86ae}
.combatant-card.enemy-row{background:#f0d8d5;border-color:#c68e88}
.combatant-card.enemy-row:hover{background:#ebccc8;border-color:#a85e57}
.combat-order-number{
 width:40px;
 min-height:42px;
 border-radius:9px;
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:1px;
 background:rgba(31,28,25,.82);
 color:#fff8e8;
 box-shadow:0 1px 3px rgba(0,0,0,.18);
 transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.combat-order-number>b{font:900 18px/1 Georgia,serif}
.combat-order-number>small{
 display:block;
 font:800 8px/1.05 system-ui,sans-serif;
 letter-spacing:.02em;
 color:#e8d7b9;
 white-space:nowrap;
}
.combat-order-number.initiative-arrival{
 transform:scale(1.12);
 filter:brightness(1.35);
 box-shadow:0 0 0 3px rgba(238,190,76,.48),0 5px 14px rgba(0,0,0,.22);
}
.combatant-card-copy{min-width:0}
.combatant-card.selected{outline:3px solid #7f4f21;outline-offset:1px}
.combatant-card.active-turn{
 box-shadow:0 0 0 3px rgba(232,177,63,.55),0 3px 10px rgba(0,0,0,.12);
}
.combatant-card.active-turn .combat-order-number{background:#7a5416;color:#fff2c4}


/* v0.33.24 — initiativresultat sorteras visuellt från kartan till turordningen */
@media(max-width:620px){
 .combat-initiative-legend{left:7px;right:7px;bottom:8px}
 .combat-initiative-title{margin-bottom:4px}
 .combat-initiative-chips{gap:4px}
 .combat-initiative-chip{flex:1 1 46%;min-width:0}
}
@media(prefers-reduced-motion:reduce){
 .combat-initiative-chip,.combat-order-number{transition:none!important}
}


/* v0.33.25 — kompakt turordningsrad och planerad/låst förflyttning */
@media(min-width:981px){
 .combat-shell{grid-template-columns:320px minmax(0,1fr)}
}
.combatant-card{
 grid-template-columns:50px minmax(0,1fr) 98px 62px;
 gap:7px;
 padding:7px;
 align-items:center;
}
.combat-order-number{
 width:46px;
 min-height:54px;
 gap:1px;
}
.combat-order-number>b{font-size:19px}
.combat-order-number>small{
 font-size:9px;
 color:#f6dfb6;
}
.combat-order-number>em{
 display:block;
 font:700 8px/1.05 system-ui,sans-serif;
 font-style:normal;
 color:#d1c1a7;
 white-space:nowrap;
}
.combatant-card-copy{align-self:center}
.combatant-card-copy .name{
 font-size:13px;
 line-height:1.12;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.combatant-card-copy .meta{
 margin-top:3px;
 font-size:10px;
 line-height:1.2;
 white-space:normal;
}
.combat-row-controls{
 display:flex;
 align-items:center;
 justify-content:center;
 min-width:0;
}
.combat-row-move{
 width:100%;
 min-height:45px;
 padding:5px 6px;
 border:1px solid #9c8668;
 border-radius:8px;
 background:rgba(255,250,240,.9);
 color:#493b2f;
 display:grid;
 grid-template-columns:auto minmax(0,1fr);
 grid-template-rows:auto auto;
 column-gap:4px;
 align-items:center;
 text-align:left;
 cursor:pointer;
}
.combat-row-move>span{
 grid-row:1/3;
 font-size:16px;
 line-height:1;
}
.combat-row-move>b{
 font-size:10px;
 line-height:1.05;
 white-space:normal;
}
.combat-row-move>small{
 font-size:8px;
 line-height:1.05;
 color:#786653;
 white-space:normal;
}
.combat-row-move:hover:not(:disabled){
 border-color:#5f8868;
 background:#edf5ea;
}
.combat-row-move.active{
 border-color:#467957;
 background:#dfeee0;
 box-shadow:0 0 0 2px rgba(70,121,87,.2);
}
.combat-row-move:disabled{
 opacity:.42;
 cursor:not-allowed;
}
.combat-row-vitals{
 align-self:stretch;
 display:flex;
 flex-direction:column;
 justify-content:center;
 align-items:flex-end;
 gap:4px;
 border-left:1px solid rgba(85,68,51,.22);
 padding-left:6px;
 font-size:9px;
 color:#6f5c4a;
 white-space:nowrap;
}
.combat-row-vitals span{display:block}
.combat-row-vitals b{
 color:#2f2a24;
 font-size:10px;
}
.combatant-card.movement-planning{
 outline:2px solid rgba(65,132,78,.58);
 outline-offset:1px;
}
.combat-token-group.movement-planning{
 cursor:grab;
 touch-action:none;
}
.combat-token-group.movement-planning:active{cursor:grabbing}
.combat-token.movement-planning{
 stroke:#9cf2a6;
 stroke-width:5;
 filter:drop-shadow(0 0 7px rgba(117,226,137,.82));
}
.combat-hex.move-preview{
 fill:rgba(255,214,100,.42)!important;
 stroke:#ffe08a!important;
 stroke-width:3.5!important;
 filter:drop-shadow(0 0 5px rgba(255,220,120,.62));
}
.combat-hex.move-reachable.move-action-spent{
 fill:rgba(74,156,92,.12);
 stroke:rgba(198,170,94,.72);
}
.combat-move-legend .spend-action:before{
 color:#c8a95f;
 text-shadow:0 0 4px rgba(200,169,95,.28);
}
@media(max-width:560px){
 .combatant-card{
  grid-template-columns:46px minmax(0,1fr) 62px;
  grid-template-rows:auto auto;
  gap:6px;
 }
 .combat-order-number{
  grid-row:1/3;
  width:42px;
  min-height:58px;
 }
 .combat-row-controls{
  grid-column:2/4;
  grid-row:2;
 }
 .combat-row-move{
  min-height:36px;
  grid-template-columns:auto auto minmax(0,1fr);
  grid-template-rows:1fr;
  justify-content:start;
 }
 .combat-row-move>span{grid-row:1;font-size:14px}
 .combat-row-move>b{font-size:10px;white-space:nowrap}
 .combat-row-move>small{font-size:8px;text-align:right}
 .combat-row-vitals{
  grid-column:3;
  grid-row:1;
  min-width:0;
 }
 .combatant-card-copy{grid-column:2;grid-row:1}
}


/* v0.33.27 — tre kompakta turkontroller: förflyttning, action, avsluta drag */
@media(min-width:981px){
 .combat-shell{grid-template-columns:360px minmax(0,1fr)}
}
.combat-participants,
.combat-participant-list{overflow:visible}
.combatant-card{
 position:relative;
 grid-template-columns:44px minmax(0,1fr) 104px 48px;
 gap:6px;
 padding:6px;
 overflow:visible;
}
.combat-order-number{
 width:42px;
 min-height:52px;
}
.combat-row-controls{
 position:relative;
 display:flex;
 align-items:flex-start;
 justify-content:center;
 gap:4px;
 min-width:104px;
 overflow:visible;
}
.combat-row-tool{
 position:relative;
 width:32px;
 flex:0 0 32px;
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:2px;
}
.combat-row-tool-btn{
 width:32px;
 height:32px;
 min-width:32px;
 padding:0;
 border:1px solid #947d60;
 border-radius:7px;
 background:rgba(255,250,240,.94);
 color:#493b2f;
 display:grid;
 place-items:center;
 font-size:15px;
 line-height:1;
 cursor:pointer;
 box-shadow:0 1px 2px rgba(0,0,0,.08);
}
.combat-row-tool-btn:hover:not(:disabled){
 border-color:#5f8868;
 background:#edf5ea;
 transform:translateY(-1px);
}
.combat-row-tool-btn:disabled{
 opacity:.34;
 cursor:not-allowed;
}
.combat-row-tool-btn.active{
 border-color:#467957;
 background:#dfeee0;
 box-shadow:0 0 0 2px rgba(70,121,87,.18);
}
.combat-row-action.chosen:not(.active){
 border-color:#8d6f39;
 background:#f4ead0;
}
.move-tool>small{
 width:44px;
 margin-left:-6px;
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:0;
 font:700 7px/1.15 system-ui,sans-serif;
 color:#6e5d4b;
 white-space:nowrap;
}
.move-tool>small span{display:block}
.combat-row-vitals{
 padding-left:5px;
 font-size:8px;
 gap:3px;
}
.combat-row-vitals b{font-size:9px}
.combat-row-action-menu{
 position:absolute;
 z-index:80;
 top:36px;
 left:50%;
 width:220px;
 transform:translateX(-50%);
 padding:8px;
 border:1px solid #94754f;
 border-radius:10px;
 background:#211912;
 color:#f3dfbb;
 box-shadow:0 12px 28px rgba(0,0,0,.35);
 cursor:default;
}
.combat-row-action-menu:before{
 content:'';
 position:absolute;
 top:-6px;
 left:50%;
 width:10px;
 height:10px;
 transform:translateX(-50%) rotate(45deg);
 background:#211912;
 border-left:1px solid #94754f;
 border-top:1px solid #94754f;
}
.combat-row-action-menu-title{
 margin:0 0 6px;
 font:800 10px/1 system-ui,sans-serif;
 letter-spacing:.08em;
 text-transform:uppercase;
 color:#e5c88f;
}
.combat-row-action-menu-grid{
 display:grid;
 grid-template-columns:1fr;
 gap:4px;
}
.combat-row-action-option{
 min-height:34px;
 padding:5px 7px;
 border:1px solid #66523d;
 border-radius:7px;
 background:#30251c;
 color:#f2dfbd;
 display:grid;
 grid-template-columns:24px minmax(0,1fr);
 gap:5px;
 align-items:center;
 text-align:left;
 cursor:pointer;
}
.combat-row-action-option:hover{
 background:#443326;
 border-color:#a48154;
}
.combat-row-action-option.active{
 background:#334d37;
 border-color:#6f9d76;
}
.combat-row-action-option span{
 font-size:16px;
 text-align:center;
}
.combat-row-action-option b{
 font-size:10px;
 line-height:1.15;
}
.combat-row-action-menu .combat-weapon-choice{
 margin-top:7px;
 padding:6px;
 background:#2d241c;
 border-color:#6d573e;
}
.combat-row-action-menu .combat-weapon-choice>span,
.combat-row-action-menu .combat-weapon-choice-btn small{color:#cfb895}
.combat-row-action-menu .combat-weapon-choice-btn{
 background:#f8f0e3;
}
.combat-play-btn:disabled{
 opacity:.38;
 filter:grayscale(.45);
 cursor:not-allowed;
}
@media(max-width:560px){
 .combatant-card{
  grid-template-columns:42px minmax(0,1fr) 104px 46px;
  grid-template-rows:auto;
  gap:5px;
 }
 .combat-order-number{
  grid-row:auto;
  width:40px;
  min-height:54px;
 }
 .combatant-card-copy{
  grid-column:auto;
  grid-row:auto;
 }
 .combat-row-controls{
  grid-column:auto;
  grid-row:auto;
 }
 .combat-row-vitals{
  grid-column:auto;
  grid-row:auto;
 }
 .combat-row-action-menu{
  width:min(220px,74vw);
 }
}
@media(max-width:390px){
 .combatant-card{
  grid-template-columns:40px minmax(0,1fr) 98px 43px;
  gap:4px;
  padding:5px;
 }
 .combat-row-controls{min-width:98px;gap:1px}
 .combat-row-tool{width:32px;flex-basis:32px}
 .combat-row-vitals{padding-left:3px}
 .combatant-card-copy .name{font-size:12px}
 .combatant-card-copy .meta{font-size:9px}
}


/* v0.33.28 — initiativtärningar tonar bort när turordningen byggs */
@media(prefers-reduced-motion:reduce){
 .combat-dice-host{transition:none!important}
}


/* v0.33.31 — inline SVG-miniatyrer för spelarkaraktärer */
.combat-miniature{
 cursor:pointer;
 pointer-events:none;
 /* Hexbrickans SVG translate(x y) placerar dess lokala (0,0) mitt i
    karthexen. fill-box/center bottom flyttade den punkten vid scale(). */
 transform-box:view-box;
 transform-origin:0 0;
}
.combat-mini-hit{
 fill:transparent;
 stroke:none;
 pointer-events:all;
 cursor:pointer;
}
.combat-mini-shadow{
 fill:rgba(0,0,0,.38);
 filter:blur(1.1px);
}
.combat-mini-base{
 fill:#282925;
 stroke:#11130f;
 stroke-width:3.5;
}
.combat-mini-base-ring{
 fill:none;
 stroke:#27bd4d;
 stroke-width:4.5;
 vector-effect:non-scaling-stroke;
 filter:drop-shadow(0 1px 1px rgba(0,0,0,.7));
}
.combat-miniature .mini-figure{pointer-events:none}
.combat-miniature.selected{
 filter:drop-shadow(0 0 4px rgba(255,211,123,.95));
}
.combat-miniature.active-turn{
 filter:drop-shadow(0 0 6px rgba(242,188,67,.95));
}
.combat-miniature.attack-target{
 filter:drop-shadow(0 0 6px rgba(226,70,61,.92));
}
.combat-miniature.movement-planning{
 filter:drop-shadow(0 0 7px rgba(117,226,137,.95));
}
.combat-miniature.movement-planning .combat-mini-base-ring{
 stroke-width:6;
}
@media(max-width:560px){
 .combat-miniature .combat-mini-base-ring{stroke-width:5}
}


/* v0.33.32 — egen zoom/pan för stridskartan */
.combat-board{
 overflow:hidden;
 overscroll-behavior:contain;
}
.combat-board-title{
 display:flex;
 align-items:center;
 gap:10px;
 min-width:0;
}
.combat-map-zoom-controls{
 display:flex;
 align-items:center;
 gap:3px;
}
.combat-map-zoom-controls button{
 min-width:30px;
 height:28px;
 padding:0 7px;
 border:1px solid #6f5a43;
 border-radius:6px;
 background:#1d1712;
 color:#ead5b3;
 font:800 13px/1 system-ui,sans-serif;
 cursor:pointer;
}
.combat-map-zoom-controls button:hover{
 background:#33271d;
 border-color:#9c7a52;
}
#combatMapZoomLabel{
 min-width:48px;
 font-size:10px;
 color:#d9c19a;
}
.combat-map-svg{
 touch-action:pan-y;
 user-select:none;
 -webkit-user-select:none;
 cursor:grab;
}
.combat-map-svg.zoomed:active{cursor:grabbing}
.combat-token-group{cursor:pointer}
.combat-token-group.movement-planning{cursor:grab}
@media(max-width:700px){
 .combat-board-head{gap:6px}
 .combat-board-footer{
  grid-template-columns:1fr;
  grid-template-areas:"description" "controls" "legends";
  gap:7px;
 }
 .combat-board-footer .combat-map-zoom-controls{
  justify-self:start;
 }
 .combat-board-footer .combat-board-legends{
  justify-content:flex-start;
 }
 .combat-board-title{
  flex-direction:column;
  align-items:flex-start;
  gap:5px;
 }
 .combat-map-zoom-controls button{
  min-width:28px;
  height:27px;
 }
 #combatMapZoomLabel{min-width:44px}
}


/* v0.33.34 — riktiga spelarporträtt som upphöjda hexbrickor */
.combat-miniature.combat-portrait-hex{
 filter:drop-shadow(0 4px 3px rgba(0,0,0,.58));
}
.combat-portrait-depth{
 fill:#080a07;
 stroke:#050605;
 stroke-width:2.4;
 opacity:.92;
 filter:url(#portraitHexShadow);
}
.combat-portrait-frame-back{
 fill:url(#portraitHexFrame);
 stroke:#0d0c09;
 stroke-width:2.6;
}
.combat-portrait-green-ring{
 fill:none;
 stroke:url(#portraitHexGreen);
 stroke-width:4.8;
 stroke-linejoin:round;
 vector-effect:non-scaling-stroke;
}
.combat-portrait-inner-frame{
 fill:#18140f;
 stroke:#bc9253;
 stroke-width:2.2;
 stroke-linejoin:round;
}
.combat-portrait-image{
 pointer-events:none;
}
.combat-portrait-image-edge{
 fill:none;
 stroke:rgba(230,201,139,.92);
 stroke-width:1.35;
 stroke-linejoin:round;
}
.combat-portrait-bevel-light,
.combat-portrait-bevel-dark{
 fill:none;
 stroke-linecap:round;
 stroke-linejoin:round;
 pointer-events:none;
}
.combat-portrait-bevel-light{
 stroke:rgba(255,246,205,.78);
 stroke-width:2.2;
}
.combat-portrait-bevel-dark{
 stroke:rgba(0,0,0,.72);
 stroke-width:3.1;
}
.combat-miniature.combat-portrait-hex.selected{
 filter:drop-shadow(0 0 5px rgba(255,224,153,.95)) drop-shadow(0 4px 3px rgba(0,0,0,.62));
}
.combat-miniature.combat-portrait-hex.selected .combat-portrait-green-ring{
 stroke:#ffd06f;
 stroke-width:5.6;
}
.combat-miniature.combat-portrait-hex.active-turn{
 filter:drop-shadow(0 0 7px rgba(255,191,58,.98)) drop-shadow(0 4px 3px rgba(0,0,0,.65));
}
.combat-miniature.combat-portrait-hex.active-turn .combat-portrait-green-ring{
 stroke:#7dff8d;
 stroke-width:6.2;
}
.combat-miniature.combat-portrait-hex.attack-target{
 filter:drop-shadow(0 0 7px rgba(228,70,61,.98)) drop-shadow(0 4px 3px rgba(0,0,0,.65));
}
.combat-miniature.combat-portrait-hex.attack-target .combat-portrait-green-ring{
 stroke:#e1493f;
 stroke-width:6.2;
}
.combat-miniature.combat-portrait-hex.movement-planning{
 filter:drop-shadow(0 0 8px rgba(92,224,130,.98)) drop-shadow(0 4px 3px rgba(0,0,0,.65));
}
.combat-miniature.combat-portrait-hex.movement-planning .combat-portrait-green-ring{
 stroke:#71ff91;
 stroke-width:6.4;
}


/* SLP/fiende-porträtt använder samma upphöjda hexbricka som rollpersoner.
   Behåll lagfärgen runt porträttet även under den aktiva turen; markeringar
   för valt mål och attack får fortsatt sin särskilda färg. */
.combat-miniature.combat-portrait-hex.npc-mini:not(.selected):not(.attack-target) .combat-portrait-green-ring{
 stroke:#3984c6;
}
/* SLP utan separat hexikon: använd vanliga porträttet med en tydlig blå
   hexram. Turmarkeringen i guld ligger separat utanför porträttet. */
.combat-miniature.combat-portrait-hex.npc-mini.portrait-fallback:not(.selected):not(.attack-target) .combat-portrait-green-ring{
 stroke:#58b4f5;
 filter:drop-shadow(0 0 3px rgba(52,158,239,.55));
}
.combat-miniature.combat-portrait-hex.enemy-mini:not(.selected):not(.attack-target) .combat-portrait-green-ring{
 stroke:#c64d45;
}

/* v0.33.35 — fyra tydliga turkontroller: flytta, attack, andra actions, sluta drag */
.combatant-card{
 grid-template-columns:44px minmax(0,1fr) 140px 48px;
}
.combat-row-controls{
 min-width:140px;
 gap:4px;
}
.combat-row-tool{
 width:32px;
 flex:0 0 32px;
}
.combat-row-attack.chosen:not(.active),
.combat-row-action.chosen:not(.active){
 border-color:#8d6f39;
 background:#f4ead0;
}
.combat-row-attack.chosen{
 color:#6f211d;
}
.combat-row-action-menu.combat-row-attack-menu{
 width:220px;
}
.combat-row-attack-menu .combat-weapon-choice{
 margin-top:0;
}
@media(max-width:560px){
 .combatant-card{
  grid-template-columns:42px minmax(0,1fr) 46px;
  grid-template-rows:auto auto;
  gap:5px;
 }
 .combat-order-number{
  grid-row:1/3;
 }
 .combatant-card-copy{
  grid-column:2;
  grid-row:1;
 }
 .combat-row-vitals{
  grid-column:3;
  grid-row:1;
 }
 .combat-row-controls{
  grid-column:2/4;
  grid-row:2;
  min-width:0;
  width:100%;
  justify-content:flex-start;
  gap:6px;
  padding-top:2px;
 }
 .combat-row-tool{
  width:34px;
  flex-basis:34px;
 }
 .combat-row-tool-btn{
  width:34px;
  min-width:34px;
  height:34px;
 }
 .move-tool>small{
  width:44px;
  margin-left:-5px;
 }
 .combat-row-action-menu{
  width:min(230px,76vw);
 }
}
@media(max-width:390px){
 .combatant-card{
  grid-template-columns:40px minmax(0,1fr) 43px;
 }
 .combat-row-controls{
  min-width:0;
  gap:4px;
 }
 .combat-row-tool{
  width:32px;
  flex-basis:32px;
 }
 .combat-row-tool-btn{
  width:32px;
  min-width:32px;
  height:32px;
 }
}


/* v0.33.36 — premium turordningsrader inspirerade av mörk fantasy HUD */
.combat-participant-list{
 padding:8px;
 background:
  radial-gradient(circle at 50% 0,rgba(145,98,48,.10),transparent 42%),
  #120f0c;
}
.combat-participants.combat-panel{
 border-color:#6f5436;
 background:#120f0c;
 box-shadow:0 10px 28px rgba(0,0,0,.22);
}
.combat-participants.combat-panel>h3{
 padding:11px 13px;
 background:
  linear-gradient(180deg,rgba(44,35,27,.98),rgba(25,20,16,.98));
 border-bottom:1px solid #715433;
 color:#e8c98e;
 font:800 19px/1.05 Georgia,serif;
 letter-spacing:.02em;
}
.combatant-card{
 --side:#aa7b3f;
 position:relative;
 display:grid;
 grid-template-columns:42px 48px minmax(0,1fr) 44px 140px;
 gap:7px;
 min-height:70px;
 padding:6px 7px 6px 5px;
 margin:6px 0;
 border:1px solid rgba(160,121,72,.58);
 border-radius:8px;
 background:
  linear-gradient(90deg,color-mix(in srgb,var(--side) 11%,transparent),rgba(18,16,13,.96) 23%,rgba(15,14,12,.98));
 color:#efe2cd;
 box-shadow:
  inset 0 1px 0 rgba(255,241,209,.045),
  inset 0 -1px 0 rgba(0,0,0,.6),
  0 2px 7px rgba(0,0,0,.22);
 overflow:visible;
}
.combatant-card.player-row{--side:#3ca95a;border-color:rgba(78,157,94,.60)}
.combatant-card.npc-row{--side:#3984c6;border-color:rgba(63,127,185,.62)}
.combatant-card.enemy-row{--side:#bd493e;border-color:rgba(173,65,56,.64)}
.combatant-card:hover{
 border-color:color-mix(in srgb,var(--side) 72%,#d6b36f);
 background:
  linear-gradient(90deg,color-mix(in srgb,var(--side) 17%,transparent),rgba(27,23,18,.98) 25%,rgba(18,16,13,.99));
}
.combatant-card.selected{
 outline:2px solid rgba(222,177,91,.92);
 outline-offset:1px;
}
.combatant-card.active-turn{
 box-shadow:
  inset 0 1px 0 rgba(255,245,218,.08),
  0 0 0 2px color-mix(in srgb,var(--side) 78%,#f3cb70),
  0 0 16px color-mix(in srgb,var(--side) 28%,transparent);
}
.combat-order-number{
 position:relative;
 width:42px;
 min-height:58px;
 height:100%;
 border:1px solid color-mix(in srgb,var(--side) 72%,#d6aa63);
 border-radius:6px;
 background:
  linear-gradient(180deg,color-mix(in srgb,var(--side) 86%,#16361e),color-mix(in srgb,var(--side) 62%,#15100d));
 color:#fff3d8;
 display:grid;
 place-items:center;
 box-shadow:
  inset 0 0 0 2px rgba(255,255,255,.055),
  inset 0 -8px 18px rgba(0,0,0,.28),
  0 0 8px color-mix(in srgb,var(--side) 22%,transparent);
}
.combat-order-number:before,
.combat-order-number:after{
 content:'◆';
 position:absolute;
 left:50%;
 transform:translateX(-50%);
 color:rgba(255,221,157,.58);
 font-size:7px;
 line-height:1;
}
.combat-order-number:before{top:5px}
.combat-order-number:after{bottom:5px}
.combat-order-number>b{
 font:800 24px/1 Georgia,serif;
 text-shadow:0 1px 2px rgba(0,0,0,.8);
}
.combat-row-portrait{
 width:46px;
 height:46px;
 align-self:center;
 border-radius:50%;
 overflow:hidden;
 display:grid;
 place-items:center;
 border:2px solid var(--side);
 background:#241e18;
 color:#f5e4c5;
 box-shadow:
  0 0 0 2px rgba(10,9,8,.9),
  0 0 8px color-mix(in srgb,var(--side) 35%,transparent);
}
.combat-row-portrait img{
 width:100%;
 height:100%;
 display:block;
 object-fit:cover;
 object-position:center 23%;
}
.combat-row-portrait>b{
 font:800 13px/1 Georgia,serif;
 letter-spacing:.02em;
}
.combatant-card-copy{
 min-width:0;
 align-self:center;
 padding:1px 0;
}
.combatant-card-copy .name{
 color:#f4eadb!important;
 font:800 15px/1.08 Georgia,serif;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
 text-shadow:0 1px 1px rgba(0,0,0,.75);
}
.combatant-card-copy .meta{
 margin-top:3px;
 color:#bba98f;
 font-size:9px;
 line-height:1.15;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.combat-row-inline-vitals{
 display:flex;
 align-items:center;
 gap:6px;
 margin-top:5px;
 color:#cbbba2;
 font:700 9px/1 system-ui,sans-serif;
 white-space:nowrap;
}
.combat-row-inline-vitals span{display:inline-flex;gap:3px;align-items:baseline}
.combat-row-inline-vitals b{color:#f1e4cf;font-size:10px}
.combat-row-inline-vitals i{
 width:1px;
 height:11px;
 background:#806442;
 opacity:.8;
}
.combat-row-init{
 align-self:center;
 min-width:38px;
 text-align:center;
 color:#dcb36c;
}
.combat-row-init>b{
 display:block;
 font:800 22px/1 Georgia,serif;
 text-shadow:0 1px 2px rgba(0,0,0,.8);
}
.combat-row-init>small{
 display:block;
 margin-top:3px;
 color:#9e896d;
 font:700 7px/1.05 system-ui,sans-serif;
 white-space:nowrap;
}
.combat-row-controls{
 align-self:center;
 min-width:140px;
 gap:4px;
 justify-content:flex-end;
}
.combat-row-tool{
 width:32px;
 flex:0 0 32px;
}
.combat-row-tool-btn{
 width:32px;
 min-width:32px;
 height:32px;
 border:1px solid #6d563b;
 border-radius:5px;
 background:
  linear-gradient(180deg,#2b241c,#171410);
 color:#e4c58e;
 box-shadow:
  inset 0 1px 0 rgba(255,255,255,.045),
  0 2px 4px rgba(0,0,0,.35);
 font-size:14px;
}
.combat-row-tool-btn:hover:not(:disabled){
 border-color:#ad8551;
 background:linear-gradient(180deg,#403124,#211912);
 color:#ffe0a7;
 transform:translateY(-1px);
}
.combat-row-tool-btn.active{
 border-color:color-mix(in srgb,var(--side) 72%,#e8c272);
 background:
  linear-gradient(180deg,color-mix(in srgb,var(--side) 64%,#21311f),color-mix(in srgb,var(--side) 38%,#11100e));
 color:#fff0c8;
 box-shadow:
  0 0 0 1px color-mix(in srgb,var(--side) 40%,transparent),
  0 0 9px color-mix(in srgb,var(--side) 45%,transparent);
}
.combat-row-attack.chosen:not(.active),
.combat-row-action.chosen:not(.active){
 border-color:#987342;
 background:linear-gradient(180deg,#44321f,#241b13);
 color:#f3cc83;
}
.combat-row-tool-btn:disabled{
 opacity:.28;
 filter:saturate(.45);
}
.move-tool>small{
 width:42px;
 margin-left:-5px;
 color:#9e8d74;
 font-size:6.5px;
}
.combat-row-vitals{display:none!important}
.combat-row-action-menu{
 border-color:#80623e;
 background:#17130f;
 color:#f0d9b1;
 box-shadow:0 14px 32px rgba(0,0,0,.55);
}
.combat-row-action-menu:before{background:#17130f}
.combat-row-action-option{
 border-color:#57452f;
 background:#241d16;
}
.combat-row-action-option:hover{
 background:#33271c;
 border-color:#94724a;
}
.combat-row-action-option.active{
 background:#203a28;
 border-color:#4f9561;
}

@media(max-width:700px){
 .combat-participant-list{padding:6px}
 .combatant-card{
  grid-template-columns:39px 43px minmax(0,1fr) 38px;
  grid-template-rows:auto auto;
  gap:5px 6px;
  min-height:84px;
  padding:6px 6px 6px 4px;
 }
 .combat-order-number{
  grid-column:1;
  grid-row:1/3;
  width:39px;
  min-height:72px;
 }
 .combat-order-number>b{font-size:22px}
 .combat-row-portrait{
  grid-column:2;
  grid-row:1;
  width:41px;
  height:41px;
 }
 .combatant-card-copy{
  grid-column:3;
  grid-row:1;
 }
 .combatant-card-copy .name{font-size:14px}
 .combatant-card-copy .meta{font-size:8px}
 .combat-row-inline-vitals{font-size:8px;margin-top:4px}
 .combat-row-inline-vitals b{font-size:9px}
 .combat-row-init{
  grid-column:4;
  grid-row:1;
  min-width:36px;
 }
 .combat-row-init>b{font-size:20px}
 .combat-row-init>small{font-size:6px}
 .combat-row-controls{
  grid-column:2/5;
  grid-row:2;
  width:100%;
  min-width:0;
  justify-content:flex-end;
  gap:5px;
  padding-top:1px;
 }
 .combat-row-tool{
  width:34px;
  flex-basis:34px;
 }
 .combat-row-tool-btn{
  width:34px;
  min-width:34px;
  height:31px;
 }
 .move-tool>small{
  width:44px;
  margin-left:-5px;
 }
 .combat-row-action-menu{
  width:min(230px,78vw);
 }
}
@media(max-width:390px){
 .combatant-card{
  grid-template-columns:36px 39px minmax(0,1fr) 34px;
  gap:4px 5px;
 }
 .combat-order-number{width:36px}
 .combat-row-portrait{width:38px;height:38px}
 .combatant-card-copy .name{font-size:13px}
 .combat-row-controls{gap:3px}
 .combat-row-tool{width:31px;flex-basis:31px}
 .combat-row-tool-btn{width:31px;min-width:31px;height:30px;font-size:13px}
}


/* v0.33.39 — mörkare kombatantrader och säkra gridområden */
.combatant-card.player-row,
.combatant-card.npc-row,
.combatant-card.enemy-row{
 position:relative;
 isolation:isolate;
 overflow:visible;
 background:
  radial-gradient(circle at 28% 0,color-mix(in srgb,var(--side) 10%,transparent),transparent 40%),
  linear-gradient(180deg,#211a14 0%,#17120e 58%,#120f0c 100%);
 color:#efe3d0;
}
.combatant-card.player-row:hover,
.combatant-card.npc-row:hover,
.combatant-card.enemy-row:hover{
 background:
  radial-gradient(circle at 28% 0,color-mix(in srgb,var(--side) 15%,transparent),transparent 42%),
  linear-gradient(180deg,#2a2118 0%,#1c1611 60%,#14100d 100%);
}
.combatant-card.player-row{--side:#3ca95a}
.combatant-card.npc-row{--side:#3984c6}
.combatant-card.enemy-row{--side:#bd493e}

.combat-order-number{
 grid-column:1;
 position:relative;
 z-index:1;
 width:38px;
 min-width:38px;
}
.combat-row-portrait{
 grid-column:2;
 position:relative;
 z-index:2;
}
.combatant-card-copy{
 grid-column:3;
 position:relative;
 z-index:2;
 min-width:0;
 overflow:hidden;
}
.combat-row-init{
 grid-column:4;
 position:relative;
 z-index:2;
}
.combat-row-controls{
 grid-column:5;
 position:relative;
 z-index:3;
}
.combatant-card-copy .name,
.combatant-card-copy .meta{
 max-width:100%;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.combat-row-inline-vitals{
 position:relative;
 z-index:2;
 display:flex;
 align-items:center;
 gap:8px;
 max-width:100%;
 overflow:hidden;
 color:#cbb99d;
}
.combat-row-inline-vitals span{
 flex:0 0 auto;
}
.combat-row-inline-vitals b{
 color:#f5e7d0;
 text-shadow:0 1px 1px rgba(0,0,0,.7);
}
.combat-row-inline-vitals i{
 flex:0 0 1px;
 width:1px;
 height:12px;
 background:#806544;
}
.combat-order-number{
 background:
  linear-gradient(180deg,
   color-mix(in srgb,var(--side) 72%,#4b3216),
   color-mix(in srgb,var(--side) 50%,#19110b));
 box-shadow:
  inset 0 0 0 1px rgba(255,236,190,.10),
  inset 0 -12px 22px rgba(0,0,0,.30),
  0 2px 6px rgba(0,0,0,.35);
}

@media(max-width:700px){
 .combatant-card{
  grid-template-columns:38px 42px minmax(0,1fr) 40px;
  grid-template-areas:
   "rank portrait copy init"
   "rank controls controls controls";
  gap:5px 7px;
  min-width:0;
 }
 .combat-order-number{
  grid-area:rank;
  width:38px;
  min-width:38px;
  min-height:72px;
 }
 .combat-row-portrait{grid-area:portrait}
 .combatant-card-copy{grid-area:copy}
 .combat-row-init{grid-area:init}
 .combat-row-controls{
  grid-area:controls;
  width:100%;
  min-width:0;
  justify-content:flex-start;
  padding-left:0;
 }
}
@media(max-width:390px){
 .combatant-card{
  grid-template-columns:36px 39px minmax(0,1fr) 36px;
  gap:4px 6px;
 }
 .combat-order-number{
  width:36px;
  min-width:36px;
 }
}


/* v0.33.40 — fokusera striden */
.combat-map-fit-btn{
 font-size:16px!important;
 line-height:1;
}
.combat-map-fit-btn:hover:not(:disabled){
 color:#fff0c8;
}


/* v0.33.41 — bildikoner för kombatantradens fyra befintliga handlingar */
.combat-row-tool-btn{
 overflow:hidden;
}
.combat-row-tool-icon{
 display:block;
 width:100%;
 height:100%;
 object-fit:contain;
 border-radius:inherit;
 pointer-events:none;
 user-select:none;
 -webkit-user-drag:none;
}


/* v0.33.42 — kartnära attackflöde */
.combat-mini-attack{
 padding:10px 12px;
 border-top:1px solid #765c3e;
 border-bottom:1px solid #765c3e;
 background:#241b15;
 color:#ead8ba;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.combat-mini-attack.reaction{
 background:#2d2117;
 border-color:#b47c4b;
}
.combat-mini-title{
 display:flex;
 align-items:baseline;
 justify-content:space-between;
 gap:10px;
 margin-bottom:8px;
}
.combat-mini-title span{
 flex:0 0 auto;
 font-size:9px;
 font-weight:900;
 letter-spacing:.11em;
 color:#d5ae70;
}
.combat-mini-title b{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font:800 14px Georgia,serif;
 color:#fff0d2;
}
.combat-mini-duel{
 display:grid;
 grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);
 align-items:stretch;
 gap:6px;
}
.combat-mini-side{
 min-width:0;
 padding:7px 8px;
 border:1px solid #5f4b38;
 border-radius:8px;
 background:rgba(255,255,255,.035);
 display:flex;
 flex-direction:column;
 gap:2px;
}
.combat-mini-side span{
 font-size:8px;
 font-weight:900;
 letter-spacing:.08em;
 color:#bfa47e;
}
.combat-mini-side b{
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:12px;
 color:#f6e6c9;
}
.combat-mini-side small{
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:9px;
 color:#bfae96;
}
.combat-mini-arrow{
 display:grid;
 place-items:center;
 color:#d7a65c;
 font-size:18px;
 font-weight:900;
}
.combat-mini-weapons{
 margin-top:8px;
 padding-top:8px;
 border-top:1px solid rgba(208,173,118,.22);
 display:flex;
 gap:8px;
 align-items:center;
}
.combat-mini-weapons>span{
 flex:0 0 auto;
 font-size:9px;
 font-weight:900;
 letter-spacing:.07em;
 text-transform:uppercase;
 color:#c2a77e;
}
.combat-mini-weapons>div{
 display:flex;
 gap:6px;
 flex-wrap:wrap;
 min-width:0;
}
.combat-mini-weapons.single{
 display:grid;
 grid-template-columns:auto auto minmax(0,1fr);
}
.combat-mini-weapons.single b{
 font-size:11px;
 color:#f1dfbf;
}
.combat-mini-weapons.single small{
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 font-size:9px;
 color:#b7a58e;
}
.combat-mini-weapons.empty{
 color:#d8b3a4;
 font-size:10px;
}
.combat-mini-weapon{
 padding:5px 7px;
 border:1px solid #6d573f;
 border-radius:7px;
 background:#33271e;
 color:#ead9bb;
 display:flex;
 flex-direction:column;
 gap:1px;
 text-align:left;
 cursor:pointer;
}
.combat-mini-weapon:hover{
 border-color:#b38a52;
 background:#403025;
}
.combat-mini-weapon.active{
 border-color:#6d9a72;
 background:#294132;
 box-shadow:0 0 0 2px rgba(109,154,114,.16);
}
.combat-mini-weapon b{font-size:10px}
.combat-mini-weapon small{font-size:8px;color:#baa78c}
.combat-mini-instruction{
 margin-top:8px;
 padding:6px 8px;
 border-radius:7px;
 background:rgba(213,174,112,.1);
 color:#e4c99f;
 font-size:10px;
 line-height:1.35;
}
.combat-mini-parry{
 margin-top:8px;
 padding-top:8px;
 border-top:1px solid rgba(213,174,112,.25);
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
}
.combat-mini-parry>span{
 min-width:0;
 font-size:10px;
 line-height:1.35;
 color:#dac4a4;
}
.combat-mini-parry>div{
 display:flex;
 justify-content:flex-end;
 gap:6px;
 flex-wrap:wrap;
}
.combat-mini-parry .btn{
 min-height:30px;
 padding:5px 8px;
 font-size:10px;
}
.combat-mini-attack .combat-attack-result{
 margin-top:8px;
}
.combat-parry-result,
.combat-hit-location-result,
.combat-damage-result{
 margin-top:4px;
 padding:6px 7px;
 border:1px solid #a99572;
 border-radius:7px;
 background:#f8f0e3;
 display:grid;
 grid-template-columns:auto 1fr;
 gap:2px 8px;
 align-items:center;
 color:#554636;
}
.combat-parry-result span,
.combat-hit-location-result span,
.combat-damage-result span{
 font-size:9px;
 font-weight:900;
 text-transform:uppercase;
 letter-spacing:.05em;
 color:#77644d;
}
.combat-parry-result b,
.combat-hit-location-result b,
.combat-damage-result b{
 justify-self:end;
 font-size:11px;
}
.combat-parry-result small,
.combat-hit-location-result small,
.combat-damage-result small{
 grid-column:1/-1;
 font-size:9px;
 color:#796957;
}
.combat-parry-result.success{
 border-color:#70906f;
 background:#eef5ea;
}
.combat-parry-result.fail{
 border-color:#b47b70;
 background:#f9eae6;
}
.combat-hit-location-result{
 border-color:#b98b49;
 background:#fff1cf;
 color:#5b3d13;
}
.combat-hit-location-result b{
 color:#8a4f12;
 font-weight:900;
}
.combat-hit-location-result{
 grid-template-columns:1fr;
 gap:8px;
 padding:9px 10px;
}
.combat-hit-location-head{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:10px;
}
.combat-hit-location-head span{
 font-size:9px;
 font-weight:900;
 text-transform:uppercase;
 letter-spacing:.05em;
 color:#77644d;
}
.combat-hit-location-head b{
 justify-self:auto;
 font-size:12px;
}
.combat-hit-figure-wrap{
 min-height:194px;
 display:grid;
 place-items:center;
 border:1px solid rgba(128,80,25,.26);
 border-radius:10px;
 background:
  radial-gradient(circle at 50% 32%,rgba(255,255,255,.86) 0,rgba(249,238,216,.78) 45%,rgba(229,205,163,.5) 100%);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
 overflow:hidden;
}
.combat-hit-model-stage{
 position:relative;
 width:116px;
 aspect-ratio:2/3;
 overflow:hidden;
 border-radius:8px;
 isolation:isolate;
}
.combat-hit-camera{
 position:absolute;
 inset:0;
 transform-origin:0 0;
 transform:translate(var(--hit-tx),var(--hit-ty)) scale(var(--hit-scale));
 animation:combatHitCameraReveal 1.28s cubic-bezier(.22,.78,.22,1) both;
 will-change:transform;
}
.combat-hit-model-image,
.combat-hit-model-overlay{
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 display:block;
}
.combat-hit-model-image{
 object-fit:contain;
 opacity:.78;
 filter:grayscale(1) sepia(.16) saturate(.55) contrast(.93) brightness(1.08);
 mix-blend-mode:multiply;
}
.combat-hit-model-overlay{
 pointer-events:none;
 overflow:visible;
}
.combat-hit-zone-fill{
 fill:#ee8534;
 fill-opacity:.38;
 stroke:#b84e20;
 stroke-opacity:.42;
 stroke-width:2.2;
 stroke-linejoin:round;
 stroke-linecap:round;
 filter:drop-shadow(0 0 2px rgba(196,79,28,.22));
 opacity:1;
 animation:combatHitZoneReveal .72s ease-out .22s both;
}
@keyframes combatHitCameraReveal{
 0%,18%{transform:translate(0,0) scale(1)}
 100%{transform:translate(var(--hit-tx),var(--hit-ty)) scale(var(--hit-scale))}
}
@keyframes combatHitZoneReveal{
 0%{opacity:0}
 100%{opacity:1}
}
@media(prefers-reduced-motion:reduce){
 .combat-hit-camera,.combat-hit-zone-fill{animation:none}
}
.combat-hit-model-missing{
 position:absolute;
 inset:0;
 display:grid;
 place-items:center;
 padding:10px;
 text-align:center;
 font-size:9px;
 color:#7a6753;
}
.combat-hit-location-copy{
 min-width:0;
 display:grid;
 gap:6px;
 align-content:center;
}
.combat-hit-location-copy strong{
 font:800 18px Georgia,serif;
 color:#7f4214;
 line-height:1.05;
}
.combat-hit-location-copy small{
 display:block;
 grid-column:auto;
 font-size:9px;
 color:#796957;
}
@media(max-width:520px){
 .combat-attack-result.has-hit-camera{grid-template-columns:minmax(0,1fr) 100px;gap:8px}
 .combat-attack-hit-camera{width:100px}
 .combat-hit-figure-wrap{min-height:172px}
 .combat-hit-model-stage{width:92px}
 .combat-hit-location-copy strong{font-size:16px}
}

.combat-damage-result.defeated{
 border-color:#8e3b34;
 background:#f5dfdb;
 color:#6d2723;
}
.combat-token.defeated{
 fill:#221c18;
 stroke:#a89277;
 stroke-width:3;
 vector-effect:non-scaling-stroke;
}
.combat-token-skull{
 pointer-events:none;
 fill:#f0ddbd;
 font:900 24px/1 system-ui,sans-serif;
 text-anchor:middle;
 dominant-baseline:middle;
}
.combat-token-group.defeated{cursor:default}
.combatant-card.defeated{
 opacity:.7;
 background:#eee6da;
 filter:saturate(.5);
}
.combatant-card.defeated .name{color:#5a4b3f}
.combatant-card.defeated.attack-target{box-shadow:none}
@media(max-width:700px){
 .combat-mini-title{align-items:flex-start;flex-direction:column;gap:2px}
 .combat-mini-title b{white-space:normal}
 .combat-mini-duel{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr)}
 .combat-mini-side{padding:6px}
 .combat-mini-parry{align-items:stretch;flex-direction:column}
 .combat-mini-parry>div{justify-content:flex-start}
}

/* v0.33.61 — mörk Alea-stil för attackresultat och träffkamera */
.combat-mini-attack .combat-attack-result{
 border-color:#72583b;
 background:
  radial-gradient(circle at 100% 0,rgba(147,105,58,.12),transparent 38%),
  linear-gradient(180deg,#261d16 0%,#18130f 100%);
 color:#eadbc3;
 box-shadow:
  inset 0 1px 0 rgba(255,235,198,.05),
  0 5px 15px rgba(0,0,0,.18);
}
.combat-mini-attack .combat-attack-result.success{
 border-color:#53765b;
 background:
  radial-gradient(circle at 100% 0,rgba(78,126,86,.12),transparent 40%),
  linear-gradient(180deg,#241d16 0%,#17130f 100%);
}
.combat-mini-attack .combat-attack-result.fail{
 border-color:#8a514a;
 background:
  radial-gradient(circle at 100% 0,rgba(145,68,59,.12),transparent 40%),
  linear-gradient(180deg,#281a16 0%,#18110f 100%);
}
.combat-mini-attack .combat-attack-result.special{
 border-color:#4b7f91;
 background:
  radial-gradient(circle at 100% 0,rgba(74,135,157,.13),transparent 40%),
  linear-gradient(180deg,#201d19 0%,#141311 100%);
 box-shadow:0 0 14px rgba(79,145,171,.12),inset 0 1px 0 rgba(255,255,255,.04);
}
.combat-mini-attack .combat-attack-result.perfect{
 border-color:#a98435;
 background:
  radial-gradient(circle at 100% 0,rgba(191,151,52,.16),transparent 42%),
  linear-gradient(180deg,#2b2415 0%,#18140d 100%);
 box-shadow:0 0 18px rgba(196,157,54,.13),inset 0 1px 0 rgba(255,244,193,.05);
}
.combat-mini-attack .combat-attack-result.fumble{
 border-color:#9e4a42;
 background:
  radial-gradient(circle at 100% 0,rgba(166,58,49,.16),transparent 42%),
  linear-gradient(180deg,#2b1815 0%,#190f0e 100%);
 box-shadow:0 0 17px rgba(181,73,62,.13),inset 0 1px 0 rgba(255,255,255,.035);
}
.combat-mini-attack .combat-attack-result-heading span{
 color:#bda585;
}
.combat-mini-attack .combat-attack-result-heading b{
 color:#e9d7b9;
 text-shadow:0 1px 1px rgba(0,0,0,.55);
}
.combat-mini-attack .combat-attack-result.success .combat-attack-result-heading b{color:#9fc493}
.combat-mini-attack .combat-attack-result.special .combat-attack-result-heading b{color:#8fc7da}
.combat-mini-attack .combat-attack-result.perfect .combat-attack-result-heading b{color:#e2c76b}
.combat-mini-attack .combat-attack-result.fail .combat-attack-result-heading b,
.combat-mini-attack .combat-attack-result.fumble .combat-attack-result-heading b{color:#dc8b80}
.combat-mini-attack .combat-attack-result-rolls{
 color:#c3af91;
}
.combat-mini-attack .combat-attack-result-rolls b{
 color:#f0e1c8;
}
.combat-mini-attack .combat-hit-location-result{
 border-color:#8a6a3d;
 background:
  linear-gradient(180deg,rgba(94,69,43,.82),rgba(60,43,29,.94));
 color:#ead7b8;
 box-shadow:
  inset 0 1px 0 rgba(255,232,185,.055),
  0 2px 6px rgba(0,0,0,.12);
}
.combat-mini-attack .combat-hit-location-head span{
 color:#d2b27f;
}
.combat-mini-attack .combat-hit-location-head b{
 color:#f0c47d;
}
.combat-mini-attack .combat-hit-location-copy small{
 color:#c3ad8c;
}
.combat-mini-attack .combat-erf-result{
 border-color:#6b7f5d;
 background:rgba(43,57,39,.72);
 color:#bdc9ad;
}
.combat-mini-attack .combat-erf-result.gained b{color:#9bcb92}
.combat-mini-attack .combat-erf-result.locked{
 border-color:#665a4b;
 background:rgba(66,57,47,.72);
 color:#b6a58e;
}
.combat-mini-attack .combat-parry-result,
.combat-mini-attack .combat-damage-result{
 border-color:#725f47;
 background:linear-gradient(180deg,#30261d,#231b15);
 color:#dfceb3;
}
.combat-mini-attack .combat-parry-result span,
.combat-mini-attack .combat-damage-result span{
 color:#ae9878;
}
.combat-mini-attack .combat-parry-result b,
.combat-mini-attack .combat-damage-result b{
 color:#f1dfc1;
}
.combat-mini-attack .combat-parry-result small,
.combat-mini-attack .combat-damage-result small{
 color:#baa68a;
}
.combat-mini-attack .combat-parry-result.success{
 border-color:#52755a;
 background:linear-gradient(180deg,#243329,#1a241d);
}
.combat-mini-attack .combat-parry-result.fail{
 border-color:#87524c;
 background:linear-gradient(180deg,#36211e,#261713);
}
.combat-mini-attack .combat-damage-result.defeated{
 border-color:#8f443c;
 background:linear-gradient(180deg,#351e1b,#241412);
 color:#e1aaa2;
}
.combat-mini-attack .combat-attack-result-main>strong{
 background:#6d2b27;
 color:#f5deb6;
 border:1px solid rgba(219,165,91,.38);
}
.combat-mini-attack .combat-hit-figure-wrap{
 border-color:#796041;
 background:
  radial-gradient(circle at 50% 20%,rgba(150,111,67,.16),transparent 46%),
  linear-gradient(180deg,#2a2119 0%,#17120e 100%);
 box-shadow:
  inset 0 1px 0 rgba(255,235,201,.06),
  inset 0 0 22px rgba(0,0,0,.24),
  0 3px 8px rgba(0,0,0,.18);
}
.combat-mini-attack .combat-hit-model-stage{
 background:
  radial-gradient(circle at 50% 30%,rgba(120,96,72,.16) 0%,rgba(61,47,36,.11) 42%,rgba(20,16,13,.02) 100%),
  linear-gradient(180deg,#211a15 0%,#15110e 100%);
 border:1px solid rgba(207,177,132,.16);
 box-shadow:
  inset 0 1px 0 rgba(255,246,224,.045),
  inset 0 0 28px rgba(0,0,0,.34),
  0 2px 6px rgba(0,0,0,.2);
}
.combat-mini-attack .combat-hit-model-image{
 opacity:.88;
 filter:grayscale(1) sepia(.25) saturate(.54) contrast(1.06) brightness(.82);
 mix-blend-mode:multiply;
}
.combat-mini-attack .combat-hit-zone-fill{
 fill:#e78335;
 fill-opacity:.48;
 stroke:#ffb16b;
 stroke-opacity:.76;
 stroke-width:2.4;
 filter:drop-shadow(0 0 3px rgba(235,123,46,.38));
}
.combat-mini-attack .combat-hit-model-missing{
 color:#d3bea0;
}

/* v0.33.63 — transparent clipped hit-body artwork */
.combat-hit-model-image-svg{
 pointer-events:none;
 opacity:.8;
 filter:grayscale(1) sepia(.22) saturate(.58) contrast(1.05) brightness(.86);
 mix-blend-mode:multiply;
}
.combat-mini-attack .combat-hit-model-image-svg{
 opacity:.9;
 filter:grayscale(1) sepia(.25) saturate(.54) contrast(1.08) brightness(.82);
 mix-blend-mode:multiply;
}

/* v0.33.64 — frilagd kropp direkt på attackradens bakgrund */
.combat-attack-hit-camera{
 background:transparent;
 border:0;
 box-shadow:none;
 padding:0;
}
.combat-mini-attack .combat-hit-figure-wrap{
 border:0;
 background:transparent;
 box-shadow:none;
 overflow:visible;
}
.combat-mini-attack .combat-hit-model-stage{
 background:transparent;
 border:0;
 box-shadow:none;
 border-radius:0;
}
.combat-mini-attack .combat-hit-camera{
 background:transparent;
 border:0;
 box-shadow:none;
}
.combat-mini-attack .combat-hit-model-image-svg{
 opacity:.92;
 filter:
  grayscale(1)
  sepia(.25)
  saturate(.54)
  contrast(1.08)
  brightness(.84)
  drop-shadow(0 1px 2px rgba(0,0,0,.18));
 mix-blend-mode:multiply;
}

/* v0.33.65 — image-only hit location label */
.combat-mini-attack .combat-attack-hit-camera{
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:5px;
}
.combat-mini-attack .combat-hit-location-label{
 width:100%;
 text-align:center;
 color:#d8c09a;
 font:800 10px/1.15 Georgia,serif;
 letter-spacing:.02em;
 text-transform:none;
 text-shadow:0 1px 1px rgba(0,0,0,.65);
}

/* v0.33.66 — compact attack result layout */
.combat-mini-attack .combat-attack-result-heading.outcome-only{
 justify-content:flex-start;
 min-height:24px;
}
.combat-mini-attack .combat-attack-result-heading.outcome-only>span{
 display:none;
}
.combat-mini-attack .combat-attack-result-heading.outcome-only b{
 white-space:nowrap;
 line-height:1;
 font-size:15px;
}
.combat-mini-attack .combat-attack-result.special .combat-attack-result-heading.outcome-only b{
 font-size:15px;
}
.combat-mini-attack .combat-attack-result.special .combat-result-icon{
 font-size:18px;
}
.combat-mini-attack .combat-attack-result.perfect .combat-attack-result-heading.outcome-only b,
.combat-mini-attack .combat-attack-result.fumble .combat-attack-result-heading.outcome-only b{
 font-size:16px;
}
.combat-mini-attack .combat-attack-result-rolls{
 gap:5px 9px;
 line-height:1.15;
}
.combat-mini-attack .combat-hit-full-damage{
 align-self:center;
 margin:0 0 3px;
 padding:4px 8px;
 border:1px solid rgba(219,165,91,.42);
 border-radius:999px;
 background:#6d2b27;
 color:#f5deb6;
 font-size:9px;
 font-weight:900;
 letter-spacing:.045em;
 line-height:1;
 white-space:nowrap;
}
.combat-mini-attack .combat-attack-hit-camera{
 gap:3px;
}
.combat-mini-attack .combat-damage-result{
 margin-top:2px;
 padding:4px 6px;
 grid-template-columns:auto minmax(0,1fr);
 gap:1px 6px;
 align-items:baseline;
 min-height:0;
 line-height:1.05;
}
.combat-mini-attack .combat-damage-result span{
 font-size:8px;
 line-height:1;
}
.combat-mini-attack .combat-damage-result b,
.combat-mini-attack .combat-attack-result.special .combat-damage-result b,
.combat-mini-attack .combat-attack-result.perfect .combat-damage-result b,
.combat-mini-attack .combat-attack-result.fumble .combat-damage-result b{
 justify-self:end;
 font-size:11px;
 line-height:1.05;
 white-space:nowrap;
}
.combat-mini-attack .combat-damage-result small{
 grid-column:1/-1;
 margin-top:1px;
 font-size:8px;
 line-height:1.1;
}
@media(max-width:390px){
 .combat-mini-attack .combat-attack-result-heading.outcome-only b,
 .combat-mini-attack .combat-attack-result.special .combat-attack-result-heading.outcome-only b{
  font-size:14px;
 }
 .combat-mini-attack .combat-damage-result b,
 .combat-mini-attack .combat-attack-result.special .combat-damage-result b,
 .combat-mini-attack .combat-attack-result.perfect .combat-damage-result b,
 .combat-mini-attack .combat-attack-result.fumble .combat-damage-result b{
  font-size:10px;
 }
}

/* v0.33.67 — full damage under attack outcome */
.combat-mini-attack .combat-full-damage-inline{
 align-self:flex-start;
 margin-top:-1px;
 padding:4px 8px;
 border:1px solid rgba(219,165,91,.42);
 border-radius:999px;
 background:#6d2b27;
 color:#f5deb6;
 font-size:9px;
 font-weight:900;
 letter-spacing:.045em;
 line-height:1;
 white-space:nowrap;
}
.combat-mini-attack .combat-hit-full-damage{
 display:none;
}

/* v0.33.68 — GM undo under round status */
.combat-undo-row{
 flex:0 0 100%;
 display:flex;
 align-items:center;
 padding-top:2px;
}
.combat-undo-btn{
 appearance:none;
 border:1px solid #755a3c;
 border-radius:8px;
 background:#2c2119;
 color:#e8cfaa;
 padding:6px 9px;
 font:800 10px/1.1 system-ui,sans-serif;
 letter-spacing:.02em;
 cursor:pointer;
 box-shadow:inset 0 1px 0 rgba(255,236,199,.05);
}
.combat-undo-btn:hover:not(:disabled){
 border-color:#a47a49;
 background:#3a291d;
 color:#f5dfbb;
}
.combat-undo-btn:disabled{
 opacity:.42;
 cursor:default;
}
@media(max-width:620px){
 .combat-undo-row{padding-top:4px}
 .combat-undo-btn{width:100%;text-align:left;padding:7px 9px}
}

/* v0.33.69 — three-line damage calculation */
.combat-mini-attack .combat-damage-result{
 display:flex;
 flex-direction:column;
 gap:2px;
 padding:5px 7px;
}
.combat-mini-attack .combat-damage-line{
 display:grid;
 grid-template-columns:auto minmax(0,1fr);
 gap:8px;
 align-items:baseline;
 min-width:0;
}
.combat-mini-attack .combat-damage-line span{
 font-size:8px;
 font-weight:900;
 line-height:1;
 text-transform:uppercase;
 letter-spacing:.045em;
 color:#ae9878;
 white-space:nowrap;
}
.combat-mini-attack .combat-damage-line b,
.combat-mini-attack .combat-attack-result.special .combat-damage-line b,
.combat-mini-attack .combat-attack-result.perfect .combat-damage-line b,
.combat-mini-attack .combat-attack-result.fumble .combat-damage-line b{
 justify-self:end;
 min-width:0;
 font-size:10px;
 line-height:1.1;
 color:#f1dfc1;
 text-align:right;
 white-space:normal;
}
@media(max-width:390px){
 .combat-mini-attack .combat-damage-line{gap:6px}
 .combat-mini-attack .combat-damage-line b,
 .combat-mini-attack .combat-attack-result.special .combat-damage-line b,
 .combat-mini-attack .combat-attack-result.perfect .combat-damage-line b,
 .combat-mini-attack .combat-attack-result.fumble .combat-damage-line b{
  font-size:9px;
 }
}

/* v0.33.71 — four-row damage equation */
.combat-mini-attack .combat-damage-result{
 display:flex;
 flex-direction:column;
 gap:3px;
 padding:6px 8px;
}
.combat-mini-attack .combat-damage-head,
.combat-mini-attack .combat-damage-formulas{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:8px;
 align-items:end;
}
.combat-mini-attack .combat-damage-head span{
 color:#b89f7f;
 font-size:8px;
 font-weight:900;
 line-height:1;
 letter-spacing:.055em;
 text-align:center;
 text-transform:uppercase;
 white-space:nowrap;
}
.combat-mini-attack .combat-damage-equation{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
 gap:5px;
 align-items:center;
}
.combat-mini-attack .combat-damage-equation b,
.combat-mini-attack .combat-damage-equation strong{
 color:#f1dfc1;
 font-size:18px;
 font-weight:900;
 line-height:1;
 text-align:center;
 white-space:nowrap;
}
.combat-mini-attack .combat-damage-equation strong{
 color:#79b8ce;
 font-size:20px;
}
.combat-mini-attack .combat-damage-equation i{
 color:#9d876a;
 font-size:13px;
 font-style:normal;
 font-weight:900;
 line-height:1;
 text-align:center;
}
.combat-mini-attack .combat-damage-formulas span{
 min-width:0;
 color:#9f8a70;
 font-size:7px;
 font-weight:700;
 line-height:1.05;
 text-align:center;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.combat-mini-attack .combat-damage-kp{
 display:grid;
 grid-template-columns:auto minmax(0,1fr);
 gap:8px;
 align-items:baseline;
 margin-top:2px;
 padding-top:4px;
 border-top:1px solid rgba(164,128,83,.28);
}
.combat-mini-attack .combat-damage-kp span{
 color:#b89f7f;
 font-size:8px;
 font-weight:900;
 letter-spacing:.05em;
 text-transform:uppercase;
}
.combat-mini-attack .combat-damage-kp b,
.combat-mini-attack .combat-attack-result.special .combat-damage-kp b,
.combat-mini-attack .combat-attack-result.perfect .combat-damage-kp b,
.combat-mini-attack .combat-attack-result.fumble .combat-damage-kp b{
 justify-self:end;
 color:#f1dfc1;
 font-size:10px;
 line-height:1.05;
 white-space:nowrap;
}
@media(max-width:390px){
 .combat-mini-attack .combat-damage-head,
 .combat-mini-attack .combat-damage-formulas{gap:5px}
 .combat-mini-attack .combat-damage-equation{gap:3px}
 .combat-mini-attack .combat-damage-equation b{font-size:16px}
 .combat-mini-attack .combat-damage-equation strong{font-size:18px}
 .combat-mini-attack .combat-damage-head span{font-size:7px}
 .combat-mini-attack .combat-damage-formulas span{font-size:6.5px}
}

/* v0.33.72 — four aligned damage columns and tighter hit camera */
.combat-mini-attack .combat-damage-result{
 display:flex;
 flex-direction:column;
 gap:4px;
 padding:6px 8px;
}
.combat-mini-attack .combat-damage-grid{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
 gap:5px;
 align-items:center;
}
.combat-mini-attack .combat-damage-col{
 min-width:0;
 display:flex;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:2px;
 text-align:center;
}
.combat-mini-attack .combat-damage-col span{
 color:#b89f7f;
 font-size:8px;
 font-weight:900;
 line-height:1;
 letter-spacing:.05em;
 text-transform:uppercase;
 white-space:nowrap;
}
.combat-mini-attack .combat-damage-col b,
.combat-mini-attack .combat-attack-result.special .combat-damage-col b,
.combat-mini-attack .combat-attack-result.perfect .combat-damage-col b,
.combat-mini-attack .combat-attack-result.fumble .combat-damage-col b{
 color:#f1dfc1;
 font-size:18px;
 font-weight:900;
 line-height:1;
 text-align:center;
 white-space:nowrap;
}
.combat-mini-attack .combat-damage-col.total b,
.combat-mini-attack .combat-attack-result.special .combat-damage-col.total b,
.combat-mini-attack .combat-attack-result.perfect .combat-damage-col.total b,
.combat-mini-attack .combat-attack-result.fumble .combat-damage-col.total b{
 color:#79b8ce;
 font-size:20px;
}
.combat-mini-attack .combat-damage-col small{
 min-height:8px;
 max-width:100%;
 color:#9f8a70;
 font-size:7px;
 font-weight:700;
 line-height:1.05;
 text-align:center;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.combat-mini-attack .combat-damage-op{
 align-self:center;
 color:#9d876a;
 font-size:18px;
 font-style:normal;
 font-weight:900;
 line-height:1;
 text-align:center;
}
.combat-mini-attack .combat-damage-kp{
 display:grid;
 grid-template-columns:auto minmax(0,1fr);
 gap:8px;
 align-items:baseline;
 margin-top:2px;
 padding-top:4px;
 border-top:1px solid rgba(164,128,83,.28);
}
.combat-mini-attack .combat-damage-kp span{
 color:#b89f7f;
 font-size:8px;
 font-weight:900;
 letter-spacing:.05em;
 text-transform:uppercase;
}
.combat-mini-attack .combat-damage-kp b,
.combat-mini-attack .combat-attack-result.special .combat-damage-kp b,
.combat-mini-attack .combat-attack-result.perfect .combat-damage-kp b,
.combat-mini-attack .combat-attack-result.fumble .combat-damage-kp b{
 justify-self:end;
 color:#f1dfc1;
 font-size:10px;
 line-height:1.05;
 white-space:nowrap;
}
.combat-mini-attack .combat-attack-hit-camera{
 margin-top:-10px;
 margin-right:-8px;
 gap:0;
}
.combat-mini-attack .combat-hit-figure-wrap{
 min-height:174px;
 align-items:start;
 justify-items:end;
}
.combat-mini-attack .combat-hit-location-label{
 margin-top:-2px;
 line-height:1;
}
@media(max-width:520px){
 .combat-mini-attack .combat-hit-figure-wrap{min-height:140px}
 .combat-mini-attack .combat-attack-hit-camera{margin-top:-8px;margin-right:-6px}
}
@media(max-width:390px){
 .combat-mini-attack .combat-damage-grid{gap:3px}
 .combat-mini-attack .combat-damage-col span{font-size:7px}
 .combat-mini-attack .combat-damage-col b,
 .combat-mini-attack .combat-attack-result.special .combat-damage-col b,
 .combat-mini-attack .combat-attack-result.perfect .combat-damage-col b,
 .combat-mini-attack .combat-attack-result.fumble .combat-damage-col b{font-size:16px}
 .combat-mini-attack .combat-damage-col.total b,
 .combat-mini-attack .combat-attack-result.special .combat-damage-col.total b,
 .combat-mini-attack .combat-attack-result.perfect .combat-damage-col.total b,
 .combat-mini-attack .combat-attack-result.fumble .combat-damage-col.total b{font-size:18px}
 .combat-mini-attack .combat-damage-col small{font-size:6.5px}
 .combat-mini-attack .combat-damage-op{font-size:16px}
}

/* v0.33.73 — centered hit camera */
.combat-mini-attack .combat-attack-hit-camera{
 margin-right:0;
 align-items:center;
}
.combat-mini-attack .combat-hit-figure-wrap{
 width:100%;
 justify-items:center;
}
.combat-mini-attack .combat-hit-location-label{
 width:100%;
 text-align:center;
}
@media(max-width:520px){
 .combat-mini-attack .combat-attack-hit-camera{margin-right:0}
}

/* v0.33.74 — active combatant round panel */
.combat-turn-panel{
 grid-column:1/-1;
 display:flex;
 flex-direction:column;
 gap:0;
 align-items:stretch;
 padding:0;
 overflow:visible;
 background:
  radial-gradient(circle at 18% 0,rgba(160,111,53,.12),transparent 38%),
  linear-gradient(180deg,#261d16 0%,#17120e 100%);
}
.combat-turn-head{
 display:grid;
 grid-template-columns:auto auto minmax(0,1fr) auto;
 gap:8px;
 align-items:center;
 min-width:0;
 padding:8px 10px 7px;
 border-bottom:1px solid rgba(139,103,61,.48);
}
.combat-turn-head .combat-status{
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
}
.combat-turn-action-status{
 padding:4px 7px;
 border:1px solid rgba(198,154,88,.34);
 border-radius:999px;
 background:#2f261d;
 color:#d9c29c;
 font-size:9px;
 font-weight:900;
 line-height:1;
 letter-spacing:.04em;
 text-transform:uppercase;
 white-space:nowrap;
}
.combat-turn-action-status.move{border-color:rgba(74,151,89,.55);color:#a9d9af;background:#1d2b20}
.combat-turn-action-status.attack{border-color:rgba(182,75,63,.62);color:#efb0a7;background:#351c19}
.combat-turn-action-status.other{border-color:rgba(177,133,66,.58);color:#e8c88d;background:#34291a}
.combat-turn-action-status.reaction{border-color:rgba(80,132,194,.62);color:#b5d4f0;background:#17283a}
.combat-turn-undo-btn{
 width:29px;
 height:29px;
 min-width:29px;
 padding:0;
 border:1px solid #6d563b;
 border-radius:7px;
 background:linear-gradient(180deg,#30251c,#17130f);
 color:#e2c58f;
 display:grid;
 place-items:center;
 font:900 18px/1 system-ui,sans-serif;
 cursor:pointer;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 2px 5px rgba(0,0,0,.28);
}
.combat-turn-undo-btn:hover:not(:disabled){
 border-color:#ae8550;
 color:#ffe0a8;
 background:linear-gradient(180deg,#453325,#211912);
}
.combat-turn-undo-btn:disabled{opacity:.32;cursor:default}
.combat-undo-row{display:none!important}

.combat-turn-actor{
 min-height:66px;
 display:flex;
 align-items:center;
 gap:10px;
 padding:7px 10px 6px;
 position:relative;
 overflow:visible;
}
.combat-turn-actor.empty{
 min-height:48px;
 color:#a9977f;
 font-size:11px;
}
.combat-turn-portrait{
 --turn-side:#aa7b3f;
 width:50px;
 height:56px;
 flex:0 0 50px;
 padding:2px;
 clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);
 background:var(--turn-side);
 display:grid;
 place-items:center;
 color:#f7ead3;
 filter:drop-shadow(0 2px 4px rgba(0,0,0,.44));
}
.combat-turn-portrait.player-row{--turn-side:#3ca95a}
.combat-turn-portrait.npc-row{--turn-side:#3984c6}
.combat-turn-portrait.enemy-row{--turn-side:#bd493e}
.combat-turn-portrait img,
.combat-turn-portrait b{
 width:100%;
 height:100%;
 clip-path:inherit;
}
.combat-turn-portrait img{
 display:block;
 object-fit:cover;
 object-position:center 23%;
 background:#17130f;
}
.combat-turn-portrait b{
 display:grid;
 place-items:center;
 background:#241e18;
 font:800 14px/1 Georgia,serif;
}
.combat-turn-identity{
 min-width:0;
 flex:1 1 auto;
 display:flex;
 flex-direction:column;
 gap:3px;
}
.combat-turn-identity span{
 color:#9e896d;
 font-size:8px;
 font-weight:900;
 line-height:1;
 letter-spacing:.07em;
 text-transform:uppercase;
}
.combat-turn-identity b{
 min-width:0;
 color:#f3e5cf;
 font:800 18px/1.05 Georgia,serif;
 white-space:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
}
.combat-turn-actions{
 flex:0 0 auto;
 display:flex;
 align-items:center;
 justify-content:flex-end;
 gap:7px;
 overflow:visible;
}
.combat-turn-actions .combat-turn-action-tool{
 width:40px;
 flex:0 0 40px;
 position:relative;
}
.combat-turn-actions .combat-row-tool-btn{
 width:40px;
 min-width:40px;
 height:40px;
 border-radius:7px;
}
.combat-turn-actions .combat-row-action-menu{
 top:45px;
}
.combat-turn-actions .combat-row-tool-btn.active{
 border-color:#d0a85f;
 box-shadow:0 0 0 2px rgba(202,159,82,.22),0 0 12px rgba(202,159,82,.18);
}
.combat-turn-stats{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 border-top:1px solid rgba(139,103,61,.38);
 background:rgba(8,7,6,.18);
}
.combat-turn-stats>div{
 min-width:0;
 padding:6px 10px 7px;
 text-align:center;
 border-right:1px solid rgba(139,103,61,.28);
}
.combat-turn-stats>div:last-child{border-right:0}
.combat-turn-stats span{
 display:block;
 color:#9f8b70;
 font-size:8px;
 font-weight:900;
 line-height:1;
 letter-spacing:.055em;
 text-transform:uppercase;
}
.combat-turn-stats b{
 display:block;
 margin-top:2px;
 color:#f0dcc0;
 font:900 16px/1 Georgia,serif;
}
.combat-turn-stats small{
 display:block;
 min-height:8px;
 margin-top:2px;
 color:#746652;
 font-size:6px;
 font-weight:700;
 line-height:1;
}

/* Turordningen visar nu ordning och status, inte handlingsknappar. */
.combat-participants .combatant-card{
 grid-template-columns:38px 46px minmax(0,1fr) 44px;
 grid-template-rows:auto;
 grid-template-areas:none;
 min-height:66px;
}
.combat-participants .combat-order-number{grid-column:1;grid-row:1;min-height:54px}
.combat-participants .combat-row-portrait{grid-column:2;grid-row:1}
.combat-participants .combatant-card-copy{grid-column:3;grid-row:1}
.combat-participants .combat-row-init{grid-column:4;grid-row:1}
.combat-participants .combat-row-controls{display:none!important}

@media(max-width:700px){
 .combat-turn-head{
  grid-template-columns:auto minmax(0,1fr) auto;
 }
 .combat-turn-action-status{grid-column:2}
 .combat-turn-head .combat-status{display:none}
 .combat-turn-actor{gap:8px;padding-left:8px;padding-right:8px}
 .combat-turn-portrait{width:45px;height:50px;flex-basis:45px}
 .combat-turn-identity b{font-size:16px}
 .combat-turn-actions{gap:5px}
 .combat-turn-actions .combat-turn-action-tool{width:36px;flex-basis:36px}
 .combat-turn-actions .combat-row-tool-btn{width:36px;min-width:36px;height:36px}
 .combat-turn-actions .combat-row-action-menu{top:41px;width:min(230px,76vw)}
 .combat-participants .combatant-card{
  grid-template-columns:36px 42px minmax(0,1fr) 40px;
  grid-template-areas:none;
  min-height:64px;
 }
 .combat-participants .combat-order-number{grid-column:1;grid-row:1;min-height:52px}
 .combat-participants .combat-row-portrait{grid-column:2;grid-row:1}
 .combat-participants .combatant-card-copy{grid-column:3;grid-row:1}
 .combat-participants .combat-row-init{grid-column:4;grid-row:1}
}
@media(max-width:430px){
 .combat-turn-head{gap:5px;padding:7px 8px}
 .combat-turn-head .combat-round{font-size:16px}
 .combat-turn-action-status{font-size:8px;padding:4px 5px}
 .combat-turn-undo-btn{width:27px;height:27px;min-width:27px}
 .combat-turn-actor{
  display:grid;
  grid-template-columns:43px minmax(0,1fr);
  grid-template-rows:auto auto;
  gap:5px 8px;
 }
 .combat-turn-portrait{
  grid-column:1;
  grid-row:1/3;
  width:43px;
  height:48px;
  align-self:start;
 }
 .combat-turn-identity{grid-column:2;grid-row:1}
 .combat-turn-identity span{font-size:7px}
 .combat-turn-identity b{font-size:15px}
 .combat-turn-actions{
  grid-column:2;
  grid-row:2;
  justify-content:flex-start;
  gap:6px;
 }
 .combat-turn-actions .combat-turn-action-tool{width:34px;flex-basis:34px}
 .combat-turn-actions .combat-row-tool-btn{width:34px;min-width:34px;height:34px}
 .combat-turn-actions .combat-row-action-menu{top:39px}
 .combat-turn-stats>div{padding:5px 4px 6px}
 .combat-turn-stats b{font-size:14px}
 .combat-participants .combatant-card{
  grid-template-columns:34px 39px minmax(0,1fr) 36px;
  gap:4px 6px;
 }
 .combat-participants .combat-order-number{width:34px;min-width:34px}
 .combat-participants .combat-row-portrait{width:38px;height:38px}
}

/* v0.33.75 — crisp normalized combat SVG icons */
.combat-row-tool-icon{
 width:88%;
 height:88%;
 object-fit:contain;
 object-position:center;
 border-radius:0;
 image-rendering:auto;
}
.combat-turn-actions .combat-row-tool-btn{
 display:grid;
 place-items:center;
 overflow:hidden;
}
.combat-turn-actions .combat-row-tool-btn.active .combat-row-tool-icon,
.combat-turn-actions .combat-row-tool-btn.chosen .combat-row-tool-icon{
 filter:drop-shadow(0 0 2px rgba(230,197,142,.45));
}

/* v0.33.75 — normalized combat action artwork */
.combat-turn-actions .combat-row-tool-btn{
 border:0;
 background:transparent;
 box-shadow:none;
 padding:0;
 overflow:visible;
}
.combat-turn-actions .combat-row-tool-btn:hover:not(:disabled){
 border:0;
 background:transparent;
 box-shadow:none;
 transform:translateY(-1px);
}
.combat-turn-actions .combat-row-tool-icon{
 display:block;
 width:100%;
 height:100%;
 object-fit:cover;
 object-position:center;
 border-radius:7px;
 image-rendering:auto;
 pointer-events:none;
 user-select:none;
 -webkit-user-drag:none;
}
.combat-turn-actions .combat-row-tool-btn.active{
 border:0;
 background:transparent;
 outline:2px solid #d0a85f;
 outline-offset:2px;
 box-shadow:0 0 12px rgba(202,159,82,.32);
}
.combat-turn-actions .combat-row-tool-btn:disabled{
 opacity:.35;
 filter:saturate(.55) brightness(.75);
}

/* v0.33.77 — centered crisp combat SVG controls */
.combat-turn-actions .combat-row-tool-btn{
 display:grid;
 place-items:center;
 width:40px;
 min-width:40px;
 height:40px;
 padding:0;
 overflow:hidden;
 border:1px solid #6d563b;
 border-radius:7px;
 background:linear-gradient(180deg,#2b241c,#171410);
 color:#e4c58e;
 box-shadow:
  inset 0 1px 0 rgba(255,255,255,.045),
  0 2px 4px rgba(0,0,0,.35);
}
.combat-turn-actions .combat-row-tool-btn:hover:not(:disabled){
 border-color:#ad8551;
 background:linear-gradient(180deg,#403124,#211912);
 box-shadow:
  inset 0 1px 0 rgba(255,255,255,.055),
  0 2px 5px rgba(0,0,0,.38);
 transform:translateY(-1px);
}
.combat-turn-actions .combat-row-tool-icon{
 display:block;
 width:84%;
 height:84%;
 margin:0;
 object-fit:contain;
 object-position:center;
 border-radius:0;
 image-rendering:auto;
 filter:none;
 transform:none;
}
.combat-turn-actions .combat-row-tool-btn.active{
 border:1px solid #d0a85f;
 background:linear-gradient(180deg,#443523,#211912);
 outline:2px solid rgba(208,168,95,.42);
 outline-offset:1px;
 box-shadow:
  inset 0 1px 0 rgba(255,255,255,.055),
  0 0 10px rgba(202,159,82,.28);
}
.combat-turn-actions .combat-row-tool-btn.active .combat-row-tool-icon,
.combat-turn-actions .combat-row-tool-btn.chosen .combat-row-tool-icon{
 filter:drop-shadow(0 0 2px rgba(230,197,142,.42));
}
.combat-turn-actions .combat-row-tool-btn:disabled{
 opacity:.35;
 filter:none;
}
@media(max-width:430px){
 .combat-turn-actions .combat-row-tool-btn{
  width:34px;
  min-width:34px;
  height:34px;
 }
 .combat-turn-actions .combat-row-tool-icon{
  width:82%;
  height:82%;
 }
}

/* v0.33.79 — premium turn portrait and action controls */
.combat-turn-portrait{
 --turn-side:#aa7b3f;
 width:74px;
 height:64px;
 flex:0 0 74px;
 padding:3px;
 clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
 background:
  linear-gradient(180deg,
   color-mix(in srgb,var(--turn-side) 84%,#f0c98c) 0%,
   var(--turn-side) 48%,
   color-mix(in srgb,var(--turn-side) 72%,#1a120c) 100%);
 display:grid;
 place-items:center;
 filter:
  drop-shadow(0 4px 7px rgba(0,0,0,.46))
  drop-shadow(0 0 4px color-mix(in srgb,var(--turn-side) 28%,transparent));
}
.combat-turn-portrait img,
.combat-turn-portrait b{
 width:100%;
 height:100%;
 clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);
}
.combat-turn-portrait img{
 object-position:center 24%;
 box-shadow:inset 0 0 0 1px rgba(0,0,0,.55);
}
.combat-turn-portrait b{
 background:
  radial-gradient(circle at 50% 28%,rgba(255,255,255,.055),transparent 42%),
  linear-gradient(180deg,#2a2119,#16110d);
 font:900 18px/1 Georgia,serif;
 text-shadow:0 1px 2px #000;
}

/* En tydlig status: fas, vald handling och resurs är tre olika saker. */
.combat-turn-action-status.none{
 border-color:rgba(163,137,99,.34);
 color:#b8a589;
 background:#272119;
}

/* Premium fantasy controls: dark plate, inset rim and restrained gold light. */
.combat-turn-actions{
 gap:9px;
}
.combat-turn-actions .combat-turn-action-tool{
 width:46px;
 flex:0 0 46px;
}
.combat-turn-actions .combat-row-tool-btn{
 position:relative;
 isolation:isolate;
 width:46px;
 min-width:46px;
 height:46px;
 padding:0;
 overflow:hidden;
 border:1px solid #7d6040;
 border-radius:9px;
 background:
  radial-gradient(circle at 50% 16%,rgba(238,199,133,.10),transparent 40%),
  linear-gradient(180deg,#30261d 0%,#211911 48%,#15100c 100%);
 box-shadow:
  inset 0 1px 0 rgba(255,239,209,.10),
  inset 0 -1px 0 rgba(0,0,0,.76),
  0 3px 7px rgba(0,0,0,.42);
 transition:
  transform .12s ease,
  border-color .12s ease,
  box-shadow .12s ease,
  background .12s ease;
}
.combat-turn-actions .combat-row-tool-btn::before{
 content:"";
 position:absolute;
 inset:3px;
 z-index:0;
 border:1px solid rgba(205,164,99,.18);
 border-radius:6px;
 pointer-events:none;
 box-shadow:inset 0 0 9px rgba(0,0,0,.28);
}
.combat-turn-actions .combat-row-tool-btn::after{
 content:"";
 position:absolute;
 left:22%;
 right:22%;
 top:3px;
 height:1px;
 z-index:0;
 background:linear-gradient(90deg,transparent,rgba(255,224,166,.45),transparent);
 pointer-events:none;
}
.combat-turn-actions .combat-row-tool-icon{
 position:relative;
 z-index:1;
 display:block;
 width:72%;
 height:72%;
 margin:0;
 object-fit:contain;
 object-position:center;
 border-radius:0;
 image-rendering:auto;
 filter:
  drop-shadow(0 1px 1px rgba(0,0,0,.7))
  drop-shadow(0 0 1px rgba(229,197,142,.18));
 transform:none;
 opacity:.92;
}
.combat-turn-actions .move-tool .combat-row-tool-icon{width:70%;height:70%}
.combat-turn-actions .attack-tool .combat-row-tool-icon{width:76%;height:76%}
.combat-turn-actions .action-tool .combat-row-tool-icon{width:71%;height:71%}
.combat-turn-actions .end-tool .combat-row-tool-icon{width:67%;height:67%}

.combat-turn-actions .combat-row-tool-btn:hover:not(:disabled){
 transform:translateY(-1px);
 border-color:#b08751;
 background:
  radial-gradient(circle at 50% 16%,rgba(246,205,139,.14),transparent 42%),
  linear-gradient(180deg,#3a2d21 0%,#261d14 50%,#17110c 100%);
 box-shadow:
  inset 0 1px 0 rgba(255,239,209,.13),
  inset 0 -1px 0 rgba(0,0,0,.78),
  0 4px 9px rgba(0,0,0,.46);
}
.combat-turn-actions .combat-row-tool-btn.active,
.combat-turn-actions .combat-row-tool-btn.chosen{
 border-color:#d4a860;
 background:
  radial-gradient(circle at 50% 18%,rgba(255,211,134,.19),transparent 43%),
  linear-gradient(180deg,#493620 0%,#2d2115 52%,#1b130d 100%);
 outline:none;
 box-shadow:
  inset 0 1px 0 rgba(255,239,209,.17),
  inset 0 0 0 1px rgba(213,169,96,.14),
  0 0 0 1px rgba(213,169,96,.22),
  0 0 13px rgba(202,159,82,.26),
  0 4px 8px rgba(0,0,0,.42);
}
.combat-turn-actions .combat-row-tool-btn.active::before,
.combat-turn-actions .combat-row-tool-btn.chosen::before{
 border-color:rgba(235,193,119,.32);
}
.combat-turn-actions .combat-row-tool-btn.active .combat-row-tool-icon,
.combat-turn-actions .combat-row-tool-btn.chosen .combat-row-tool-icon{
 opacity:1;
 filter:
  drop-shadow(0 1px 1px rgba(0,0,0,.74))
  drop-shadow(0 0 3px rgba(232,193,126,.34));
}
.combat-turn-actions .combat-row-tool-btn:active:not(:disabled){
 transform:translateY(1px);
 box-shadow:
  inset 0 2px 5px rgba(0,0,0,.44),
  0 1px 3px rgba(0,0,0,.36);
}
.combat-turn-actions .combat-row-tool-btn:disabled{
 opacity:.30;
 filter:saturate(.55);
}

@media(max-width:700px){
 .combat-turn-portrait{
  width:68px;
  height:59px;
  flex-basis:68px;
 }
 .combat-turn-actions{gap:7px}
 .combat-turn-actions .combat-turn-action-tool{width:42px;flex-basis:42px}
 .combat-turn-actions .combat-row-tool-btn{width:42px;min-width:42px;height:42px}
}
@media(max-width:430px){
 .combat-turn-actor{
  grid-template-columns:64px minmax(0,1fr);
  gap:6px 10px;
 }
 .combat-turn-portrait{
  grid-column:1;
  grid-row:1/3;
  width:64px;
  height:55px;
  flex-basis:64px;
  padding:3px;
  align-self:center;
 }
 .combat-turn-identity b{font-size:16px}
 .combat-turn-actions{
  gap:7px;
 }
 .combat-turn-actions .combat-turn-action-tool{
  width:39px;
  flex-basis:39px;
 }
 .combat-turn-actions .combat-row-tool-btn{
  width:39px;
  min-width:39px;
  height:39px;
  border-radius:8px;
 }
 .combat-turn-actions .combat-row-tool-btn::before{
  inset:3px;
  border-radius:5px;
 }
}


/* v0.33.80 — simplified round header */

/* v0.33.85 — master weapon icon registry */
.admin-weapon-icon-cell{
 display:grid;
 place-items:center;
 padding-left:6px!important;
 padding-right:6px!important;
}
.admin-weapon-icon{
 display:grid;
 justify-items:center;
 gap:3px;
 min-width:48px;
}
.admin-weapon-icon img{
 width:36px;
 height:36px;
 object-fit:contain;
 filter:drop-shadow(0 1px 2px rgba(0,0,0,.62));
}
.admin-weapon-icon small{
 max-width:62px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 color:#c8af88;
 font-size:8px;
 line-height:1;
 text-align:center;
}
.admin-weapon-icon.missing img{
 opacity:.35;
}
.admin-weapon-icon.missing small{
 color:#e18a7f;
 font-weight:800;
}
.admin-weapon-icon-key{
 display:block;
 margin-top:3px;
 color:#8f7b63;
 font-size:9px;
 font-weight:600;
 letter-spacing:.02em;
}
.weapon-rule-editor #rwIconKey{
 min-width:150px;
}
@media(max-width:700px){
 .admin-weapon-icon img{width:32px;height:32px}
 .admin-weapon-icon small{font-size:7px}
}

/* v0.33.86 — armor and shield master admin */
.adminarmortable{
 display:grid;
 grid-template-columns:74px minmax(150px,1.5fr) 90px 58px 72px 72px 86px minmax(110px,1fr) 86px;
 border:1px solid #5a4631;
 border-radius:12px;
 overflow:auto;
}
.adminshieldtable{
 display:grid;
 grid-template-columns:74px minmax(150px,1.4fr) 86px 105px 58px 58px 58px 92px minmax(150px,1.35fr) 100px 86px;
 border:1px solid #5a4631;
 border-radius:12px;
 overflow:auto;
}
.adminarmortable>div,
.adminshieldtable>div{
 padding:10px 8px;
 border-bottom:1px solid #443527;
 min-width:0;
}
.adminarmortable .ahead,
.adminshieldtable .ahead{
 background:#6d1e1e;
 font-weight:800;
 white-space:nowrap;
}
.admin-master-empty,
.admin-master-footnote{
 grid-column:1/-1;
}
.admin-master-empty{
 color:#b9a68f;
 padding:14px!important;
}
.admin-master-footnote{
 color:#a99578;
 font-size:11px;
 line-height:1.4;
 background:#17120e;
 border-bottom:0!important;
}
.admin-master-key{
 display:block;
 margin-top:3px;
 color:#8f7b63;
 font-size:9px;
 font-weight:600;
 letter-spacing:.02em;
}
.admin-source-badge{
 display:inline-block;
 max-width:100%;
 padding:3px 6px;
 border:1px solid rgba(180,145,91,.28);
 border-radius:999px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 color:#cdbb9e;
 background:#272018;
 font-size:9px;
 font-weight:800;
}
.admin-source-badge.expert{
 color:#d9c694;
 border-color:rgba(202,168,91,.45);
 background:#302817;
}
.admin-source-badge.extra{
 color:#b7a99b;
 background:#24211e;
}
.armor-rule-editor textarea,
.shield-rule-editor textarea{
 min-height:110px;
}
.rule-editor-note{
 margin-top:10px;
 padding:9px 10px;
 border:1px solid rgba(180,145,91,.25);
 border-radius:8px;
 color:#bba98f;
 background:#18130f;
 font-size:11px;
 line-height:1.45;
}
@media(max-width:700px){
 .adminarmortable{
  grid-template-columns:64px 155px 82px 54px 64px 64px 80px 105px 78px;
  font-size:13px;
 }
 .adminshieldtable{
  grid-template-columns:64px 155px 78px 100px 54px 54px 54px 86px 145px 95px 78px;
  font-size:13px;
 }
 .adminarmortable>div,
 .adminshieldtable>div{
  padding:9px 6px;
 }
}


/* v0.33.93 — armor master: same table/scroll behavior as weapon master */
@media(max-width:700px){
 .adminarmortable{
  display:grid;
  grid-template-columns:64px 155px 82px 54px 64px 92px 94px 68px 105px 220px 78px;
  width:auto;
  min-width:980px;
  overflow:auto;
  font-size:13px;
 }
 .adminarmortable>.ahead{display:block}
 .adminarmortable>div{
  display:block;
  width:auto;
  min-width:0;
  padding:9px 6px;
  border-bottom:1px solid #443527;
  box-sizing:border-box;
 }
 .adminarmortable .admin-master-footnote{grid-column:1/-1}
}

/* v0.33.95 — active combatant equipment status */
.combat-turn-stats{grid-template-columns:repeat(7,minmax(0,1fr))}
.combat-turn-equip{display:grid;grid-template-rows:auto 30px auto;place-items:center;align-content:center}
.combat-turn-equip img{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}
.combat-turn-equip small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.combat-turn-equip.projectile b{font-size:18px}
@media(max-width:700px){
 .combat-turn-stats{grid-template-columns:repeat(7,minmax(78px,1fr));overflow-x:auto}
 .combat-turn-stats>div{min-width:78px}
}


/* v0.33.98 — shield master: full horizontal table, same behavior as weapon master */
.adminshieldtable{
 grid-template-columns:64px 155px 82px 105px 58px 58px 58px 100px 180px 74px 105px 86px;
 width:auto;
 min-width:1125px;
 overflow:auto;
}
@media(max-width:700px){
 .adminshieldtable{
  grid-template-columns:64px 155px 82px 100px 54px 54px 54px 94px 170px 70px 100px 78px;
  width:auto;
  min-width:1075px;
  overflow:auto;
  font-size:13px;
 }
 .adminshieldtable>.ahead{display:block}
}


/* v0.33.99 — shield columns: BV, BEP, price, passive projectile protection */
.adminshieldtable{
 grid-template-columns:64px 155px 82px 105px 58px 58px 78px 230px 105px 86px;
 min-width:1040px;
}
@media(max-width:700px){
 .adminshieldtable{
  grid-template-columns:64px 155px 82px 100px 54px 54px 74px 220px 100px 78px;
  min-width:1000px;
 }
}


/* v0.34.00 — shield master aligned 8-column horizontal table */
.adminshieldtable{
 grid-template-columns:64px 155px 82px 58px 58px 78px 230px 86px;
 width:auto;
 min-width:811px;
 overflow:auto;
}
@media(max-width:700px){
 .adminshieldtable{
  grid-template-columns:64px 155px 82px 54px 54px 74px 220px 78px;
  min-width:781px;
  overflow:auto;
  font-size:13px;
 }
 .adminshieldtable>.ahead{display:block}
 .adminshieldtable>div{display:block;width:auto;min-width:0;box-sizing:border-box}
}


/* v0.34.08 — scrollable Expert spell registry */
.admin-table-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.admin-table-scroll .adminspelltable{width:max-content;min-width:100%;overflow:visible}

/* v0.34.01 — Expert spell administration */
.adminspelltable{display:grid;grid-template-columns:64px 170px 130px 82px 105px 120px 42px 42px 42px 105px 130px 130px 110px 110px 65px 86px;min-width:1533px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.adminspelltable>div,.adminmagicschooltable>div{padding:10px 8px;border-bottom:1px solid #443527;min-width:0}
.adminspelltable .ahead,.adminmagicschooltable .ahead{background:#6d1e1e;font-weight:800;white-space:nowrap}
.adminspelltable .rule-name{font-weight:800;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;cursor:pointer}
.adminmagicschooltable{display:grid;grid-template-columns:minmax(180px,1fr) 100px 86px;border:1px solid #5a4631;border-radius:12px;overflow:auto}
.spell-rule-editor textarea{min-height:95px}
@media(max-width:700px){.adminspelltable{grid-template-columns:56px 160px 120px 76px 105px 112px 42px 42px 42px 105px 120px 120px 105px 105px 65px 80px;min-width:1450px;font-size:13px}.adminspelltable>div,.adminmagicschooltable>div{padding:9px 6px}}

/* v0.34.09 — attack magic classification */
.spell-attack-badge{display:inline-block;padding:3px 7px;border:1px solid currentColor;border-radius:999px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}

/* v0.34.11 — first combat magic slice */
.combat-row-magic{font-size:0}.combat-magic-glyph{display:grid;place-items:center;width:100%;height:100%;font-size:28px;line-height:1}.combat-row-magic-menu{min-width:310px}.combat-spell-choice{display:grid;gap:8px}.combat-spell-choice>span{font-weight:800}.combat-spell-choice>small{opacity:.75}

/* v0.34.12 — temporary fireball outcome tester */
.combat-row-fireball{font-size:0}.combat-fireball-glyph{display:grid;place-items:center;width:100%;height:100%;font-size:25px;line-height:1}.fireball-test-tool{margin-left:4px}.combat-row-fireball.active{box-shadow:0 0 0 2px currentColor inset}


/* v0.34.18 — compact combat turn panel without horizontal scrolling */
.combat-turn-actor{
  display:grid;
  grid-template-columns:auto minmax(120px,1fr) auto auto;
  grid-template-areas:"portrait identity vitals actions";
  align-items:center;
}
.combat-turn-portrait{grid-area:portrait}
.combat-turn-identity{grid-area:identity}
.combat-turn-vitals{
  grid-area:vitals;
  display:grid;
  grid-template-columns:repeat(3,minmax(58px,auto));
  align-items:stretch;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  overflow:hidden;
}
.combat-turn-vitals>div{
  min-width:0;
  padding:5px 9px;
  text-align:center;
  border-right:1px solid rgba(255,255,255,.1);
}
.combat-turn-vitals>div:last-child{border-right:0}
.combat-turn-vitals span{display:block;font-size:8px;text-transform:uppercase;letter-spacing:.08em;opacity:.68}
.combat-turn-vitals b{display:block;font-size:14px;white-space:nowrap}
.combat-turn-actions{grid-area:actions}
.combat-turn-stats{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  overflow-x:hidden !important;
  width:100%;
}
.combat-turn-stats>div{min-width:0 !important}
@media(max-width:760px){
 .combat-turn-actor{
   grid-template-columns:auto minmax(90px,1fr) auto;
   grid-template-areas:"portrait identity vitals" ". actions actions";
   row-gap:6px;
 }
 .combat-turn-vitals{grid-template-columns:repeat(3,minmax(48px,1fr))}
 .combat-turn-vitals>div{padding:4px 5px}
 .combat-turn-vitals span{font-size:7px}
 .combat-turn-vitals b{font-size:12px}
 .combat-turn-stats{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
 .combat-turn-equip small{font-size:8px}
}

/* Combat effects registry and active condition chips */
.combat-effects-admin{grid-column:1/-1;padding:12px 16px;border:1px solid #655642;border-radius:10px;background:#211d1a;color:#e8ddc8}
.combat-effects-admin summary{cursor:pointer;font-weight:700}
.combat-effects-admin>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.combat-effects-admin input,.combat-effects-admin select{max-width:230px;min-width:80px;padding:6px;background:#302b25;color:#fff;border:1px solid #746651;border-radius:5px}
.combat-effects-admin button,.combat-effect-tags button{cursor:pointer}
.combat-effect-tags{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}
.combat-effect-tags span{font-size:11px;border:1px solid #817052;border-radius:5px;padding:2px 5px;background:#332b23;color:#f3e4ca}
.combat-effect-tags button{margin-left:4px;border:0;background:transparent;color:inherit}

/* v0.34.55 – Details popup without taking space in the initiative list. */
.combatant-card:focus-visible{outline:3px solid #c8994d;outline-offset:2px}
.combat-detail-backdrop{position:fixed;inset:0;z-index:11000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(9,8,9,.79);backdrop-filter:blur(3px)}
.combat-detail-dialog{display:flex;flex-direction:column;width:min(680px,100%);max-height:min(90vh,900px);border:1px solid #a68859;border-radius:15px;background:#241e1a;color:#f4e6cd;box-shadow:0 22px 70px rgba(0,0,0,.8);overflow:hidden}
.combat-detail-header{display:flex;gap:15px;align-items:center;padding:17px 21px;background:linear-gradient(125deg,#4c2924,#291d1a);border-bottom:1px solid rgba(229,181,106,.28)}
.combat-detail-header .combat-row-portrait{flex-shrink:0;width:67px;height:67px}
.combat-detail-identity{flex:1;min-width:0}
.combat-detail-identity small{display:block;color:#d8b87c;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.combat-detail-identity h2{margin:4px 0;color:#fff3dc;font:700 clamp(19px,4vw,26px) Georgia,serif;overflow-wrap:anywhere}
.combat-detail-identity>span{color:#cbb99b;font-size:12px}
.combat-detail-close{display:grid;place-items:center;align-self:flex-start;flex-shrink:0;width:37px;height:37px;cursor:pointer;border:1px solid #ab8e66;border-radius:8px;background:rgba(255,255,255,.05);color:#f5d7a8;font-size:26px;line-height:1}
.combat-detail-close:hover,.combat-detail-close:focus-visible{background:#67412e;border-color:#f1c17d}
.combat-detail-content{padding:17px 21px 22px;overflow-y:auto;overscroll-behavior:contain}
.combat-detail-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.combat-detail-stat{min-width:0;padding:10px 11px;border:1px solid rgba(196,154,96,.32);border-radius:9px;background:#302822}
.combat-detail-stat span{display:block;color:#bca789;font-size:10px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.combat-detail-stat b{display:block;margin-top:5px;color:#fce6bd;font-size:18px;overflow-wrap:anywhere}
.combat-detail-section{margin-top:16px;padding-top:14px;border-top:1px solid rgba(196,154,96,.27)}
.combat-detail-section h3{display:flex;align-items:center;gap:9px;margin:0 0 11px;color:#e7bc77;font:700 17px Georgia,serif}
.combat-detail-section h3 span{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border:1px solid #806b4b;border-radius:12px;font:800 11px system-ui}
.combat-detail-attributes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.combat-detail-attributes .combat-detail-stat{padding:8px}
.combat-detail-attributes .combat-detail-stat b{font-size:15px}
.combat-detail-effects .combat-effect-tags{gap:7px}
.combat-detail-effects .combat-effect-tags>span{font-size:12px;padding:7px 10px;border-radius:7px}
.combat-detail-effects .combat-effect-tags button{padding:3px 5px;font-size:13px}
.combat-detail-empty{margin:0;color:#b7a185;font-size:13px}
.combat-detail-equipment{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:11px}
.combat-detail-equipment .combat-turn-equip{min-width:0;padding:9px 6px;border:1px solid rgba(196,154,96,.28);border-radius:8px;background:#302822}
.combat-detail-section p{margin:7px 0;color:#dcc9a9;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.combat-detail-section p strong{color:#edc787}
@media(max-width:560px){
 .combat-detail-backdrop{padding:7px}
 .combat-detail-dialog{max-height:96vh;border-radius:11px}
 .combat-detail-header{padding:12px;gap:9px}
 .combat-detail-header .combat-row-portrait{width:51px;height:51px}
 .combat-detail-content{padding:11px 12px 15px}
 .combat-detail-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .combat-detail-attributes{grid-template-columns:repeat(4,minmax(0,1fr))}
 .combat-detail-equipment{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* v0.34.56 – Effektregistret i Admin, samma horisontella tabellmönster som vapen. */
.admin-table-scroll .admineffecttable{width:max-content;min-width:100%;overflow:visible}
.admineffecttable{display:grid;grid-template-columns:180px 192px 106px 147px 120px 135px 125px 70px 105px;min-width:1180px;border:1px solid #5a4631;border-radius:12px;overflow:visible}
.admineffecttable>div{padding:9px 8px;border-bottom:1px solid #443527;min-width:0;overflow-wrap:anywhere}
.admineffecttable .ahead{background:#6d1e1e;font-weight:800;white-space:nowrap;color:#f8e6cd}
.admineffecttable .rule-name{font-weight:800;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;cursor:pointer}
.admineffecttable .admin-effect-code{font-size:11px;color:#bca890;word-break:break-word}
.admineffecttable .adminactions{display:flex;gap:4px;justify-content:flex-start}
.admineffecttable input[type=checkbox]{accent-color:#c1a065;width:17px;height:17px}
.effect-rule-editor textarea{min-height:90px}
.effect-rule-editor #refModifiers,.effect-rule-editor #refParameters{min-height:100px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}
@media(max-width:700px){.admineffecttable{font-size:13px;min-width:1180px}.admineffecttable>div{padding:8px 7px}}

/* v0.34.58: Game master combat setup and reserves */
.combat-gm-toolbox{grid-column:1/-1;background:rgba(32,31,28,.94);border:1px solid #756045;border-radius:12px;padding:14px 16px;margin-top:12px}
.combat-gm-toolbox>h3{margin:0 0 8px;color:#e8c995}
.combat-gm-toolbox .combat-effects-admin{margin-top:8px}
.combat-gm-placements{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:8px;margin:10px 0}
.combat-gm-placement-row{display:flex;gap:8px;align-items:center;min-width:0;padding:7px 9px;border:1px solid #685438;border-radius:7px;background:#252a2b}
.combat-gm-placement-row>span{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.combat-gm-placement-row b{overflow-wrap:anywhere;font-size:13px}
.combat-gm-placement-row small{color:#bdac93;font-size:12px}
.combat-gm-placement-row button{white-space:nowrap}
.combat-gm-placement-row button.active{box-shadow:0 0 0 2px #deb068 inset}
.combat-hex.gm-placement-hex{stroke:#eac57e;stroke-width:2.4;cursor:crosshair}
@media(max-width:580px){.combat-gm-placements{grid-template-columns:1fr}.combat-gm-placement-row{flex-wrap:wrap}}

/* v0.34.59 – visible selected GM placement */
.combat-gm-placement-hint{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;margin-bottom:8px;border-radius:9px;border:1px solid #d6a556;background:rgba(60,42,20,.95);color:#f8dfad;font-size:13px}
.combat-gm-placement-hint b{color:#fff2d7}

/* v0.34.60 — SL-stridscenen sitter direkt under turordningslistan. */
.combat-participants .combat-gm-controls{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:10px 8px 12px;
  padding:10px;
  min-width:0;
}
.combat-participants .combat-gm-control-copy,
.combat-participants .combat-gm-controls select,
.combat-participants .combat-gm-active{
  grid-column:1/-1;
  min-width:0;
  justify-self:stretch;
  text-align:left;
}
.combat-participants .combat-gm-controls .btn{
  min-width:0;
  width:100%;
  padding:8px 6px;
  font-size:12px;
}
.combat-shell-idle>.combat-empty{grid-column:2/-1;min-width:0}
@media(max-width:980px){
  .combat-shell-idle>.combat-empty{grid-column:1;order:3}
}

/* v0.34.63 — visibly preview selected combat scene without replacing stored combat */
.combat-shell-scene-preview>.combat-board-wrap{grid-column:2/-1}
.combat-scene-preview-wrap .combat-board-head span{font-size:11px;color:#edc17c;font-weight:800}
.combat-scene-preview-svg .combat-token{pointer-events:none}
.combat-scene-preview-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;background:#2a2018;color:#ecd5b3;font-size:12px}
.combat-scene-preview-footer .btn{flex-shrink:0}
@media(max-width:980px){.combat-shell-scene-preview>.combat-board-wrap{grid-column:1;order:1}}

/* v0.34.64 — SL stridskontroll immediately below SL stridsscen in the initiative column. */
.combat-participants .combat-gm-toolbox{
  display:block;
  grid-column:auto;
  min-width:0;
  max-width:calc(100% - 16px);
  margin:0 8px 12px;
  padding:10px 8px;
  overflow-wrap:anywhere;
}
.combat-participants .combat-gm-toolbox>h3{font-size:15px}
.combat-participants .combat-gm-toolbox .combat-effects-admin{
  min-width:0;
  max-width:100%;
  padding:9px 7px;
}
.combat-participants .combat-gm-toolbox .combat-gm-placements{
  grid-template-columns:minmax(0,1fr);
}
.combat-participants .combat-gm-toolbox .combat-gm-placement-row{
  flex-wrap:wrap;
}
.combat-participants .combat-gm-toolbox .combat-effects-admin input,
.combat-participants .combat-gm-toolbox .combat-effects-admin select,
.combat-participants .combat-gm-toolbox .combat-effects-admin label{
  min-width:0;
  max-width:100%;
  width:100%;
}
.combat-participants .combat-gm-toolbox .combat-effects-admin button{
  max-width:100%;
  white-space:normal;
}

/* v0.34.65 — 88-spell test casters: keep the magic chooser usable on small screens. */
.combat-row-magic-menu .combat-weapon-choice-grid{
  max-height:min(50vh,450px);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:2px;
}

/* v0.34.70 — Contrast fix: readable spell metadata on pale magic-choice cards.
   The generic dark-menu style used pale gold even on cream-colored buttons. */
.combat-row-action-menu.combat-row-magic-menu .combat-weapon-choice-btn small{
 color:#49392a;
 font-size:12px;
 font-weight:600;
 line-height:1.4;
 opacity:1;
}
.combat-row-action-menu.combat-row-magic-menu .combat-weapon-choice-btn{
 background:#f8f0e3;
 color:#2c211a;
}
.combat-row-action-menu.combat-row-magic-menu .combat-weapon-choice-btn.active{
 background:#e8f1e7;
}

/* v0.34.71 — Spell results retain the dark attack-card theme and remain legible. */
.combat-mini-magic .combat-spell-result{
 width:100%;
 margin-top:10px;
}
.combat-mini-magic .combat-spell-outcome-note{
 margin-top:8px;
 padding:8px 10px;
 border-left:3px solid #b39263;
 background:rgba(255,236,195,.07);
 border-radius:3px 6px 6px 3px;
 font-size:12px;
 font-weight:600;
 line-height:1.45;
 color:#f1e1c7;
}
.combat-mini-magic .combat-spell-rule-note{
 margin-top:7px;
 padding:7px 10px;
 border:1px solid rgba(207,174,126,.28);
 border-radius:6px;
 color:#dbc8a8;
 font-size:11px;
 line-height:1.45;
 overflow-wrap:anywhere;
}
.combat-mini-magic .combat-spell-rule-note b{
 color:#f1debc;
 margin-right:6px;
}
.combat-mini-magic .combat-spell-result .combat-attack-result-rolls{
 font-size:11px;
 line-height:1.35;
}

/* v0.35.170 — spell damage uses Skada − Rustning = Totalt, with no SB column.
   Flex also accommodates an optional magical protection column without blank grid cells. */
.combat-mini-magic .combat-damage-grid{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:5px;
}
.combat-mini-magic .combat-damage-col{flex:1 1 0;min-width:0}
.combat-mini-magic .combat-damage-op{flex:0 0 auto}

/* v0.34.75 — SL quick-edit sheet inside combatant details popup */
.combat-npc-editor{margin:0 0 14px;padding:13px;border:1px solid #9c805a;background:#2d2620;border-radius:11px}
.combat-npc-editor h3{margin:0 0 7px;color:#f3d29a}
.combat-npc-editor h4{margin:15px 0 8px;color:#e5bf83;font:700 14px Georgia,serif}
.combat-npc-editor .combat-detail-empty{margin-bottom:10px;color:#ddc5a0}
.combat-npc-edit-name,.combat-npc-edit-field,.combat-npc-edit-fields label{display:flex;flex-direction:column;gap:4px;min-width:0;color:#e6d6b9;font:650 12px system-ui,sans-serif}
.combat-npc-editor input,.combat-npc-editor select{box-sizing:border-box;width:100%;min-height:40px;padding:8px 9px;border:1px solid #8b7457;border-radius:7px;background:#171613;color:#fff2dc;font:600 16px system-ui,sans-serif}
.combat-npc-editor input:focus-visible,.combat-npc-editor select:focus-visible{outline:2px solid #74bad3;outline-offset:1px}
.combat-npc-edit-name{margin-bottom:9px}
.combat-npc-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.combat-npc-edit-attributes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.combat-npc-edit-adjust{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.combat-npc-edit-adjust>span{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
.combat-npc-edit-adjust b{min-width:29px;color:#d7b78a;font-size:12px}
.combat-npc-editor button{cursor:pointer;min-height:34px;padding:5px 9px;border:1px solid #a38961;border-radius:7px;background:#493828;color:#f9e7c7;font:700 12px system-ui,sans-serif}
.combat-npc-editor button:hover{background:#644831}
.combat-npc-edit-weapon{border:1px solid #685640;border-radius:8px;padding:9px;margin-bottom:8px;background:#231e19}
.combat-npc-edit-weapon-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.combat-npc-edit-weapon-head b{color:#f0cd93;font-size:13px}
.combat-npc-edit-fields{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.65fr) minmax(0,1.2fr);gap:8px}
.combat-npc-edit-fields label:last-child{grid-column:span 2}
.combat-npc-edit-add{margin:3px 0 12px}
.combat-npc-edit-footer{position:sticky;bottom:-1px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:9px;padding:11px 0 0;background:#2d2620;border-top:1px solid #89704f;z-index:1}
.combat-npc-edit-footer span{flex:1;min-width:155px;font-size:12px;color:#e9d2aa;line-height:1.4}
.combat-npc-editor .combat-npc-edit-save{background:#27705f;color:#fff;border-color:#62b69c;min-height:43px;padding:9px 18px;font-size:14px}
.combat-npc-editor .combat-npc-edit-save:disabled{opacity:.55;cursor:wait}
@media(max-width:540px){
 .combat-npc-editor{padding:10px}
 .combat-npc-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .combat-npc-edit-attributes{grid-template-columns:repeat(4,minmax(0,1fr))}
 .combat-npc-edit-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .combat-npc-edit-fields label:last-child{grid-column:span 2}
 .combat-npc-edit-footer .combat-npc-edit-save{width:100%}
}

/* v0.34.76 HELA: visible healing outcome, readable also on narrow mobile screens */
.combat-spell-heal-result{margin-top:10px;padding:12px;border:1px solid rgba(104,177,141,.7);border-radius:9px;background:rgba(18,48,37,.55);display:flex;flex-direction:column;gap:8px;color:#f5eedc}
.combat-spell-heal-result>b{font-size:15px;color:#ddf8df}
.combat-spell-heal-result>span{font-size:14px;line-height:1.5;color:#f6e8c9}
.combat-spell-heal-result .combat-heal-total{font-size:clamp(21px,5vw,27px);font-weight:800;line-height:1.2;color:#8df3b0}
.combat-spell-heal-result label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:14px}
.combat-spell-heal-result input{min-height:42px;max-width:175px;width:100%;padding:8px 10px;border:1px solid #93cda8;border-radius:7px;background:#171c17;color:#fff5df;font-size:17px}
.combat-spell-heal-result button{align-self:flex-start;min-height:43px;border:1px solid #9ed9b1;border-radius:8px;padding:9px 17px;background:#23694a;color:#f6fff3;font-weight:800;font-size:14px;cursor:pointer}
.combat-spell-heal-result button:disabled{opacity:.5;cursor:wait}
@media(max-width:540px){.combat-spell-heal-result{padding:10px}.combat-spell-heal-result button{width:100%}}

/* Gimli – private campaign material upload staging UI */
.gimli-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 20px;padding:18px;border:1px solid #806a48;border-radius:12px;background:#24211e}
.gimli-form>label{display:flex;flex-direction:column;gap:7px;min-width:0;color:#f5e7ca;font-weight:650}
.gimli-form>label:first-child,.gimli-form>label:has(textarea),.gimli-preview,.gimli-actions{grid-column:1/-1}
.gimli-form input,.gimli-form select,.gimli-form textarea{min-height:42px;max-width:100%;box-sizing:border-box;padding:10px;border-radius:8px;border:1px solid #96794f;background:#171715;color:#fff2d8;font-size:16px}
.gimli-form input[type=file]{width:100%;padding:11px}
.gimli-preview{display:flex;align-items:center;justify-content:center;min-height:55px;max-height:270px;overflow:hidden;border-radius:9px;background:#181716;color:#e0cfad}
.gimli-preview:empty{display:none}
.gimli-preview img{display:block;max-width:100%;max-height:260px;object-fit:contain}
.gimli-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.gimli-actions .btn{min-height:45px}
.gimli-actions button:disabled{opacity:.5;cursor:wait}
#gimliStatus{flex:1;color:#ded8c9;line-height:1.4}
#gimliStatus.error{color:#ffb3ac}
.gimli-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 6px;border-bottom:1px solid #61533f}
.gimli-row>span{min-width:0;overflow-wrap:anywhere}
.gimli-row b{display:block;color:#f1e8d6}
.gimli-row small{display:block;color:#d3c0a5;margin-top:4px}
#gimliStoredPreview{margin:12px 0}
@media(max-width:650px){.gimli-form{grid-template-columns:1fr;padding:12px}.gimli-form>label{grid-column:1/-1}.gimli-actions .btn{width:100%}}

/* Bilbo v0.34.79 – accessible private image and material library */
.bilbo-page-header{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.bilbo-controls{display:grid;grid-template-columns:minmax(150px,2fr) repeat(3,minmax(120px,1fr));gap:11px;margin:14px 0}
.bilbo-controls label,.bilbo-metadata label,.bilbo-note label{display:flex;flex-direction:column;gap:6px;min-width:0;font:650 13px system-ui,sans-serif;color:#f1e2c8}
.bilbo-controls input,.bilbo-controls select,.bilbo-metadata input,.bilbo-metadata select,.bilbo-metadata textarea,.bilbo-note textarea{width:100%;min-height:42px;box-sizing:border-box;border:1px solid #967d58;border-radius:8px;padding:9px 11px;background:#201b16;color:#fff1d9;font-size:16px}
.bilbo-controls :is(input,select):focus-visible,.bilbo-metadata :is(input,textarea,select):focus-visible,.bilbo-note textarea:focus-visible{outline:2px solid #90c7d1;outline-offset:1px}
.bilbo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;margin-bottom:12px;color:#e5d7bc;font-size:13px}
#bilboNotice{flex:1;min-width:180px}
#bilboNotice.is-error{color:#ffc2b2}
.bilbo-view-choice{display:flex;gap:4px}
.bilbo-view-choice button,.bilbo-pagination button{min-height:36px;border:1px solid #907451;border-radius:7px;background:#33291e;color:#f8e8ce;padding:6px 11px;font:650 12px system-ui,sans-serif;cursor:pointer}
.bilbo-view-choice button:hover,.bilbo-pagination button:hover:not(:disabled){background:#5c4329}
.bilbo-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,350px);gap:15px;align-items:start}
.bilbo-gallery{min-width:0}
.bilbo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}
.bilbo-card{display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;border:1px solid #796245;border-radius:10px;background:#27231e;color:#f9ecd7;text-align:left;cursor:pointer;transition:border-color .15s,background .15s}
.bilbo-card:hover,.bilbo-card:focus-visible,.bilbo-card.is-selected{border-color:#dbbb85;background:#3c3024;outline-offset:2px}
.bilbo-card.is-archived{opacity:.8}
.bilbo-card-media{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;width:100%;background:#171b1b;color:#c2b69e;font-size:46px;overflow:hidden}
.bilbo-card-media img{display:block;width:100%;height:100%;object-fit:contain}
.bilbo-thumbnail-error{font-size:26px}
.bilbo-card-label{padding:9px 10px;min-width:0}
.bilbo-card-label strong{display:block;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.bilbo-card-label small{display:block;margin-top:5px;font-size:11px;color:#dfcfb4}
.bilbo-grid.is-list{grid-template-columns:1fr;gap:7px}
.bilbo-grid.is-list .bilbo-card{flex-direction:row;align-items:center}
.bilbo-grid.is-list .bilbo-card-media{width:88px;min-width:88px;aspect-ratio:4/3;font-size:25px}
.bilbo-grid.is-list .bilbo-card-label{flex:1}
.bilbo-details{position:sticky;top:10px;max-height:min(83vh,980px);overflow:auto;min-width:0;border:1px solid #806a4b;border-radius:12px;background:#27221d;padding:12px;color:#f1e2cd}
.bilbo-empty{padding:24px 14px;text-align:center;line-height:1.5;color:#dbcbb0;grid-column:1/-1;border:1px dashed #6e5e48;border-radius:9px}
.bilbo-detail-heading{display:flex;align-items:start;justify-content:space-between;gap:8px;margin-bottom:10px}
.bilbo-detail-heading h3{margin:0;color:#ffe0ae;font-size:18px;overflow-wrap:anywhere}
.bilbo-detail-heading small{color:#e9ceb0}
.bilbo-detail-heading button{flex-shrink:0}
.bilbo-full-preview{display:flex;align-items:center;justify-content:center;min-height:120px;max-height:360px;overflow:auto;border-radius:9px;background:#111717;margin-bottom:12px;color:#e7d2ae;text-align:center}
.bilbo-full-preview a{display:block;max-width:100%;color:#c5eaf4;padding:8px}
.bilbo-full-preview img{display:block;max-width:100%;max-height:335px;object-fit:contain}
.bilbo-metadata,.bilbo-note{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.bilbo-metadata button,.bilbo-note button{align-self:flex-start;min-height:40px}
.bilbo-note{padding:10px;border:1px dashed #8f7953;border-radius:9px;background:#32291e}
.bilbo-note textarea{background:#171715}
.bilbo-detail-actions{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.bilbo-detail-info{font-size:12px;line-height:1.55;color:#ded0b7;margin:8px 0}
.bilbo-pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin:16px 0}
.bilbo-pagination button:disabled{opacity:.42;cursor:default}
.bilbo-back-link{margin-left:auto}
@media(max-width:1080px){.bilbo-columns{grid-template-columns:minmax(0,1fr) minmax(260px,310px)}.bilbo-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.bilbo-columns{grid-template-columns:1fr}.bilbo-details{position:static;max-height:none}.bilbo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bilbo-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:400px){.bilbo-controls{grid-template-columns:1fr}.bilbo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.bilbo-card-label{padding:7px}.bilbo-pagination{gap:8px}}

/* Expert skelett: extra column for rules derived from an original creature */
.race-attribute-editor .race-attribute-head,
.race-attribute-editor .race-attribute-row{
 grid-template-columns:65px minmax(100px,.85fr) 82px minmax(205px,1.55fr);
}
.race-attribute-row input[id^="rrSourceRule_"]{min-width:0;width:100%;box-sizing:border-box}
@media(max-width:690px){
 .race-attribute-editor .race-attribute-head{display:none}
 .race-attribute-editor .race-attribute-row{
  grid-template-columns:52px minmax(0,1fr) 76px;
  gap:6px;padding:8px;
 }
 .race-attribute-row input[id^="rrSourceRule_"]{grid-column:2/-1;min-height:37px}
}

/* v0.34.82 – summoned elementals and other NPCs can override derived KP/movement. */
.slp-special-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0;color:#ead4b3}
.slp-special-values label{display:flex;flex-direction:column;gap:5px;min-width:0;font-weight:650;font-size:12px}
.slp-special-values input{box-sizing:border-box;width:100%;min-height:39px;padding:7px 10px;border:1px solid #997d55;border-radius:7px;background:#fdf7ea;color:#332619;font-size:16px}
@media(max-width:520px){.slp-special-values{grid-template-columns:1fr}}


/* Aragorn v0.34.83 – reusable campaign material links */
.aragorn-header-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.aragorn-header-actions .smallbtn{margin-top:0;min-height:40px}
.aragorn-links{margin:15px 0;padding:12px;border:1px solid #8c714a;border-radius:11px;background:#211e19}
.aragorn-links h4{margin:0 0 6px;color:#ffe2b2;font-size:16px}
.aragorn-help{margin:4px 0 12px;font-size:12px;line-height:1.55;color:#dccdb3}
.aragorn-linked-list{display:grid;gap:6px;margin:10px 0 14px}
.aragorn-linked-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#31291f;border:1px solid #705938;border-radius:8px}
.aragorn-linked-item span{min-width:0;overflow-wrap:anywhere}
.aragorn-linked-item b{display:block;color:#fff0d2;font-size:13px}
.aragorn-linked-item small{display:block;color:#d6bc94;font-size:11px;margin-top:3px}
.aragorn-linked-item button{flex:0 0 auto;margin:0;min-height:37px}
.aragorn-link-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:end}
.aragorn-link-controls label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#f2dfbf;font-size:12px;font-weight:650}
.aragorn-link-controls .aragorn-target-label{grid-column:1/-1}
.aragorn-link-controls input,.aragorn-link-controls select{width:100%;min-width:0;min-height:42px;border:1px solid #967d58;border-radius:8px;padding:9px 11px;background:#171715;color:#fff3dd;font-size:16px}
.aragorn-link-controls :is(input,select):focus-visible{outline:2px solid #90c7d1;outline-offset:1px}
.aragorn-link-controls button{grid-column:1/-1;min-height:43px}
.aragorn-link-controls button:disabled,.aragorn-header-actions button:disabled{opacity:.52;cursor:wait}
#aragornLinkStatus{margin:10px 0 0;min-height:18px;color:#d0e5b5;font-size:12px;line-height:1.5}
#aragornLinkStatus.is-error{color:#ffc5ae}
@media(max-width:400px){.aragorn-link-controls{grid-template-columns:1fr}.aragorn-link-controls .aragorn-target-label,.aragorn-link-controls button{grid-column:1}.aragorn-header-actions{width:100%}.aragorn-header-actions button{flex:1}}

/* v0.34.98: spells share master list */
#spelltable .character-spell-name{display:flex;align-items:center;flex-wrap:wrap;gap:5px 9px;min-width:0}
#spelltable .spell-master-change{border:1px solid #816343;border-radius:5px;background:#292017;color:#e0c5a2;padding:3px 8px;font-size:11px;cursor:pointer}
#spelltable .spell-master-change:hover{background:#44301f}
#spelltable .spell-unlinked-warning{color:#e3a47b;font-size:11px;font-weight:700;width:100%}
.character-spell-description{white-space:pre-wrap;line-height:1.55}

/* v0.35.02 — allow horizontal scrolling of shield master inside the admin card */
.admin-shield-scroll .adminshieldtable{
 width:max-content;
 min-width:100%;
 overflow:visible;
}

/* v0.35.03 — compact, structured spell card for desktop and mobile. */
.combat-mini-magic{min-width:0;overflow-wrap:anywhere}
.combat-mini-magic .combat-magic-heading{display:flex;flex-direction:column;gap:4px;min-width:0}
.combat-mini-magic .combat-magic-eyebrow{color:#d9b985;font-size:11px;font-weight:850;letter-spacing:.08em;line-height:1.35}
.combat-mini-magic .combat-magic-participants{
 color:#fff1d6;font:750 clamp(14px,3.7vw,18px)/1.35 Georgia,serif;
 overflow-wrap:anywhere;min-width:0
}
.combat-mini-magic .combat-magic-arrow{color:#d8af71;margin:0 3px}
.combat-mini-magic .combat-magic-status{
 display:flex;align-items:center;gap:8px;flex-wrap:wrap;
 margin-top:10px;padding:7px 9px;border:1px solid rgba(195,151,94,.34);
 border-radius:8px;background:rgba(219,174,108,.065)
}
.combat-mini-magic .combat-magic-status strong{
 display:inline-block;padding:5px 9px;border:1px solid #ae8e5c;border-radius:6px;
 background:#493820;color:#ffe6b6;font-size:12px;line-height:1.15
}
.combat-mini-magic .combat-magic-status>span{color:#e5ceaa;font-size:12px;line-height:1.35}
.combat-mini-magic .combat-magic-status[data-state="ready"] strong,
.combat-mini-magic .combat-magic-status[data-state="success"] strong,
.combat-mini-magic .combat-magic-status[data-state="special"] strong,
.combat-mini-magic .combat-magic-status[data-state="perfect"] strong{
 background:#214b39;border-color:#589c78;color:#e5ffe9
}
.combat-mini-magic .combat-magic-status[data-state="fail"] strong,
.combat-mini-magic .combat-magic-status[data-state="fumble"] strong{
 background:#582923;border-color:#b16d5b;color:#ffddd2
}
.combat-mini-magic .combat-magic-facts{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px
}
.combat-mini-magic .combat-magic-fact{
 display:flex;flex-direction:column;min-width:0;gap:4px;
 padding:7px 8px;border-radius:7px;background:#171510;border:1px solid #5c4936
}
.combat-mini-magic .combat-magic-fact span{
 color:#bea582;font-size:10px;line-height:1.2;font-weight:800;letter-spacing:.02em
}
.combat-mini-magic .combat-magic-fact b{
 color:#f8e7c9;font-size:15px;line-height:1.2;overflow-wrap:anywhere
}
.combat-mini-magic .combat-magic-fact.wide{grid-column:span 2}
.combat-mini-magic .combat-magic-fact.wide b{font-size:12px;font-weight:700;line-height:1.35}
.combat-mini-magic .combat-mini-instruction{
 margin-top:9px;padding:9px 10px;border-left:3px solid #b59260;border-radius:5px 8px 8px 5px;
 color:#f1debd;background:rgba(208,166,105,.11);font-size:12px;line-height:1.45
}
@media(max-width:420px){
 .combat-mini-magic{padding:10px}
 .combat-mini-magic .combat-magic-facts{gap:5px}
 .combat-mini-magic .combat-magic-fact{padding:7px 6px}
 .combat-mini-magic .combat-magic-status{padding:7px}
 .combat-mini-magic .combat-magic-participants{font-size:15px}
}


/* v0.35.06 — equipment editing as real card forms, not flattened table cells.
   Work around legacy four/five-column CSS collisions on small screens. */
body.editing #view #weaponsPanel #projectiletable,
body.editing #view #weaponsPanel #armortable,
body.editing #view #weaponsPanel #shieldtable{
 display:flex!important;flex-direction:column!important;gap:10px!important;
 grid-template-columns:none!important;overflow:visible!important;
 width:100%!important;min-width:0!important;max-width:100%!important;
 border:0!important;background:transparent!important;box-shadow:none!important;
}
body.editing #view #weaponsPanel .section:has(> #projectiletable),
body.editing #view #weaponsPanel .section:has(> #armortable),
body.editing #view #weaponsPanel .section:has(> #shieldtable){
 min-width:0;max-width:100%;overflow-x:hidden!important;
}
body.editing #view #weaponsPanel .character-equip-edit-row{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 width:100%!important;min-width:0!important;max-width:100%!important;
 gap:10px!important;padding:12px!important;margin:0!important;
 border:1px solid #4a745b!important;border-radius:12px;
 background:linear-gradient(135deg,#0e2018,#091510)!important;
 box-sizing:border-box;box-shadow:0 4px 14px #0003;
}
body.editing #view #weaponsPanel .character-equip-field{
 display:flex;flex-direction:column;gap:5px;min-width:0;
 font-size:12px;font-weight:750;color:#c3dbc6;
}
body.editing #view #weaponsPanel .character-equip-field.wide{grid-column:1/-1}
body.editing #view #weaponsPanel .character-equip-field input,
body.editing #view #weaponsPanel .character-equip-field select{
 display:block;box-sizing:border-box;min-width:0;max-width:100%;width:100%;
 min-height:42px;padding:8px 10px;font-size:16px;text-align:left;
 border:1px solid #7d6b53;border-radius:8px;background:#16130f;color:#f7eedb;
}
body.editing #view #weaponsPanel .character-equip-field input.fv-input{
 width:100%!important;max-width:100%!important;margin:0!important;
}
body.editing #view #weaponsPanel .character-equip-field output{
 display:flex;align-items:center;min-height:42px;
 padding:8px 10px;border:1px solid #3c604c;border-radius:8px;
 background:#13241b;color:#f3e7cc;font-size:16px;font-weight:800;
}
body.editing #view #weaponsPanel .character-equip-actions{
 grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;
 gap:8px;padding-top:7px;border-top:1px solid #2e4a3b;
}
body.editing #view #weaponsPanel .character-equip-actions .confirmbtn,
body.editing #view #weaponsPanel .character-equip-actions .deletebtn{
 width:42px!important;min-width:42px!important;height:42px!important;
 font-size:22px!important;padding:0!important;
}
body.editing #view #weaponsPanel .character-equip-field .mini-stepper{
 justify-content:flex-start!important;margin:0!important;min-height:42px;
}
body.editing #view #weaponsPanel .character-equip-field .mini-stepper button{
 width:42px!important;height:42px!important;min-width:42px!important;
 font-size:20px!important;
}
body.editing #view #weaponsPanel .character-equip-field .mini-stepper .erfval{
 min-width:36px!important;text-align:center!important;font-size:16px;
}
/* Keep shield table's original four read-only columns; BV is shown with the name. */
body:not(.editing) #view #weaponsPanel #shieldtable{
 grid-template-columns:minmax(124px,1fr) 54px 58px 102px!important;
}
#view #weaponsPanel #shieldtable .character-shield-name{
 display:flex;flex-direction:column;gap:3px;min-width:0;
}
#view #weaponsPanel #shieldtable .character-shield-name small{
 font-size:11px;font-weight:600;color:#c4a783;
}
@media(max-width:650px){
 /* Avoid the oversized stacked Save button while editing on mobile. */
 body.editing header #editBtn{
  flex:0 0 auto!important;min-width:0!important;max-width:none!important;
  width:auto!important;min-height:42px!important;height:42px!important;
  padding:8px 13px!important;font-size:15px!important;line-height:1!important;
 }
 body.editing header #cancelEditBtn{
  flex:0 0 auto!important;min-height:42px!important;height:42px!important;
  padding:8px 11px!important;font-size:14px!important;line-height:1!important;
 }
 body.editing header #logoutBtn{font-size:13px!important;min-height:42px!important}
 body.editing #view #weaponsPanel .character-equip-edit-row{
  gap:8px!important;padding:10px!important;
 }
 body.editing #view #weaponsPanel .character-equip-field{font-size:12px}
}


/* v0.35.08 — weapon editing uses compact two-column cards, not a 9-column grid.
   The legacy weapon row and table widths remain exclusively for read-only mode. */
body.editing #view #weaponsPanel #weapontable{
 display:flex!important;flex-direction:column!important;gap:10px!important;
 grid-template-columns:none!important;
 overflow:visible!important;width:100%!important;min-width:0!important;
 max-width:100%!important;border:0!important;border-radius:0!important;
 background:transparent!important;box-shadow:none!important;
}
body.editing #view #weaponsPanel .section:has(> #weapontable){
 min-width:0!important;max-width:100%!important;overflow-x:hidden!important;
}
body.editing #view #weaponsPanel #weapontable .weapon-edit-row{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
 width:100%!important;min-width:0!important;max-width:100%!important;
}
body.editing #view #weaponsPanel #weapontable .weapon-edit-row
.character-equip-field>.skillnum,
body.editing #view #weaponsPanel #weapontable .weapon-edit-row
.character-equip-field>div:not(.skillnum){
 display:flex;align-items:center;min-width:0;min-height:42px;
 padding:0;margin:0;text-align:left;justify-content:flex-start;
 font-size:16px;color:#f3e7cc;
}
body.editing #view #weaponsPanel #weapontable .weapon-edit-row
.character-equip-field>div.skillnum:has(.calculated-value){
 padding:8px 10px;border:1px solid #3c604c;border-radius:8px;
 background:#13241b;
}
body.editing #view #weaponsPanel #weapontable .weapon-edit-row
.character-equip-field .calculated-value{
 font-size:16px;font-weight:800;opacity:1;
}
body.editing #view #weaponsPanel #weapontable .weapon-edit-row
.character-equip-field .erf-edit-input{
 width:100%!important;max-width:100%!important;min-width:0!important;
}
body.editing #view #weaponsPanel #weapontable .weapon-edit-row
.character-equip-actions .smallbtn{
 width:42px;min-width:42px;height:42px;padding:0;font-size:21px;
 display:inline-flex;align-items:center;justify-content:center;
}
@media(max-width:650px){
 body.editing #view #weaponsPanel #weapontable .weapon-edit-row{
  gap:8px!important;padding:10px!important;
 }
}


/* v0.35.09 — separate mobile-first food and provisions counter on Equipment. */
#equipmentPanel .provisions-section{min-width:0}
#equipmentPanel .character-provisions{
 max-width:100%;min-width:0;
 padding:14px 16px;border:1px solid #466b56;border-radius:14px;
 background:linear-gradient(145deg,#112b1f,#0c1b15);color:#f1e6ce;
 box-shadow:inset 0 1px 0 #ffffff08
}
#equipmentPanel .provisions-header{
 display:flex;align-items:flex-start;justify-content:space-between;gap:10px
}
#equipmentPanel .provisions-header>div{display:flex;flex-direction:column;gap:4px;min-width:0}
#equipmentPanel .provisions-header b{font:700 18px/1.3 Georgia,serif;color:#fff0d2}
#equipmentPanel .provisions-header small{font-size:12px;color:#b6cbba;line-height:1.4}
#equipmentPanel .provisions-empty{
 flex:none;border:1px solid #a96552;border-radius:7px;padding:5px 8px;
 background:#4c2a20;color:#ffe4d5;font-size:12px;font-weight:800
}
#equipmentPanel .provisions-counter{
 display:flex;align-items:center;justify-content:space-between;
 flex-wrap:wrap;gap:16px;margin-top:12px
}
#equipmentPanel .provisions-value{display:flex;align-items:baseline;gap:8px}
#equipmentPanel .provisions-value strong{font:800 34px/1 Georgia,serif;color:#ffe6a8}
#equipmentPanel .provisions-value span{font-weight:650;color:#d6c9a9}
#equipmentPanel .provisions-stepper{display:flex;align-items:center;gap:8px}
#equipmentPanel .provisions-stepper button{
 width:42px;min-width:42px;height:42px;border-radius:9px;
 border:1px solid #816848;background:#263a2c;color:#fff0d0;
 font:750 24px/1 system-ui;cursor:pointer
}
#equipmentPanel .provisions-stepper button:disabled{opacity:.4;cursor:not-allowed}
#equipmentPanel .provisions-set{display:flex;flex-direction:column;gap:6px;margin-top:15px;max-width:210px;font-size:12px;font-weight:750;color:#c6d5c1}
#equipmentPanel .provisions-set input{
 width:100%;min-height:42px;font-size:16px;padding:8px 10px;
 border-radius:8px;border:1px solid #8f7952;background:#15150f;color:#fff
}
#equipmentPanel .provisions-note{margin:13px 0 0;color:#b6c8b9;font-size:12px;line-height:1.55}
@media(max-width:560px){
 #equipmentPanel .character-provisions{padding:12px}
 #equipmentPanel .provisions-counter{gap:12px}
 #equipmentPanel .provisions-header b{font-size:17px}
}

/* v0.35.10 — show paid inn-meal coverage on the current campaign day. */
#equipmentPanel .provisions-covered{
 flex:none;display:inline-flex;align-items:center;
 padding:5px 8px;border:1px solid #5a9c70;border-radius:7px;
 background:#1c4530;color:#e9ffde;font-size:12px;font-weight:800
}


/* v0.35.13 — projectile registry and end-of-battle recovery controls. */
.projectile-master-table{width:100%;min-width:0;display:flex;flex-direction:column;gap:5px}
.projectile-rule-header,.projectile-rule-row{display:grid;grid-template-columns:minmax(100px,1fr) 100px minmax(120px,2fr) 60px;align-items:center;gap:8px;padding:9px 10px;border:1px solid #66553f;border-radius:7px}
.projectile-rule-header{color:#ebcd9b;background:#241e16;font-size:12px}
.projectile-rule-row{background:#191712;color:#f4e2c9;font-size:13px}
.projectile-rule-row span{line-height:1.5}
.projectile-rule-row button{min-height:36px}
.combat-ammo-admin{margin-top:12px;border:1px solid #715d42;border-radius:9px;padding:11px;background:#1c1b16;color:#eee0cb}
.combat-ammo-admin summary{cursor:pointer;font-weight:800;color:#f2d1a0}
.combat-ammo-results{display:grid;gap:5px;margin:10px 0}
.combat-ammo-results>div{padding:6px 8px;border-radius:6px;border:1px solid #524835;background:#211f19;font-size:12px}
.combat-ammo-finish{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px}
.combat-ammo-finish label{display:flex;align-items:center;gap:7px;font-size:12px}
.combat-ammo-finish input[type=number]{width:66px;padding:7px;background:#141512;border:1px solid #796748;border-radius:5px;color:#fff}
.combat-ammo-finish>small{width:100%;line-height:1.55;color:#ccb99b}
@media(max-width:640px){
 .projectile-rule-header{display:none}
 .projectile-rule-row{grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:start}
 .projectile-rule-row>span:nth-of-type(2){grid-column:1/-1;grid-row:2}
 .projectile-rule-row button{grid-column:2;grid-row:1}
 .combat-ammo-finish{align-items:stretch;flex-direction:column}
 .combat-ammo-finish label{min-height:40px}
}

/* v0.35.21 — melee cinematic choreography, directly on the hex-map SVG. */
.combat-melee-fx{--melee-flash:#f9d583;--melee-light:#fff4d5;pointer-events:none}
.combat-melee-fx .combat-melee-windup{
 fill:rgba(255,218,137,.08);stroke:var(--melee-flash);
 stroke-width:2.6;vector-effect:non-scaling-stroke;
 transform-box:fill-box;transform-origin:center;
 animation:combat-melee-charge .85s ease-out both
}
.combat-melee-fx .combat-melee-rush{
 fill:none;stroke:#f7c471;stroke-width:4;stroke-linecap:round;
 vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100;
 filter:drop-shadow(0 0 5px rgba(255,190,99,.9));
 animation:combat-melee-draw .95s .08s ease-out both
}
.combat-melee-fx .combat-melee-slash-glow,.combat-melee-fx .combat-melee-slash{
 fill:none;stroke-linecap:round;stroke-linejoin:round;
 vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100
}
.combat-melee-fx .combat-melee-slash-glow{
 stroke:rgba(252,174,70,.88);stroke-width:13;
 filter:drop-shadow(0 0 12px rgba(255,175,81,.85));
 animation:combat-melee-draw .95s .29s cubic-bezier(.23,.72,.36,1) both
}
.combat-melee-fx .combat-melee-slash{
 stroke:#fff8e8;stroke-width:4.5;
 filter:drop-shadow(0 0 4px rgba(255,255,255,.9));
 animation:combat-melee-draw .9s .32s cubic-bezier(.23,.72,.36,1) both
}
.combat-melee-fx .combat-melee-impact-ring,.combat-melee-fx .combat-melee-spark,
.combat-melee-fx .combat-melee-outcome{opacity:0}
.combat-melee-fx .combat-melee-impact-ring{
 fill:rgba(255,219,145,.13);stroke:var(--melee-flash);stroke-width:4;
 vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;
 filter:drop-shadow(0 0 9px var(--melee-flash))
}
.combat-melee-fx .combat-melee-spark{
 stroke:var(--melee-light);stroke-width:3.5;stroke-linecap:round;
 vector-effect:non-scaling-stroke;
 filter:drop-shadow(0 0 5px var(--melee-flash))
}
.combat-melee-fx .combat-melee-outcome{
 font:900 19px Georgia,serif;letter-spacing:1.5px;
 fill:var(--melee-light);stroke:#24170e;stroke-width:5;
 stroke-linejoin:round;paint-order:stroke fill;
 filter:drop-shadow(0 3px 5px rgba(0,0,0,.85))
}
.combat-melee-fx.resolved .combat-melee-impact-ring{
 animation:combat-melee-impact .8s ease-out both
}
.combat-melee-fx.resolved .combat-melee-spark{
 animation:combat-melee-sparks .65s var(--melee-delay,0ms) ease-out both
}
.combat-melee-fx.resolved .combat-melee-outcome{
 animation:combat-melee-label 1.05s ease-out both
}
.combat-melee-fx.miss{--melee-flash:#9cacc3;--melee-light:#e2e8f2}
.combat-melee-fx.fumble{--melee-flash:#df6b5a;--melee-light:#ffbaa5}
@keyframes combat-melee-charge{
 0%{opacity:0;transform:scale(.65)}
 27%{opacity:.9;transform:scale(1.05)}
 75%{opacity:.65;transform:scale(1.15)}
 100%{opacity:0;transform:scale(1.55)}
}
@keyframes combat-melee-draw{
 0%{opacity:0;stroke-dashoffset:100}
 15%{opacity:1}
 72%{opacity:1;stroke-dashoffset:0}
 100%{opacity:0;stroke-dashoffset:0}
}
@keyframes combat-melee-impact{
 0%{opacity:0;transform:scale(.35)}
 16%{opacity:1;transform:scale(.92)}
 45%{opacity:.85;transform:scale(1.22)}
 100%{opacity:0;transform:scale(2)}
}
@keyframes combat-melee-sparks{
 0%{opacity:0;stroke-dasharray:0 100}
 24%{opacity:1;stroke-dasharray:100 0}
 100%{opacity:0;stroke-dasharray:0 100}
}
@keyframes combat-melee-label{
 0%{opacity:0;transform:translateY(8px) scale(.9)}
 18%{opacity:1;transform:translateY(-3px) scale(1.08)}
 70%{opacity:1;transform:translateY(-9px) scale(1)}
 100%{opacity:0;transform:translateY(-16px) scale(1)}
}
@media(prefers-reduced-motion:reduce){
 .combat-melee-fx,.combat-melee-fx *{animation:none!important}
}

/* v0.35.22 – audio mixer and admin sound registry */
.alea-audio-dock{position:fixed;bottom:14px;left:14px;display:flex;gap:4px;align-items:center;z-index:6500;filter:drop-shadow(0 3px 12px #0008)}
.alea-audio-dock>button{border:1px solid #b89c60;background:#201c18;color:#f9e6b7;border-radius:9px;padding:9px 12px;font-size:14px;font-weight:600;cursor:pointer}
.alea-audio-dock>button:focus-visible,.alea-audio-panel input:focus-visible{outline:3px solid #e3c16c;outline-offset:2px}
.alea-audio-panel{position:absolute;bottom:48px;left:0;min-width:280px;max-width:min(340px,90vw);padding:14px;border:1px solid #ad9263;border-radius:13px;background:#211f1d;color:#f1e9db;box-shadow:0 12px 35px #000a}
.alea-audio-panel[hidden]{display:none}
.alea-audio-panel p{font-size:12px;line-height:1.5;color:#cdbfa9;margin:4px 0 12px}
.alea-audio-panel label{display:grid;grid-template-columns:95px minmax(80px,1fr) 45px;gap:9px;align-items:center;margin:9px 0;font-size:12px}
.alea-audio-panel input{accent-color:#ba9454;min-width:0}
.alea-audio-panel output{text-align:right;font-variant-numeric:tabular-nums}
.alea-audio-panel small{display:block;color:#bfb19c;margin-top:10px}
.alea-sound-table{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.alea-sound-row{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(120px,1fr) 110px minmax(90px,.8fr) 72px;align-items:center;gap:12px;padding:12px;border:1px solid var(--line,#524b3c);border-radius:10px;background:var(--card,#24221e)}
.alea-sound-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted,#b3a895)}
.alea-sound-row input[type="text"],.alea-sound-row select{max-width:100%;width:100%;min-width:0;box-sizing:border-box;border:1px solid #80735a;padding:7px;background:#282621;color:#f7e8c7;border-radius:5px}
.alea-sound-row input[type="range"]{width:100%;accent-color:#b9954c}
.alea-sound-identity{display:flex;flex-direction:column;gap:4px}
.alea-sound-identity code{font-size:12px;color:#bf9e69}
.alea-sound-identity small{font-size:11px;color:var(--muted,#a7a29c)}
.alea-sound-row .alea-sound-check{flex-direction:row;align-items:center;white-space:nowrap}
.alea-sound-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.alea-sound-actions button,.alea-sound-upload{border:1px solid #9c8357;color:#ecd8a5;background:#322d24;padding:7px 12px;border-radius:7px;cursor:pointer;font:inherit;font-size:12px}
.alea-sound-actions button:disabled{opacity:.5;cursor:wait}
#adminSoundStatus.error{color:#f19a95}
@media(max-width:900px){.alea-sound-row{grid-template-columns:1fr 1fr}.alea-sound-identity{grid-column:1/-1}.alea-sound-actions{grid-column:1/-1}}
@media(max-width:520px){.alea-audio-dock{bottom:7px;left:7px}.alea-audio-dock>button{padding:7px 9px}.alea-sound-row{grid-template-columns:1fr}.alea-sound-identity,.alea-sound-actions{grid-column:1}}

/* Alea Crusaders v0.35.23 – SL soundboard */
.alea-soundboard{position:fixed;right:14px;bottom:14px;z-index:6600}
.alea-soundboard[hidden],.alea-soundboard-panel[hidden]{display:none!important}
.alea-soundboard-launch{background:#34291d;border:1px solid #d9af69;color:#ffdfab;padding:10px 15px;border-radius:9px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 3px 12px #0007}
.alea-soundboard-panel{position:absolute;right:0;bottom:47px;width:min(360px,calc(100vw - 22px));max-height:78vh;overflow:auto;background:#201d1a;color:#f5e7c9;border:1px solid #a98757;border-radius:13px;padding:15px;box-sizing:border-box;box-shadow:0 15px 40px #000a}
.alea-soundboard-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}
.alea-soundboard-heading>b{font-size:17px}
.alea-soundboard-heading>span{font-size:10px;color:#a1d2a5}
.alea-soundboard-panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#d6b17c;margin:14px 0 8px}
.alea-soundboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.alea-soundboard-grid button,.alea-soundboard-active button{background:#3b3229;border:1px solid #7d6749;border-radius:7px;color:#f4dfb9;padding:10px 7px;font-size:13px;cursor:pointer}
.alea-soundboard-grid button.active{border-color:#ebc777;background:#70562d;box-shadow:0 0 0 1px #ddb87766 inset}
.alea-soundboard button:focus-visible{outline:3px solid #ffe2a4;outline-offset:2px}
.alea-soundboard button:disabled{opacity:.55;cursor:wait}
.alea-soundboard-active{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:12px;font-size:12px;color:#d5c6ab}
.alea-soundboard-active button{background:#52302f;border-color:#95615a;font-size:11px;padding:6px 8px}
.alea-soundboard-panel p{margin:10px 0 4px;font-size:12px;line-height:1.4}
.alea-soundboard-panel p.error{color:#ff9c8c}
.alea-soundboard-panel .alea-soundboard-help{color:#b7a98d;font-size:11px}
@media(max-width:520px){.alea-soundboard{right:7px;bottom:7px}.alea-soundboard-launch{padding:8px 10px}.alea-soundboard-panel{bottom:40px;max-height:70vh}}

/* v0.35.24 – full audio catalogue and location sound controls */
.alea-sound-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:12px 0 18px}
.alea-sound-filters label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:12px;color:var(--muted,#dbc3a1)}
.alea-sound-filters input,.alea-sound-filters select{box-sizing:border-box;width:100%;padding:10px;border:1px solid #7e6144;border-radius:7px;background:#25211d;color:#f6e9d4;font:inherit}
.alea-sound-filters input:focus-visible,.alea-sound-filters select:focus-visible{outline:2px solid #e7ba65;outline-offset:2px}
.location-sound-mini{margin-top:5px;color:#b99459;font-size:12px;line-height:1.4}
.alea-soundboard-location{display:flex;gap:5px;margin:8px 0 12px}
.alea-soundboard-location select{min-width:0;flex:1;background:#30291f;color:#f6e7c9;border:1px solid #90744a;border-radius:7px;padding:7px}
.alea-soundboard-location button{background:#624723;color:#fce7bf;border:1px solid #a98853;border-radius:7px;padding:7px 9px;cursor:pointer;white-space:nowrap}
@media(max-width:700px){.alea-sound-filters{grid-template-columns:1fr}.alea-soundboard-location{flex-wrap:wrap}.alea-soundboard-location select{flex-basis:100%}}

/* v0.35.27 – audio controls must never intercept login/home input.
   The sound engine starts only on explicit sound/game interactions. */
#loginScreen:not(.hidden) ~ #aleaAudioDock,
#loginScreen:not(.hidden) ~ #aleaSoundboard,
body:has(#home:not(.hidden)) #aleaAudioDock,
body:has(#home:not(.hidden)) #aleaSoundboard{display:none!important}

/* v0.35.27 – Gandalf inventory */
.alea-sound-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
.alea-sound-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.alea-sound-tags span{font-size:10px;border-radius:99px;background:#3e352a;border:1px solid #786449;color:#eed5a4;padding:2px 7px}
.alea-sound-brief{grid-column:1/-1;border-top:1px solid #65523a;padding-top:8px}
.alea-sound-brief summary{cursor:pointer;color:#deb675;font-weight:650;font-size:12px}
.alea-sound-brief-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0 3px}
.alea-sound-brief-grid label{font-size:12px;color:#d5bf9c;min-width:0}
.alea-sound-brief-grid select,.alea-sound-brief-grid input,.alea-sound-brief-grid textarea{box-sizing:border-box;width:100%;max-width:100%;background:#28241f;color:#f1ddba;border:1px solid #8c734f;border-radius:6px;padding:8px;margin-top:4px;font:inherit}
.alea-sound-brief-grid textarea{resize:vertical;min-height:62px}
.alea-sound-brief-wide{grid-column:span 2}
.alea-sound-brief-note{font-size:11px;color:#baaa91}
@media(max-width:750px){.alea-sound-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.alea-sound-brief-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.alea-sound-filters{grid-template-columns:1fr}.alea-sound-brief-grid{grid-template-columns:1fr}.alea-sound-brief-wide{grid-column:1}}

/* v0.35.27 – Aragorn: sound-source links and license review */
.alea-sound-source-link{display:inline-flex;width:max-content;max-width:100%;color:#9fcce8;border:1px solid #426a83;border-radius:6px;padding:5px 9px;font-size:12px;text-decoration:none}
.alea-sound-source-link:hover,.alea-sound-source-link:focus-visible{background:#223a49;color:#effbff;outline:2px solid #9fcce8;outline-offset:2px}
.alea-sound-brief-grid input[type="url"],.alea-sound-brief-grid input[type="text"]{word-break:break-all}

/* v0.35.32 – perfect strikes: full damage and no mundane armor. */
.combat-attack-badges{display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:100%}
.combat-attack-result-main>.combat-attack-badges>strong{
 display:inline-flex;align-items:center;justify-content:center;
 border-radius:999px;padding:4px 8px;background:#7b302b;color:#fff4d9;
 font-size:10px;font-weight:850;letter-spacing:.035em;line-height:1.2
}
.combat-attack-result-main>.combat-attack-badges>.combat-no-armor-badge{
 background:#26594d;border:1px solid #7aa78e;color:#f0ffec
}
.combat-mini-attack .combat-attack-result-main>.combat-attack-badges>strong{
 background:#6d2b27;color:#f5deb6;border:1px solid rgba(219,165,91,.38)
}
.combat-mini-attack .combat-attack-result-main>.combat-attack-badges>.combat-no-armor-badge{
 background:#29453a;border-color:#688e77;color:#dbf4cf
}
@media(max-width:390px){
 .combat-attack-badges{gap:4px}
 .combat-attack-result-main>.combat-attack-badges>strong{font-size:9px;padding:4px 6px}
}

/* v0.35.32 – imported, frame-based CC0 melee slashes on the battle map. */
.combat-melee-sprite{opacity:1;overflow:hidden;pointer-events:none;filter:drop-shadow(0 0 6px rgba(250,209,117,.65))}
.combat-melee-fx.slash-sprite-active .combat-melee-slash,
.combat-melee-fx.slash-sprite-active .combat-melee-slash-glow{opacity:0!important}
@media(prefers-reduced-motion:reduce){
 .combat-melee-sprite{display:none}
}


/* v0.35.34 – kampanjtid: SL-snabbval vid dagknappen */
.campaign-time-control{position:relative;display:inline-flex;flex:0 0 auto;align-items:center}
.campaign-time-control .time-nav{white-space:nowrap;min-width:108px;border-color:#89704d;background:#31271c}
.campaign-time-control .time-nav:focus-visible,.campaign-time-option:focus-visible{outline:2px solid #f6cf89;outline-offset:2px}
.campaign-time-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(340px,92vw);padding:14px;border:1px solid #a17b4b;border-radius:14px;background:#201911;color:#f9eacf;box-shadow:0 16px 48px #000b}
.campaign-time-menu-title{font:700 17px Georgia,serif;margin:0 0 12px}
.campaign-time-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.campaign-time-option{display:flex;align-items:center;gap:8px;text-align:left;min-height:50px;padding:8px 10px;border:1px solid #6f5639;border-radius:9px;background:#322619;color:#ffeac8;cursor:pointer;font:600 13px system-ui,sans-serif}
.campaign-time-option span:first-child{font-size:22px;line-height:1}
.campaign-time-option:hover{background:#4a3624;border-color:#bd945a}
.campaign-time-option.selected{background:#5a4228;border-color:#efbd6e;box-shadow:inset 0 0 0 1px #efbd6e}
.campaign-time-option:disabled{opacity:.55;cursor:wait}
.campaign-time-note,.campaign-time-readonly{font:12px system-ui,sans-serif;color:#c6ab82;margin:12px 0 0}
.campaign-day-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:650px){
 header #campaignTimeControl{order:19}
 .campaign-time-control .time-nav{min-width:0;padding:7px 9px;font-size:13px}
 .campaign-time-menu{right:-14px}
 .campaign-day-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){.campaign-day-summary{grid-template-columns:1fr}}


/* v0.35.36 – sammanhållen och mobilanpassad panel under hexkartan. */
.combat-board-footer{
 display:flex;
 flex-direction:column;
 gap:10px;
 padding:12px 14px;
}
.combat-board-footer-head{
 display:grid;
 grid-template-columns:minmax(0,1fr) auto;
 align-items:center;
 gap:12px;
 min-width:0;
}
.combat-board-footer .combat-board-description{grid-area:auto;gap:3px}
.combat-board-footer .combat-board-description span{
 color:#f0d7aa;
 font:700 18px/1.2 Georgia,serif;
}
.combat-board-footer .combat-board-description small{
 color:#bfa987;
 font-size:11px;
}
.combat-board-footer .combat-map-zoom-controls{
 grid-area:auto;
 justify-self:end;
 display:grid;
 grid-template-columns:repeat(5,auto);
 gap:6px;
}
.combat-board-footer .combat-map-zoom-controls button{
 min-width:38px;
 width:100%;
 height:38px;
 border-radius:8px;
 font-size:17px;
}
.combat-board-footer #combatMapZoomLabel{
 min-width:62px;
 font-size:12px;
 font-variant-numeric:tabular-nums;
}
.combat-board-footer .combat-board-legends{
 grid-area:auto;
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:9px;
 align-items:stretch;
 justify-content:stretch;
}
.combat-board-footer .combat-board-legend-group{
 min-width:0;
 padding:9px 11px;
 border:1px solid #5b4835;
 border-radius:9px;
 background:rgba(255,244,219,.035);
}
.combat-board-footer .combat-board-legend-title{
 color:#bea47f;
 font:800 10px/1.3 system-ui,sans-serif;
 letter-spacing:.09em;
 text-transform:uppercase;
 margin:0 0 7px;
}
.combat-board-footer .combat-legend,
.combat-board-footer .combat-move-legend{
 display:flex;
 align-items:center;
 justify-content:flex-start;
 flex-wrap:wrap;
 gap:7px 13px;
 font-size:12px;
 line-height:1.3;
 color:#e2ceb0;
 width:auto;
}
.combat-board-footer .combat-legend span{
 display:inline-flex;
 align-items:center;
 gap:5px;
 white-space:nowrap;
}
.combat-board-footer .combat-legend span:before{font-size:14px}
.combat-board-footer .combat-legend .terrain-free:before{color:#bacdae}
.combat-board-footer .combat-legend .terrain-difficult:before{color:#d9a457}
.combat-board-footer .combat-legend .terrain-blocked:before{color:#bc6e67}
@media(max-width:700px){
 .combat-board-footer{gap:9px;padding:12px}
 .combat-board-footer-head{grid-template-columns:minmax(0,1fr);gap:10px}
 .combat-board-footer .combat-map-zoom-controls{
  justify-self:stretch;
  width:100%;
  grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) repeat(3,minmax(0,1fr));
  gap:7px;
 }
 .combat-board-footer .combat-map-zoom-controls button{
  min-width:0;
  height:42px;
  padding:0 4px;
 }
 .combat-board-footer #combatMapZoomLabel{min-width:0}
 .combat-board-footer .combat-board-legends{
  grid-template-columns:minmax(0,1fr);
  gap:8px;
 }
 .combat-board-footer .combat-board-legend-group{padding:8px 10px}
 .combat-board-footer .combat-move-legend{
  width:auto;
  justify-content:flex-start;
 }
}

/* v0.35.38 — smal sidopanel med vertikala kartutsnitt. */
.combat-map-presets{
 position:absolute;
 z-index:5;
 left:0;
 top:50%;
 transform:translateY(-50%);
 display:flex;
 flex-direction:column;
 box-sizing:border-box;
 width:34px;
 gap:2px;
 padding:4px 3px 4px 0;
 border:1px solid #9a7850;
 border-left:0;
 border-radius:0 9px 9px 0;
 background:rgba(24,18,13,.96);
 box-shadow:2px 3px 12px rgba(0,0,0,.55);
 pointer-events:auto;
}
.combat-map-preset{
 display:flex;
 flex:0 0 auto;
 align-items:center;
 justify-content:center;
 box-sizing:border-box;
 width:30px;
 min-height:74px;
 padding:7px 2px;
 border:1px solid transparent;
 border-radius:0 5px 5px 0;
 background:transparent;
 color:#eddbbd;
 font:700 11px/1 system-ui,sans-serif;
 text-align:center;
 cursor:pointer;
 touch-action:manipulation;
}
.combat-map-preset:not(:last-child){border-bottom-color:rgba(154,120,80,.5)}
.combat-map-preset .combat-map-preset-text{
 display:inline-block;
 writing-mode:vertical-rl;
 text-orientation:mixed;
 transform:rotate(180deg);
 white-space:nowrap;
 letter-spacing:.05em;
}
.combat-map-preset:hover:not(:disabled){background:rgba(232,196,140,.14)}
.combat-map-preset.selected{
 background:#e8c48c;
 border-color:#ffdf9f;
 color:#211911;
 box-shadow:0 0 0 1px rgba(255,224,164,.3);
}
.combat-map-preset:focus-visible{outline:2px solid #f9e3bd;outline-offset:1px}
.combat-map-preset:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:700px){
 .combat-map-presets{width:30px;padding:3px 2px 3px 0}
 .combat-map-preset{width:27px;min-height:70px;padding:5px 2px;font-size:10px}
}

/* v0.35.52: armor admin desktop table + accessible mobile cards.
   The old 980px-wide grid pushed the edit buttons off-screen on phones. */
.adminarmortable{
 display:block;
 width:100%;
 min-width:0;
 max-width:100%;
 box-sizing:border-box;
 overflow-x:auto;
 overflow-y:visible;
}
.adminarmortable>.armor-admin-row{
 display:grid;
 grid-template-columns:64px minmax(155px,1.4fr) 82px 56px 64px 100px 96px 62px 95px minmax(165px,1fr) 90px;
 min-width:1100px;
 padding:0;
 align-items:stretch;
 border-bottom:1px solid #443527;
}
.armor-admin-row>div{
 min-width:0;
 padding:10px 8px;
 box-sizing:border-box;
 overflow-wrap:anywhere;
}
.armor-admin-header>div{
 background:#6d1e1e;
 font-weight:800;
 white-space:normal;
}
.armor-admin-record:nth-of-type(odd)>div{background:rgba(255,255,255,.025)}
.armor-admin-row .armor-cell-actions{
 display:flex;
 flex-direction:row;
 justify-content:center;
 align-items:center;
 gap:5px;
}
.armor-admin-row .armor-cell-actions button{
 flex:0 0 auto;
 min-width:33px;
 min-height:36px;
}
.adminarmortable>.admin-master-footnote{padding:12px}
@media(max-width:700px){
 .adminarmortable{
  display:flex;
  flex-direction:column;
  overflow:visible;
  border:0;
  background:transparent;
  gap:9px;
  font-size:13px;
 }
 .adminarmortable>.armor-admin-header{display:none}
 .adminarmortable>.armor-admin-record{
  display:grid;
  grid-template-columns:60px minmax(0,1fr) 88px;
  grid-template-rows:auto auto auto auto auto;
  min-width:0;
  width:100%;
  box-sizing:border-box;
  gap:7px 9px;
  padding:12px 10px;
  border:1px solid #695139;
  border-radius:11px;
  background:linear-gradient(145deg,#2b231b,#1c1713);
 }
 .armor-admin-record>div{
  display:block;
  min-width:0;
  padding:0;
  border:0;
  background:transparent!important;
 }
 .armor-admin-record .armor-cell-icon{
  grid-column:1;
  grid-row:1/span 2;
  display:grid;
  align-content:start;
  justify-items:center;
 }
 .armor-admin-record .armor-cell-name{
  grid-column:2;
  grid-row:1;
  align-self:center;
  line-height:1.25;
 }
 .armor-admin-record .armor-cell-name b{
  color:#f1ddba;
  font-size:15px;
  overflow-wrap:anywhere;
 }
 .armor-admin-record .armor-cell-type{
  grid-column:2;
  grid-row:2;
  align-self:start;
  font-size:12px;
  color:#cbb590;
 }
 .armor-admin-record .armor-cell-actions{
  grid-column:3;
  grid-row:1/span 2;
  align-self:start;
  display:flex;
  justify-content:flex-end;
  gap:6px;
 }
 .armor-admin-record .armor-cell-actions button{
  min-width:39px;
  min-height:42px;
  padding:6px;
  touch-action:manipulation;
 }
 .armor-admin-record .armor-cell-abs{grid-column:1;grid-row:3}
 .armor-admin-record .armor-cell-weight{grid-column:2;grid-row:3}
 .armor-admin-record .armor-cell-bep{grid-column:3;grid-row:3}
 .armor-admin-record .armor-cell-price{grid-column:1;grid-row:4}
 .armor-admin-record .armor-cell-expert{grid-column:2;grid-row:4}
 .armor-admin-record .armor-cell-source{grid-column:3;grid-row:4}
 .armor-admin-record .armor-cell-description{
  grid-column:1/-1;
  grid-row:5;
  color:#cdbda7;
  font-size:12px;
  line-height:1.4;
  padding-top:6px;
  border-top:1px solid rgba(184,145,82,.22);
 }
 .armor-admin-record .armor-cell-abs:before,
 .armor-admin-record .armor-cell-weight:before,
 .armor-admin-record .armor-cell-bep:before,
 .armor-admin-record .armor-cell-price:before,
 .armor-admin-record .armor-cell-expert:before,
 .armor-admin-record .armor-cell-source:before{
  display:block;
  margin-bottom:3px;
  font:700 10px/1.2 system-ui,sans-serif;
  color:#b6a183;
  letter-spacing:.02em;
 }
 .armor-admin-record .armor-cell-abs:before{content:"ABS"}
 .armor-admin-record .armor-cell-weight:before{content:"Viktkod"}
 .armor-admin-record .armor-cell-bep:before{content:"BEP"}
 .armor-admin-record .armor-cell-price:before{content:"Pris/BEP"}
 .armor-admin-record .armor-cell-expert:before{content:"Expert"}
 .armor-admin-record .armor-cell-source:before{content:"Källa"}
 .armor-admin-record .admin-source-badge{
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
 }
 .adminarmortable>.admin-master-footnote{
  padding:10px;
  border-radius:8px;
  border:1px solid rgba(184,145,82,.22);
 }
}


/* v0.35.67 — desktop dice bowl: keep tray and dice choices visible without scrolling */
@media (min-width:761px){
  /* The image stays square, but its size is governed by available viewport height.
     Reserve room for the two-row navigation, title, roll result and dice picker. */
  #dicePage .dice-tray{
    width:min(100%,640px,max(240px,calc(100vh - 455px)));
    width:min(100%,640px,max(240px,calc(100dvh - 455px)));
    margin-inline:auto;
  }
  #dicePage .dicehead{margin-bottom:8px}
  #dicePage .dice-actionrow{margin-top:8px}
  #dicePage .dice-controls{margin-top:10px}
}


/* v0.35.68 — three-column desktop combat scene (1:2:1) */
/* The active battle layout only: keep preview and idle screens unchanged. */
.combat-shell-live > .combat-left-column,
.combat-shell-live > .combat-center-column{min-width:0}
.combat-shell-live .combat-left-column{
 display:flex;flex-direction:column;align-items:stretch;gap:12px;
}
.combat-shell-live .combat-center-column{
 display:flex;flex-direction:column;align-items:stretch;gap:12px;
}
.combat-shell-live .combat-below-map{
 display:flex;flex-direction:column;gap:12px;min-width:0;
}
.combat-shell-live .combat-below-map .combat-log{
 grid-column:auto;min-width:0;
}
.combat-shell-live .combat-below-map .combat-gm-toolbox{
 grid-column:auto;min-width:0;width:100%;margin:0;
}
.combat-shell-live .combat-below-map .combat-gm-placements{
 grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
}
.combat-shell-live .combat-below-map .combat-gm-controls{
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:7px;min-width:0;margin:0;padding:10px;
}
.combat-shell-live .combat-below-map .combat-gm-control-copy,
.combat-shell-live .combat-below-map .combat-gm-controls select,
.combat-shell-live .combat-below-map .combat-gm-active{
 grid-column:1/-1;min-width:0;justify-self:stretch;text-align:left;
}
.combat-shell-live .combat-below-map .combat-gm-controls .btn{
 width:100%;min-width:0;padding:8px 6px;font-size:12px;
}
.combat-shell-live .combat-turn-panel{grid-column:auto;min-width:0}
.combat-shell-live .combat-left-column > .combat-mini-attack{
 min-width:0;border:1px solid #765c3e;border-radius:12px;overflow:visible;
}
.combat-shell-live > .combat-participants{min-width:0}

/* On computers, the hex map gets precisely twice each side column's width. */
@media(min-width:1024px){
 main:has(> #combatPage:not(.hidden)){max-width:1600px}
 #combatPage .combatpage{max-width:1550px;padding:12px 8px}
 .combat-shell.combat-shell-live{
  grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);
  gap:12px;align-items:start;
 }
 .combat-shell-live .combat-left-column .combat-turn-head{
  grid-template-columns:minmax(0,1fr) auto;gap:5px;
 }
 .combat-shell-live .combat-turn-head .combat-round{grid-column:1;grid-row:1}
 .combat-shell-live .combat-turn-head .combat-turn-undo-btn{grid-column:2;grid-row:1}
 .combat-shell-live .combat-turn-head .combat-turn-action-status{
  grid-column:1/-1;grid-row:2;justify-self:start;white-space:normal;
 }
 .combat-shell-live .combat-turn-head .combat-status{display:none}
 .combat-shell-live .combat-turn-actor{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-areas:"portrait identity" "vitals vitals" "actions actions";
  gap:8px;min-width:0;
 }
 .combat-shell-live .combat-turn-portrait{
  width:44px;height:49px;flex-basis:44px;
 }
 .combat-shell-live .combat-turn-identity b{font-size:15px}
 .combat-shell-live .combat-turn-vitals{
  grid-template-columns:repeat(3,minmax(0,1fr));width:100%;
 }
 .combat-shell-live .combat-turn-vitals>div{padding:5px 3px}
 .combat-shell-live .combat-turn-vitals span{font-size:7px}
 .combat-shell-live .combat-turn-vitals b{font-size:12px}
 .combat-shell-live .combat-turn-actions{
  width:100%;justify-content:space-between;gap:3px;
 }
 .combat-shell-live .combat-turn-actions .combat-turn-action-tool{
  width:38px;flex:0 1 38px;min-width:0;
 }
 .combat-shell-live .combat-turn-actions .combat-row-tool-btn{
  width:100%;min-width:0;height:38px;
 }
 .combat-shell-live .combat-turn-actions .combat-row-action-menu{
  top:42px;left:0;transform:none;width:220px;max-width:calc(100vw - 30px);
 }
 .combat-shell-live .combat-turn-stats>div{padding:6px 2px}
 .combat-shell-live .combat-turn-equip small{font-size:8px}
 .combat-shell-live .combat-participants .combatant-card{
  grid-template-columns:30px 36px minmax(0,1fr) 34px;
  gap:5px;padding:6px 5px;
 }
 .combat-shell-live .combat-participants .combat-order-number{
  min-width:30px;width:30px;
 }
 .combat-shell-live .combat-participants .combat-row-portrait{
  width:36px;height:38px;
 }
 .combat-shell-live .combat-mini-attack{padding:9px 7px}
 .combat-shell-live .combat-mini-duel{
  grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr);gap:3px;
 }
 .combat-shell-live .combat-mini-side{padding:6px 4px}
 .combat-shell-live .combat-mini-title{flex-wrap:wrap;gap:3px}
 .combat-shell-live .combat-mini-title b{font-size:12px}
}

/* Smaller windows continue as a single-column battle UI, without clipping. */
@media(max-width:1023px){
 .combat-shell.combat-shell-live{display:flex;flex-direction:column;gap:12px}
 .combat-shell-live .combat-left-column,
 .combat-shell-live .combat-center-column{display:contents}
 .combat-shell-live .combat-turn-panel{order:1;width:100%}
 .combat-shell-live .combat-left-column > .combat-mini-attack{order:2;width:100%}
 .combat-shell-live .combat-board-wrap{order:3;width:100%}
 .combat-shell-live > .combat-participants{order:4;width:100%}
 .combat-shell-live .combat-below-map{order:5;width:100%}
}

/* v0.35.75 — Combat "Runda" uses the same Narsil master artwork as equipment. */
.combat-turn-stats{
 grid-template-columns:repeat(4,minmax(0,1fr)) !important;
 overflow-x:hidden !important;
}
.combat-turn-stats>.combat-turn-equip-art{
 display:grid;
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:auto minmax(55px,1fr) auto;
 align-items:stretch;
 justify-items:center;
 align-content:stretch;
 position:relative;
 min-width:0 !important;
 min-height:102px;
 gap:3px;
 padding:6px 4px 7px;
 box-sizing:border-box;
}
.combat-turn-stats>.combat-turn-equip-art.twohand{
 grid-column:span 2;
}
.combat-turn-equip-art>.combat-turn-art-frame{
 position:relative;
 width:100%;
 height:100%;
 min-height:55px;
 min-width:0;
 display:grid;
 place-items:center;
 overflow:hidden;
 border-radius:7px;
 background:radial-gradient(ellipse at center,rgba(171,113,50,.08),transparent 75%);
}
.combat-turn-equip-art .combat-turn-art-frame>.combat-turn-art{
 display:block;
 width:100%;
 height:100%;
 max-width:92px;
 max-height:65px;
 object-fit:contain;
 object-position:center;
 filter:drop-shadow(0 2px 3px rgba(0,0,0,.75));
}
.combat-turn-equip-art.twohand .combat-turn-art-frame{
 /* Equal frame height for one- and two-handed grips; only width spans two slots. */
 min-height:55px;
 overflow:hidden;
}
.combat-turn-equip-art.twohand .combat-turn-art-frame>.combat-turn-art{
 /* The source Narsil weapon runs bottom-left to top-right.
    Turn its diagonal axis 45deg into a horizontal weapon inside two slots. */
 width:min(75%,145px);
 height:100px;
 max-width:none;
 max-height:none;
 transform:rotate(45deg) scale(1.12);
 transform-origin:center;
}
.combat-turn-equip-art .combat-turn-art-empty{
 color:#9d8365;
 font:800 20px/1 Georgia,serif;
}
.combat-turn-equip-art>small{
 display:block;
 max-width:100%;
 min-width:0;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 color:#c2b095;
 font-size:clamp(8px,1vw,11px);
}
.combat-turn-equip-art.projectile .combat-turn-ammo-images{
 width:100%;height:100%;min-width:0;
 display:flex;align-items:center;justify-content:center;gap:3px;
 padding:3px 6px 5px;box-sizing:border-box;
}
.combat-turn-equip-art.projectile .combat-turn-ammo-images>.combat-turn-art{
 flex:1 1 0;
 min-width:0;
 width:100%;height:100%;
 max-width:84px;max-height:63px;
 object-fit:contain;
}
.combat-turn-equip-art.projectile .combat-turn-ammo-placeholder{
 color:#e1cdab;
 font:700 10px/1.2 Georgia,serif;
 overflow-wrap:anywhere;
 text-align:center;
}
.combat-turn-equip-art.projectile .combat-turn-ammo-count{
 position:absolute;
 z-index:2;
 right:3px;bottom:2px;
 min-width:23px;min-height:23px;
 display:grid;place-items:center;
 padding:3px 6px;box-sizing:border-box;
 border:1px solid #d1a667;border-radius:50px;
 background:#2e2115;color:#ffe4b4;
 box-shadow:0 2px 5px #000b;
 font:800 14px/1 system-ui,sans-serif;
 font-variant-numeric:tabular-nums;
 white-space:nowrap;
 pointer-events:none;
}
.combat-turn-equip-art.projectile .combat-turn-ammo-count.out{
 color:#ffc5b7;border-color:#b66e5b;background:#49211c;
}
.combat-detail-equipment>.combat-turn-equip-art.twohand{
 grid-column:span 2;
}
@media(max-width:760px){
 .combat-turn-stats>.combat-turn-equip-art{min-height:92px;padding:5px 2px}
 .combat-turn-equip-art.twohand .combat-turn-art-frame>.combat-turn-art{
  width:min(85%,120px);height:90px;
 }
 .combat-turn-equip-art.projectile .combat-turn-ammo-count{
  min-width:20px;min-height:20px;padding:2px 5px;font-size:12px;
 }
 .combat-turn-equip-art>small{font-size:8px}
}
@media(max-width:420px){
 .combat-turn-stats>.combat-turn-equip-art{min-height:82px}
 .combat-turn-stats>.combat-turn-equip-art.twohand{grid-column:span 2}
 .combat-turn-equip-art.projectile .combat-turn-ammo-count{
  right:1px;bottom:1px;min-width:18px;min-height:18px;font-size:11px;
 }
}

/* v0.35.77: character equipment is one row per exact item, with editable quantity. */
.inventorytable{
 grid-template-columns:minmax(0,1fr) minmax(68px,82px) minmax(80px,96px);
}
.inventorytable.equipment-stack-editing{
 grid-template-columns:minmax(0,1fr) minmax(65px,86px) minmax(70px,90px) minmax(76px,96px);
}
.inventorytable>.skillhead.skillnum{white-space:nowrap}
.inventorytable>.skillnum{
 display:flex;align-items:center;justify-content:center;
 font-variant-numeric:tabular-nums;
}
.inventorytable>.equipment-stack-actions-head{text-align:center}
.inventorytable>.equipment-stack-actions{
 display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap;
}
.inventorytable>.equipment-stack-actions button{
 flex:0 0 auto;min-width:29px;margin:0;padding:4px 6px;
}
.inventorytable input.equipment-stack-quantity{
 min-width:0;width:100%;text-align:center;font-variant-numeric:tabular-nums;
}
@media(max-width:700px){
 .inventorytable{
  grid-template-columns:minmax(0,1fr) minmax(53px,68px) minmax(67px,82px);
 }
 .inventorytable.equipment-stack-editing{
  grid-template-columns:minmax(0,1fr) 58px 66px 69px;
 }
 .inventorytable>div{padding:9px 5px}
 .inventorytable>.skillhead{font-size:12px}
 .inventorytable input{font-size:13px;padding:5px 3px}
 .inventorytable>.equipment-stack-actions{gap:2px}
 .inventorytable>.equipment-stack-actions button{min-width:28px;padding:4px 3px}
}


/* v0.35.81 — separat SVG-porträtt för aktiv kombatant.
   Bildens clipPath och den gröna/blå/röda ramen använder samma hexgeometri.
   Gäller inte hexbrickorna på själva stridskartan. */
.combat-turn-portrait{
 padding:0;
 clip-path:none;
 background:transparent;
 display:block;
 line-height:0;
 overflow:visible;
 box-sizing:border-box;
}
.combat-turn-portrait .combat-turn-portrait-svg{
 display:block;
 width:100%;
 height:100%;
 overflow:visible;
}
.combat-turn-portrait .combat-turn-portrait-base{
 fill:#17130f;
}
.combat-turn-portrait .combat-turn-portrait-image{
 pointer-events:none;
}
.combat-turn-portrait .combat-turn-portrait-outline{
 fill:none;
 stroke:var(--turn-side,#3ca95a);
 stroke-width:5;
 stroke-linejoin:round;
}
.combat-turn-portrait .combat-turn-portrait-inner-rim{
 fill:none;
 stroke:rgba(239,211,158,.72);
 stroke-width:1.2;
 stroke-linejoin:round;
 pointer-events:none;
}
.combat-turn-portrait .combat-turn-portrait-initials{
 fill:#f7ead3;
 font:900 22px Georgia,serif;
 text-shadow:0 1px 2px #000;
}


/* v0.35.82 — tydlig markering för den som är på tur.
   Yttre guldhalo; spelarnas gröna, SLP:s blå och fiendernas röda
   porträttramar behålls innanför markeringen. */
.combat-map-svg .combat-active-turn-aura,
.combat-map-svg .combat-active-turn-outline{
 pointer-events:none;
 stroke-linejoin:round;
 vector-effect:non-scaling-stroke;
}
.combat-map-svg .combat-active-turn-aura{
 fill:rgba(255,202,79,.13);
 stroke:rgba(255,197,75,.65);
 stroke-width:7;
 filter:drop-shadow(0 0 7px rgba(255,196,64,.94));
 animation:combat-active-turn-pulse 2.25s ease-in-out infinite;
}
.combat-map-svg .combat-active-turn-outline{
 fill:none;
 stroke:#ffe39a;
 stroke-width:3;
}
.combat-map-svg .combat-active-turn-badge{
 pointer-events:none;
 filter:drop-shadow(0 2px 3px rgba(0,0,0,.9));
}
.combat-map-svg .combat-active-turn-badge rect{
 fill:#38230f;
 stroke:#ffe29c;
 stroke-width:2;
}
.combat-map-svg .combat-active-turn-badge text{
 fill:#fff5d5;
 font:900 10px/1 Georgia,serif;
 letter-spacing:.06em;
 dominant-baseline:middle;
}
@keyframes combat-active-turn-pulse{
 0%,100%{opacity:.72;stroke-width:6}
 50%{opacity:1;stroke-width:9}
}
/* Spelarens, fiendens och SLP:ns roll behålls via originalporträttet,
   medan guldramen och textbadgen markerar VEMS tur det är. */
.combat-participants .combatant-card.active-turn{
 background:linear-gradient(115deg,rgba(242,185,80,.25),rgba(231,157,48,.08) 58%,rgba(19,14,11,.9)),
            linear-gradient(180deg,#312214,#1b150f);
 border-color:#f4ca70;
 box-shadow:inset 5px 0 0 #f5ca6f,
            0 0 0 2px rgba(255,214,124,.83),
            0 0 16px rgba(240,173,58,.43);
}
.combat-participants .combatant-card.active-turn .combat-order-number{
 border-color:#f4d28d;
 color:#fff1ca;
 background:linear-gradient(180deg,#9c6c27,#563613);
}
.combat-participants .combatant-card.active-turn .combat-row-portrait{
 filter:drop-shadow(0 0 5px rgba(255,212,113,.88));
}
.combat-participants .combatant-card.active-turn .name{
 display:flex;
 align-items:center;
 gap:6px;
 overflow:hidden;
}
.combat-participants .combatant-card .combatant-name-text{
 min-width:0;
 overflow:hidden;
 white-space:nowrap;
 text-overflow:ellipsis;
}
.combat-participants .combat-turn-now-label{
 display:inline-flex;
 flex:0 0 auto;
 align-items:center;
 justify-content:center;
 border:1px solid #f5d58d;
 border-radius:4px;
 padding:2px 5px;
 background:#e8b650;
 color:#281a0b;
 font:900 9px/1 system-ui,sans-serif;
 letter-spacing:.045em;
 white-space:nowrap;
}
@media(max-width:420px){
 .combat-participants .combatant-card.active-turn .name{gap:4px}
 .combat-participants .combat-turn-now-label{font-size:8px;padding:2px 4px}
}
@media(prefers-reduced-motion:reduce){
 .combat-map-svg .combat-active-turn-aura{animation:none;opacity:1}
}


/* v0.35.97 — Separate food and water counters with matched controls. */
#equipmentPanel .provisions-grid{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:13px
}
#equipmentPanel .provisions-resource{
 min-width:0;padding:12px;border:1px solid #44644e;border-radius:12px;
 background:rgba(12,22,17,.48)
}
#equipmentPanel .provisions-water{
 border-color:#355f79;background:linear-gradient(145deg,rgba(15,39,57,.75),rgba(9,27,38,.72))
}
#equipmentPanel .provisions-resource-heading{
 min-height:28px;display:flex;justify-content:space-between;align-items:center;gap:7px;flex-wrap:wrap
}
#equipmentPanel .provisions-resource-heading>b{
 font:700 16px/1.2 Georgia,serif;color:#ffe6b4
}
#equipmentPanel .provisions-water .provisions-resource-heading>b{color:#badff6}
#equipmentPanel .provisions-resource .provisions-counter{margin-top:10px;gap:8px}
#equipmentPanel .provisions-water .provisions-stepper button{
 border-color:#537d98;background:#193444;color:#e6f7ff
}
#equipmentPanel .provisions-edit-grid{
 display:grid;grid-template-columns:repeat(2,minmax(0,210px));gap:12px
}
#equipmentPanel .provisions-edit-grid .provisions-set{max-width:none;min-width:0}
@media(max-width:690px){
 #equipmentPanel .provisions-grid{grid-template-columns:minmax(0,1fr)}
 #equipmentPanel .provisions-resource{padding:10px 12px}
 #equipmentPanel .provisions-resource .provisions-counter{flex-wrap:nowrap}
 #equipmentPanel .provisions-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:360px){
 #equipmentPanel .provisions-edit-grid{grid-template-columns:1fr}
 #equipmentPanel .provisions-resource .provisions-value strong{font-size:30px}
}

/* v0.35.98 — compact, single-row food and water with shared section help. */
#equipmentPanel .character-provisions{position:relative;padding:13px 14px}
#equipmentPanel .provisions-help-corner{position:absolute;right:10px;top:9px;display:flex;z-index:1}
#equipmentPanel .provisions-rows{display:grid;gap:8px;padding-top:34px}
#equipmentPanel .provisions-line{
 display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;
 gap:10px;min-height:62px;padding:9px 11px;min-width:0;
 border:1px solid #41604a;border-radius:11px;background:rgba(8,22,16,.6)
}
#equipmentPanel .provisions-line.provisions-water{
 border-color:#355f79;background:linear-gradient(110deg,#102938,#0a1d29)
}
#equipmentPanel .provisions-line-label{display:flex;align-items:center;flex-wrap:nowrap;gap:7px;min-width:0}
#equipmentPanel .provisions-line-label>b{font:700 17px/1.2 Georgia,serif;color:#ffe3ac;white-space:nowrap}
#equipmentPanel .provisions-water .provisions-line-label>b{color:#bbdff5}
#equipmentPanel .provisions-line .provisions-value{
 display:flex;align-items:baseline;justify-content:flex-end;white-space:nowrap;gap:5px
}
#equipmentPanel .provisions-line .provisions-value strong{font-size:27px}
#equipmentPanel .provisions-line .provisions-value span{font-size:12px}
#equipmentPanel .provisions-line .provisions-stepper{display:flex;flex-wrap:nowrap;gap:5px}
#equipmentPanel .provisions-line .provisions-stepper button{
 width:36px;min-width:36px;height:36px;border-radius:8px;font-size:22px
}
#equipmentPanel .provisions-line .provisions-empty{font-size:10px;padding:3px 5px;white-space:nowrap}
#equipmentPanel .provisions-line .provisions-covered{
 min-width:20px;height:20px;padding:1px 4px;justify-content:center;border-radius:50%;font-size:12px
}
#equipmentPanel .provisions-inline-edit{display:block;min-width:0}
#equipmentPanel .provisions-inline-edit input{
 display:block;width:66px;min-height:36px;box-sizing:border-box;
 padding:5px 4px;border:1px solid #8f7952;border-radius:7px;
 background:#15150f;color:#fff;text-align:center;font-size:16px
}
#equipmentPanel .provisions-visually-hidden{
 position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap
}
@media(max-width:560px){
 #equipmentPanel .character-provisions{padding:10px}
 #equipmentPanel .provisions-line{gap:6px;min-height:55px;padding:7px 8px}
 #equipmentPanel .provisions-line-label>b{font-size:15px}
 #equipmentPanel .provisions-line .provisions-value strong{font-size:24px}
 #equipmentPanel .provisions-line .provisions-value span{font-size:11px}
 #equipmentPanel .provisions-line .provisions-stepper{gap:4px}
 #equipmentPanel .provisions-line .provisions-stepper button{width:33px;min-width:33px;height:36px}
}
@media(max-width:355px){
 #equipmentPanel .provisions-line{gap:4px;padding:7px 5px}
 #equipmentPanel .provisions-line-label>b{font-size:14px}
 #equipmentPanel .provisions-line .provisions-value strong{font-size:22px}
 #equipmentPanel .provisions-line .provisions-stepper button{width:30px;min-width:30px}
 #equipmentPanel .provisions-inline-edit input{width:52px}
}

/* v0.35.99 — Mat och vatten i befintligt snabbstatusutrymme.
   Ersätter tidigare instruktionstext: ingen ny statusradshöjd läggs till. */
#view .quick-provisions{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:6px;margin-top:8px;min-width:0
}
#view .quick-supply{
 display:flex;align-items:center;justify-content:center;
 gap:4px;min-width:0;min-height:30px;box-sizing:border-box;
 padding:4px 5px;border:1px solid #46634f;border-radius:8px;
 background:rgba(10,28,19,.7);color:#f0e5cd;white-space:nowrap;
 font:600 11px/1.1 system-ui,sans-serif
}
#view .quick-supply-water{border-color:#426e84;background:#132832}
#view .quick-supply>b{font-weight:650;overflow:hidden;text-overflow:ellipsis}
#view .quick-supply>strong{font-size:16px;font-variant-numeric:tabular-nums;color:#ffe0a0}
#view .quick-supply-water>strong{color:#b4e5ff}
#view .quick-supply>small{font-size:10px;color:#b7bda8}
#view .quick-supply.empty{border-color:#995b4b}
@media(max-width:560px){
 #view .quick-provisions{margin-top:6px;gap:6px}
 #view .quick-supply{min-height:29px;padding:3px 4px}
}
@media(max-width:355px){
 #view .quick-supply{gap:3px;font-size:10px}
 #view .quick-supply>strong{font-size:15px}
}


/* v0.35.100 — KP/PSY side-by-side on every screen, without growing Snabbstatus.
   Narrow controls preserve both buttons, numeric values and health bars. */
#view .quick{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:7px;
 min-width:0;
}
#view .quickstat{min-width:0;padding:7px 6px}
#view .quickstat .quicktop{min-height:18px}
#view .quickstat .quicktop .label{font-size:12px;white-space:nowrap}
#view .quickstat .stepper{
 display:grid;
 grid-template-columns:30px minmax(0,1fr) 30px;
 gap:4px;
 align-items:center;
 min-width:0;
 margin-top:4px;
}
#view .quickstat .stepper button{
 display:grid;place-items:center;
 width:30px;min-width:0;height:34px;
 padding:0;font-size:19px;line-height:1
}
#view .quickstat .statusvalue{min-width:0}
#view .quickstat .statusvalue .value{
 margin-bottom:4px;
 font-size:15px;
 line-height:1.15;
 font-variant-numeric:tabular-nums;
 white-space:nowrap
}
#view .quickstat .statusvalue .healthbar{height:6px;max-width:100%}
@media(max-width:380px){
 #view .quick{gap:5px}
 #view .quickstat{padding:6px 4px}
 #view .quickstat .quicktop .label{font-size:11px}
 #view .quickstat .stepper{grid-template-columns:27px minmax(0,1fr) 27px;gap:3px}
 #view .quickstat .stepper button{width:27px;height:32px;font-size:18px}
 #view .quickstat .statusvalue .value{font-size:12px}
}

/* v0.35.129 — illustrated combat hit-location packs. New art and the legacy
   anatomical figure occupy exactly the same 2:3 frame and camera transform. */
.combat-hit-image-switch{
 position:relative;
 width:116px;
 aspect-ratio:2/3;
 overflow:hidden;
 isolation:isolate;
}
.combat-hit-image-switch > .combat-hit-model-stage{
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
}
.combat-hit-art-image{
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 object-fit:contain;
 object-position:center;
 display:block;
 pointer-events:none;
 opacity:0;
 z-index:2;
 transform-origin:0 0;
 transform:translate(var(--hit-tx),var(--hit-ty)) scale(var(--hit-scale));
 filter:drop-shadow(0 1px 2px rgba(0,0,0,.16));
}
.combat-hit-art-loaded > .combat-hit-art-image{
 opacity:1;
 animation:combatHitCameraReveal 1.28s cubic-bezier(.22,.78,.22,1) both;
}
.combat-hit-art-loaded > .combat-hit-model-stage{
 visibility:hidden;
}
@media(max-width:520px){
 .combat-hit-image-switch{width:92px}
}
@media(prefers-reduced-motion:reduce){
 .combat-hit-art-loaded > .combat-hit-art-image{animation:none}
}

/* NPC / enemy held equipment, v0.35.163 */
.slp-admin-form .slp-weapon-row{
 grid-template-columns:minmax(160px,1.15fr) minmax(120px,.9fr) 64px 96px minmax(132px,.8fr) 42px;
 gap:6px;
}
.slp-admin-form .slp-weapon-row>select:nth-of-type(2){min-width:0;font-size:12px}
.slp-admin-form #npcAmbidextrous{width:auto;min-width:17px;accent-color:#c79e61}
.slp-admin-form label.admincheck:has(#npcAmbidextrous){display:flex;gap:8px;align-items:center;line-height:1.35;margin-top:12px;color:#d4bc91}
.combat-npc-editor label.combat-npc-edit-ambi{display:flex;gap:9px;align-items:center;margin:12px 0;color:#f5d9a4;font-size:12px;line-height:1.4}
.combat-npc-editor .combat-npc-edit-ambi input{width:20px;min-height:20px;flex:0 0 20px;accent-color:#c79e61}
@media(max-width:900px){
 .slp-admin-form .slp-weapon-row{grid-template-columns:minmax(0,1fr) minmax(0,.9fr) 66px;gap:7px}
 .slp-admin-form .slp-weapon-row>select:nth-of-type(2){grid-column:1/3}
 .slp-admin-form .slp-weapon-row .slp-weapon-actions{grid-column:3;grid-row:1}
}
@media(max-width:540px){
 .slp-admin-form .slp-weapon-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 62px}
 .slp-admin-form .slp-weapon-row>select:nth-of-type(2){grid-column:1/3}
 .slp-admin-form .slp-equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ARES: align only the active Workshop with the existing combat container. */
@media(min-width:900px){
 #admin .adminpage:has(#adminPaperDollWorkshop:not(.hidden)){max-width:1500px;width:100%;margin-inline:auto;box-sizing:border-box}
}

/* ARES: use exactly the combat view's desktop outer and inner containers. */
@media(min-width:1024px){
 main:has(> #admin:not(.hidden) #adminPaperDollWorkshop:not(.hidden)){max-width:1600px}
 #admin .adminpage:has(#adminPaperDollWorkshop:not(.hidden)){max-width:1550px;width:100%;padding:12px 8px;margin-inline:auto;box-sizing:border-box}
}
/* Targans Gille */
.shop-nav{white-space:nowrap}
#shopPage{width:100%}
.shop-shell{max-width:1440px;margin:0 auto;padding:18px}
.shop-hero{position:relative;overflow:hidden;border:1px solid rgba(160,114,57,.55);border-radius:18px;padding:28px;background:
linear-gradient(135deg,rgba(32,21,13,.96),rgba(79,48,23,.93)),
repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 2px,transparent 2px 14px);
box-shadow:0 18px 42px rgba(0,0,0,.28);display:grid;grid-template-columns:minmax(180px,300px) 1fr auto;gap:24px;align-items:center}
.shop-sign{justify-self:start;min-width:210px;padding:15px 20px;border:4px ridge #8b5d2f;border-radius:10px;background:
linear-gradient(180deg,#74502c,#4e321a);box-shadow:inset 0 0 0 2px rgba(35,19,8,.7),0 8px 18px rgba(0,0,0,.35);
font-family:Georgia,serif;text-align:center;text-transform:uppercase;letter-spacing:.08em;color:#ecd8a7;text-shadow:0 2px 0 #2d1b0f,0 -1px 0 rgba(255,255,255,.18)}
.shop-sign span{display:block;font-size:14px;letter-spacing:.28em}.shop-sign b{display:block;font-size:30px;line-height:1.05;margin-top:3px}
.shop-hero-copy h2{font-family:Georgia,serif;font-size:34px;margin:0;color:#f0dfbd}.shop-hero-copy p{margin:7px 0 0;max-width:760px;color:#d8c5a4;line-height:1.5}
.shop-close{align-self:start;background:rgba(255,255,255,.06)}
.shop-toolbar{margin-top:18px;display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center}
.shop-search{display:flex;align-items:center;gap:8px;background:rgba(0,0,0,.18);border:1px solid rgba(184,145,82,.32);border-radius:12px;padding:10px 13px}
.shop-search input{width:100%;border:0;background:transparent;color:inherit;outline:none;font-size:16px}
.shop-result-count{white-space:nowrap;color:var(--muted,#a99982);font-size:14px}
.shop-categories{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}
.shop-category{border:1px solid rgba(184,145,82,.28);background:rgba(184,145,82,.06);color:inherit;border-radius:999px;padding:8px 12px;cursor:pointer}
.shop-category.active{background:rgba(184,145,82,.25);border-color:rgba(218,178,110,.62);font-weight:700}
.shop-status{min-height:22px;margin:10px 2px;color:#d8bd8f}
.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}
.shop-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.shop-item-card{min-width:0;display:flex;flex-direction:column;border:1px solid rgba(184,145,82,.25);border-radius:15px;padding:15px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));box-shadow:0 8px 20px rgba(0,0,0,.12)}
.shop-item-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.shop-item-category{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:#bda879}.shop-item-price{font-weight:800;color:#edce8e;white-space:nowrap}
.shop-item-card h3{font-family:Georgia,serif;margin:10px 0 6px;font-size:20px;color:#f0e1c2}.shop-item-card p{margin:0 0 10px;color:var(--muted,#b6a894);font-size:14px;line-height:1.42;flex:1}
.shop-item-meta{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 12px}.shop-item-meta span{font-size:12px;border:1px solid rgba(184,145,82,.23);border-radius:999px;padding:4px 7px;color:#cbb894;background:rgba(0,0,0,.12)}
.shop-add{width:100%;margin-top:auto;border:1px solid rgba(213,171,98,.5);border-radius:10px;padding:9px 11px;background:linear-gradient(180deg,#70502b,#4d331a);color:#f4e7cc;font-weight:700;cursor:pointer}.shop-add:hover{filter:brightness(1.12)}
.shop-empty{grid-column:1/-1;border:1px dashed rgba(184,145,82,.28);border-radius:14px;padding:32px;text-align:center;color:var(--muted,#b5a58e);display:flex;flex-direction:column;gap:6px}
.shop-cart{position:sticky;top:16px;border:1px solid rgba(184,145,82,.35);border-radius:16px;background:linear-gradient(180deg,rgba(60,39,21,.96),rgba(28,20,14,.98));box-shadow:0 14px 34px rgba(0,0,0,.28);overflow:hidden}
.shop-cart-head{display:flex;align-items:center;gap:10px;padding:15px 16px;border-bottom:1px solid rgba(184,145,82,.22)}.shop-cart-head h3{font-family:Georgia,serif;font-size:22px;margin:0}.shop-cart-badge{min-width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#b38142;color:#21150c;font-weight:900}.shop-cart-head .barspacer{flex:1}
.shop-cart-clear{border:0;background:transparent;color:#cdbb9e;cursor:pointer;text-decoration:underline}
.shop-cart-lines{max-height:52vh;overflow:auto;padding:5px 12px}.shop-cart-empty{padding:24px 6px;text-align:center;color:#aa9a83}
.shop-cart-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:11px 2px;border-bottom:1px solid rgba(184,145,82,.14)}.shop-cart-copy{min-width:0}.shop-cart-copy b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-cart-copy small{display:block;margin-top:3px;color:#b8a889}
.shop-cart-stepper{display:flex;align-items:center;border:1px solid rgba(184,145,82,.3);border-radius:9px;overflow:hidden}.shop-cart-stepper button{width:28px;height:30px;border:0;background:rgba(255,255,255,.06);color:inherit;cursor:pointer}.shop-cart-stepper span{min-width:28px;text-align:center;font-weight:700}
.shop-cart-remove{width:28px;height:28px;border-radius:999px;border:0;background:rgba(135,50,40,.25);color:#e5b7aa;cursor:pointer}
.shop-cart-foot{padding:14px 16px;border-top:1px solid rgba(184,145,82,.22)}.shop-cart-total-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.shop-cart-total-row strong{font-size:18px;color:#edce8e;text-align:right}
.shop-cart-notice{min-height:20px;margin-top:8px;font-size:12px;color:#cfba90}
.shop-checkout{margin-top:12px;padding-top:12px;border-top:1px solid rgba(184,145,82,.18);display:grid;gap:9px}
.shop-buyer-label{display:grid;gap:5px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#bfa981}
.shop-buyer-label select{width:100%;border:1px solid rgba(184,145,82,.35);border-radius:9px;background:#24180f;color:#f2e4ca;padding:9px 10px;font-size:14px}
.shop-buyer-balance{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;color:#cdbb9b}
.shop-insufficient{color:#e4a08d;font-weight:700}
.shop-checkout-btn{width:100%;border:1px solid rgba(213,171,98,.65);border-radius:10px;padding:11px 12px;background:linear-gradient(180deg,#8c6635,#61421f);color:#fff0d1;font-weight:800;cursor:pointer}
.shop-checkout-btn:disabled{cursor:not-allowed;filter:grayscale(.55);opacity:.5}
.shop-exchange-note{font-size:11px;line-height:1.35;color:#9d8f79}

@media(max-width:1100px){
  .shop-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shop-layout{grid-template-columns:minmax(0,1fr) 310px}
}
@media(max-width:820px){
  .shop-shell{padding:10px}
  .shop-hero{grid-template-columns:1fr auto;padding:18px;gap:14px}
  .shop-sign{grid-column:1/2;min-width:170px;width:max-content}.shop-sign b{font-size:24px}
  .shop-hero-copy{grid-column:1/-1;grid-row:2}.shop-hero-copy h2{font-size:27px}
  .shop-close{grid-column:2;grid-row:1}
  .shop-toolbar{grid-template-columns:1fr}
  .shop-layout{grid-template-columns:1fr}
  .shop-cart{position:static}
}
@media(max-width:560px){
  .shop-items{grid-template-columns:1fr}
  .shop-category{padding:7px 10px;font-size:13px}
  .shop-item-card{padding:13px}
  .shop-cart-lines{max-height:none}
  .shop-nav{min-width:42px}
}


/* v0.31.26 — Targans Gille med illustrerad butik */
.shop-hero.shop-hero-photo{
  position:relative;
  padding:0;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr);
  gap:0;
  align-items:stretch;
  min-height:330px;
  border-color:rgba(181,128,61,.62);
  background:linear-gradient(145deg,#151008,#26180d);
  box-shadow:0 18px 42px rgba(0,0,0,.34);
}
.shop-hero-media{
  position:relative;
  min-width:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 45% 40%,rgba(133,83,37,.28),transparent 44%),
    linear-gradient(145deg,#20150d,#0f0a07);
}
.shop-hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent 64%,rgba(17,11,7,.58) 100%),
    linear-gradient(180deg,transparent 70%,rgba(5,3,2,.30) 100%);
}
.shop-hero-media img{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  min-height:330px;
  display:block;
  object-fit:cover;
  object-position:center 42%;
  opacity:0;
  filter:saturate(.98) contrast(1.04) brightness(.94);
  transition:opacity .24s ease;
}
.shop-hero-media img.loaded{opacity:1}
.shop-hero-image-fallback{
  position:absolute;
  inset:0;
  z-index:0;
  display:grid;
  place-content:center;
  text-align:center;
  color:#d9b06d;
  font-family:Georgia,serif;
  text-transform:uppercase;
  letter-spacing:.10em;
}
.shop-hero-image-fallback span{font-size:13px;letter-spacing:.28em}
.shop-hero-image-fallback b{font-size:34px}
.shop-hero-photo .shop-hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:30px 28px;
  background:
    radial-gradient(circle at 0 35%,rgba(153,95,38,.15),transparent 48%),
    linear-gradient(180deg,#20150d,#130e09);
}
.shop-hero-kicker{
  align-self:flex-start;
  display:inline-flex;
  padding:5px 9px;
  margin-bottom:9px;
  border:1px solid rgba(205,154,83,.42);
  border-radius:999px;
  background:rgba(74,47,24,.54);
  color:#d9b06d;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.shop-hero-photo .shop-hero-copy h2{
  font-size:38px;
  line-height:1.05;
  text-shadow:0 2px 10px rgba(0,0,0,.42);
}
.shop-hero-photo .shop-hero-copy p{
  font-size:15px;
  color:#dbc9aa;
}
.shop-hero-photo .shop-close{
  position:absolute;
  z-index:4;
  top:14px;
  right:14px;
  align-self:auto;
  backdrop-filter:blur(8px);
  background:rgba(17,12,8,.76);
  border-color:rgba(211,162,90,.52);
}
@media(max-width:820px){
  .shop-hero.shop-hero-photo{
    grid-template-columns:1fr;
    min-height:0;
  }
  .shop-hero-media img{
    min-height:0;
    aspect-ratio:4/3;
    object-position:center center;
  }
  .shop-hero-media::after{
    background:linear-gradient(180deg,transparent 72%,rgba(7,4,2,.42) 100%);
  }
  .shop-hero-photo .shop-hero-copy{
    padding:18px 17px 20px;
  }
  .shop-hero-photo .shop-hero-copy h2{
    font-size:29px;
  }
  .shop-hero-photo .shop-hero-copy p{
    font-size:14px;
  }
}


/* v0.31.29 — compacta varurader */
.shop-items{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.shop-item-row{
  min-width:0;
  border:1px solid rgba(184,145,82,.24);
  border-radius:10px;
  background:linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.014));
  overflow:hidden;
}
.shop-item-main{
  min-height:42px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 78px 86px 54px;
  gap:7px;
  align-items:center;
  padding:5px 7px;
}
.shop-item-main .shop-item-category{
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#bda879;
}
.shop-item-name{
  min-width:0;
  padding:4px 2px;
  border:0;
  background:transparent;
  color:#f0e1c2;
  font:700 15px/1.2 Georgia,serif;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
}
.shop-item-name:hover,.shop-item-name[aria-expanded="true"]{
  color:#f5d696;
  text-decoration:underline;
  text-underline-offset:3px;
}
.shop-item-main .shop-item-price{
  font-size:13px;
  text-align:right;
}
.shop-row-stepper{
  display:grid;
  grid-template-columns:26px 28px 26px;
  align-items:center;
  border:1px solid rgba(184,145,82,.3);
  border-radius:8px;
  overflow:hidden;
}
.shop-row-stepper button{
  height:28px;
  padding:0;
  border:0;
  background:rgba(255,255,255,.055);
  color:inherit;
  cursor:pointer;
  font-size:16px;
}
.shop-row-stepper span{
  min-width:0;
  text-align:center;
  font-weight:800;
  font-size:13px;
}
.shop-row-buy{
  height:30px;
  padding:0 8px;
  border:1px solid rgba(213,171,98,.5);
  border-radius:8px;
  background:linear-gradient(180deg,#70502b,#4d331a);
  color:#f4e7cc;
  font-weight:800;
  cursor:pointer;
}
.shop-row-buy:hover{filter:brightness(1.12)}
.shop-item-details{
  padding:9px 12px 11px;
  border-top:1px solid rgba(184,145,82,.14);
  background:rgba(0,0,0,.10);
}
.shop-item-details.hidden{display:none}
.shop-item-details p{
  margin:6px 0 0;
  color:var(--muted,#b6a894);
  font-size:13px;
  line-height:1.42;
}
.shop-item-details .shop-item-meta{
  margin:0;
}
.shop-item-detail-price{
  margin-top:7px;
  font-size:12px;
  color:#cbb894;
}
@media(max-width:560px){
  .shop-item-main{
    grid-template-columns:minmax(0,1fr) 60px 78px 44px;
    gap:4px;
    padding:4px;
  }
  .shop-item-name{font-size:13px}
  .shop-item-main .shop-item-price{font-size:11px}
  .shop-row-stepper{grid-template-columns:23px 26px 23px}
  .shop-row-stepper button{height:27px}
  .shop-row-buy{height:28px;padding:0 5px;font-size:12px}
  .shop-item-details{padding:8px 9px 10px}
}


/* v0.31.30 — myntikoner för Targans valuta */
.shop-money,.shop-money-unit{
  display:inline-flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
}
.shop-money{gap:7px}
.shop-money-sep{opacity:.45;margin:0 -1px}
.shop-money-amount{font-variant-numeric:tabular-nums}
.shop-coin{
  --coin-edge:#8c6c2c;
  --coin-face:#d8ad3f;
  --coin-mark:#62440f;
  display:inline-flex;
  width:18px;
  height:18px;
  flex:0 0 18px;
  vertical-align:-4px;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.42));
}
.shop-coin svg{width:100%;height:100%;display:block}
.shop-coin-rim{fill:var(--coin-edge)}
.shop-coin-face{fill:var(--coin-face);stroke:rgba(255,255,255,.25);stroke-width:.55}
.shop-coin-mark{fill:none;stroke:var(--coin-mark);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.shop-coin-dot{fill:var(--coin-mark);stroke:none}
.shop-coin-gm{--coin-edge:#9a6a15;--coin-face:#e4b943;--coin-mark:#6a470b}
.shop-coin-sm{--coin-edge:#777d86;--coin-face:#c5c9cf;--coin-mark:#535a63}
.shop-coin-km{--coin-edge:#7a4527;--coin-face:#b66a3c;--coin-mark:#5e2e18}
.shop-money-sr{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.shop-item-price .shop-money-unit,
.shop-cart-copy small .shop-money-unit{justify-content:flex-end}
.shop-checkout-btn .shop-money{justify-content:center}
.shop-cart-total-row strong .shop-money{justify-content:flex-end}
@media(max-width:560px){
  .shop-coin{width:16px;height:16px;flex-basis:16px}
  .shop-money-unit{gap:3px}
}

/* v0.35.40: Alkemistens fristående butik använder beprövat köpflöde. */
.shop-alchemy .shop-hero.shop-hero-photo{border-color:#807d4c}
.shop-alchemy .shop-hero-media{
 background:
  radial-gradient(ellipse at 45% 70%,rgba(105,198,90,.44),transparent 26%),
  radial-gradient(ellipse at 60% 76%,rgba(137,51,157,.33),transparent 28%),
  linear-gradient(120deg,#3c2318,#180f0c 60%,#090e0c);
}
.shop-alchemy .shop-hero-media::before{
 content:'🧙‍♀️\\a 🔮';
 position:absolute;inset:0;display:grid;place-content:center;
 z-index:1;white-space:pre;text-align:center;line-height:1.3;font-size:84px;
 filter:drop-shadow(0 5px 12px #0009);
}
.shop-alchemy .shop-hero-image-fallback{z-index:3;place-content:end center;padding:0 14px 16px;background:linear-gradient(180deg,transparent 65%,rgba(12,6,4,.65))}
.shop-alchemy .shop-hero-image-fallback span{font-size:12px}
.shop-alchemy .shop-hero-image-fallback b{font-size:28px}
.shop-alchemy .shop-hero-copy{background:linear-gradient(135deg,#211b15,#14150e)!important}
.shop-alchemy .shop-hero-kicker{border-color:#879960;color:#c9dd95}
.shop-alchemy .shop-row-buy{background:linear-gradient(180deg,#596a37,#344329);border-color:#8b9a64}
.shop-price-pending{color:#d9b985;font-size:12px;font-weight:600;white-space:normal}
.shop-row-buy:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.35)}
.shop-alchemy-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px;padding:9px 0 0;margin:7px 0 0;border-top:1px solid #ffffff23}
.shop-alchemy-facts>div{display:block;min-width:0}
.shop-alchemy-facts dt{font-size:11px;line-height:1.35;color:#ceae7f;font-weight:800}
.shop-alchemy-facts dd{font-size:12px;line-height:1.45;color:#e9dbc4;margin:2px 0 0;overflow-wrap:anywhere}
.shop-alchemy-price-edit{margin-top:10px;border:1px solid #c5a668;background:#382819;color:#f8e7c2;border-radius:7px;padding:7px 10px;cursor:pointer}
.shop-alchemy .shop-item-row.expanded{border-color:#8b9763}
@media(max-width:560px){.shop-alchemy-facts{grid-template-columns:1fr}.shop-alchemy .shop-hero-media::before{font-size:72px}}


/* v0.35.63 — illustrated alchemist shop (user-supplied photograph). */
.shop-alchemy .shop-hero-media::before{content:none}
.shop-alchemy .shop-hero-media img{
  object-position:center 46%;
  filter:saturate(1.03) contrast(1.02) brightness(.97);
}
.shop-alchemy .shop-hero-media img.loaded + .shop-hero-image-fallback{
  visibility:hidden;
  opacity:0;
}
/* Värdshus */
.inn-nav{white-space:nowrap}
#innPage{width:100%}

.inn-hero.shop-hero-photo{
  border-color:rgba(176,105,54,.62);
  background:linear-gradient(145deg,#170d08,#32180e);
}
.inn-hero .shop-hero-copy{
  background:
    radial-gradient(circle at 0 35%,rgba(178,92,43,.18),transparent 48%),
    linear-gradient(180deg,#27140c,#140b08);
}
.inn-hero .shop-hero-kicker{
  border-color:rgba(221,151,93,.44);
  background:rgba(103,47,24,.50);
  color:#e6b27e;
}
/* Innkeeper portrait is now a sharp 1536x1152 JPEG (v0.35.04).
   Keep the existing restrained 4:3 layout, with full-resolution source for crisp mobile rendering. */
.inn-hero.shop-hero-photo{
  grid-template-columns:minmax(0,320px) minmax(0,1fr);
  min-height:240px;
}
.inn-hero .shop-hero-media{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:240px;
}
.inn-hero .shop-hero-media img{
  width:min(100%,320px);
  height:auto;
  min-height:0;
  max-height:240px;
  aspect-ratio:4/3;
  object-fit:cover;
  object-position:center 38%;
  flex:0 1 auto;
}
@media(max-width:820px){
  .inn-hero.shop-hero-photo{grid-template-columns:1fr;min-height:0}
  .inn-hero .shop-hero-media{min-height:0}
  .inn-hero .shop-hero-media img{width:min(100%,320px);height:auto;max-height:240px}
}
.inn-item-meta span:first-child{
  border-color:rgba(205,143,88,.36);
  color:#e0b486;
}

@media(max-width:560px){
  .inn-nav{min-width:42px}
}


/* v0.32.1 — fasta menysektioner i stället för kategorifilter */
#innItems.shop-items{
  display:flex;
  flex-direction:column;
  gap:18px;
}
.inn-menu-section{
  min-width:0;
}
.inn-menu-heading{
  margin:0 0 8px;
  padding:8px 11px 7px;
  border-bottom:1px solid rgba(205,143,88,.42);
  color:#edc08d;
  font:700 21px/1.15 Georgia,serif;
  letter-spacing:.02em;
  background:linear-gradient(90deg,rgba(120,61,29,.24),transparent 72%);
}
.inn-menu-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.inn-menu-empty{
  padding:8px 11px;
  color:var(--muted,#b6a894);
  font-size:13px;
  font-style:italic;
}
@media(max-width:560px){
  .inn-menu-heading{font-size:18px;padding:7px 8px 6px}
}


/* v0.32.2 — värdshusets tärningsbord */
.inn-game-panel{
  margin-top:18px;
  padding:18px;
  border:1px solid rgba(205,143,88,.34);
  border-radius:14px;
  background:
    radial-gradient(circle at 20% 0,rgba(150,72,31,.18),transparent 40%),
    linear-gradient(180deg,rgba(38,20,12,.92),rgba(18,11,8,.96));
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.inn-game-head{
  display:flex;
  gap:18px;
  justify-content:space-between;
  align-items:flex-start;
}
.inn-game-kicker{
  display:block;
  margin-bottom:4px;
  color:#d69b61;
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.inn-game-head h3{
  margin:0;
  color:#f0c792;
  font:700 26px/1.1 Georgia,serif;
}
.inn-game-head p{
  max-width:660px;
  margin:7px 0 0;
  color:#c9b79f;
  font-size:13px;
  line-height:1.45;
}
.inn-game-rules{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.inn-game-rules span{
  padding:6px 8px;
  border:1px solid rgba(205,143,88,.24);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  color:#cbb797;
  font-size:11px;
  white-space:nowrap;
}
.inn-game-controls{
  margin-top:14px;
  display:grid;
  grid-template-columns:minmax(160px,220px) minmax(280px,1fr) auto auto;
  gap:10px;
  align-items:end;
}
.inn-game-player{
  display:grid;
  gap:5px;
  color:#c7b493;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.inn-game-player select{
  min-height:39px;
  padding:7px 9px;
  border:1px solid rgba(205,143,88,.32);
  border-radius:9px;
  background:#17100c;
  color:#f0dfc4;
}
.inn-game-stakes{
  display:flex;
  gap:6px;
  align-items:center;
  flex-wrap:wrap;
}
.inn-game-stakes>span{
  margin-right:2px;
  color:#c7b493;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.inn-game-stakes button{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 10px;
  border:1px solid rgba(205,143,88,.28);
  border-radius:9px;
  background:rgba(255,255,255,.035);
  color:#ead9be;
  font-weight:800;
  cursor:pointer;
}
.inn-game-stakes button.active{
  border-color:#d39a5e;
  background:linear-gradient(180deg,#714021,#4b2917);
  box-shadow:0 0 0 1px rgba(224,164,99,.15) inset;
}
.inn-game-stakes .shop-coin{width:16px;height:16px;flex-basis:16px}
.inn-game-balance{
  min-width:150px;
  display:grid;
  gap:3px;
  color:#bca98c;
  font-size:12px;
}
.inn-game-balance span{white-space:nowrap}
.inn-game-play{
  min-height:40px;
  padding:8px 14px;
  border:1px solid rgba(224,164,99,.58);
  border-radius:9px;
  background:linear-gradient(180deg,#7d4826,#542d19);
  color:#fff0da;
  font-weight:900;
  cursor:pointer;
}
.inn-game-play:disabled{opacity:.45;cursor:not-allowed}
.inn-game-result{
  margin-top:14px;
  min-height:92px;
  display:grid;
  place-items:center;
  border:1px solid rgba(205,143,88,.16);
  border-radius:12px;
  background:rgba(0,0,0,.15);
}
.inn-game-awaiting{
  color:#a99984;
  font-size:13px;
}
.inn-game-rolls{
  width:100%;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:15px;
  align-items:center;
  padding:13px 16px 7px;
}
.inn-game-roll{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:9px;
  align-items:center;
}
.inn-game-roll:last-child{grid-template-columns:auto auto 1fr;text-align:right}
.inn-game-roll>span{color:#c4af91;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.inn-game-roll>div{display:flex;gap:5px}
.inn-game-roll>b{color:#f0c792;font:700 24px/1 Georgia,serif}
.inn-game-die{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid rgba(233,198,149,.42);
  border-radius:8px;
  background:#eee1c9;
  color:#372116;
  font-size:30px;
  line-height:1;
  box-shadow:0 3px 8px rgba(0,0,0,.28);
}
.inn-game-versus{color:#806e5b;font:italic 12px Georgia,serif}
.inn-game-outcome{
  width:100%;
  display:flex;
  justify-content:center;
  gap:9px;
  align-items:baseline;
  padding:4px 12px 12px;
  font-size:13px;
}
.inn-game-outcome strong{font:700 18px Georgia,serif}
.inn-game-outcome.win strong{color:#9ed59a}
.inn-game-outcome.tie strong{color:#e8c579}
.inn-game-outcome.loss strong{color:#d68e82}
.inn-game-notice{
  min-height:18px;
  margin-top:7px;
  color:#d9aa81;
  font-size:12px;
  text-align:right;
}
@media(max-width:860px){
  .inn-game-controls{grid-template-columns:1fr 1fr}
  .inn-game-play{width:100%}
}
@media(max-width:560px){
  .inn-game-panel{padding:13px}
  .inn-game-head{display:block}
  .inn-game-rules{justify-content:flex-start;margin-top:10px}
  .inn-game-controls{grid-template-columns:1fr}
  .inn-game-stakes{align-items:flex-start}
  .inn-game-rolls{grid-template-columns:1fr;padding:12px}
  .inn-game-versus{text-align:center}
  .inn-game-roll,.inn-game-roll:last-child{grid-template-columns:1fr auto auto;text-align:left}
  .inn-game-outcome{flex-direction:column;align-items:center;gap:2px}
}


/* v0.32.3 — kompakt tärningsbord på värdshuset + spelmodal */
.inn-game-launch{
  margin-top:18px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  gap:14px;
  align-items:center;
  padding:13px 15px;
  border:1px solid rgba(205,143,88,.34);
  border-radius:12px;
  background:
    radial-gradient(circle at 8% 50%,rgba(154,75,32,.17),transparent 28%),
    linear-gradient(180deg,rgba(38,20,12,.88),rgba(22,13,9,.94));
}
.inn-game-launch-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(225,169,106,.3);
  border-radius:10px;
  background:rgba(0,0,0,.2);
  font-size:26px;
}
.inn-game-launch-copy span{
  color:#d69b61;
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.inn-game-launch-copy h3{
  margin:1px 0 2px;
  color:#f0c792;
  font:700 20px/1.1 Georgia,serif;
}
.inn-game-launch-copy p{
  margin:0;
  color:#bba88e;
  font-size:12px;
}
.inn-game-launch-rules{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.inn-game-launch-rules span{
  padding:5px 7px;
  border:1px solid rgba(205,143,88,.2);
  border-radius:999px;
  color:#bda98b;
  font-size:10px;
  white-space:nowrap;
}
.inn-game-launch-btn{
  min-width:82px;
  min-height:38px;
  padding:8px 14px;
  border:1px solid rgba(224,164,99,.58);
  border-radius:9px;
  background:linear-gradient(180deg,#7d4826,#542d19);
  color:#fff0da;
  font-weight:900;
  cursor:pointer;
}
.inn-game-modalback{
  z-index:1700;
  padding:18px;
}
.inn-game-modal{
  width:min(820px,100%);
  max-height:min(90vh,760px);
  overflow:auto;
  padding:0;
  border-color:rgba(205,143,88,.42);
  background:#160e0a;
}
.inn-game-modalhead{
  position:sticky;
  top:0;
  z-index:2;
  padding:14px 16px;
  border-bottom:1px solid rgba(205,143,88,.22);
  background:rgba(22,14,10,.96);
}
.inn-game-modalhead h2{
  margin:1px 0 0;
  color:#f0c792;
  font:700 25px/1.05 Georgia,serif;
}
.inn-game-modal .inn-game-panel{
  margin:0;
  padding:17px;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.inn-game-modal .inn-game-head{
  align-items:center;
}
.inn-game-modal .inn-game-head>p{
  margin:0;
}
body.inn-game-open{overflow:hidden}
@media(max-width:700px){
  .inn-game-launch{grid-template-columns:auto minmax(0,1fr) auto}
  .inn-game-launch-rules{display:none}
}
@media(max-width:520px){
  .inn-game-launch{grid-template-columns:auto minmax(0,1fr);gap:10px}
  .inn-game-launch-btn{grid-column:1/-1;width:100%}
  .inn-game-modalback{padding:8px}
  .inn-game-modal{max-height:94vh}
}


/* v0.32.4 — sekventiellt DiceBox-kast: huset först, sedan spelaren */
.inn-game-dice-stage{
  position:relative;
  width:100%;
  height:245px;
  margin-top:14px;
  overflow:hidden;
  border:1px solid rgba(205,143,88,.2);
  border-radius:12px;
  background:
    radial-gradient(ellipse at 50% 45%,rgba(107,65,35,.28),transparent 60%),
    linear-gradient(180deg,#19100c,#0f0907);
}
.inn-game-dicebox-host{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.inn-game-dicebox-host canvas{
  width:100%!important;
  height:100%!important;
}
.inn-game-dicebox-host.unavailable{display:none}
.inn-game-dice-fallback{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
}
.inn-game-dice-fallback.hidden{display:none}
.inn-game-fallback-die{
  display:grid;
  place-items:center;
  width:72px;
  height:72px;
  border:1px solid rgba(233,198,149,.5);
  border-radius:14px;
  background:#eee1c9;
  color:#372116;
  font-size:62px;
  line-height:1;
  box-shadow:0 10px 20px rgba(0,0,0,.35);
}
.inn-game-fallback-die.rolling{
  animation:innDiceFallbackRoll .34s linear infinite;
}
@keyframes innDiceFallbackRoll{
  0%{transform:translate(-5px,-4px) rotate(-8deg)}
  35%{transform:translate(7px,-15px) rotate(12deg)}
  70%{transform:translate(-3px,4px) rotate(-5deg)}
  100%{transform:translate(-5px,-4px) rotate(-8deg)}
}
.inn-game-phase-label{
  position:absolute;
  left:10px;
  bottom:9px;
  z-index:4;
  padding:5px 8px;
  border:1px solid rgba(205,143,88,.24);
  border-radius:999px;
  background:rgba(15,9,7,.76);
  color:#d9b17e;
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
  pointer-events:none;
}
.inn-game-phase-message{
  min-height:70px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  text-align:center;
}
.inn-game-phase-message b{
  color:#f0c792;
  font:700 20px/1.15 Georgia,serif;
}
.inn-game-phase-message span{color:#aa9983;font-size:12px}
.inn-game-phase-message.house-settled b{color:#e4b16f}
.inn-game-modal .inn-game-result{min-height:76px}
@media(max-width:560px){
  .inn-game-dice-stage{height:205px}
  .inn-game-fallback-die{width:62px;height:62px;font-size:54px}
}
@media(prefers-reduced-motion:reduce){
  .inn-game-fallback-die.rolling{animation:none}
}


/* v0.32.5 — spelval + Fem kronor */
.inn-game-selector{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-bottom:12px;
}
.inn-game-selector button{
  min-height:42px;
  border:1px solid rgba(205,143,88,.25);
  border-radius:9px;
  background:rgba(255,255,255,.035);
  color:#cbb797;
  font-weight:900;
  cursor:pointer;
}
.inn-game-selector button.active{
  border-color:#d39a5e;
  background:linear-gradient(180deg,#714021,#4b2917);
  color:#fff0da;
}
.inn-game-selector button:disabled{opacity:.55;cursor:not-allowed}
.inn-five-paytable{
  min-width:310px;
  display:grid;
  gap:3px;
}
.inn-five-paytable>div{
  display:grid;
  grid-template-columns:minmax(105px,1fr) 72px 44px;
  gap:8px;
  align-items:center;
  padding:4px 7px;
  border-radius:6px;
  background:rgba(255,255,255,.025);
  color:#c8b59a;
  font-size:11px;
}
.inn-five-paytable small{text-align:right;color:#9e8e79}
.inn-five-paytable b{text-align:right;color:#edc08d}
.inn-five-rtp{
  margin-top:5px;
  color:#9f8f79;
  font-size:10px;
  text-align:right;
}
.inn-five-result{
  width:100%;
  padding:11px 12px;
}
.inn-five-result-dice{
  display:flex;
  justify-content:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.inn-five-result .inn-game-die{
  width:32px;
  height:32px;
  font-size:27px;
}
@media(max-width:650px){
  .inn-game-head{display:block}
  .inn-five-paytable{min-width:0;margin-top:10px}
  .inn-five-rtp{text-align:left}
}
/* Akademin — Alea Crusaders. Responsive player-facing academy inspired by Targans Gille. */
#academyPage{max-width:1240px;margin:0 auto;padding:clamp(12px,2.6vw,28px)}
.academy-shell{color:#f0e2cc;display:grid;gap:17px}
.academy-hero{
 display:grid;grid-template-columns:minmax(170px,31%) minmax(0,1fr);
 border:1px solid #967351;border-radius:16px;overflow:hidden;min-height:215px;
 background:radial-gradient(ellipse at right top,#553c26 0,transparent 55%),#201810;
 box-shadow:0 18px 40px #0005;
}
.academy-emblem{display:grid;place-items:center;background:
 radial-gradient(circle at 55% 45%,rgba(226,170,92,.28),transparent 42%),
 repeating-linear-gradient(126deg,#2a1c14 0 8px,#342315 9px 10px);
 background:
 linear-gradient(90deg,rgba(26,17,10,.28),rgba(20,12,8,.7)),
 url("./gandalf-hall-CZtYigAS.webp") center/cover;
 border-right:1px solid #8a6845}
.academy-emblem span{font-size:clamp(90px,12vw,166px);line-height:1;filter:drop-shadow(1px 9px 14px #0008)}
.academy-hero-copy{padding:clamp(18px,3.6vw,38px);display:flex;flex-direction:column;justify-content:center;gap:9px}
.academy-eyebrow{display:block;font:800 11px/1.3 system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#e9b572}
.academy-hero h2{font:700 clamp(30px,5vw,54px)/1 Georgia,serif;color:#f5d8a4;margin:0}
.academy-hero p{line-height:1.6;margin:0;max-width:64ch;color:#d7bda1}
.academy-topbar{display:flex;align-items:end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.academy-topbar label{display:grid;gap:6px;font:700 12px system-ui,sans-serif;color:#bda789}
.academy-topbar select{min-width:min(300px,80vw);max-width:100%;padding:10px 12px}
.academy-topbar .btn{min-height:42px}
.academy-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.academy-summary>div{display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px 16px;border:1px solid #856240;border-radius:10px;background:linear-gradient(160deg,#33281e,#1e1914)}
.academy-summary strong{font:700 29px Georgia,serif;color:#f6d199}
.academy-summary span{font-size:12px;color:#c3ad93}
.academy-layout{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(310px,.85fr);gap:16px;align-items:start}
.academy-panel{background:linear-gradient(150deg,#27211b,#191612);border:1px solid #715b44;border-radius:13px;padding:clamp(12px,2.5vw,20px);min-width:0}
.academy-panel-head{display:flex;justify-content:space-between;gap:9px;align-items:center;margin-bottom:12px}
.academy-panel h3{font:700 clamp(19px,2.3vw,24px) Georgia,serif;color:#eccda0;margin:0}
.academy-panel-head small{color:#ad967c;font-size:11px}
.academy-tools{display:grid;grid-template-columns:1fr minmax(125px,.38fr);gap:9px;align-items:center;margin:0 0 11px}
.academy-tools input,.academy-tools select{width:100%;min-width:0;padding:9px 11px}
.academy-check{display:flex!important;align-items:center;gap:8px;font-size:12px;color:#d1b99b;cursor:pointer}
.academy-check input{width:16px!important;min-width:16px!important;height:16px;accent-color:#b8975b}
.academy-bonus-line{padding:2px 0 12px}
.academy-skills{display:grid;gap:8px;max-height:610px;overflow-y:auto;scrollbar-color:#866847 transparent}
.academy-skill-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 11px;align-items:center;
 background:#211d18;border:1px solid #514535;border-radius:9px;padding:11px}
.academy-skill-row.ready{border-color:#a8874d;background:linear-gradient(95deg,#2c271b,#211d18)}
.academy-skill-title{min-width:0}.academy-skill-title b{display:block;font:700 15px Georgia,serif;color:#efdbbb}.academy-skill-title small{display:block;margin-top:4px;font-size:11px;color:#aa977d;overflow-wrap:anywhere}
.academy-skill-numbers{display:flex;grid-column:1/-1;gap:8px;flex-wrap:wrap;font-size:12px}
.academy-skill-numbers>span{border:1px solid #504535;border-radius:5px;padding:5px 7px;color:#b9a88c;background:#171411}
.academy-skill-numbers b{color:#ead4a9}
.academy-skill-actions{display:flex;flex-direction:column;align-items:end;gap:5px;grid-column:2;grid-row:1}
.academy-skill-actions .btn{font-size:12px;padding:7px 10px;min-height:36px}
.academy-can-buy{color:#a6d8a2;font-size:11px;font-weight:700}.academy-missing{color:#aa9880;font-size:11px}
.academy-empty{font-size:13px;color:#c9b69c;line-height:1.6;margin:10px 0;padding:12px}
.academy-training-intro{font-size:12px;line-height:1.55;color:#bba58a;margin-bottom:15px}
.academy-training-form{display:grid;gap:12px}
.academy-training-form label{display:grid;gap:5px;font:700 12px system-ui,sans-serif;color:#c9b08a}
.academy-training-form input,.academy-training-form select{width:100%;min-width:0;padding:9px 10px}
.academy-method{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.academy-method .btn{background:#29211a;border-color:#66543f;color:#cdb58f}
.academy-method .btn.active{background:linear-gradient(#654728,#422d1d);border-color:#cba36a;color:#ffe1af}
.academy-teacher-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}
.academy-teacher-grid .academy-check{font-size:11px;line-height:1.4}
.academy-training-quote{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;background:#1a1611;border-radius:9px;border:1px solid #54422e}
.academy-training-quote>div{display:grid;gap:3px}
.academy-training-quote span{font-size:11px;color:#b4a187}
.academy-training-quote strong{font-size:17px;color:#eed2a7}
.academy-start{width:100%;min-height:43px;background:#80522a!important;border-color:#c59452!important}
.academy-warning{color:#f3b59c;font-size:12px;line-height:1.4;margin:0}
.academy-active{padding:14px;border:1px solid #a9804a;border-radius:10px;background:#35271b}
.academy-active h3{margin:8px 0}.academy-active p{font-size:13px;color:#e0c4a2;line-height:1.5}
.academy-active button{min-height:43px}
.academy-active small{display:block;color:#f2b693;margin-top:7px}
.academy-notice{padding:12px 15px;border:1px solid #ab8a58;border-radius:9px;background:#32291d;color:#f3d7ae}
.academy-rules-note{line-height:1.55;padding:12px 14px;color:#ab977d;font-size:12px}
.academy-rules-note strong{color:#e6c492}
.academy-history{display:grid;gap:5px}
.academy-history .academy-history-row{font-size:12px;color:#c7b293;border-top:1px solid #4d3d2a;padding:8px 1px}
.academy-nav{white-space:nowrap}

@media(max-width:900px){.academy-layout{grid-template-columns:minmax(0,1fr)}.academy-skills{max-height:none;overflow:visible}}
@media(max-width:620px){
 #academyPage{padding:10px}
 .academy-hero{grid-template-columns:1fr;min-height:0}.academy-emblem{display:none}
 .academy-hero-copy{padding:19px}
 .academy-summary{gap:6px}
 .academy-summary>div{padding:10px 8px}
 .academy-summary strong{font-size:22px}
 .academy-summary span{font-size:10px}
 .academy-tools{grid-template-columns:1fr}
 .academy-skill-row{grid-template-columns:minmax(0,1fr)}
 .academy-skill-actions{grid-column:1;grid-row:auto;flex-direction:row;justify-content:space-between;align-items:center}
 .academy-teacher-grid{grid-template-columns:minmax(0,1fr)}
 .academy-topbar label{width:100%}.academy-topbar select{width:100%}
}

.academy-study-journal{padding:13px 17px}
.academy-study-journal summary{cursor:pointer;color:#ebc894;font:700 16px Georgia,serif}
.academy-study-journal[open] summary{margin-bottom:11px}
/* Akademin – illustration supplied for the academy courtyard. The image is inlined for reliable deployment. */
.academy-hero{grid-template-columns:minmax(0,42%) minmax(0,1fr);min-height:276px}
.academy-emblem{display:block;min-height:276px;background:url("data:image/avif;base64,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") center / cover no-repeat;border-right:1px solid #8a6845}
.academy-emblem span{display:none}
@media(max-width:620px){.academy-hero{grid-template-columns:1fr}.academy-emblem{display:block;min-height:0;aspect-ratio:4/3;max-height:340px;border-right:0;border-bottom:1px solid #8a6845;background-size:cover}.academy-hero-copy{padding:19px}}
/* v0.31.24 — rollpersons-glowup, scoped to the live character view */
body.character-glowup-active{
  --char-bg:#070b09;
  --char-panel:#091511;
  --char-panel-2:#0d2019;
  --char-panel-3:#123427;
  --char-line:#285646;
  --char-line-soft:#1d4035;
  --char-gold:#d4a256;
  --char-gold-soft:#9b7643;
  --char-cream:#f0eadf;
  --char-muted:#b5c6bf;
  background:
    radial-gradient(circle at 50% -10%,rgba(31,77,60,.20),transparent 33%),
    linear-gradient(180deg,#090e0b 0%,#050806 100%);
}

body.character-glowup-active header{
  background:rgba(7,10,8,.96);
  border-bottom-color:rgba(183,130,69,.34);
  box-shadow:0 12px 34px rgba(0,0,0,.28);
}

body.character-glowup-active header .bar h1{
  color:var(--char-cream);
  font-family:Georgia,"Times New Roman",serif;
}

body.character-glowup-active header .btn{
  background:linear-gradient(180deg,#171610,#0d0f0c);
  border-color:rgba(187,132,71,.48);
  color:#eee8dd;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}

body.character-glowup-active header .day-nav{
  background:linear-gradient(180deg,#18351f,#102419);
  border-color:#4b8f54;
}

body.character-glowup-active #view .sheet,
body.character-glowup-active #view .side{
  background:linear-gradient(180deg,rgba(10,20,16,.96),rgba(6,12,10,.98));
  border-color:rgba(53,105,85,.62);
  box-shadow:0 18px 46px rgba(0,0,0,.30);
}

body.character-glowup-active #view .tab{
  background:#0c1511;
  border-color:#3e4d40;
  color:#d2d9d5;
}

body.character-glowup-active #view .tab.active{
  background:linear-gradient(180deg,#194937,#123628);
  border-color:#4b806a;
  color:#fff8e9;
}

body.character-glowup-active #view .portrait{
  background:linear-gradient(145deg,#17261f,#090e0c);
  border-color:#315b4c;
}

body.character-glowup-active #view .identity .field,
body.character-glowup-active #view .quickstat{
  background:#0b1511;
  border-color:#29483c;
}

body.character-glowup-active #view .identity .label,
body.character-glowup-active #view .quickstat .label{
  color:#b8c8c1;
}

body.character-glowup-active #grundPanel > .glow-stat-section{
  position:relative;
  margin-top:18px;
  padding:16px;
  border:1px solid rgba(39,103,82,.72);
  border-radius:18px;
  background:
    radial-gradient(circle at 12% 0%,rgba(22,73,56,.18),transparent 42%),
    linear-gradient(180deg,rgba(7,25,19,.97),rgba(6,18,14,.99));
  box-shadow:
    inset 0 0 0 1px rgba(138,204,170,.025),
    0 14px 32px rgba(0,0,0,.22);
}

body.character-glowup-active #grundPanel > .glow-stat-section > .section-title{
  display:flex;
  align-items:center;
  gap:11px;
  margin:0 0 14px;
  color:var(--char-cream);
  font:700 27px/1.1 Georgia,"Times New Roman",serif;
}

body.character-glowup-active #grundPanel > .glow-stat-section > .section-title::before{
  content:attr(data-glow-icon);
  flex:0 0 auto;
  color:var(--char-gold);
  font:800 30px/1 system-ui,sans-serif;
  text-shadow:0 0 18px rgba(212,162,86,.14);
}

body.character-glowup-active #grundPanel > .glow-stat-section > .section-title::after{
  content:"";
  height:1px;
  flex:1 1 auto;
  margin-left:2px;
  background:linear-gradient(90deg,rgba(194,146,77,.72),rgba(194,146,77,.08));
}

/* Grundegenskaper */
body.character-glowup-active #basegrid{
  grid-template-columns:minmax(0,1fr) 84px 80px;
  border:1px solid rgba(73,132,109,.72);
  border-radius:15px;
  background:#09100d;
  overflow:hidden;
}

body.character-glowup-active #basegrid > div{
  padding:11px 14px;
  border-bottom:1px solid rgba(59,108,90,.42);
  color:#e8e9e4;
}

body.character-glowup-active #basegrid .glow-base-head{
  background:linear-gradient(180deg,#174a38,#123a2d);
  color:#e5eee9;
  border-bottom-color:#3e7662;
  font-weight:800;
}

body.character-glowup-active #basegrid .glow-base-name{
  display:flex;
  align-items:center;
  gap:13px;
  font-size:17px;
}

body.character-glowup-active #basegrid .glow-base-icon{
  width:24px;
  display:inline-grid;
  place-items:center;
  color:#ddd1bd;
  font-size:21px;
  font-weight:800;
  line-height:1;
}

body.character-glowup-active #basegrid .glow-base-label{
  min-width:0;
}

body.character-glowup-active #basegrid .glow-base-value{
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:19px;
  font-weight:850;
  color:#f3f0e9;
}

body.character-glowup-active #basegrid .glow-base-group{
  display:flex;
  align-items:center;
  justify-content:center;
}

body.character-glowup-active #basegrid .glow-base-group .calculated-value{
  min-width:48px;
  padding:5px 10px;
  border:1px solid rgba(164,119,63,.36);
  border-radius:9px;
  background:linear-gradient(180deg,#332819,#261e14);
  color:#e8b45f;
  box-shadow:inset 0 0 12px rgba(218,166,88,.04);
}

body.character-glowup-active #basegrid .glow-bonus-exp{
  margin:0;
  min-height:58px;
  border-bottom:0;
  background:
    radial-gradient(circle at 0 50%,rgba(181,125,58,.11),transparent 38%),
    linear-gradient(90deg,#17150f,#0c120e);
}

body.character-glowup-active #basegrid .glow-bonus-exp .label{
  display:flex;
  align-items:center;
  gap:9px;
  color:#a9d7db;
  font-size:12px;
  letter-spacing:.14em;
}

body.character-glowup-active #basegrid .glow-bonus-exp .label::before{
  content:"★";
  color:var(--char-gold);
  font-size:22px;
  letter-spacing:0;
}

body.character-glowup-active #basegrid .glow-bonus-exp .mini-stepper{
  gap:9px;
}

body.character-glowup-active #basegrid .glow-bonus-exp .mini-stepper button{
  width:38px;
  height:38px;
  border-radius:10px;
  border-color:#8b6a3f;
  background:#171711;
  color:#f3eadb;
  font-size:21px;
}

body.character-glowup-active #basegrid .glow-bonus-exp .erfval{
  min-width:28px;
  font-size:18px;
  color:#f3eee5;
}

/* Härledda värden */
body.character-glowup-active #derived{
  grid-template-columns:1fr;
  gap:11px;
}

body.character-glowup-active #derived .glow-derived-card{
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  min-height:92px;
  padding:12px 15px;
  border:1px solid rgba(66,131,105,.72);
  border-radius:15px;
  background:
    radial-gradient(circle at 14% 50%,rgba(55,126,93,.17),transparent 34%),
    linear-gradient(90deg,#123b2b,#0d2a20);
}

body.character-glowup-active #derived .glow-derived-icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(101,161,130,.48);
  border-radius:50%;
  color:#e0b968;
  background:rgba(7,31,22,.62);
  font-size:24px;
  line-height:1;
}

body.character-glowup-active #derived .glow-derived-copy{
  min-width:0;
}

body.character-glowup-active #derived .glow-derived-label{
  display:block;
  color:#add7dc;
  font-size:12px;
  line-height:1.2;
  letter-spacing:.15em;
  font-weight:850;
}

body.character-glowup-active #derived .glow-derived-description{
  margin-top:7px;
  color:#c4cec9;
  font-size:13px;
  line-height:1.35;
}

body.character-glowup-active #derived .glow-derived-value,
body.character-glowup-active #derived .val.glow-derived-value{
  min-width:92px;
  margin:0;
  padding:11px 14px;
  border:1px solid #d0a861;
  border-radius:10px;
  background:linear-gradient(180deg,#fff0c9,#ead6aa);
  color:#211a12;
  text-align:center;
  font-size:19px;
  font-weight:800;
  box-shadow:0 4px 12px rgba(0,0,0,.18);
}

body.character-glowup-active #derived input.glow-derived-value{
  width:112px;
  max-width:112px;
}

body.character-glowup-active #view .current-equipment-launch .btn{
  border-color:#56715f;
  background:#101c16;
}

@media(max-width:820px){
  body.character-glowup-active #grundPanel > .glow-stat-section{
    padding:14px;
  }
}

@media(max-width:560px){
  body.character-glowup-active main{
    padding:9px;
  }

  body.character-glowup-active #view .sheet{
    padding:10px;
  }

  body.character-glowup-active #grundPanel > .glow-stat-section{
    margin-top:13px;
    padding:10px;
    border-radius:15px;
  }

  body.character-glowup-active #grundPanel > .glow-stat-section > .section-title{
    margin-bottom:11px;
    font-size:23px;
  }

  body.character-glowup-active #grundPanel > .glow-stat-section > .section-title::before{
    font-size:26px;
  }

  body.character-glowup-active #basegrid{
    grid-template-columns:minmax(0,1fr) 62px 62px;
    border-radius:12px;
  }

  body.character-glowup-active #basegrid > div{
    padding:9px 8px;
  }

  body.character-glowup-active #basegrid .glow-base-name{
    gap:7px;
    font-size:15px;
  }

  body.character-glowup-active #basegrid .glow-base-icon{
    width:19px;
    font-size:17px;
  }

  body.character-glowup-active #basegrid .glow-base-value{
    font-size:17px;
  }

  body.character-glowup-active #basegrid .glow-base-group .calculated-value{
    min-width:39px;
    padding:4px 7px;
  }

  body.character-glowup-active #basegrid .glow-bonus-exp{
    padding:9px 9px!important;
    gap:7px;
  }

  body.character-glowup-active #basegrid .glow-bonus-exp .label{
    font-size:10px;
    letter-spacing:.10em;
  }

  body.character-glowup-active #basegrid .glow-bonus-exp .label::before{
    font-size:18px;
  }

  body.character-glowup-active #basegrid .glow-bonus-exp .mini-stepper{
    gap:5px;
  }

  body.character-glowup-active #basegrid .glow-bonus-exp .mini-stepper button{
    width:34px;
    height:34px;
  }

  body.character-glowup-active #derived .glow-derived-card{
    grid-template-columns:44px minmax(0,1fr) auto;
    gap:9px;
    min-height:82px;
    padding:10px;
    border-radius:12px;
  }

  body.character-glowup-active #derived .glow-derived-icon{
    width:40px;
    height:40px;
    font-size:20px;
  }

  body.character-glowup-active #derived .glow-derived-label{
    font-size:10px;
    letter-spacing:.12em;
  }

  body.character-glowup-active #derived .glow-derived-description{
    margin-top:5px;
    font-size:12px;
  }

  body.character-glowup-active #derived .glow-derived-value,
  body.character-glowup-active #derived .val.glow-derived-value{
    min-width:72px;
    padding:9px 9px;
    font-size:17px;
  }

  body.character-glowup-active #derived input.glow-derived-value{
    width:86px;
    max-width:86px;
  }
}
/* v0.35.43: dedicated Bilder tab for full-figure gallery and administration */
#view .character-figure-gallery{
  margin:12px 0 16px;
  padding:12px 14px;
  border:1px solid #466750;
  border-radius:14px;
  background:linear-gradient(135deg,#18291e,#101b15);
  box-shadow:inset 0 1px 0 #ffffff0c;
}
#view .character-figure-gallery[hidden]{display:none!important}
.character-figure-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 10px;color:#e8dac1}
.character-figure-heading b{font:700 17px Georgia,serif}
.character-figure-heading span{font-size:12px;color:#afbea7}
.character-figure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.character-figure-item{display:flex;align-items:center;gap:13px;min-width:0;padding:10px;border:1px solid #395644;background:#101913;border-radius:11px}
.character-figure-preview{width:104px;height:136px;flex:0 0 104px;padding:5px;border:1px solid #857048;border-radius:9px;background:radial-gradient(ellipse at 50% 35%,#263a2a,#0c130f 70%);display:flex;align-items:center;justify-content:center;cursor:zoom-in;overflow:hidden}
.character-figure-preview img{width:100%;height:100%;display:block;object-fit:contain}
.character-figure-preview:disabled{cursor:default;opacity:.75}
.character-figure-empty{font-size:54px;color:#819278}
.character-figure-description{display:flex;flex-direction:column;gap:5px;min-width:0;color:#f2e4cc}
.character-figure-description strong{font-size:14px}
.character-figure-description small,.character-figure-missing{font-size:12px;color:#a8b6a4}
.character-figure-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.character-figure-actions .smallbtn{padding:6px 10px;white-space:nowrap}
.character-figure-viewer{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:#000d;padding:20px}
.character-figure-viewer.hidden{display:none!important}
.character-figure-viewer-card{position:relative;width:min(650px,95vw);height:min(88vh,850px);display:grid;place-items:center;background:radial-gradient(ellipse at center,#243026,#0a0d0a);border:1px solid #9c7a49;border-radius:14px;box-shadow:0 16px 60px #000b;padding:30px 15px 15px}
.character-figure-viewer-card img{max-width:100%;max-height:100%;object-fit:contain}
.character-figure-viewer-card>button{position:absolute;right:9px;top:9px;width:33px;height:33px;border:1px solid #9c7a49;border-radius:8px;color:#fff;background:#241b16;cursor:pointer;font-size:23px;z-index:1}
@media(max-width:850px){.character-figure-grid{grid-template-columns:1fr}}
@media(max-width:460px){#view .character-figure-gallery{padding:10px}.character-figure-heading{flex-wrap:wrap}.character-figure-item{gap:10px}.character-figure-preview{width:82px;height:116px;flex-basis:82px}.character-figure-description strong{font-size:13px}}

#imagesPanel .character-figure-intro{color:#b9c9ba;font-size:13px;line-height:1.5;margin:0 0 12px}
#imagesPanel .character-figure-gallery{margin:0 0 10px}
/* Alea Crusaders · v0.35.58 · Current equipment, art-driven interface.
   Images: user-provided hall, square and tall sword-and-laurel frames. Artwork remains separate from
   interactive HTML overlays, so no baked-in rectangles or click-target offsets. */
#currentEquipmentModal{
  padding:10px;
  overflow-y:auto;
  overscroll-behavior:contain;
}
#currentEquipmentModal .current-equipment-modal{
  width:min(1000px,97vw);
  max-height:calc(100dvh - 20px);
  overflow-y:auto;
  border:1px solid #94744d;
  border-radius:17px;
  padding:12px 16px 18px;
  color:#ecdec8;
  background:linear-gradient(145deg,#1c1915,#0d100e);
  box-shadow:0 20px 60px #000c;
}
#currentEquipmentModal .modalhead{
  margin:0 0 5px;
  padding:0 4px 9px;
  border-bottom:1px solid #76562d;
}
#currentEquipmentModal .modalhead h2{
  color:#f8dfaa;
  font:700 clamp(19px,2.3vw,27px) Georgia,serif;
  text-shadow:0 1px 3px #000;
}
#currentEquipmentModal .modalclose{
  color:#f6d9a2;
  border-color:#9c7a45;
  background:#34291a;
}
#currentEquipmentModal .current-equipment-intro{
  color:#c9bba0;
  margin:5px 4px 12px;
  font-size:13px;
}
.gandalf-equip-scene{
  position:relative;
  isolation:isolate;
  width:min(100%,880px);
  aspect-ratio:1/1;
  margin:0 auto;
  overflow:hidden;
  background-color:#0c0d0b;
  background-image:url("./gandalf-hall-CZtYigAS.webp");
  background-size:100% 100%;
  background-position:center;
  box-shadow:0 5px 25px #000b,inset 0 0 14px #0008;
}
.gandalf-equip-scene::before{
  position:absolute;
  content:"";
  inset:2.8%;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(ellipse at 50% 49%,transparent 17%,rgba(0,0,0,.07) 67%,rgba(0,0,0,.27));
}
/* Aragorn: figure centered between both equipment columns, without intercepting clicks. */
.gandalf-equip-scene .gandalf-equip-center{
  position:absolute;
  z-index:0;
  inset:1% 25% 1% 25%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:radial-gradient(ellipse at 50% 43%,rgba(244,196,115,.06),transparent 58%);
  pointer-events:none;
}
.gandalf-equip-character{
  display:block;
  flex:0 0 auto;
  /* Size by height, not the narrow center column's width. This allows
     transparent margins in character uploads without shrinking the person. */
  width:auto;
  max-width:none;
  height:95%;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 7px 15px rgba(0,0,0,.77));
}
.gandalf-equip-figure-missing{
  margin:auto;
  max-width:85%;
  padding:12px 9px;
  border:1px dashed rgba(235,202,143,.6);
  border-radius:10px;
  background:rgba(17,15,13,.66);
  color:#ead8b7;
  font:700 clamp(10px,1.3vw,15px)/1.4 Georgia,serif;
  text-align:center;
  text-shadow:0 1px 3px #000;
}
.gandalf-equip-figure-missing small{
  display:block;
  margin-top:7px;
  font:400 clamp(8px,1.1vw,13px)/1.4 system-ui,sans-serif;
  color:#d7c5a8;
}
.gandalf-equip-slot{
  position:absolute;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:3px;
  width:22.5%;
  box-sizing:border-box;
  padding:0;
  background:none;
  border:0;
  color:#ffe3b2;
  cursor:pointer;
  font:inherit;
  transition:filter .16s ease,transform .16s ease;
  overflow:visible;
}
.gandalf-equip-slot:hover{
  filter:drop-shadow(0 0 9px rgba(255,195,79,.6));
  transform:translateY(-2px);
}
.gandalf-equip-slot:focus-visible{outline:2px solid #f8d282;outline-offset:3px;z-index:3}
.gandalf-equip-face{
  position:relative;
  display:grid;
  place-items:center;
  flex:none;
  aspect-ratio:1/1;
  width:100%;
  padding:17%;
  box-sizing:border-box;
  background-color:transparent;
  background-image:url("./alea-frame-square-transparent-CDXOjmOS.png");
  background-size:100% 100%;
  background-position:center;
  background-repeat:no-repeat;
}
.gandalf-equip-value{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  max-width:100%;
  max-height:100%;
  padding:3px;
  border-radius:5px;
  background:transparent;
  font:700 clamp(10px,1.35vw,15px)/1.22 Georgia,serif;
  color:#fff1ca;
  text-align:center;
  overflow-wrap:anywhere;
  text-shadow:0 1px 3px #000,0 0 7px #000;
}
.gandalf-equip-label{
  align-self:stretch;
  display:block;
  min-height:1.25em;
  text-align:center;
  color:#f8d9a4;
  font:700 clamp(10px,1.5vw,17px)/1.25 Georgia,serif;
  letter-spacing:.015em;
  text-shadow:0 1px 3px #000,0 0 9px #000;
  white-space:normal;
}
/* Armor: four large square frames, a hairline gap, as close to the left edge as possible.
   Armor text overlays each frame's far-left edge instead of reserving a column. */
.gandalf-equip-scene .gandalf-equip-head,
.gandalf-equip-scene .gandalf-equip-arms,
.gandalf-equip-scene .gandalf-equip-torso,
.gandalf-equip-scene .gandalf-equip-legs{
  left:0.3%;
  width:24.3%;
  flex-direction:column;
  align-items:stretch;
  gap:0;
}
.gandalf-equip-head{top:0.6%}
.gandalf-equip-arms{top:25.3%}
.gandalf-equip-torso{top:50%}
.gandalf-equip-legs{top:74.7%}
.gandalf-equip-scene .gandalf-equip-head .gandalf-equip-face,
.gandalf-equip-scene .gandalf-equip-arms .gandalf-equip-face,
.gandalf-equip-scene .gandalf-equip-torso .gandalf-equip-face,
.gandalf-equip-scene .gandalf-equip-legs .gandalf-equip-face{
  flex:0 0 auto;
  width:100%;
}
.gandalf-equip-scene .gandalf-equip-head .gandalf-equip-label,
.gandalf-equip-scene .gandalf-equip-arms .gandalf-equip-label,
.gandalf-equip-scene .gandalf-equip-torso .gandalf-equip-label,
.gandalf-equip-scene .gandalf-equip-legs .gandalf-equip-label{
  position:absolute;
  z-index:2;
  inset:0 auto 0 0;
  width:15%;
  height:100%;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  white-space:nowrap;
  font-size:clamp(10px,1.5vw,17px);
  pointer-events:none;
}
/* Three large right-side slots, vertically stacked outside the centered figure. */
.gandalf-equip-leftHand{top:1%;right:1%;left:auto;width:23%}
.gandalf-equip-rightHand{top:27%;right:1%;left:auto;width:23%}
.gandalf-equip-projectiles{top:53%;right:1%;left:auto;width:23%}
/* A two-handed weapon merges left/right hand slots into ONE continuous tall
   golden frame. The individual hand slots are not rendered while this is active. */
.gandalf-equip-twohand{top:1%;right:1%;left:auto;width:23%;height:46%;gap:2px}
.gandalf-equip-twohand .gandalf-equip-face{
  flex:1 1 auto;
  min-height:0;
  height:auto;
  aspect-ratio:auto;
  padding:8% 10%;
  overflow:hidden;
  background-image:url("./alea-frame-tall-transparent-DY6GrvUF.png");
  background-size:100% 100%;
  background-position:center;
}
/* The transparent PNG is the single frame layer. Do not duplicate it over the weapon. */
.gandalf-equip-twohand .gandalf-equip-value{
  position:relative;
  z-index:2;
  font-size:clamp(11px,1.6vw,17px);
  line-height:1.2;
  padding:7px;
  max-width:86%;
  background:rgba(10,8,7,.65);
}
.gandalf-equip-twohand .gandalf-equip-label{
  white-space:normal;
  flex:none;
  line-height:1.1;
  font-size:clamp(10px,1.35vw,15px);
  overflow-wrap:anywhere;
}
.gandalf-equip-twohand .gandalf-equip-label small{
  display:block;
  margin-top:3px;
  font:400 clamp(8px,1.1vw,12px)/1.2 system-ui,sans-serif;
  color:#dec69d;
}

#currentEquipmentModal .current-equipment-picker{
  max-width:880px;
  margin:14px auto 0;
  border:1px solid #816440;
  border-radius:12px;
  background:#f3e5c9;
  padding:12px 16px 16px;
  box-shadow:0 5px 18px #0005;
}
#currentEquipmentModal .current-equipment-pickerhead h3{color:#57371e}
#currentEquipmentModal .current-equipment-picker-close{color:#694526}
@media(max-width:620px){
  #currentEquipmentModal{padding:4px}
  #currentEquipmentModal .current-equipment-modal{width:100%;max-height:calc(100dvh - 8px);padding:9px 7px 13px;border-radius:11px}
  #currentEquipmentModal .current-equipment-intro{font-size:11px;margin:6px 2px 8px}
  .gandalf-equip-scene .gandalf-equip-center{inset:1% 25% 1% 25%}
  .gandalf-equip-figure-missing{padding:6px 4px}
  /* Keep the larger layout and vertical armor labels even on phones. */
  .gandalf-equip-scene .gandalf-equip-head .gandalf-equip-label,
  .gandalf-equip-scene .gandalf-equip-arms .gandalf-equip-label,
  .gandalf-equip-scene .gandalf-equip-torso .gandalf-equip-label,
  .gandalf-equip-scene .gandalf-equip-legs .gandalf-equip-label{font-size:clamp(8px,2.4vw,12px)}
  .gandalf-equip-value{font-size:clamp(8px,2.2vw,12px);line-height:1.1}
  .gandalf-equip-label{font-size:clamp(8px,2.5vw,13px)}
  #currentEquipmentModal .current-equipment-picker{padding:12px 8px}
}
@media(prefers-reduced-motion:reduce){
  .gandalf-equip-slot{transition:none}
}

/* v0.35.72 — ammunition follows equipped ranged/thrown weapons automatically. */
.gandalf-equip-projectiles .gandalf-equip-face{overflow:hidden}
.gandalf-equip-projectiles .gandalf-ammo-images{
 position:absolute;inset:17% 13% 18%;
 display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;
}
.gandalf-equip-projectiles .gandalf-ammo-item{
 flex:1 1 0;min-width:0;height:100%;position:relative;
 display:grid;place-items:center;
}
.gandalf-equip-projectiles .gandalf-ammo-item img{
 width:100%;height:100%;object-fit:contain;
 filter:drop-shadow(0 2px 3px rgba(0,0,0,.8));
}
/* Counter is attached to the FRAME, not to the projectile image.
   Bottom-right placement remains fixed for 1H, 2H and dual-ammo layouts. */
.gandalf-equip-projectiles .gandalf-equip-face>.gandalf-ammo-count{
 position:absolute;z-index:3;bottom:8%;right:8%;
 display:grid;place-items:center;box-sizing:border-box;
 min-width:25px;min-height:25px;padding:4px 7px;
 border:1px solid #d8ab67;border-radius:999px;
 background:#2d2116;color:#fbe6bc;
 font:800 clamp(12px,1.45vw,17px)/1 system-ui,sans-serif;
 font-variant-numeric:tabular-nums;
 text-shadow:0 1px 2px #000a;
 box-shadow:0 2px 6px #000c;
 white-space:nowrap;
 pointer-events:none;
}
.gandalf-equip-projectiles .gandalf-equip-face>.gandalf-ammo-count.out{
 color:#ffb9ae;border-color:#c87765;background:#4a1d1b;
}
.gandalf-equip-projectiles.dual .gandalf-equip-face>.gandalf-ammo-count{
 font-size:clamp(10px,1.2vw,14px);padding:4px 6px;
}
.gandalf-equip-projectiles .gandalf-ammo-fallback{
 display:block;max-width:100%;overflow-wrap:anywhere;text-align:center;
 color:#f5dfa9;font:700 clamp(8px,1.1vw,12px)/1.25 Georgia,serif;
}
.gandalf-equip-projectiles .gandalf-ammo-empty{
 color:#ac9b83;font:700 clamp(20px,3vw,32px)/1 Georgia,serif;
}
.gandalf-equip-projectiles .gandalf-equip-label small{
 display:block;max-width:100%;margin-top:2px;color:#e7d6b6;
 font:400 clamp(8px,1.07vw,12px)/1.25 system-ui,sans-serif;
 overflow-wrap:anywhere;
}
.gandalf-equip-projectiles.dual .gandalf-ammo-images{inset:17% 11% 18%}
@media(max-width:620px){
 .gandalf-equip-projectiles .gandalf-ammo-images{inset:18% 13% 20%}
 .gandalf-equip-projectiles .gandalf-equip-face>.gandalf-ammo-count{
  min-width:19px;min-height:19px;font-size:12px;padding:2px 5px;
  bottom:8%;right:8%;
 }
 .gandalf-equip-projectiles.dual .gandalf-equip-face>.gandalf-ammo-count{
  font-size:9px;padding:2px 4px;
 }
 .gandalf-equip-projectiles .gandalf-equip-label small{font-size:8px}
}

/* Desktop: scale the entire square equipment scene to the available screen
   height. Width sets the scene size (1:1), so all armor slots and the feet
   remain visible even in shorter laptop/browser windows. Leave overflow:auto
   alone: the equipment picker below the scene must still be scrollable. */
@media (min-width:761px){
  #currentEquipmentModal .current-equipment-modal{
    width:min(1000px,calc(100vw - 32px),calc(100dvh - 140px));
    box-sizing:border-box;
  }
}
/* v0.35.85 — unique magical inventory instances, not master register types */
.character-item-magic-control{
 display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0;
 color:#efd3a3;font:700 12px/1.25 system-ui,sans-serif;
}
.character-item-magic-control label{
 display:inline-flex;gap:6px;align-items:center;cursor:pointer;
 white-space:nowrap;min-height:30px;color:#e6c48d;
}
.character-item-magic-control input{
 appearance:auto!important;accent-color:#a579b4;
 width:16px!important;height:16px!important;min-width:16px!important;
 margin:0;cursor:pointer;
}
.character-item-magic-control .smallbtn{
 min-height:34px;max-width:100%;font:700 11px system-ui,sans-serif;
 white-space:normal;overflow-wrap:anywhere;border-color:#9b729d;
 background:linear-gradient(#42304a,#291f32);color:#f0dcfa;
}
.character-equip-magic{
 grid-column:1/-1;align-self:center;
 border-top:1px solid #554165;padding:8px 0 0;
 min-width:0;
}
.character-item-magic-badge{
 display:inline-flex;align-items:center;gap:3px;
 width:fit-content;max-width:100%;margin:3px 0 1px 5px;
 padding:3px 6px;border:1px solid #9b76ac;border-radius:7px;
 background:linear-gradient(115deg,#403049,#241c2c);
 color:#e9d1f5;font:700 10px/1.3 system-ui,sans-serif;
 white-space:normal;overflow-wrap:anywhere;vertical-align:middle;
}
.character-magic-list{display:grid;gap:10px}
.character-magic-list>p{margin:3px 0}
.character-magic-power{
 display:grid;grid-template-columns:minmax(0,1fr) auto auto;
 align-items:center;gap:7px;padding:11px;border:1px solid #6e4e7f;
 border-radius:9px;background:linear-gradient(115deg,#2b2133,#1d1822);
}
.character-magic-power b,.character-magic-power small{display:block;overflow-wrap:anywhere}
.character-magic-power b{font-size:13px;color:#f1dbff}
.character-magic-power small{font-size:11px;color:#c7adcc;margin-top:4px}
.character-magic-power button{min-height:35px}
.character-magic-editor .wide{grid-column:1/-1}
.character-magic-editor textarea{min-height:74px}
.character-magic-editor [hidden]{display:none!important}
.character-magic-editor input,.character-magic-editor select{
 min-width:0;max-width:100%;
}
.inventorytable.equipment-stack-editing{
 grid-template-columns:minmax(0,1fr) 78px 88px minmax(145px,1fr);
}
.inventorytable>.equipment-stack-actions{
 flex-wrap:wrap;gap:4px;align-content:center;
}
.inventorytable>.equipment-stack-actions .character-item-magic-control{
 width:100%;justify-content:center;gap:5px;
}
.inventorytable>.equipment-stack-actions .character-item-magic-control .smallbtn{
 font-size:10px;padding:5px 6px;min-height:30px;
}
@media(max-width:700px){
 .inventorytable.equipment-stack-editing{
  grid-template-columns:minmax(0,1fr) 53px 62px minmax(94px,102px);
 }
 .inventorytable>.equipment-stack-actions{
  flex-wrap:wrap!important;gap:3px!important;
  padding:5px 2px;justify-content:center;
 }
 .inventorytable>.equipment-stack-actions .character-item-magic-control{
  display:grid;grid-template-columns:1fr;gap:3px;justify-items:center;
  font-size:10px;
 }
 .inventorytable>.equipment-stack-actions .character-item-magic-control label{
  font-size:10px;min-height:28px;gap:3px;
 }
 .inventorytable>.equipment-stack-actions .character-item-magic-control input{
  width:15px!important;height:15px!important;min-width:15px!important;
 }
 .inventorytable>.equipment-stack-actions .character-item-magic-control .smallbtn{
  padding:5px 3px;max-width:100%;font-size:10px;min-height:30px;
 }
 .character-magic-power{grid-template-columns:minmax(0,1fr) auto}
 .character-magic-power>div{grid-column:1/-1}
 .character-equip-magic{margin-top:2px}
 .character-item-magic-badge{font-size:9px;padding:2px 4px}
}

/* v0.35.86 – generic magical item creator and recovery states */
.character-magic-create .wide{grid-column:1/-1}
.character-magic-create label{min-width:0}
.character-magic-create select,.character-magic-create input{width:100%;max-width:100%;min-width:0}
.character-magic-power-status{
 display:flex;flex-direction:column;gap:4px;min-width:90px;
 font-size:11px;line-height:1.25;color:#eeddb7;
}
.character-magic-power-status .ready{color:#9fe1ae;font-weight:800}
.character-magic-power-status .not-ready{color:#f1b18f;font-weight:800}
.character-magic-power-status button{min-height:34px;max-width:100%;white-space:normal}
#magicCreateBtn{margin:8px 0;border-color:#9c79ae;background:linear-gradient(#443052,#2b2036);color:#f6e5fb}
@media(max-width:700px){
 .character-magic-power-status{grid-column:1/-1}
 .character-magic-power-status button{align-self:start}
}


/* v0.35.87 — independently headed item spell section on the character */
.character-item-spells-section{border-top:1px solid #6b4f78;padding-top:14px}
.character-item-spell-list{display:grid;gap:9px}
.character-item-spell-row{
 display:grid;grid-template-columns:minmax(0,1.5fr) minmax(100px,.8fr) minmax(120px,.8fr);
 align-items:center;gap:8px;border:1px solid #705383;border-radius:9px;
 padding:10px;background:linear-gradient(110deg,#292032,#1b1821);
}
.character-item-spell-name{
 background:none;border:0;color:#ead5f7;font:800 13px/1.35 inherit;
 text-align:left;padding:0;cursor:pointer;text-decoration:underline;
 text-decoration-color:#8e6d9b;text-underline-offset:3px;
}
.character-item-spell-row small{display:block;margin-top:4px;color:#bba5c8;font-size:11px;overflow-wrap:anywhere}
.character-item-spell-stats{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:#e0c4eb}
.character-item-spell-stats span{white-space:nowrap}
.character-item-spell-state{border-radius:6px;padding:5px 7px;font-size:11px;font-weight:800;text-align:center}
.character-item-spell-state.ready{background:#183c2c;color:#a8e1b9}
.character-item-spell-state.waiting{background:#453023;color:#f0c7ab}
.character-item-spell-empty{font-size:12px;color:#bda8c8;padding:10px 0;margin:0}
.combat-row-magic-menu .combat-spell-source-group{
 margin:10px 0;border-top:1px solid #745679;padding-top:8px;
}
.combat-row-magic-menu .combat-spell-source-group h4{
 color:#e2c5ed;font-size:12px;letter-spacing:.03em;margin:0 0 8px;
}
.combat-row-magic-menu .combat-spell-source-group button:disabled{opacity:.52;cursor:not-allowed}
@media(max-width:600px){
 .character-item-spell-row{grid-template-columns:minmax(0,1fr) auto}
 .character-item-spell-row>div:first-child{grid-column:1/-1}
 .character-item-spell-stats{grid-column:1}
 .character-item-spell-state{grid-column:2;max-width:145px}
}

/* Per-instance equipment artwork; master image remains untouched. */
.character-item-image-preview{display:inline-flex;align-items:center;justify-content:center;
 width:43px;height:43px;min-width:43px;border-radius:8px;border:1px solid #755980;background:#1a1720;
 color:#beabc1;overflow:hidden}
.character-item-image-preview .character-gear-image{width:100%;height:100%;object-fit:contain}
.character-item-image-editor{display:grid;gap:12px;max-width:100%}
.character-item-image-editor>p{margin:0;line-height:1.5}
.character-item-image-editor .item-art-editor{min-width:0}
.character-item-image-master{display:flex;gap:12px;align-items:center;flex-wrap:wrap;
 padding:10px;border-radius:9px;border:1px solid #695777;background:#231c2c}
.character-item-image-master strong{flex-basis:100%}
.character-item-image-master .character-gear-image{width:110px;height:100px;max-width:100%;object-fit:contain}
.weapon-row .character-gear-image,.character-shield-name .character-gear-image{width:34px;height:34px;
 object-fit:contain;vertical-align:middle;margin-right:7px;border-radius:5px;background:#211b24}
.character-item-image-editor .rule-editor-actions{flex-wrap:wrap}
@media(max-width:700px){
 .character-item-image-preview{width:36px;height:36px;min-width:36px}
 .character-item-image-editor .item-art-editor-content{min-width:0}
}

/* v0.35.90 — Bold gold glow traces alpha-transparent magical equipment artwork.
   Neither the decorative frame nor the character portrait is affected. */
@keyframes aleaMagicalGoldPulse{
  0%,100%{
    filter:
      drop-shadow(0 0 4px rgba(255,244,190,.98))
      drop-shadow(0 0 10px rgba(255,214,110,.95))
      drop-shadow(0 0 18px rgba(255,179,58,.82))
      drop-shadow(0 0 28px rgba(232,140,24,.58));
  }
  50%{
    filter:
      drop-shadow(0 0 6px rgba(255,248,214,1))
      drop-shadow(0 0 14px rgba(255,224,128,.98))
      drop-shadow(0 0 24px rgba(255,186,66,.90))
      drop-shadow(0 0 38px rgba(240,150,28,.72));
  }
}
.gandalf-equip-slot.magical .gandalf-equip-face > img.gandalf-equip-art{
  animation:aleaMagicalGoldPulse 2.2s ease-in-out infinite;
  will-change:filter;
}
/* v0.35.104 — Combat equipment has a small dark art tile. The old multi-layer
   38px aura amplified semi-transparent haze in uploaded images until it looked
   like an opaque gold rectangle. Keep the stronger aura in Aktuell utrustning,
   but render combat artwork on a clear tile with only a narrow alpha glow. */
.combat-turn-equip-art.magical:not(.magical-no-art) > .combat-turn-art-frame{
  background:none;
  box-shadow:none;
}
.combat-turn-equip-art.magical .combat-turn-art-frame > img.combat-turn-art{
  animation:none;
  will-change:auto;
  filter:
    drop-shadow(0 2px 3px rgba(0,0,0,.72))
    drop-shadow(0 0 3px rgba(242,187,78,.32));
}
/* Without alpha-transparent artwork, emphasize the item name and its slot. */
.gandalf-equip-slot.magical-no-art .gandalf-equip-value{
  color:#fff1c7;
  text-shadow:
    0 0 6px rgba(255,232,151,1),
    0 0 16px rgba(255,190,74,.95),
    0 0 28px rgba(240,150,34,.72),
    0 1px 3px #000;
}
.gandalf-equip-slot.magical-no-art .gandalf-equip-face{
  box-shadow:
    inset 0 0 0 1px rgba(255,213,111,.38),
    inset 0 0 18px rgba(255,185,66,.30),
    0 0 18px rgba(240,156,35,.16);
}
.combat-turn-equip-art.magical-no-art .combat-turn-art-frame{
  box-shadow:
    inset 0 0 0 1px rgba(255,214,116,.42),
    inset 0 0 16px rgba(255,188,70,.26),
    0 0 18px rgba(240,156,35,.14);
}
.combat-turn-equip-art.magical-no-art .combat-turn-art-empty{
  color:#ffe09a;
  text-shadow:
    0 0 8px rgba(255,221,120,.92),
    0 0 18px rgba(255,183,62,.80);
}
@media(prefers-reduced-motion:reduce){
  .gandalf-equip-slot.magical .gandalf-equip-face > img.gandalf-equip-art{
    animation:none;
    will-change:auto;
    filter:
      drop-shadow(0 0 5px rgba(255,240,176,1))
      drop-shadow(0 0 12px rgba(255,206,92,.92))
      drop-shadow(0 0 22px rgba(241,160,40,.72));
  }
}

/* v0.35.95 — shared gold sigil for individually enchanted items.
   List items use the transparent rune; equipment HUDs place it on a dark coin. */
.character-item-magic-badge{
 display:inline-flex;align-items:center;justify-content:center;
 width:25px;height:25px;max-width:none;
 margin:0 1px 0 5px;padding:0;border:0;border-radius:0;
 background:none;box-shadow:none;vertical-align:middle;
 flex:0 0 25px;line-height:1;
}
.character-item-magic-badge>img{
 display:block;width:100%;height:100%;object-fit:contain;
 filter:drop-shadow(0 0 3px rgba(249,192,60,.45));
}
.character-item-magic-control>.character-item-magic-badge{margin-left:0}
.alea-magic-item-dot{
 position:absolute;z-index:8;left:6%;top:6%;
 width:clamp(21px,2.6vw,34px);height:auto;aspect-ratio:1;
 display:grid;place-items:center;
 padding:2px;box-sizing:border-box;
 border-radius:50%;border:1px solid rgba(226,166,65,.86);
 background:radial-gradient(circle at 34% 25%,#554027 0%,#292015 49%,#120d0b 100%);
 box-shadow:inset 0 0 8px rgba(224,148,50,.24),0 2px 6px rgba(0,0,0,.84),0 0 6px rgba(244,176,44,.40);
 pointer-events:none;
}
.alea-magic-item-dot>img{
 display:block;width:100%;height:100%;object-fit:contain;
 filter:drop-shadow(0 0 3px rgba(255,194,78,.52));
}
.gandalf-equip-face>.alea-magic-item-dot{left:8%;top:8%;z-index:9}
.gandalf-equip-twohand .gandalf-equip-face>.alea-magic-item-dot{left:9%;top:5%}
.combat-turn-art-frame>.alea-magic-item-dot{
 left:2px;top:2px;width:clamp(19px,2vw,26px);z-index:9;
}
@media(max-width:620px){
 .character-item-magic-badge{width:21px;height:21px;flex-basis:21px;padding:0}
 .gandalf-equip-face>.alea-magic-item-dot{width:clamp(19px,5.4vw,27px);padding:1px}
 .combat-turn-art-frame>.alea-magic-item-dot{width:19px;padding:1px}
}
/* Alea equipment art editor and equipped-slot previews · v0.35.51 */
.item-art-editor{grid-column:1/-1;border:1px solid #af8753;border-radius:11px;background:linear-gradient(140deg,#fdf2d8,#ead5ae);padding:12px;color:#382719}
.item-art-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}
.item-art-heading strong{font:700 17px Georgia,serif;color:#5c3517}
.item-art-heading span{font:400 12px/1.45 system-ui,sans-serif;color:#695136}
.item-art-editor-content{display:flex;gap:14px;align-items:center}
.item-art-preview{display:grid;place-items:center;flex:none;width:140px;max-width:42%;aspect-ratio:1/1;border:1px solid #b69a71;border-radius:12px;background:radial-gradient(circle at center,#3c3327,#151513);overflow:hidden}
.item-art-preview img{width:100%;height:100%;object-fit:contain;padding:5%;box-sizing:border-box}
.item-art-empty{padding:8px;color:#dbcbaa;font:12px/1.35 system-ui,sans-serif;text-align:center}
.item-art-controls{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}
.item-art-controls small{font:12px/1.35 system-ui,sans-serif;color:#5f4f39}
.item-art-upload{display:inline-flex!important;position:relative;align-items:center;justify-content:center;border:1px solid #886a43;border-radius:8px;padding:9px 12px;background:#3b2b1b;color:#ffebc8!important;cursor:pointer;font-weight:700!important;overflow:hidden}
.item-art-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.item-art-thumb img{object-fit:contain!important;background:transparent!important}
.gandalf-equip-face:has(.gandalf-equip-art){padding:0}
.gandalf-equip-art{position:absolute;inset:4% 4% 17%;height:79%;width:92%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.gandalf-equip-face:has(.gandalf-equip-art) .gandalf-equip-value{position:absolute;z-index:2;bottom:5%;left:7%;right:7%;max-height:24%;font-size:clamp(8px,1.05vw,12px);line-height:1.15;background:rgba(16,12,10,.62);text-shadow:0 1px 3px #000}
/* Narsil-style 2H images use one square master image and a profile-specific
   rotation/scale ONLY in this tall slot. The gold frame stays stationary. */
.gandalf-equip-twohand .gandalf-equip-art{
 position:absolute;
 inset:auto;
 top:var(--twohand-y,19%);
 left:var(--twohand-x,5%);
 width:var(--twohand-width,90%);
 height:var(--twohand-height,62%);
 max-width:none;
 z-index:2;
 object-fit:contain;
 transform:rotate(var(--twohand-rotate,-17deg)) scale(var(--twohand-scale,1.32));
 transform-origin:center center;
 filter:drop-shadow(0 4px 6px rgba(0,0,0,.76));
 pointer-events:none;
}
/* v0.35.57 · Sharper Narsil-style staff preview only.
   Remove the duplicate screen-blended frame overlay above the staff: the frame
   is already painted as the face background. This preserves all gold details
   without washing out the weapon's semi-transparent edges. */
.gandalf-equip-twohand .gandalf-equip-face[data-twohand-profile="staff"] .gandalf-equip-art{
  filter:brightness(1.06) contrast(1.28) saturate(1.04)
    drop-shadow(0 0 1px rgba(14,9,4,.95))
    drop-shadow(0 2px 3px rgba(0,0,0,.9));
}
.gandalf-equip-twohand .gandalf-equip-face[data-twohand-profile="staff"]::after{
  opacity:0;
}
@media(max-width:620px){
 .item-art-editor-content{gap:9px}
 .item-art-preview{width:108px}
 .item-art-controls{gap:7px}
 .item-art-controls small{font-size:11px}
 .gandalf-equip-face:has(.gandalf-equip-art) .gandalf-equip-value{font-size:9px}
}

/* Four-piece body-zone images in the regular armor ruleset. */
.item-art-armor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 10px}
.item-art-zone{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:12px 8px;background:rgba(72,48,28,.08);border:1px solid rgba(92,53,23,.22);border-radius:10px}
.item-art-zone>strong{font:700 15px Georgia,serif;color:#5c3517}
.item-art-zone .item-art-preview{width:min(100%,150px);max-width:none;align-self:center}
.item-art-zone .item-art-controls{align-items:center;gap:6px;text-align:center;width:100%}
.item-art-zone .item-art-controls small{max-width:100%;overflow-wrap:anywhere}
.item-art-zone .item-art-upload{min-height:36px;box-sizing:border-box}
.item-art-armor>small{display:block;font:12px/1.45 system-ui,sans-serif;color:#5f4f39}
.item-art-armor-count{display:block;font-size:11px;color:#786548;font-weight:650;margin-top:2px}
@media(max-width:440px){
 .item-art-armor-grid{gap:7px}
 .item-art-zone{padding:8px 3px}
 .item-art-zone .item-art-preview{width:min(100%,118px)}
 .item-art-zone .item-art-controls small{font-size:10px}
 .item-art-zone .item-art-upload{padding:8px}
}

/* v0.35.70 · shared master images for projectiles. */
.projectile-art-name,.projectile-inventory-name{display:flex;align-items:center;gap:8px;min-width:0}
.projectile-art-name>b,.projectile-inventory-name>span{min-width:0;overflow-wrap:anywhere}
.projectile-art-name .admin-weapon-icon{min-width:42px;flex:none}
.projectile-art-name .admin-weapon-icon img{width:44px;height:44px;object-fit:contain}
.projectile-art-missing{display:grid;place-items:center;width:44px;height:44px;border:1px dashed #7d674b;border-radius:7px;color:#a38e71;font-size:26px;flex:none}
.projectile-inventory-art{width:40px;height:40px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 3px #0008)}
@media(max-width:620px){
 .projectile-rule-header{display:none}
 .projectile-rule-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:9px}
 .projectile-rule-row>.projectile-art-name{grid-column:1;grid-row:1}
 .projectile-rule-row>button{grid-column:2;grid-row:1;justify-self:end}
 .projectile-rule-row>span:nth-child(2){grid-column:1/-1}
 .projectile-rule-row>span:nth-child(2)::before{content:'Återhämtning: ';color:#b9a285}
 .projectile-rule-row>span:nth-child(3){grid-column:1/-1;font-size:11px;color:#c3b59a;overflow-wrap:anywhere}
 .projectile-rule-row>span:nth-child(3)::before{content:'Vapen: ';color:#b9a285}
 .projectile-inventory-art{width:32px;height:32px}
}

/* v0.35.71 — thrown projectile images are always shared with the weapon art. */
.projectile-linked-weapon{display:flex;align-items:center;gap:12px;font-size:14px;min-width:0}
.projectile-linked-weapon .admin-weapon-icon img{width:80px;height:80px;object-fit:contain}
.weapon-projectile-link{display:flex;align-items:center;gap:5px;color:#b6d7bd;font-size:11px;line-height:1.3;margin-top:4px}
.weapon-projectile-link img{width:24px;height:24px;object-fit:contain;flex:none}
.weapon-projectile-preview{display:flex;align-items:center;gap:12px;min-height:42px;border:1px solid rgba(136,106,67,.45);background:rgba(36,26,16,.09);border-radius:8px;padding:8px 10px;font-size:12px;color:#685136;line-height:1.45}
.weapon-projectile-preview[hidden]{display:none}
.weapon-projectile-preview img{width:46px;height:46px;object-fit:contain;flex:none}
/* v0.35.76: centrally managed general equipment and carryable artwork. */
.equipment-admin-search{display:flex;gap:10px;align-items:center;max-width:600px;margin:10px 0 14px;color:#d8c29f;font-weight:700}
.equipment-admin-search input{flex:1;min-width:0;max-width:420px;padding:8px 10px;border:1px solid #836343;border-radius:8px;background:#241d17;color:#f9e8c6}
.equipment-admin-table{display:grid;gap:0;color:#e9d8bd;border:1px solid #756043;border-radius:9px;overflow:hidden}
.equipment-admin-header,.equipment-admin-row{display:grid;grid-template-columns:minmax(160px,2.3fr) minmax(88px,1fr) 62px 84px 91px 118px;gap:8px;align-items:center;padding:8px 12px}
.equipment-admin-header{background:#493225;color:#fae2b8;font-size:11px}
.equipment-admin-row{border-top:1px solid #59462e;background:#201b17;font-size:12px}
.equipment-admin-row:nth-child(2n){background:#2a221c}
.equipment-admin-row.inactive{opacity:.65}
.equipment-admin-name{display:flex;align-items:center;gap:8px;min-width:0}
.equipment-admin-name>div{min-width:0}
.equipment-admin-name strong,.equipment-admin-name small{display:block;overflow-wrap:anywhere}
.equipment-admin-name small{font-size:10px;color:#ad9773;margin-top:3px}
.equipment-admin-name .admin-weapon-icon{flex:0 0 44px;min-width:44px;min-height:44px}
.equipment-admin-name .admin-weapon-icon img{width:44px;height:44px;object-fit:contain}
.equipment-admin-noart{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px dashed #8d7151;border-radius:6px;color:#b49a75;font-size:25px}
.equipment-admin-carry{font-weight:800;color:#bcdda9}
.equipment-admin-actions{display:flex;gap:5px;justify-content:end;align-items:center}
.equipment-admin-actions .smallbtn{min-height:33px}
.equipment-master-editor .item-art-editor{grid-column:1/-1}
.equipment-master-editor .admincheck{display:flex;gap:8px;align-items:center;justify-content:start}
.equipment-master-editor .admincheck input{flex:0 0 auto}
.gandalf-equip-face>.gandalf-equip-stack-count{
 position:absolute;z-index:4;right:8%;bottom:8%;min-width:24px;min-height:24px;
 display:grid;place-items:center;padding:3px 6px;box-sizing:border-box;
 border:1px solid #d8ab67;border-radius:99px;background:#2d2116;color:#fbe6bc;
 font:800 clamp(12px,1.45vw,17px)/1 system-ui,sans-serif;
 font-variant-numeric:tabular-nums;box-shadow:0 2px 6px #000c;
 pointer-events:none
}
@media(max-width:700px){
 .equipment-admin-header{display:none}
 .equipment-admin-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 9px;padding:9px 10px}
 .equipment-admin-name{grid-column:1;grid-row:1}
 .equipment-admin-actions{grid-column:2;grid-row:1}
 .equipment-admin-row>span{font-size:11px;color:#c5b399}
 .equipment-admin-row>.equipment-admin-carry{color:#bde1a8}
 .equipment-admin-search{flex-direction:column;align-items:stretch}
 .gandalf-equip-face>.gandalf-equip-stack-count{min-width:18px;min-height:18px;padding:2px 4px;font-size:11px}
}

/* The same owned torch count is visible in the combat round's carried hand. */
.combat-turn-equip-art.carryable .combat-turn-ammo-count{
 position:absolute;z-index:2;right:3px;bottom:2px;
 min-width:22px;min-height:22px;display:grid;place-items:center;
 padding:3px 5px;box-sizing:border-box;
 border:1px solid #d1a667;border-radius:99px;
 background:#2e2115;color:#ffe4b4;
 font:800 13px/1 system-ui,sans-serif;
 font-variant-numeric:tabular-nums;
 box-shadow:0 2px 5px #000b;pointer-events:none
}
@media(max-width:700px){
 .combat-turn-equip-art.carryable .combat-turn-ammo-count{min-width:18px;min-height:18px;font-size:11px;padding:2px 4px}
}
/* v0.35.83 — SL magical artifacts catalog and magic flags in master lists */
.magic-artifact-filters{
 display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin:12px 0 14px;
}
.magic-artifact-filters label{
 display:flex;flex-direction:column;gap:5px;min-width:175px;flex:1 1 190px;
 color:#d9c49d;font-size:12px;font-weight:750;
}
.magic-artifact-filters input,.magic-artifact-filters select{
 width:100%;box-sizing:border-box;border:1px solid #88694b;border-radius:8px;
 background:#211a15;color:#f6e5c9;padding:9px 10px;font:inherit;
}
.magic-artifact-table{
 border:1px solid #67513a;border-radius:10px;overflow:hidden;min-width:0;
 color:#f1e1c6;
}
.magic-artifact-head,.magic-artifact-row{
 display:grid;
 grid-template-columns:minmax(155px,1.6fr) minmax(140px,1.2fr) minmax(150px,1.6fr) 75px 122px;
 gap:10px;align-items:center;padding:10px 12px;
}
.magic-artifact-head{background:#5b3928;color:#f4ddbc;font-size:11px}
.magic-artifact-row{border-top:1px solid #52402c;background:#211a16;font-size:12px}
.magic-artifact-row:nth-child(2n+1){background:#2b211a}
.magic-artifact-row.inactive{opacity:.63}
.magic-artifact-name,.magic-artifact-base{min-width:0}
.magic-artifact-name strong,.magic-artifact-name small,.magic-artifact-base b,.magic-artifact-base small{display:block;overflow-wrap:anywhere}
.magic-artifact-name strong{color:#f7dfa7;font-size:13px}
.magic-artifact-name small,.magic-artifact-base small{color:#b9a58a;font-size:10px;margin-top:3px}
.magic-artifact-property{
 min-width:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
 overflow:hidden;overflow-wrap:anywhere;color:#d6c5a8;line-height:1.35;
}
.magic-artifact-charges{text-align:center;color:#d5bd8a;font-weight:800}
.magic-artifact-actions{display:flex;gap:5px;justify-content:flex-end}
.magic-artifact-actions button{min-height:36px}
.magic-artifact-empty{padding:16px;color:#c6b396;font-size:13px}
.magic-artifact-editor .wide{grid-column:1/-1}
.magic-artifact-editor textarea{min-height:74px}
.magic-artifact-editor .admincheck{display:flex;gap:7px;align-items:center}
.magic-artifact-editor .admincheck input{flex:0 0 auto}
.magic-artifact-editor .rule-editor-note{margin:0;color:#c7ad84}
.admin-magical-cell{font-weight:850;color:#e8c275;white-space:nowrap}
.adminweapontable{
 grid-template-columns:74px minmax(150px,1.5fr) 100px minmax(120px,1.1fr)
 74px 82px 92px minmax(110px,1fr) 70px 90px;
}
.adminshieldtable{
 grid-template-columns:64px 155px 82px 58px 58px 78px 230px 76px 86px;
 min-width:887px;
}
.adminarmortable>.armor-admin-row{
 grid-template-columns:64px minmax(155px,1.4fr) 82px 56px 64px
 100px 96px 62px 70px 95px minmax(165px,1fr) 90px;
 min-width:1170px;
}
.equipment-admin-header,.equipment-admin-row{
 grid-template-columns:minmax(160px,2.3fr) minmax(88px,1fr) 62px 84px 91px 75px 118px;
}
@media(max-width:700px){
 .magic-artifact-head{display:none}
 .magic-artifact-table{border:0;display:grid;gap:9px;overflow:visible}
 .magic-artifact-row{
  display:grid;grid-template-columns:minmax(0,1fr) 90px;
  gap:7px;padding:11px;border:1px solid #6c5337;border-radius:10px;
 }
 .magic-artifact-name{grid-column:1;grid-row:1}
 .magic-artifact-base{grid-column:1;grid-row:2}
 .magic-artifact-property{grid-column:1/-1;grid-row:3}
 .magic-artifact-charges{grid-column:1;grid-row:4;text-align:left}
 .magic-artifact-charges:before{content:"Laddningar: ";font-size:11px;color:#bca687}
 .magic-artifact-actions{grid-column:2;grid-row:1/span 2;flex-direction:column;justify-content:flex-start}
 .magic-artifact-actions button{min-width:80px;min-height:39px}
 .magic-artifact-filters{gap:8px}
 .magic-artifact-filters label{min-width:0;flex-basis:100%}
 .adminweapontable{
  grid-template-columns:70px 160px 90px 120px 64px 76px 82px 105px 68px 78px;
  font-size:13px;
 }
 .adminshieldtable{
  grid-template-columns:64px 155px 82px 54px 54px 74px 220px 72px 78px;
  min-width:853px;
 }
 .equipment-admin-header{display:none}
 .equipment-admin-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 9px}
 .equipment-admin-row>.admin-magical-cell{color:#e8c275}
 .adminarmortable>.armor-admin-record{
  grid-template-columns:60px minmax(0,1fr) 88px;
  grid-template-rows:repeat(6,auto);
  min-width:0;
 }
 .armor-admin-record>.admin-magical-cell{
  grid-column:2;grid-row:5;align-self:center;
  font-weight:850;color:#e8c275;
 }
 .armor-admin-record>.admin-magical-cell:before{
  content:"Magisk: ";color:#b6a183;font:700 10px system-ui,sans-serif;
 }
 .armor-admin-record .armor-cell-description{grid-row:6}
}
/* v0.35.84 – magic-property registry and per-artifact power editor */
.magic-property-registry{
 min-width:0;
 margin-top:22px;
 padding-top:16px;
}
.magic-property-registry .admin-subsection-head{flex-wrap:wrap}
.magic-property-registry .admin-subsection-head p{margin:4px 0 0}
.magic-property-search{
 display:flex;align-items:center;gap:10px;max-width:580px;
 margin:12px 0;color:#dbc59e;font-weight:700;font-size:12px;
}
.magic-property-search input{
 flex:1;min-width:0;box-sizing:border-box;
 border:1px solid #856648;border-radius:8px;background:#231b15;
 color:#f7e4c6;padding:9px 10px;
}
.magic-property-table{
 border:1px solid #715437;border-radius:10px;overflow:hidden;
 color:#eaddc4;
}
.magic-property-head,.magic-property-row{
 display:grid;grid-template-columns:minmax(125px,1.2fr) minmax(85px,.7fr) minmax(170px,1.7fr) 70px 125px;
 gap:8px;align-items:center;padding:10px 12px;
}
.magic-property-head{background:#513623;color:#f1d5a9;font-size:11px}
.magic-property-row{background:#211a14;border-top:1px solid #5c452e;font-size:12px}
.magic-property-row:nth-child(2n+1){background:#292018}
.magic-property-row.inactive{opacity:.62}
.magic-property-row strong,.magic-property-row small{display:block;overflow-wrap:anywhere}
.magic-property-row strong{font-size:13px;color:#efdaa9}
.magic-property-row small{margin-top:3px;color:#ac9b82;font-size:10px}
.magic-property-description{overflow-wrap:anywhere;line-height:1.35;color:#d9c2a1}
.magic-property-actions{display:flex;gap:5px;justify-content:flex-end}
.magic-property-actions button{min-height:36px}
.magic-property-empty{padding:12px}
.magic-property-editor .wide,.magic-power-editor .wide{grid-column:1/-1}
.magic-property-editor textarea,.magic-power-editor textarea{min-height:85px}
.magic-property-editor .admincheck,.magic-power-editor .admincheck{
 display:flex;align-items:center;gap:7px;
}
.magic-property-editor .admincheck input,.magic-power-editor .admincheck input{flex:0 0 auto}
.magic-power-editor [hidden]{display:none!important}
.magic-power-editor .rule-editor-note{color:#cdb68e;margin:0}
.magic-power-list{display:grid;gap:10px;color:#ede0c8}
.magic-power-list>.rule-editor-note{margin:0}
.magic-power-item{
 display:grid;grid-template-columns:minmax(0,1fr) auto;
 align-items:center;gap:10px;
 padding:10px 11px;border:1px solid #785a37;
 border-radius:9px;background:linear-gradient(130deg,#30271b,#1e1915);
}
.magic-power-item.inactive{opacity:.62}
.magic-power-item>div{min-width:0}
.magic-power-item strong,.magic-power-item small{display:block;overflow-wrap:anywhere}
.magic-power-item strong{font-size:14px;color:#f4db9e}
.magic-power-item small{font-size:11px;line-height:1.35;color:#bca88b;margin-top:4px}
.magic-power-buttons{display:flex;gap:5px;align-items:center}
.magic-power-buttons button{min-height:37px}
.magic-artifact-actions{gap:4px;flex-wrap:wrap;justify-content:flex-end}
.magic-artifact-actions button{min-height:35px}
.magic-artifact-head,.magic-artifact-row{
 grid-template-columns:minmax(130px,1.4fr) minmax(130px,1.15fr)
 minmax(165px,1.7fr) 66px minmax(155px,1.4fr);
}
@media(max-width:700px){
 .magic-property-search{flex-direction:column;align-items:stretch;gap:5px}
 .magic-property-table{border:0;display:grid;gap:8px;overflow:visible}
 .magic-property-head{display:none}
 .magic-property-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:5px 9px;border:1px solid #69523a;border-radius:10px;padding:10px;
 }
 .magic-property-row>div:nth-child(1){grid-column:1;grid-row:1}
 .magic-property-row>div:nth-child(2){grid-column:1;grid-row:2;color:#b8a184}
 .magic-property-row>.magic-property-description{grid-column:1/-1;grid-row:3}
 .magic-property-row>div:nth-child(4){grid-column:1;grid-row:4;color:#ad997e}
 .magic-property-row>div:nth-child(4):before{content:"Används av: "}
 .magic-property-row>.magic-property-actions{grid-column:2;grid-row:1/span 2}
 .magic-property-actions{flex-direction:column}
 .magic-property-actions button{min-height:39px}
 .magic-power-item{grid-template-columns:minmax(0,1fr);gap:8px}
 .magic-power-buttons{justify-content:flex-start}
 .magic-power-buttons button{min-width:88px;min-height:40px}
 .magic-artifact-actions{
  grid-column:2;grid-row:1/span 2;
  display:flex;flex-direction:column;
 }
 .magic-artifact-actions button{min-height:37px;width:100%;min-width:96px}
}
/* v0.31.25 — kartvy i mörk brons/sepia, utan ändring av kartlogik */
#mapPage .mappage{
  --map-bg:#090806;
  --map-panel:#12100c;
  --map-panel-2:#1a150f;
  --map-bronze:#b78948;
  --map-bronze-bright:#d3a45b;
  --map-bronze-dark:#5c4125;
  --map-cream:#efe4cf;
  --map-muted:#b9a78d;
  padding:14px;
  border:1px solid rgba(125,91,49,.48);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% -10%,rgba(119,80,34,.16),transparent 34%),
    linear-gradient(180deg,#0f0d09,#080705);
  box-shadow:0 20px 46px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,238,196,.018);
}

#mapPage .maphead{
  align-items:center;
  margin-bottom:13px;
  padding:2px 2px 8px;
  border-bottom:1px solid rgba(142,101,55,.28);
}

#mapPage .maphead h2{
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--map-cream);
  font:700 28px/1.1 Georgia,"Times New Roman",serif;
}

#mapPage .map-title-icon{
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  color:#d0a052;
  filter:drop-shadow(0 0 10px rgba(208,160,82,.14));
}

#mapPage .map-title-icon svg{
  width:100%;
  height:100%;
  display:block;
}

#mapPage .map-title-icon path{
  fill:rgba(182,130,55,.14);
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linejoin:round;
  stroke-linecap:round;
}

#mapPage .maptoolbar{
  margin-bottom:13px;
  padding:10px;
  border:1px solid rgba(112,82,47,.56);
  border-radius:13px;
  background:linear-gradient(180deg,rgba(24,20,14,.96),rgba(13,11,8,.98));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.018);
}

#mapPage .maptoolbar .btn,
#mapPage .maphead .btn{
  border-color:#76562f;
  background:linear-gradient(180deg,#211b12,#14100b);
  color:#f0e6d4;
}

#mapPage .maptoolbar .btn:hover,
#mapPage .maphead .btn:hover{
  border-color:#a97a3e;
}

#mapPage .maptoolbar select{
  border-color:#76562f;
  background:#17120d;
  color:#f0e5d2;
}

#mapPage .map-current-badge{
  background:linear-gradient(180deg,#6e512b,#4c371d);
  color:#f4ddb1;
  border:1px solid rgba(202,151,78,.44);
}

#mapPage .mapzoom{
  color:#dfc79f;
}

#mapPage .maplegend{
  color:#b8a88f;
}

#mapPage .maplegend i{
  border-color:#87653c;
}

#mapPage .maplegend .unknown i{
  background:#0b0907;
}

#mapPage .maplegend .unexplored i{
  background:#665744;
}

#mapPage .maplegend .explored i{
  background:#c7aa79;
}

/* Själva ramen */
#mapPage .mapviewport{
  isolation:isolate;
  border:2px solid #a57639;
  border-radius:14px;
  background:#0c0805;
  box-shadow:
    0 0 0 3px #21170d,
    0 0 0 5px #644724,
    0 14px 30px rgba(0,0,0,.42),
    inset 0 0 46px rgba(36,18,5,.58);
}

#mapPage .mapviewport::before{
  content:"";
  position:absolute;
  inset:6px;
  z-index:5;
  pointer-events:none;
  border:1px solid rgba(211,164,91,.44);
  border-radius:9px;
  box-shadow:
    inset 0 0 0 1px rgba(59,38,18,.78),
    inset 0 0 28px rgba(48,25,7,.18);
}

#mapPage .mapviewport::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  border-radius:12px;
  box-shadow:
    inset 0 0 54px rgba(41,21,7,.38),
    inset 0 0 110px rgba(0,0,0,.18);
}

/* Kartbilden hålls varm och brun. Overlay/fog påverkas inte. */
#mapPage .mapimage{
  filter:sepia(.68) saturate(.90) hue-rotate(349deg) brightness(.92) contrast(1.06);
}

#mapPage .map-zone.sl-outline{
  stroke:#d3a45b;
}

#mapPage .map-zone.sl-outline:hover,
#mapPage .map-zone.selected{
  fill:rgba(201,151,77,.12);
}

#mapPage .mapstatusbar{
  margin-top:12px;
  padding:7px 9px;
  border:1px solid rgba(97,70,40,.38);
  border-radius:9px;
  background:rgba(18,14,10,.72);
  color:#a99578;
}

#mapPage .map-location-panel{
  border-color:#6a4c2b;
  background:
    radial-gradient(circle at 20% 0%,rgba(101,68,31,.11),transparent 38%),
    linear-gradient(180deg,#17120d,#0f0c09);
  box-shadow:0 12px 30px rgba(0,0,0,.26),inset 0 0 0 1px rgba(255,235,191,.015);
}

#mapPage .map-location-head h3{
  color:#f1dfbf;
}

#mapPage .map-location-section{
  border-top-color:#49351f;
}

#mapPage .map-location-section h4{
  color:#d9b677;
}

#mapPage .map-location-text{
  color:#dfd2bd;
}

#mapPage .map-location-gm{
  background:#1b140d;
  border-color:#6d4d29;
}

@media(max-width:700px){
  #mapPage .mappage{
    padding:10px;
    border-radius:14px;
  }

  #mapPage .maphead h2{
    font-size:23px;
  }

  #mapPage .map-title-icon{
    width:29px;
    height:29px;
  }

  #mapPage .maptoolbar{
    padding:8px;
  }

  #mapPage .mapviewport{
    border-radius:11px;
    box-shadow:
      0 0 0 2px #21170d,
      0 0 0 4px #644724,
      0 10px 24px rgba(0,0,0,.40),
      inset 0 0 38px rgba(36,18,5,.52);
  }

  #mapPage .mapviewport::before{
    inset:4px;
    border-radius:7px;
  }

  #mapPage .mapviewport::after{
    border-radius:9px;
  }
}


/* v0.34.89 – tydlig skillnad mellan kartbyte och att visa aktuell karta. */
#mapPage .map-set-current{
  color:#f4ffeb;
  border:1px solid #8eac73;
  background:linear-gradient(180deg,#4a6c3e,#2c492d);
  font-weight:700;
  box-shadow:0 1px 0 rgba(255,255,255,.13) inset;
}
#mapPage .map-set-current:hover:not(:disabled){
  background:linear-gradient(180deg,#557d46,#365b37);
}
#mapPage .map-set-current:focus-visible{
  outline:2px solid #c7eea2;
  outline-offset:2px;
}
#mapPage .map-set-current:disabled{
  opacity:.5;
  cursor:wait;
}


/* v0.34.90 – kartans direktstyrda synlighet för SL. */
#mapPage .map-visibility-toggle{
  min-height:38px;
  padding-inline:12px;
  white-space:nowrap;
  font-weight:750;
  border:1px solid #b58c5f;
  border-radius:8px;
  background:linear-gradient(180deg,#55432e,#3e2b20);
  color:#f9e9c7;
}
#mapPage .map-visibility-toggle.is-visible{
  background:linear-gradient(180deg,#315b44,#234536);
  border-color:#88b99a;
  color:#f1ffe9;
}
#mapPage .map-visibility-toggle.is-hidden{
  background:linear-gradient(180deg,#55432e,#3e2b20);
  border-color:#b58c5f;
  color:#f9e9c7;
}
#mapPage .map-visibility-toggle:focus-visible{
  outline:2px solid #bde8ec;
  outline-offset:2px;
}
#mapPage .map-visibility-toggle:disabled{
  opacity:.55;
  cursor:wait;
}
@media(max-width:700px){
  #mapPage .map-visibility-toggle{
    white-space:normal;
    text-align:center;
  }
}
/* Alea Crusaders — skill artwork upload panes. Admin-only; no player view changes. */
.skill-art-editor{grid-column:1/-1;border:1px solid rgba(169,126,61,.58);border-radius:12px;padding:16px;background:linear-gradient(150deg,#241b14,#16120f);color:#f4e8d3}
.skill-art-editor h3{font:700 18px Georgia,serif;color:#f2d79e;margin:0 0 7px}
.skill-art-editor .skill-art-intro{font-size:13px;line-height:1.5;color:#d4bd99;margin:0 0 14px}
.skill-art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.skill-art-slot{min-width:0;padding:12px;border:1px solid #775833;border-radius:10px;background:#17120e}
.skill-art-slot h4{font-size:13px;letter-spacing:.06em;color:#f3d89e;margin:0 0 10px}
.skill-art-preview{width:100%;aspect-ratio:1/1;max-height:260px;display:grid;place-items:center;border:1px solid #765e3a;border-radius:9px;overflow:hidden;background:#241e18}
.skill-art-preview-icon{background-color:#b6b6b6;background-image:linear-gradient(45deg,#dfdfdf 25%,transparent 25%),linear-gradient(-45deg,#dfdfdf 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#dfdfdf 75%),linear-gradient(-45deg,transparent 75%,#dfdfdf 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}
.skill-art-preview img{width:100%;height:100%;object-fit:contain;display:block}
.skill-art-preview-illustration img{object-fit:cover}
.skill-art-preview-illustration_wide{aspect-ratio:16/9;max-height:none}
.skill-art-preview-illustration_wide img{object-fit:contain}
.skill-art-placeholder{text-align:center;color:#775d42;font-size:13px;padding:12px;background:rgba(255,247,224,.82);border-radius:6px;max-width:80%}
.skill-art-help{font-size:12px;color:#cdb999;line-height:1.45;min-height:48px;margin:10px 0 8px}
.skill-art-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.skill-art-controls .smallbtn{font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:9px 11px;border:1px solid #9d7940;border-radius:8px;color:#f4e7cf;background:#33291c}
.skill-art-controls .smallbtn:disabled{opacity:.45;cursor:not-allowed}
.skill-art-upload{position:relative;overflow:hidden}
.skill-art-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.skill-art-status{font-size:12px;color:#e2c78f;line-height:1.45;min-height:34px;margin:9px 0 0}
.skill-art-status[data-state="error"]{color:#ffd5cc;font-weight:700}
.skill-art-status[data-state="success"]{color:#c0e6b6;font-weight:700}
.skill-art-upload-notice{
 position:fixed;z-index:11000;
 top:max(16px,env(safe-area-inset-top,0px));
 left:50%;transform:translateX(-50%);
 width:min(520px,calc(100vw - 24px));
 box-sizing:border-box;padding:14px 18px;border-radius:12px;
 color:#fff1d3;background:#282019;
 border:2px solid #c29a54;
 box-shadow:0 8px 26px #000b;
 font:600 15px/1.4 system-ui, sans-serif;
 overflow-wrap:anywhere;
 pointer-events:none;
}
.skill-art-upload-notice[hidden]{display:none!important}
.skill-art-upload-notice[data-state="success"]{background:#1c3728;border-color:#88c195}
.skill-art-upload-notice[data-state="error"]{background:#4d211d;border-color:#e69b7d}

.adminskilltable .skill-art-indicator{display:block;font-size:11px;line-height:1.3;margin-top:5px;color:#c9ab75;font-weight:500}
@media(min-width:701px) and (max-width:1050px){.skill-art-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.skill-art-editor{padding:10px}.skill-art-grid{grid-template-columns:1fr}.skill-art-preview{max-height:300px}.skill-art-help{min-height:0}}

/* The master list mirrors each skill's gilded icon without cropping its transparent edges. */
.adminskilltable .skill-art-row{display:flex;align-items:center;gap:10px;min-height:42px;min-width:0}
.adminskilltable .skill-art-row-thumb{flex:0 0 42px;width:42px;height:42px;box-sizing:border-box;border-radius:9px;display:grid;place-items:center;overflow:hidden;border:1px solid #8e6e3e;background:radial-gradient(circle at 50% 38%,#4a3b29,#211b16 75%);box-shadow:inset 0 0 0 1px rgba(224,188,117,.14);color:#c8a76e}
.adminskilltable .skill-art-row-fallback{font-size:22px;font-family:Georgia,serif;line-height:1;opacity:.8}
.adminskilltable .skill-art-row-thumb img{display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.adminskilltable .skill-art-row-loaded{border-color:#a18453}
.adminskilltable .skill-art-row-copy{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.adminskilltable .skill-art-row-copy .rule-name{display:block}
.adminskilltable .skill-art-row-copy .skill-art-indicator{margin-top:1px}
@media(max-width:700px){.adminskilltable .skill-art-row{gap:7px;min-height:36px}.adminskilltable .skill-art-row-thumb{flex-basis:36px;width:36px;height:36px;border-radius:7px}.adminskilltable .skill-art-row-fallback{font-size:19px}.adminskilltable .skill-art-row-copy .skill-art-indicator{font-size:10px}}

/* Admin skill names open the exact same read-only Codex as character skills. */
.adminskilltable .skill-codex-open{
 appearance:none;display:block;width:fit-content;max-width:100%;margin:0;padding:0;
 border:0;border-radius:2px;background:transparent;color:inherit;
 font:inherit;font-weight:800;line-height:inherit;text-align:left;
 text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;
 cursor:pointer;overflow-wrap:anywhere;
}
.adminskilltable .skill-codex-open:hover{color:#f3d69f;text-decoration-style:solid}
.adminskilltable .skill-codex-open:focus-visible{outline:2px solid #f3d69f;outline-offset:3px}
/* ARCANE SKILL CODEX — scoped to the read-only skill details modal. */
#skillModal.skill-codex-active{background:rgba(9,7,5,.83);backdrop-filter:blur(5px);padding:12px;z-index:1430}
#skillModal.skill-codex-active>.modal{
  position:relative;width:min(720px,100%);max-height:min(94dvh,960px);
  padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  border:2px solid #ac8749;border-radius:18px;
  background:#17130e;color:#f2ddb4;
  box-shadow:0 0 0 1px #352514,0 0 0 4px rgba(21,15,10,.72),0 25px 80px #000c,inset 0 0 30px #0008;
  scrollbar-color:#806137 #1b160f;
}
#skillModal.skill-codex-active>.modal::before{
  position:absolute;inset:5px;z-index:3;pointer-events:none;content:"";
  border:1px solid rgba(233,190,112,.36);border-radius:13px;
}
#skillModal.skill-codex-active .modalhead{
  position:relative;min-height:104px;padding:17px 72px 16px 112px;
  align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 0,rgba(82,68,42,.35),transparent 65%),linear-gradient(135deg,#1a211b,#111711 55%,#19130e);
  border-bottom:2px solid #8e6b37;
}
#skillModal.skill-codex-active .modalhead::after{
  position:absolute;bottom:-9px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:14px;height:14px;border:1px solid #d5aa61;background:#73552f;content:"";z-index:4
}
#skillModal.skill-codex-active #skillModalTitle{
  margin:0;text-align:center;color:#f4db9d;
  font:normal clamp(25px,5vw,40px)/1.12 Georgia,"Times New Roman",serif;
  letter-spacing:.03em;text-shadow:0 2px 2px #000,0 0 16px #d2a45c45;
  overflow-wrap:anywhere;
}
#skillModal.skill-codex-active .skill-codex-icon{
  position:absolute;top:14px;left:19px;width:72px;height:72px;z-index:5;
  display:grid;place-items:center;border-radius:50%;
  background:radial-gradient(circle,#57452e,#211c16 70%);
  border:1px solid #94703c;box-shadow:0 0 0 3px #16130e,0 1px 14px #0009;
  overflow:hidden;
}
#skillModal.skill-codex-active .skill-codex-icon img{display:block;width:100%;height:100%;object-fit:contain}
#skillModal.skill-codex-active .skill-codex-icon.is-empty{color:#ba9c65;font:32px Georgia,serif}
#skillModal.skill-codex-active .modalclose{
  position:absolute;top:19px;right:20px;width:49px;height:49px;margin:0;
  border-radius:50%;border:2px solid #b98a4b;
  background:radial-gradient(circle at 40% 32%,#9b3930,#4d1215 75%);
  color:#f1d9a0;font:normal 32px/1 Georgia,serif;
  box-shadow:inset 0 0 0 2px #391012,0 3px 12px #0008;z-index:5
}
#skillModal.skill-codex-active .modalclose:hover,#skillModal.skill-codex-active .modalclose:focus-visible{
  border-color:#f0d196;filter:brightness(1.2);outline-offset:3px;
}
#skillModal.skill-codex-active #skillModalBody{background:linear-gradient(135deg,#14120e,#292116 52%,#16120e);padding:0}
.skill-codex-hero{
  position:relative;width:100%;aspect-ratio:1.9/1;min-height:215px;max-height:370px;
  overflow:hidden;background:radial-gradient(circle at 50% 35%,#504333,#171a15 72%);
  border-bottom:3px ridge #9f7a43;
}
.skill-codex-hero img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.skill-codex-hero:not(.has-art)::before{
  position:absolute;inset:0;content:"";opacity:.55;
  background:radial-gradient(circle,#9b7a473d 1px,transparent 2px) 0 0/24px 24px,linear-gradient(145deg,transparent 38%,#d4ac6630 50%,transparent 62%);
}
.skill-codex-hero-fallback{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#ceb88d;font:italic 17px Georgia,serif;padding:25px}
.skill-codex-hero.has-art .skill-codex-hero-fallback{display:none}
.skill-codex-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:18px 17px 19px}
.skill-codex-stat{min-width:0;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:13px 7px 12px;
  background:linear-gradient(140deg,#31281c,#1b1712);border:1px solid #927044;border-radius:7px;
  box-shadow:inset 0 0 0 1px #d3af6550,0 5px 12px #0007}
.skill-codex-stat-label{font:normal 14px/1.2 Georgia,serif;color:#e6cb93}
.skill-codex-stat-value{font:700 19px/1.1 Georgia,serif;color:#f6e4bf;overflow-wrap:anywhere}
.skill-codex-description{
  position:relative;margin:0 17px 18px;padding:24px 26px 28px;min-height:125px;
  border:1px solid #b28a52;border-radius:7px;
  background:linear-gradient(115deg,#c8a778,#efdbb1 24%,#e9d2a6 66%,#c5a377);
  box-shadow:inset 0 0 20px #633f2b50,0 5px 12px #0008;color:#362719
}
#skillModal.skill-codex-active .skill-codex-description h3{
  margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid #94774d88;
  color:#3d2b1a;font:normal 25px/1.15 Georgia,serif
}
#skillModal.skill-codex-active .skill-codex-description p{
  margin:0;white-space:pre-line;overflow-wrap:anywhere;
  color:#352719;font:normal 17px/1.55 Georgia,serif
}
@media(max-width:560px){
 #skillModal.skill-codex-active{padding:8px}
 #skillModal.skill-codex-active>.modal{width:100%;max-height:calc(100dvh - 16px);border-radius:14px}
 #skillModal.skill-codex-active .modalhead{min-height:83px;padding:12px 61px 12px 77px}
 #skillModal.skill-codex-active #skillModalTitle{font-size:clamp(23px,6vw,31px)}
 #skillModal.skill-codex-active .skill-codex-icon{width:52px;height:52px;top:14px;left:13px}
 #skillModal.skill-codex-active .skill-codex-icon.is-empty{font-size:23px}
 #skillModal.skill-codex-active .modalclose{width:39px;height:39px;top:19px;right:12px;font-size:27px}
 .skill-codex-hero{aspect-ratio:1.25/1;min-height:175px;max-height:290px}
 .skill-codex-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:13px 12px}
 .skill-codex-stat{padding:10px 6px;gap:3px}
 .skill-codex-stat-label{font-size:13px}
 .skill-codex-stat-value{font-size:18px}
 .skill-codex-description{margin:0 12px 14px;padding:18px 16px;min-height:100px}
 #skillModal.skill-codex-active .skill-codex-description h3{font-size:23px}
 #skillModal.skill-codex-active .skill-codex-description p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){#skillModal.skill-codex-active .modalclose{transition:none}}
/* ARCANE SKILL CODEX — original HERMES UI artwork overlays, no static text.
 * Activate this stylesheet only AFTER the 12 Codex WebP files are present
 * and their immutable HERMES manifests have passed checksum verification.
 * The modal keeps its read-only accessible DOM, close semantics, and original
 * private per-skill icon/illustration images.
 */
/* The global audio dock is 6500; the active dialog must sit above it. */
#skillModal.skill-codex-active {z-index:7000}
#skillModal.skill-codex-active > .modal {
 background:#17180f url("./leather-CKoMKado.webp") center/100% 100% no-repeat;
 border:2px solid #b58d4d;border-radius:17px;
 box-shadow:0 24px 70px #000d,0 0 0 5px #362817;
}
#skillModal.skill-codex-active > .modal::before {
 border-color:rgba(199,163,106,.4);
}
#skillModal.skill-codex-active #skillModalBody {
 background:transparent;
}
#skillModal.skill-codex-active .modalhead {
 min-height:104px;padding:14px 80px 12px 90px;
 background: url("./header-C4UzKJog.webp") center/100% 100% no-repeat;
 border:0;
}
#skillModal.skill-codex-active .modalhead::after {display:none}
#skillModal.skill-codex-active #skillModalTitle {
 color:#f2d99f;
 font-size:clamp(25px,4vw,40px);
 text-shadow:0 2px 4px #000;
}
#skillModal.skill-codex-active .skill-codex-icon {
 width:64px;height:64px;top:20px;left:20px;overflow:visible;
 background:transparent;border:0;border-radius:50%;box-shadow:none;
}
#skillModal.skill-codex-active .skill-codex-icon::after {
 /* FÄRDIGHET IKON already has the approved metal rim and four gems. */
 content:none;
}
#skillModal.skill-codex-active .skill-codex-icon img {
 width:100%;height:100%;position:absolute;top:0;left:0;
 object-fit:contain;border-radius:50%;
}
#skillModal.skill-codex-active .modalclose {
 width:61px;height:61px;top:17px;right:16px;
 border:0;background:transparent url("./close-button-BFvhSyXX.webp") center/contain no-repeat;
 box-shadow:none;border-radius:50%;font-size:0;color:transparent;
}
#skillModal.skill-codex-active .modalclose:hover,
#skillModal.skill-codex-active .modalclose:focus-visible {
 background-color:transparent;filter:brightness(1.14);
}
#skillModal.skill-codex-active .skill-codex-hero {
 margin:0 12px;width:calc(100% - 24px);height:auto;aspect-ratio:1.8/1;
 min-height:0;max-height:none;overflow:hidden;
 border:2px solid #9e7841;border-radius:5px;
 background:radial-gradient(circle,#53452c,#20160f);
 box-shadow:inset 0 0 0 1px #49331f,0 3px 10px #000b;
}
#skillModal.skill-codex-active .skill-codex-hero::after {
 /* A 3.4:1 illustration frame should not be stretched over square art.
    Keep the unobstructed image with a thin bronze border instead. */
 content:none;
}
#skillModal.skill-codex-active .skill-codex-hero img {object-position:center 25%}
#skillModal.skill-codex-active .skill-codex-stats {
 gap:8px;padding:12px 17px;
}
#skillModal.skill-codex-active .skill-codex-stat {
 min-height:78px;padding:9px 7px;gap:4px;
 background:#241b12 url("./stat-plate-C_C_vFFX.webp") center/100% 100% no-repeat;
 border:0;box-shadow:none;border-radius:0;
}
#skillModal.skill-codex-active .skill-codex-stat-label {
 font:normal 15px Georgia,serif;color:#e3c28b;
}
#skillModal.skill-codex-active .skill-codex-stat-value {
 font:700 20px Georgia,serif;color:#f1dcad;
}
#skillModal.skill-codex-active .skill-codex-description {
 min-height:155px;margin:0 17px 25px;padding:25px 28px 35px;
 background:#dfc495 url("./parchment-neutral-CCtOhxvu.webp") center/100% 100% no-repeat;
 border:0;border-radius:0;box-shadow:none;color:#352315;
}
#skillModal.skill-codex-active .skill-codex-description h3 {
 font:normal 28px/1.15 Georgia,serif;color:#3d2b1a;
 display:flex;align-items:center;gap:15px;
 padding:0;border:0;margin:0 0 15px;
}
#skillModal.skill-codex-active .skill-codex-description h3::after {
 content:"";height:13px;flex:1;min-width:0;
 background:url("./divider-CYnptNeG.webp") center/contain no-repeat;
}
#skillModal.skill-codex-active .skill-codex-description p {
 font:normal 19px/1.45 Georgia,serif;color:#352315;
}
@media(max-width:560px){
 #skillModal.skill-codex-active > .modal {border-radius:13px}
 #skillModal.skill-codex-active .modalhead {
  min-height:90px;padding:10px 64px 10px 70px;
 }
 #skillModal.skill-codex-active #skillModalTitle {font-size:clamp(23px,6vw,30px)}
 #skillModal.skill-codex-active .skill-codex-icon {
  width:46px;height:46px;top:23px;left:14px;
 }
 #skillModal.skill-codex-active .modalclose {
  width:45px;height:45px;top:22px;right:9px;
 }
 #skillModal.skill-codex-active .skill-codex-hero {
  margin:0 8px;width:calc(100% - 16px);
  /* FÄRDIGHET ILLUSTRATION is square: preserve all of it on mobile. */
  aspect-ratio:1/1;
 }
 #skillModal.skill-codex-active .skill-codex-hero img {
  object-fit:contain;object-position:center;
 }
 #skillModal.skill-codex-active .skill-codex-stats {
  grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:10px 12px 8px;
 }
 #skillModal.skill-codex-active .skill-codex-stat {
  min-height:66px;padding:7px;gap:3px;
 }
 #skillModal.skill-codex-active .skill-codex-stat-label {font-size:14px}
 #skillModal.skill-codex-active .skill-codex-stat-value {font-size:18px}
 #skillModal.skill-codex-active .skill-codex-description {
  margin:0 12px 18px;padding:23px 22px 35px;min-height:135px;
 }
 #skillModal.skill-codex-active .skill-codex-description h3 {font-size:24px}
 #skillModal.skill-codex-active .skill-codex-description p {font-size:16px}
 #skillModal.skill-codex-active #skillModalBody {padding-bottom:max(10px,env(safe-area-inset-bottom,0px))}
}
/* ARCANE SKILL CODEX WIDE — isolated overrides on top of verified HERMES art.
   All sizes are content-driven; the outer modal is the ONLY scroll container.
   No changes to weapon / magic / admin modals. */
#skillModal.skill-codex-active>.modal {
 width:min(780px,100%);
 height:auto;
 max-height:calc(100dvh - 20px);
 overflow-y:auto;
 overflow-x:hidden;
 overscroll-behavior:contain;
 scrollbar-gutter:stable;
 -webkit-overflow-scrolling:touch;
 background-color:#171a15;
}
#skillModal.skill-codex-active #skillModalBody {
 padding:0 0 max(14px, env(safe-area-inset-bottom,0px));
 overflow:visible;
}
#skillModal.skill-codex-active .skill-codex-hero {
 position:relative;
 aspect-ratio:16/9;
 box-sizing:border-box;
 height:auto;
 min-height:0;
 max-height:none;
 overflow:hidden;
 margin:0 12px;
 width:calc(100% - 24px);
 border:none;
 border-radius:8px;
 background:#1e1b15;
 box-shadow:0 6px 16px #0009;
}
#skillModal.skill-codex-active .skill-codex-hero img {
 width:100%;height:100%;
 object-fit:contain;
 object-position:center;
}
#skillModal.skill-codex-active .skill-codex-hero::after {
 content:"";
 position:absolute;inset:0;
 pointer-events:none;
 background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201600%20900'%20aria-hidden='true'%3e%3cdefs%3e%3clinearGradient%20id='bronze'%20x1='0'%20y1='0'%20x2='0'%20y2='1'%3e%3cstop%20stop-color='%23f0d393'/%3e%3cstop%20offset='.27'%20stop-color='%237c5029'/%3e%3cstop%20offset='.56'%20stop-color='%23cfa360'/%3e%3cstop%20offset='1'%20stop-color='%23382514'/%3e%3c/linearGradient%3e%3cradialGradient%20id='sapphire'%3e%3cstop%20stop-color='%23a9ebff'/%3e%3cstop%20offset='.4'%20stop-color='%23188eb9'/%3e%3cstop%20offset='.8'%20stop-color='%2303496c'/%3e%3cstop%20offset='1'%20stop-color='%23071e32'/%3e%3c/radialGradient%3e%3cg%20id='orn'%3e%3cpath%20d='M%2013%2092%20C%2018%2053%2053%2018%2092%2013%20M%2019%2079%20Q%2029%2030%2080%2019%20M%2014%20120%20C%2036%2082%2045%2060%2075%2046%20M%20120%2014%20C%2082%2036%2060%2045%2046%2075'%20fill='none'%20stroke='url(%23bronze)'%20stroke-width='4'/%3e%3cpath%20d='M%2018%2065%20Q%2048%2066%2051%2033%20Q%2070%2037%2065%2018%20M%2022%20102%20Q%2052%2085%2080%2086%20Q%2082%2057%20103%2022'%20fill='none'%20stroke='%23c39856'%20stroke-width='2.5'/%3e%3cpath%20d='M%2017%2017%20L%2034%2011%2045%2028%2028%2045%2011%2034%20Z'%20fill='%23322418'%20stroke='%23c79d57'%20stroke-width='3'/%3e%3cpath%20d='M%2028%2016%20L%2040%2028%2028%2040%2016%2028%20Z'%20fill='url(%23sapphire)'%20stroke='%23eddbb2'%20stroke-width='1.8'/%3e%3c/g%3e%3c/defs%3e%3crect%20x='6'%20y='6'%20width='1588'%20height='888'%20rx='22'%20fill='none'%20stroke='%23100c08'%20stroke-width='12'/%3e%3crect%20x='9'%20y='9'%20width='1582'%20height='882'%20rx='21'%20fill='none'%20stroke='url(%23bronze)'%20stroke-width='8'/%3e%3crect%20x='18'%20y='18'%20width='1564'%20height='864'%20rx='16'%20fill='none'%20stroke='%23372618'%20stroke-width='5'/%3e%3crect%20x='23'%20y='23'%20width='1554'%20height='854'%20rx='12'%20fill='none'%20stroke='%23d9ab64'%20stroke-width='2'/%3e%3cuse%20href='%23orn'/%3e%3cuse%20href='%23orn'%20transform='translate(1600%200)%20scale(-1%201)'/%3e%3cuse%20href='%23orn'%20transform='translate(0%20900)%20scale(1%20-1)'/%3e%3cuse%20href='%23orn'%20transform='translate(1600%20900)%20scale(-1%20-1)'/%3e%3cpath%20d='M%20788%208%20L%20800%200%20812%208%20800%2020%20Z%20M%20788%20892%20L%20800%20880%20812%20892%20800%20900%20Z'%20fill='url(%23sapphire)'%20stroke='%23d8b071'%20stroke-width='3'/%3e%3cpath%20d='M%208%20438%20L%2020%20450%208%20462%20M%201592%20438%20L%201580%20450%201592%20462'%20fill='none'%20stroke='%23cfa56b'%20stroke-width='4'/%3e%3c/svg%3e") center/100% 100% no-repeat;
 z-index:2;
}
#skillModal.skill-codex-active .skill-codex-stats {
 display:grid;
 grid-template-columns:repeat(4,minmax(0,1fr));
 align-items:stretch;
 gap:7px;
 padding:11px 17px;
}
#skillModal.skill-codex-active .skill-codex-stat {
 box-sizing:border-box;
 min-height:66px;
 padding:9px 5px;
 gap:3px;
}
#skillModal.skill-codex-active .skill-codex-stat-label {
 font:normal clamp(11px,1.8vw,14px)/1.15 Georgia,serif;
 overflow-wrap:anywhere;
}
#skillModal.skill-codex-active .skill-codex-stat-value {
 font:700 clamp(16px,2.5vw,20px)/1.15 Georgia,serif;
}
#skillModal.skill-codex-active .skill-codex-description {
 box-sizing:border-box;
 width:calc(100% - 34px);
 height:auto;
 max-height:none;
 min-height:200px;
 margin:0 17px 16px;
 padding:22px 26px 28px;
 overflow:visible;
 border:2px solid #b48d56;
 border-radius:11px;
 background:#e6cda4 url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20160%20160'%20width='160'%20height='160'%3e%3cdefs%3e%3cfilter%20id='paper'%3e%3cfeTurbulence%20baseFrequency='.045'%20numOctaves='3'%20seed='17'%20stitchTiles='stitch'%20type='fractalNoise'%20result='noise'/%3e%3cfeColorMatrix%20in='noise'%20type='matrix'%20values='0%200%200%200%20.36%200%200%200%200%20.23%200%200%200%200%20.11%200%200%200%20.19%200'/%3e%3c/filter%3e%3c/defs%3e%3crect%20width='160'%20height='160'%20fill='%23e6cda4'/%3e%3crect%20width='160'%20height='160'%20filter='url(%23paper)'%20opacity='.35'/%3e%3cpath%20d='M3%2035Q52%2048%2093%2031T158%2032M0%20129Q34%20117%2065%20136T160%20122'%20fill='none'%20stroke='%2383653c'%20stroke-width='.8'%20opacity='.09'/%3e%3ccircle%20cx='46'%20cy='98'%20r='29'%20fill='%23b78e56'%20opacity='.035'/%3e%3c/svg%3e") left top/160px 160px repeat;
 box-shadow:inset 0 0 0 5px rgba(123,78,40,.12),inset 0 0 25px #855a3155,0 5px 12px #0008;
 color:#352718;
}
#skillModal.skill-codex-active .skill-codex-description::before {
 content:"";
 position:absolute;inset:8px;
 border:1px solid rgba(116,78,42,.22);
 border-radius:6px;
 pointer-events:none;
}
#skillModal.skill-codex-active .skill-codex-description h3 {
 margin:0 0 12px;
 position:relative;
 font:normal 28px/1.2 Georgia,serif;
}
#skillModal.skill-codex-active .skill-codex-description p {
 margin:0;
 position:relative;
 font:normal 18px/1.5 Georgia,serif;
 white-space:pre-wrap;
 overflow-wrap:anywhere;
 max-height:none;
}
@media(max-width:560px) {
 #skillModal.skill-codex-active {padding:6px}
 #skillModal.skill-codex-active>.modal {
  width:100%;
  max-height:calc(100dvh - 12px);
  scrollbar-gutter:auto;
 }
 #skillModal.skill-codex-active .skill-codex-hero {
  width:calc(100% - 16px);
  margin:0 8px;
  aspect-ratio:16/9;
 }
 #skillModal.skill-codex-active .skill-codex-stats {
  grid-template-columns:1fr 1.43fr .86fr .84fr;
  gap:4px;
  padding:8px 10px;
 }
 #skillModal.skill-codex-active .skill-codex-stat {
  min-height:58px;
  padding:6px 3px;
  gap:3px;
 }
 #skillModal.skill-codex-active .skill-codex-stat-label {
  font-size:clamp(9px,2.5vw,12px);
  letter-spacing:-.015em;
 }
 #skillModal.skill-codex-active .skill-codex-stat-value {font-size:16px}
 #skillModal.skill-codex-active .skill-codex-description {
  width:calc(100% - 22px);
  min-height:180px;
  margin:0 11px 14px;
  padding:19px 20px 27px;
 }
 #skillModal.skill-codex-active .skill-codex-description h3 {font-size:24px;margin-bottom:10px}
 #skillModal.skill-codex-active .skill-codex-description p {font-size:16px;line-height:1.55}
}
@media(max-width:330px) {
 #skillModal.skill-codex-active .skill-codex-stat-label{font-size:9px}
 #skillModal.skill-codex-active .skill-codex-description{padding-inline:15px}
}
/* ARCANE SKILL CODEX WIDE — header V6, refined title size for narrow screens.
 * No extra frames, corner sockets, simulated ornament layers, or database changes.
 * The locked FÄRDIGHET IKON carries its own border and may overlap the
 * top/bottom of the LEATHER TITLE STRIP (not the entire card).
 * The original round oxblood X sits just inside the right jewel endcap.
 * Only the skill modal header is scoped: 16:9 art, stats & parchment untouched.
 */
#skillModal.skill-codex-active .modalhead {
 --codex-side-track:25%;
 --codex-icon-size:100px;
 --codex-icon-inset:clamp(22px,4.5%,38px);
 --codex-close-size:76px;
 --codex-close-inset:7.5%;
 position:relative;
 isolation:isolate;
 box-sizing:border-box;
 display:grid;
 grid-template-columns:var(--codex-side-track) minmax(0,1fr) var(--codex-side-track);
 grid-template-rows:minmax(122px,auto);
 align-items:center;
 justify-items:center;
 min-height:122px;
 padding:0;
 overflow:visible;
 background:url("./header-C4UzKJog.webp") center/100% 100% no-repeat;
 border:0;
}
/* Remove only legacy pseudo-jewel; do not paint any replacement ornament. */
#skillModal.skill-codex-active .modalhead::before,
#skillModal.skill-codex-active .modalhead::after {
 content:none;
 display:none;
}
#skillModal.skill-codex-active #skillModalTitle {
 grid-column:2;
 grid-row:1;
 align-self:center;
 justify-self:center;
 position:relative;
 z-index:2;
 min-width:0;
 width:100%;
 max-width:100%;
 margin:0;
 padding:0;
 transform:translateY(5px);
 text-align:center;
 text-wrap:balance;
 font:normal clamp(23px,3.2vw,33px)/1.05 Georgia,"Times New Roman",serif;
 letter-spacing:.018em;
 color:#f0d69b;
 text-shadow:0 2px 3px #000,0 0 12px #f0bd6133;
 overflow-wrap:anywhere;
}
#skillModal.skill-codex-active .skill-codex-icon {
 position:absolute;
 top:54%;
 left:var(--codex-icon-inset);
 right:auto;
 transform:translateY(-50%);
 display:block;
 width:var(--codex-icon-size);
 height:var(--codex-icon-size);
 z-index:3;
 margin:0;
 padding:0;
 overflow:visible;
 border:0;
 border-radius:0;
 background:none;
 box-shadow:none;
}
#skillModal.skill-codex-active .skill-codex-icon::after {content:none}
#skillModal.skill-codex-active .skill-codex-icon img {
 display:block;
 position:absolute;
 inset:0;
 width:100%;
 height:100%;
 object-fit:contain;
 border:0;
 border-radius:0;
 background:transparent;
 box-shadow:none;
}
#skillModal.skill-codex-active .modalclose {
 position:absolute;
 top:54%;
 right:var(--codex-close-inset);
 left:auto;
 transform:translateY(-50%);
 z-index:3;
 box-sizing:border-box;
 display:block;
 width:var(--codex-close-size);
 height:var(--codex-close-size);
 min-width:44px;
 min-height:44px;
 margin:0;
 padding:0;
 border:0;
 border-radius:50%;
 background:transparent url("./close-button-BFvhSyXX.webp") center/contain no-repeat;
 box-shadow:none;
 color:transparent;
 font-size:0;
 text-shadow:none;
 cursor:pointer;
}
#skillModal.skill-codex-active .modalclose:hover {
 background:transparent url("./close-button-BFvhSyXX.webp") center/contain no-repeat;
 filter:brightness(1.13);
}
#skillModal.skill-codex-active .modalclose:focus-visible {
 outline:2px solid #f3d8a6;
 outline-offset:2px;
 filter:brightness(1.13);
}
@media(max-width:560px) {
 #skillModal.skill-codex-active .modalhead {
  --codex-side-track:34%;
  --codex-icon-size:82px;
  --codex-icon-inset:20px;
  --codex-close-size:66px;
  --codex-close-inset:7.5%;
  min-height:108px;
  grid-template-rows:minmax(108px,auto);
 }
 #skillModal.skill-codex-active #skillModalTitle {
  transform:translateY(4px);
  font-size:clamp(19px,5.6vw,25px);
  letter-spacing:.012em;
 }
}
@media(max-width:330px) {
 #skillModal.skill-codex-active .modalhead {
  --codex-side-track:36%;
  --codex-icon-size:74px;
  --codex-icon-inset:13px;
  --codex-close-size:62px;
  --codex-close-inset:7.5%;
  min-height:101px;
  grid-template-rows:minmax(101px,auto);
 }
 #skillModal.skill-codex-active #skillModalTitle {
  font-size:clamp(17px,5.1vw,22px);
 }
}
@media(prefers-reduced-motion:reduce) {
 #skillModal.skill-codex-active .modalclose {transition:none}
}
/* Legolas Greenleaf — accessible private material panel, v0.34.84 */
body.legolas-open{overflow:hidden}
#materialNavBtn{white-space:nowrap}
.legolas-viewer{position:fixed;inset:0;z-index:30001;background:rgba(10,12,16,.96);color:#f8ecd7;font:14px/1.5 system-ui,Arial,sans-serif}
.legolas-panel.hidden,.legolas-viewer.hidden{display:none!important}
/* Material is a normal page inside main, never covering banner links. */
main > .legolas-panel{position:relative;inset:auto;z-index:auto;overflow:visible;width:100%;min-height:calc(100dvh - 160px);padding:clamp(8px,2vw,22px);box-sizing:border-box;background:rgba(10,12,16,.96);color:#f8ecd7;font:14px/1.5 system-ui,Arial,sans-serif}
.legolas-panel-inner{width:min(1180px,100%);min-height:calc(100dvh - 44px);margin:0 auto;padding:clamp(12px,2.3vw,26px);box-sizing:border-box;background:#201f1d;border:1px solid #806a4b;border-radius:15px}
.legolas-heading{display:flex!important;position:static!important;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding:0!important;background:transparent!important;box-shadow:none!important;color:#ffe4b2}
.legolas-heading h2{font-size:clamp(21px,3vw,27px);margin:0}
.legolas-heading p{font-size:13px;color:#e6d3b7;margin:4px 0 0}
.legolas-close,.legolas-viewer-actions button,.legolas-viewer-footer button{cursor:pointer;background:#403326;border:1px solid #ab9064;color:#ffebce;border-radius:8px;min-width:42px;min-height:42px;font-size:18px;font-weight:700}
.legolas-close:hover,.legolas-viewer-actions button:hover,.legolas-viewer-footer button:hover:not(:disabled){background:#5a442b}
.legolas-close:focus-visible,.legolas-panel button:focus-visible,.legolas-viewer button:focus-visible,.legolas-card-preview:focus-visible,.legolas-filters :is(input,select):focus-visible{outline:2px solid #94d2df;outline-offset:2px}
.legolas-queue{padding:15px;margin:0 0 18px;background:#2e281f;border:1px solid #92754e;border-radius:12px}
.legolas-queue.hidden{display:none!important}
.legolas-queue-top,.legolas-queue-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}
.legolas-queue-top strong{color:#ffe1ae;font-size:16px}
.legolas-queue-top span{font-weight:650;color:#f3dabe}
.legolas-queue p{font-size:12px;color:#d5c3a7;margin:6px 0 12px}
.legolas-queue-items{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}
.legolas-queue-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid #b29057;border-radius:22px;padding:5px 5px 5px 12px;background:#463927;color:#fff3de;overflow-wrap:anywhere}
.legolas-queue-chip button{min-height:29px;min-width:29px;border:0;border-radius:50%;background:#1c1e20;color:#fff2df;font-size:18px;cursor:pointer}
.legolas-queue-empty{font-size:12px;color:#dccba9}
.legolas-queue-actions button,.legolas-filters button,.legolas-pagination button,.legolas-pick{cursor:pointer;min-height:42px;border:1px solid #a38a61;background:#443522;color:#fff1d6;padding:8px 14px;border-radius:9px;font:650 13px system-ui,sans-serif}
.legolas-queue-actions button:first-child{background:#36564a;border-color:#88b49b}
.legolas-queue-actions button:disabled,.legolas-pagination button:disabled{opacity:.45;cursor:default}
.legolas-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:12px}
.legolas-filters label{display:flex;flex-direction:column;gap:6px;min-width:0;color:#eee1c7;font-size:12px;font-weight:650}
.legolas-filters :is(input,select){background:#121719;color:#fff2d8;border:1px solid #937c54;border-radius:8px;min-height:44px;padding:8px 10px;font-size:16px;width:100%;box-sizing:border-box}
.legolas-notice{min-height:22px;color:#decaa9;margin:0 0 12px;font-size:13px}
.legolas-notice.is-error{color:#ffd0c0}
.legolas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:12px}
.legolas-card{min-width:0;border:1px solid #776347;background:#2a251f;border-radius:11px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 5px 15px rgba(0,0,0,.15)}
.legolas-card-preview{display:flex;flex-direction:column;min-width:0;padding:0;border:0;background:transparent;text-align:left;color:inherit;cursor:pointer;flex:1}
.legolas-card-preview:hover .legolas-card-media{background:#34322b}
.legolas-card-media{display:flex;align-items:center;justify-content:center;background:#111719;color:#c6bba5;font-size:45px;width:100%;aspect-ratio:4/3;overflow:hidden}
.legolas-card-media img{display:block;width:100%;height:100%;object-fit:contain}
.legolas-card-title{display:block;color:#fff0d5;font-size:14px;font-weight:700;line-height:1.4;overflow-wrap:anywhere;margin:9px 10px 2px}
.legolas-card-preview small{margin:0 10px 10px;color:#ccbca1}
.legolas-pick{margin:0 10px 10px;min-height:37px}
.legolas-pick[aria-pressed=true]{background:#42624f;border-color:#90c69d}
.legolas-empty{grid-column:1/-1;padding:28px 14px;border:1px dashed #977b59;border-radius:10px;text-align:center;color:#e9d7b8}
.legolas-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin:24px 0}
.legolas-pagination span{font-weight:650;min-width:65px;text-align:center}
.legolas-viewer{display:flex;flex-direction:column;overflow:hidden}
.legolas-viewer:fullscreen{background:#0a0b10}
.legolas-viewer-header{display:flex!important;position:relative!important;z-index:2;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px clamp(12px,2vw,24px)!important;background:#20201d!important;box-shadow:0 2px 14px rgba(0,0,0,.45)!important;color:#ffe5bc!important;min-height:58px;box-sizing:border-box}
.legolas-viewer-heading{display:flex;flex-direction:column;min-width:0;flex:1}
.legolas-viewer-heading strong{font-size:clamp(14px,2vw,20px);overflow-wrap:anywhere}
.legolas-viewer-heading span{font-size:12px;color:#d5c4ac}
.legolas-viewer-actions{display:flex;gap:6px;flex-wrap:wrap}
.legolas-viewer-actions button{font-size:16px}
#legolasZoomReset{min-width:61px;font-size:13px}
.legolas-stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0;width:100%;outline:none;touch-action:none;cursor:grab;background:radial-gradient(ellipse at center,#272721,#090c0e 76%)}
.legolas-stage:active{cursor:grabbing}
.legolas-media{display:flex;align-items:center;justify-content:center;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden}
.legolas-media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:center center;will-change:transform}
.legolas-media iframe{width:min(980px,100%);height:100%;border:0;background:#fff}
.legolas-media pre{white-space:pre-wrap;overflow:auto;max-height:100%;max-width:min(900px,95%);font:15px/1.65 ui-monospace,monospace;color:#fff3df;padding:20px;box-sizing:border-box}
.legolas-media a{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);border-radius:9px;padding:9px 13px;background:#423725;color:#fff4dd;z-index:2}
.legolas-viewer-footer{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px clamp(12px,2vw,24px);background:#20201d;min-height:62px;box-sizing:border-box}
.legolas-viewer-footer span{min-width:0;flex:1;text-align:center;font-size:13px;color:#e4d0ae;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.legolas-viewer-footer button{white-space:nowrap;font-size:13px;padding:6px 11px}
.legolas-viewer-footer button:disabled,.legolas-viewer-actions button:disabled{opacity:.4;cursor:default}
@media(max-width:720px){
 .legolas-panel{padding:0}
 .legolas-panel-inner{min-height:100dvh;border-radius:0;border:0;padding:12px}
 .legolas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .legolas-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .legolas-filters button{grid-column:1/-1}
 .legolas-viewer-header{align-items:start}
 .legolas-viewer-heading{flex-basis:100%}
 .legolas-viewer-actions{width:100%;justify-content:space-between}
 .legolas-viewer-actions button{flex:1}
 .legolas-viewer-footer{gap:5px;padding:8px}
 .legolas-viewer-footer button{min-width:36px;font-size:11px;padding:6px}
 .legolas-viewer-footer span{font-size:11px}
 #materialNavBtn{font-size:12px}
}
@media(max-width:365px){.legolas-grid{grid-template-columns:1fr 1fr}.legolas-card-media{font-size:32px}.legolas-card-title{font-size:12px}}

/* Plain static GitHub Pages: the Material button stays visible on narrow phones. */
#materialNavBtn{display:inline-flex;align-items:center;justify-content:center;gap:2px;min-height:42px;min-width:42px}
@media(max-width:700px){#materialNavBtn .material-nav-label{display:none}}




/* Arcane Gallery: actual transparent HERMES art, not a CSS redraw. */
#legolasPanel .arcane-gallery{width:min(100%,1150px);margin:12px auto 16px;color:#e7ce9d}
#legolasPanel .arcane-gallery.hidden{display:none!important}
.arcane-gallery-heading{display:flex!important;justify-content:space-between;align-items:center;gap:10px;padding:0 6%!important;background:none!important;box-shadow:none!important}
.arcane-gallery-heading strong{font:700 clamp(12px,2vw,18px) Georgia,serif;letter-spacing:.13em}
.arcane-gallery-heading span,.arcane-gallery-status{font:12px system-ui,sans-serif;color:#d2bb92}
.arcane-gallery-machine{position:relative;width:100%;aspect-ratio:3/2;isolation:isolate}
.arcane-gallery-picture{position:absolute;left:12.6%;top:10.1%;width:74.8%;height:53.7%;z-index:1;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse,#26211d,#080a09);cursor:zoom-in}
.arcane-gallery-picture:focus-visible{outline:3px solid #ffe1a3;outline-offset:-3px}
.arcane-gallery-picture img{width:100%;height:100%;object-fit:contain;animation:arcane-gallery-appear .24s ease}
.arcane-gallery-picture .hidden{display:none!important}
#arcaneGalleryEmpty{max-width:80%;text-align:center;color:#d9c69e;font:clamp(10px,1.5vw,16px) Georgia,serif}
.arcane-gallery-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
/* Match the five actual window centers in the locked 1536x1024 bronze artwork. */
.arcane-gallery-belt{position:absolute;left:16.6%;top:76.1%;width:66.7%;height:13.2%;z-index:2;overflow:hidden;background:#100e0b}
.arcane-gallery-strip{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain;touch-action:pan-x;cursor:grab}
.arcane-gallery-strip::-webkit-scrollbar{display:none}
.arcane-gallery-tile{position:relative;flex:0 0 20%;height:100%;padding:3px;min-width:0;overflow:hidden;border:0;background:linear-gradient(120deg,#322619,#0e0d0c);color:#d5ad70;cursor:pointer;scroll-snap-align:center}
.arcane-gallery-tile img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.arcane-gallery-tile.is-active:after{content:"";position:absolute;inset:3px;border:2px solid #ffe2a4;box-shadow:inset 0 0 10px #ffce62,0 0 7px #ffd27b;pointer-events:none}
.arcane-gallery-tile:focus-visible{outline:3px solid #fadd98;outline-offset:-3px}
.arcane-gallery-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;max-width:520px;margin:-4px auto 8px;padding:0 10px;position:relative;z-index:4}
.arcane-gallery-controls button{display:grid;place-items:center;min-height:44px;width:44px;min-width:44px;padding:0;border:1px solid #907143;border-radius:50%;background:radial-gradient(circle at 35% 25%,#6d5434,#2a2017 72%,#130f0a);color:#eed3a0;font:34px/1 Georgia,serif;cursor:pointer;box-shadow:inset 0 1px 2px #d2ad6588,0 2px 7px #0006}
.arcane-gallery-controls button:disabled{opacity:.32;cursor:default}
.arcane-gallery-controls button:not(:disabled):active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0009}
.arcane-gallery-controls button:focus-visible{outline:3px solid #ffe1a3;outline-offset:3px}
.arcane-gallery-status{text-align:center;margin:0;min-height:17px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:480px){.arcane-gallery-controls{gap:4px;margin-top:-2px}.arcane-gallery-status{font-size:11px}}
@keyframes arcane-gallery-appear{from{opacity:.3}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.arcane-gallery-picture img{animation:none}}
@media(max-width:720px){#legolasPanel .arcane-gallery{width:calc(100% + 18px);margin-left:-9px;margin-right:-9px}.arcane-gallery-tile{padding:1px}}


/* v0.35.239: content-driven springless, smooth bronze frame.
   The image's true proportions determine the height; it is never stretched. */
#legolasPanel .arcane-gallery-fluid{
 container-type:inline-size;
}
#legolasPanel .arcane-gallery-fluid .arcane-gallery-machine{
 aspect-ratio:auto;
 height:var(--arcane-frame-height,66.6667cqw);
 transition:height 850ms cubic-bezier(.2,.46,.2,1);
}
#legolasPanel .arcane-gallery-fluid .arcane-gallery-overlay{display:none!important}
#legolasPanel .arcane-gallery-fluid .arcane-gallery-machine::after{
 content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
 border-style:solid;border-width:1px 0;
 border-image-source:url("./arcane-gallery-overlay-7KwaAgyK.webp?v=0.35.239");
 border-image-slice:230 0 215 0 fill;
 border-image-width:19.965cqw 0 18.663cqw 0;
 border-image-repeat:stretch;
}
#legolasPanel .arcane-gallery-fluid .arcane-gallery-picture{
 left:12.6%;top:6.73cqw;width:74.8%;
 height:calc(80.495% - 17.86cqw);
}
#legolasPanel .arcane-gallery-fluid .arcane-gallery-belt{
 left:16.6%;top:calc(100% - 15.94cqw);
 width:66.7%;height:8.8cqw;
}
@media(prefers-reduced-motion:reduce){
 #legolasPanel .arcane-gallery-fluid .arcane-gallery-machine{transition:none}
}
/* Frodo Bagger v0.34.85 — single active campaign presentation */
.frodo-panel{border:1px solid #a08559;border-radius:12px;padding:15px;margin:0 0 18px;background:#29251d;color:#f9ebd2}
.frodo-panel.frodo-is-active{border-color:#8db49f;background:#233128}
.frodo-panel-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.frodo-panel-heading strong{font-size:16px;color:#ffe0af}
.frodo-panel-heading span{color:#f4ebd7;font-size:13px;line-height:1.5}
.frodo-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.frodo-actions.hidden{display:none!important}
.frodo-actions button{cursor:pointer;border:1px solid #a28a64;background:#433a2a;color:#fff1d9;border-radius:8px;padding:9px 13px;min-height:43px;font:650 13px system-ui,Arial,sans-serif}
.frodo-actions button.frodo-primary{border-color:#9ac9b0;background:#315b46;color:#fafff5}
.frodo-actions button.frodo-stop{border-color:#c69179;background:#633a31;color:#fff0e5}
.frodo-actions button:disabled{opacity:.45;cursor:default}
.frodo-actions button:focus-visible{outline:2px solid #94d2df;outline-offset:2px}
#frodoNotice{min-height:16px;margin:10px 0 0;color:#bbdfc7;font:12px/1.5 system-ui,Arial,sans-serif}
#frodoNotice.is-error{color:#ffd0ba}
@media(max-width:520px){.frodo-panel{padding:11px}.frodo-actions button{flex:1 1 auto}.frodo-panel-heading span{flex:1 1 100%}}
/* Sam Gamgi v0.34.86 — readable, mobile-friendly persistent player library. */
.sam-folder{padding:15px;margin:0 0 18px;background:#232a20;border:1px solid #81916e;border-radius:12px;color:#f6efdc}
.sam-header{display:flex;align-items:start;justify-content:space-between;flex-wrap:wrap;gap:10px}
.sam-header h3{font-size:17px;color:#e9eec0;margin:0 0 5px}
.sam-header p{font-size:12px;color:#d7dbc0;margin:0 0 10px;line-height:1.5}
.sam-header button,.sam-pagination button,.sam-revoke,.sam-share-primary{border:1px solid #9ba785;border-radius:8px;min-height:40px;background:#354331;color:#f9f4df;padding:8px 11px;font:650 13px system-ui,sans-serif;cursor:pointer}
.sam-header button:hover,.sam-pagination button:hover:not(:disabled),.sam-revoke:hover:not(:disabled){background:#496141}
.sam-header button:focus-visible,.sam-pagination button:focus-visible,.sam-revoke:focus-visible,.sam-share-primary:focus-visible,.sam-item-open:focus-visible{outline:2px solid #98d9e8;outline-offset:2px}
.sam-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 0;border-top:1px solid #506144;border-bottom:1px solid #506144;margin:7px 0 12px}
.sam-actions.hidden{display:none!important}
.sam-actions span{font-size:12px;color:#cfdbc0;max-width:470px}
.sam-share-primary{background:#3b6249;border-color:#83b591}
.sam-share-primary:hover:not(:disabled){background:#4a7958}
.sam-share-primary:disabled,.sam-pagination button:disabled,.sam-revoke:disabled{opacity:.48;cursor:default}
.sam-notice{min-height:17px;font-size:12px;line-height:1.4;color:#d8e6bd;margin:8px 0}
.sam-notice.is-error{color:#ffd2b9}
.sam-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:9px}
.sam-item{display:flex;align-items:center;gap:6px;min-width:0;border:1px solid #677c61;background:#273429;border-radius:9px;padding:7px}
.sam-item-open{display:flex;align-items:center;gap:10px;flex:1;min-width:0;min-height:55px;color:#f8f4e7;background:transparent;border:0;text-align:left;cursor:pointer;padding:3px}
.sam-item-open strong{display:block;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.sam-item-open small{display:block;margin-top:4px;font-size:11px;color:#cfd7c1}
.sam-item-symbol{font-size:28px;color:#bfd3a0;min-width:32px;text-align:center}
.sam-revoke{flex-shrink:0;background:#59382e;color:#ffebdc;border-color:#b69083;font-size:12px;min-height:37px}
.sam-empty{grid-column:1/-1;color:#d6ddc7;border:1px dashed #718068;border-radius:9px;padding:16px;text-align:center;font-size:13px;margin:0}
.sam-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0 0}
.sam-pagination span{font-size:12px;font-weight:700;min-width:60px;text-align:center}
.legolas-sam-share{margin:0 10px 10px;min-height:37px;border:1px solid #90b08b;border-radius:8px;background:#354e39;color:#efffdf;font:650 12px system-ui,sans-serif;cursor:pointer}
.legolas-sam-share:hover{background:#45674a}
.legolas-sam-share:focus-visible{outline:2px solid #94d2df;outline-offset:2px}
@media(max-width:720px){.sam-items{grid-template-columns:1fr}.sam-folder{padding:11px}.sam-item{gap:4px}.sam-revoke{font-size:11px}}
/* Galadriel v0.34.87 — compact connection status for material presenters. */
.galadriel-status{
 margin:0 0 18px;padding:10px 13px;border:1px solid #7e7c68;border-radius:9px;
 background:#292a2a;color:#e5dec8;font:650 12px/1.55 system-ui,Arial,sans-serif;
}
.galadriel-status.galadriel-connected{
 border-color:#799986;background:#20352a;color:#d3ecd8;
}
.galadriel-status[data-live="no"]{color:#e5d7b0}
@media(max-width:720px){.galadriel-status{font-size:11px;padding:10px}}
/* Materialateljén, v0.35.19 — keeps existing access and sharing controls */
#legolasPanel{--mat-gold:#ddbb81;--mat-line:rgba(221,187,129,.28);--mat-muted:#d1bfa0;background:radial-gradient(ellipse at 50% -20%,#473624 0%,#121815 57%,#0b0f0e 100%);color:#f5ebd9}
#legolasPanel .legolas-panel-inner{width:min(1320px,100%);padding:clamp(14px,2.7vw,34px);border:1px solid rgba(221,187,129,.4);border-radius:20px;background:linear-gradient(135deg,#2b2922 0%,#202924 51%,#191e1b 100%);box-shadow:0 26px 80px #0009}
#legolasPanel .legolas-heading{position:relative!important;min-height:115px;margin-bottom:17px;padding:clamp(17px,2.5vw,28px)!important;border:1px solid var(--mat-line);border-radius:16px;background:radial-gradient(circle at 95% 0%,#62503755,transparent 45%),linear-gradient(100deg,#393128,#26322d)!important;box-shadow:0 8px 25px #0003!important}
#legolasPanel .legolas-heading:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:15px 0 0 15px;background:linear-gradient(#f2d092,#8a633b)}
.legolas-eyebrow,.frodo-eyebrow,.sam-eyebrow{display:block;margin:0 0 6px;color:#d7b57d;font:750 10px/1.4 system-ui,sans-serif;letter-spacing:.19em}
#legolasPanel .legolas-heading h2{font:700 clamp(26px,3.3vw,39px)/1.2 Georgia,serif;color:#ffe9c7;margin:0;text-shadow:0 3px 15px #0005}
#legolasPanel .legolas-heading p{margin:6px 0 0;color:#e5d4b9;font-size:13px;line-height:1.5}
#legolasPanel .legolas-close{align-self:flex-start;border-color:#a78c68;border-radius:11px;background:#1b2521da;color:#fff1d9}
#legolasPanel .frodo-panel,#legolasPanel .sam-folder,#legolasPanel .legolas-queue{margin:0 0 15px;border-radius:14px;box-shadow:0 8px 25px #0002,inset 0 1px #ffffff0c}
#legolasPanel .frodo-panel{padding:clamp(15px,2vw,23px);background:linear-gradient(110deg,#4a3829,#2c332c 64%,#26352b);border:1px solid #b09264a8}
#legolasPanel .frodo-panel.frodo-is-active{background:radial-gradient(circle at 95% 0,#63997833,transparent 42%),linear-gradient(110deg,#274533,#29382e);border-color:#9bc8a6}
#legolasPanel .frodo-heading-copy strong{display:block;color:#f8dfad;font:700 clamp(19px,2.3vw,25px) Georgia,serif}
#legolasPanel .frodo-heading-copy strong span{color:#c7a573;margin-right:5px}
#legolasPanel .frodo-is-active .frodo-heading-copy strong span{color:#93ecb0}
#legolasPanel #frodoCurrent{max-width:52%;color:#f2e2c5;background:#0003;border:1px solid #ffffff20;border-radius:9px;padding:9px 12px;font-size:13px}
#legolasPanel .frodo-actions{gap:9px;margin-top:16px}
#legolasPanel .frodo-actions button{padding:10px 15px;min-height:43px;border-radius:10px;transition:transform .15s,filter .15s}
#legolasPanel .frodo-actions button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.15)}
#legolasPanel .frodo-actions .frodo-primary,#legolasPanel .sam-share-primary{background:linear-gradient(#4c805e,#305941);border-color:#9fcaad;color:#f5fff3}
#legolasPanel .sam-folder{padding:clamp(15px,2vw,22px);background:linear-gradient(110deg,#293a2e,#242d25);border:1px solid #a7ba8a77}
#legolasPanel .sam-header h3{margin:0;color:#f4e5c6;font:700 22px Georgia,serif}
#legolasPanel .sam-header p{margin-top:6px;color:#d5ddcb}
#legolasPanel .sam-item{background:#101c16a8;border-color:#a5bc8740;border-radius:10px}
#legolasPanel .sam-item:hover{border-color:#a5bc8799;background:#2f4333}
#legolasPanel .legolas-queue{padding:clamp(15px,2vw,22px);background:linear-gradient(100deg,#373025,#302c26);border:1px solid var(--mat-line)}
#legolasPanel .legolas-queue-top strong{font:700 18px Georgia,serif;color:#ffe0ad}
#legolasPanel .legolas-queue-top span{padding:5px 10px;border:1px solid var(--mat-line);border-radius:20px;background:#12140f55}
#legolasPanel .legolas-queue p{font-size:13px;color:#e5d1b1}
#legolasPanel .legolas-queue-chip{border-color:#c8a577;background:#57412c}
#legolasPanel .legolas-library-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;border-bottom:1px solid var(--mat-line);padding:0 2px 12px;margin:24px 0 15px}
#legolasPanel .legolas-library-heading h3{margin:0;font:700 clamp(22px,2.4vw,29px) Georgia,serif;color:#f6dfb5}
#legolasPanel .legolas-results{color:var(--mat-muted);font-size:12px;white-space:nowrap;padding-bottom:3px}
#legolasPanel .legolas-filters{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr) auto;gap:12px;align-items:end;padding:15px;border:1px solid #d9b57c29;border-radius:12px;background:#07100d45}
#legolasPanel .legolas-filters label{font-size:12px;color:#e3cfac}
#legolasPanel .legolas-filters :is(input,select){background:#151e1a;border:1px solid #917650;border-radius:10px;min-height:46px;color:#fff3dc;padding:10px 12px}
#legolasPanel .legolas-filters :is(input,select):focus-visible{border-color:#ebc38b;box-shadow:0 0 0 3px #b78b4233}
#legolasPanel .legolas-filters button{min-height:46px;border-radius:10px}
#legolasPanel .legolas-grid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:15px}
#legolasPanel .legolas-card{background:linear-gradient(#343127,#252b26);border:1px solid #d7b57c44;border-radius:14px;box-shadow:0 7px 19px #0004;transition:transform .17s,border-color .17s,box-shadow .17s}
#legolasPanel .legolas-card:hover,#legolasPanel .legolas-card:focus-within{transform:translateY(-3px);border-color:#d6b37a;box-shadow:0 13px 25px #0006}
#legolasPanel .legolas-card-media{position:relative;aspect-ratio:5/4;background:radial-gradient(ellipse at center,#34433b,#151d19 80%);color:#d2bea0}
#legolasPanel .legolas-card-media img{object-fit:cover}
#legolasPanel .legolas-card-kind{position:absolute;z-index:2;top:10px;left:10px;border-radius:6px;padding:4px 8px;border:1px solid #d9b57c66;background:#151e1bdd;color:#f2ddae;font:750 9px/1.4 system-ui,sans-serif;letter-spacing:.12em}
#legolasPanel .legolas-card-title{margin:12px 12px 3px;color:#fff0da;font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.65em}
#legolasPanel .legolas-card-preview small{margin:2px 12px 11px;color:#d2bea0}
#legolasPanel .legolas-pick,#legolasPanel .legolas-sam-share{border-radius:9px;margin:0 11px 9px;min-height:39px}
#legolasPanel .legolas-pick[aria-pressed=true]{background:#395f4b;border-color:#a5d2ac}
#legolasPanel .legolas-empty{padding:44px 16px;border-radius:14px;background:#111c1699;border-color:#d9b57c66}
#legolasPanel .legolas-pagination span{color:#efdfc3}
#legolasViewer .legolas-viewer-header,#legolasViewer .legolas-viewer-footer{background:linear-gradient(110deg,#302b23,#1b2922)!important;border-color:#d7b47c55}
#legolasViewer .legolas-viewer-heading strong{font:700 clamp(17px,2.2vw,24px) Georgia,serif;color:#fff0d4}
#legolasViewer .legolas-stage{background:radial-gradient(ellipse at center,#28342d,#0a100e 77%)}
/* Bilbo: same visual rhythm in the administrative image library */
#admin .bilbo-controls{padding:15px;border:1px solid #d7b47c33;border-radius:13px;background:#131b174d}
#admin .bilbo-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:13px}
#admin .bilbo-card{background:linear-gradient(#302c23,#252a25);border:1px solid #d7b47c50;border-radius:13px;box-shadow:0 7px 18px #0003;transition:transform .17s,border-color .17s}
#admin .bilbo-card:hover,#admin .bilbo-card:focus-visible{transform:translateY(-2px);border-color:#e1c08c}
#admin .bilbo-card-media{aspect-ratio:5/4;background:radial-gradient(#36433b,#161e1a)}
#admin .bilbo-card-media img{object-fit:cover}
#admin .bilbo-card-label{padding:11px}
#admin .bilbo-details{border-radius:14px;background:linear-gradient(#302b24,#222923);border-color:#d7b47c66;box-shadow:0 9px 25px #0004}
@media(max-width:900px){#legolasPanel #frodoCurrent{max-width:100%}#legolasPanel .legolas-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:11px}}
@media(max-width:720px){
 #legolasPanel{padding:0}#legolasPanel .legolas-panel-inner{border:0;border-radius:0;min-height:100dvh;padding:12px}
 #legolasPanel .legolas-heading{min-height:0;padding:17px!important}#legolasPanel .legolas-heading h2{font-size:27px}
 #legolasPanel .legolas-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:11px;gap:10px}
 #legolasPanel .legolas-filters label:first-child,#legolasPanel .legolas-filters button{grid-column:1/-1}
 #legolasPanel .legolas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
 #legolasPanel .legolas-card-media{aspect-ratio:4/3}
 #legolasPanel .legolas-card-title{font-size:13px;margin:9px 9px 3px}
 #legolasPanel .legolas-card-preview small{font-size:11px;margin:2px 9px 8px}
 #legolasPanel .legolas-pick,#legolasPanel .legolas-sam-share{margin:0 7px 7px;padding:8px 3px;font-size:11px}
 #admin .bilbo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
}
@media(max-width:390px){#legolasPanel .legolas-library-heading{flex-direction:column;align-items:start;gap:5px}#legolasPanel .legolas-card-kind{font-size:8px;padding:3px 6px}}
@media(prefers-reduced-motion:reduce){#legolasPanel .legolas-card,#admin .bilbo-card,#legolasPanel .frodo-actions button{transition:none;transform:none!important}}

/* Keep type chip visible when asynchronous thumbnails replace the image placeholder. */
#legolasPanel .legolas-card{position:relative}

/* SL sees the exact full-size image currently shared with players. */
#legolasPanel .frodo-gm-preview{
 margin:17px 0 4px;padding:12px;border:1px solid rgba(216,181,122,.28);
 border-radius:12px;background:linear-gradient(145deg,#131c19,#19201c);
}
#legolasPanel .frodo-gm-preview.hidden{display:none!important}
#legolasPanel .frodo-gm-preview-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px}
#legolasPanel .frodo-gm-preview-top span{color:#e7c78c;font:750 10px/1.5 system-ui,sans-serif;letter-spacing:.15em}
#legolasPanel .frodo-gm-preview-top button{
 cursor:pointer;color:#f8e5c5;background:#3a3329;border:1px solid #9c835c;border-radius:8px;
 padding:7px 12px;min-height:36px;font:650 12px system-ui,sans-serif
}
#legolasPanel .frodo-gm-preview-top button:hover:not(:disabled){background:#57452f}
#legolasPanel .frodo-gm-preview-top button:disabled{opacity:.4;cursor:default}
#legolasPanel .frodo-gm-preview-top button:focus-visible{outline:2px solid #94d2df;outline-offset:2px}
#legolasPanel .frodo-gm-preview-stage{
 display:flex;align-items:center;justify-content:center;min-height:145px;
 max-height:385px;overflow:hidden;border:1px solid rgba(216,181,122,.16);border-radius:10px;
 background:radial-gradient(ellipse at center,#28342e,#0a100e 80%);
}
#legolasPanel #frodoGmImage{
 display:block;max-width:100%;width:auto;height:auto;max-height:375px;object-fit:contain;
}
#legolasPanel #frodoGmImage.hidden{display:none!important}
#legolasPanel #frodoGmPreviewStatus{padding:20px;text-align:center;color:#d0c3ac;font-size:13px}
#legolasPanel #frodoGmPreviewStatus.hidden{display:none!important}
#legolasPanel #frodoGmPreviewCaption{margin:9px 2px 1px;color:#d5c7ad;font-size:12px;line-height:1.5}
@media(max-width:720px){#legolasPanel .frodo-gm-preview{padding:9px}#legolasPanel .frodo-gm-preview-stage{max-height:290px}#legolasPanel #frodoGmImage{max-height:280px}}
/* Alea Crusaders · Presentationsateljén
   Mobile-first skin for the existing Frodo GM workflow.
   Real images remain private, and only explicit server RPC actions publish them. */
#legolasPanel .frodo-panel .frodo-live-chip{
 display:none;align-items:center;white-space:nowrap;gap:7px;
 border:1px solid #98784a;border-radius:999px;padding:8px 12px;
 color:#e9d1a5;background:#12221d;font:700 12px Georgia,serif;
}
#legolasPanel .frodo-panel .frodo-live-chip.is-live{
 border-color:#b86d51;background:#4d231b;color:#fff0d9;
 box-shadow:0 0 15px #f2753633;
}
#legolasPanel .frodo-panel .frodo-heading-copy small{display:none}
#legolasPanel .frodo-panel .frodo-queue-view{
 margin:14px 0 0;border:1px solid #8b724b88;border-radius:12px;
 padding:12px;background:linear-gradient(150deg,#142019,#181a15);
}
#legolasPanel .frodo-panel .frodo-queue-view.hidden{display:none!important}
#legolasPanel .frodo-panel .frodo-queue-heading{
 display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
 margin-bottom:11px;color:#f1d6a7;
}
#legolasPanel .frodo-panel .frodo-queue-heading strong{font:700 16px Georgia,serif}
#legolasPanel .frodo-panel .frodo-queue-heading>span{font:600 11px system-ui,sans-serif;color:#bbaa8e}
#legolasPanel .frodo-panel .frodo-queue-strip{
 display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;
 scroll-snap-type:x proximity;scrollbar-color:#7e6342 transparent;padding:3px 2px 9px;
}
#legolasPanel .frodo-panel .frodo-queue-strip button{
 cursor:pointer;scroll-snap-align:start;flex:0 0 110px;min-width:0;
 padding:0;color:#f6dfb8;border:1px solid #84643b;
 border-radius:9px;overflow:hidden;background:#17211b;
 box-shadow:0 4px 12px #0005;font:600 12px/1.25 system-ui,sans-serif;
}
#legolasPanel .frodo-panel .frodo-queue-strip button:focus-visible{
 outline:3px solid #f9d791;outline-offset:2px;
}
#legolasPanel .frodo-panel .frodo-queue-add{
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;
 min-height:104px;border-style:dashed!important;background:#272014!important;
}
#legolasPanel .frodo-panel .frodo-queue-add>span{font:300 34px/1 Georgia,serif;color:#d7b577}
#legolasPanel .frodo-panel .frodo-queue-add small{font-size:11px;line-height:1.3}
#legolasPanel .frodo-panel .frodo-queue-tile{position:relative;display:block;text-align:left}
#legolasPanel .frodo-panel .frodo-queue-tile.is-selected{
 border-color:#f1c982;box-shadow:0 0 0 2px #e4b765,0 0 12px #e9b45f70;
}
#legolasPanel .frodo-panel .frodo-queue-art{
 height:76px;display:grid;place-items:center;overflow:hidden;
 background:radial-gradient(circle at 50% 40%,#36463b,#0e1814 78%);
 color:#a99167;font-size:25px;
}
#legolasPanel .frodo-panel .frodo-queue-art img{display:block;width:100%;height:100%;object-fit:cover}
#legolasPanel .frodo-panel .frodo-queue-title{
 display:block;min-height:28px;padding:5px 6px;
 white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:10px;
}
#legolasPanel .frodo-panel .frodo-queue-number{
 position:absolute;top:4px;left:4px;padding:1px 5px;border-radius:4px;
 font:700 10px system-ui,sans-serif;color:#f8deb2;background:#121714e8;
}
#legolasPanel .frodo-panel .frodo-queue-overflow{
 align-self:center;flex:0 0 auto;color:#dfc39a;font-size:12px;
}
#legolasPanel .frodo-panel .frodo-queue-hint{
 margin:7px 2px 0;color:#c4b195;font:12px/1.5 system-ui,sans-serif;
}
#legolasPanel .frodo-panel .frodo-scene-strip,
#legolasPanel .frodo-panel .frodo-sound-note{display:none}
@media(max-width:720px){
 #legolasPanel .frodo-panel{
  --frodo-gold:#d1a769;--frodo-ivory:#f8e4bd;
  margin:0 0 16px;padding:14px 12px 12px;
  border:1px solid #b18c53;border-radius:14px;
  color:var(--frodo-ivory);
  background:radial-gradient(ellipse at 60% 0,#3c49344d,transparent 58%),
   linear-gradient(160deg,#11221b,#101813 67%,#10130f);
  box-shadow:inset 0 1px #e4ba6e3d,0 12px 26px #0007;
 }
 #legolasPanel .frodo-panel.frodo-is-active{
  background:radial-gradient(ellipse at 70% 0,#37604566,transparent 52%),linear-gradient(150deg,#11251d,#101a15);
  border-color:#c4a66c;
 }
 #legolasPanel .frodo-panel .frodo-panel-heading{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:8px;margin:0 0 12px;
 }
 #legolasPanel .frodo-panel .frodo-heading-copy{min-width:0}
 #legolasPanel .frodo-panel .frodo-eyebrow{font:700 9px/1.5 system-ui,sans-serif;letter-spacing:.16em;color:#bb9c6a}
 #legolasPanel .frodo-panel .frodo-heading-copy strong{
  margin:4px 0 2px;font:700 clamp(21px,6vw,30px)/1.1 Georgia,serif;
  color:#f7dca9;overflow-wrap:break-word;
 }
 #legolasPanel .frodo-panel .frodo-heading-copy small{
  display:block;color:#c3b092;font:12px/1.35 Georgia,serif;
 }
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-live-chip{display:inline-flex}
 #legolasPanel .frodo-panel.frodo-is-gm #frodoCurrent{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
 }
 #legolasPanel .frodo-panel .frodo-gm-preview{
  margin:0;padding:9px;border:1px solid #aa814d;border-radius:12px;
  background:linear-gradient(#12201b,#0e1813);
  box-shadow:inset 0 0 0 1px #0008,0 5px 18px #0005;
 }
 #legolasPanel .frodo-panel .frodo-gm-preview-top{margin:0 1px 9px;gap:6px}
 #legolasPanel .frodo-panel .frodo-gm-preview-top span{color:#e8cd99;letter-spacing:.1em;font-size:10px}
 #legolasPanel .frodo-panel .frodo-gm-preview-top button{
  border-radius:7px;min-height:34px;padding:6px 9px;
  border-color:#8e714d;background:#342c20;color:#f1d5aa;font-size:11px;
 }
 #legolasPanel .frodo-panel .frodo-gm-preview-stage{
  position:relative;isolation:isolate;aspect-ratio:16/9;min-height:0;max-height:none;
  border:1px solid #66523c;border-radius:8px;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,#25362d 0,#111f19 45%,#060e0d 100%);
 }
 #legolasPanel .frodo-panel .frodo-gm-preview-stage:before{
  content:"✧";position:absolute;z-index:-1;left:50%;top:39%;
  transform:translate(-50%,-50%);font:68px/1 Georgia,serif;color:#9b80543b;
  text-shadow:0 0 18px #aa8a4133;pointer-events:none;
 }
 #legolasPanel .frodo-panel .frodo-gm-preview-stage:has(#frodoGmImage:not(.hidden)):before{display:none}
 #legolasPanel .frodo-panel #frodoGmImage{
  display:block;width:100%;height:100%;max-height:none;object-fit:contain;
 }
 #legolasPanel .frodo-panel #frodoGmPreviewStatus{
  color:#eed9b3;font:600 14px/1.5 Georgia,serif;text-shadow:0 1px 6px #000;
  margin:0;padding:22px;text-align:center;
 }
 #legolasPanel .frodo-panel #frodoGmPreviewCaption{display:none}
 #legolasPanel .frodo-panel .frodo-scene-strip{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  margin:10px 1px 1px;padding:9px 10px;border:1px solid #91744b80;
  border-radius:7px;background:linear-gradient(100deg,#26352a,#171e19);
 }
 #legolasPanel .frodo-panel .frodo-scene-strip small{
  display:block;margin-bottom:3px;color:#c5a878;font:700 9px/1.3 system-ui,sans-serif;letter-spacing:.12em;
 }
 #legolasPanel .frodo-panel .frodo-scene-strip strong{
  display:block;font:700 14px/1.35 Georgia,serif;color:#f5dfb7;
 }
 #legolasPanel .frodo-panel .frodo-scene-strip>span:last-child{color:#cda771;font-size:13px}
 #legolasPanel .frodo-panel .frodo-queue-view{
  margin:13px 0 0;padding:11px 9px 8px;
  border-color:#ab87526b;background:linear-gradient(150deg,#1c281e,#121a16);
 }
 #legolasPanel .frodo-panel .frodo-queue-heading strong{font:700 17px Georgia,serif;color:#edcf95}
 #legolasPanel .frodo-panel .frodo-queue-hint{font-size:11px;margin-top:3px}
 #legolasPanel .frodo-panel #frodoGmActions{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:13px 0 0;
 }
 #legolasPanel .frodo-panel #frodoGmActions.hidden{display:none!important}
 #legolasPanel .frodo-panel #frodoGmActions button{
  margin:0;min-width:0;min-height:47px;padding:8px 5px;border-radius:8px;
  color:#efd5a9;border:1px solid #97764b;
  background:linear-gradient(#362c22,#211c17);
  font:700 clamp(11px,3vw,13px)/1.3 Georgia,serif;
 }
 #legolasPanel .frodo-panel #frodoGmActions #frodoShowQueue{
  grid-column:1/-1;min-height:54px;
  background:linear-gradient(#315946,#173b2d);
  border:1px solid #c0a66a;color:#ffedc8;
  box-shadow:inset 0 1px #f4dba544,0 2px 8px #0006;
  font:700 20px Georgia,serif;
 }
 #legolasPanel .frodo-panel #frodoGmActions #frodoStop{
  border-color:#a4745f;background:linear-gradient(#633b31,#39231e);color:#ffd8c5;
 }
 #legolasPanel .frodo-panel #frodoGmActions button:disabled{opacity:.42;cursor:default}
 #legolasPanel .frodo-panel #frodoGmActions button:focus-visible,
 #legolasPanel .frodo-panel .frodo-queue-tile:focus-visible{outline:2px solid #f4d99f;outline-offset:2px}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-sound-note{
  display:block;margin-top:13px;border:1px solid #886f4b;border-radius:9px;
  background:#15201a;color:#ecd4aa;
 }
 #legolasPanel .frodo-panel .frodo-sound-note summary{
  cursor:pointer;padding:13px 12px;list-style:none;
  font:700 14px Georgia,serif;
 }
 #legolasPanel .frodo-panel .frodo-sound-note summary::-webkit-details-marker{display:none}
 #legolasPanel .frodo-panel .frodo-sound-note summary span{float:right}
 #legolasPanel .frodo-panel .frodo-sound-note p{
  margin:0;padding:0 13px 13px;font:12px/1.5 system-ui,sans-serif;color:#c4b298;
 }
 #legolasPanel .frodo-panel #frodoNotice{min-height:0;margin:8px 2px 0}
}
@media(max-width:390px){
 #legolasPanel .frodo-panel{padding:12px 8px}
 #legolasPanel .frodo-panel .frodo-heading-copy strong{font-size:21px}
 #legolasPanel .frodo-panel .frodo-live-chip{padding:7px 8px;font-size:11px}
 #legolasPanel .frodo-panel #frodoGmActions button{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
 #legolasPanel .frodo-panel .frodo-queue-strip{scroll-behavior:auto}
}

/* v0.35.232 – mobile GM: the archive's introductory hero duplicated the
   Presentationsateljén heading and pushed the live preview below the fold.
   Keep it unchanged on desktop and for players, and retain close navigation. */
#legolasPanel .frodo-close-mobile{display:none}
@media(max-width:720px){
 #legolasPanel.legolas-atelier-gm > .legolas-panel-inner > .legolas-heading{
  display:none!important;
 }
 #legolasPanel.legolas-atelier-gm .frodo-panel{
  margin-top:0;
 }
 #legolasPanel.legolas-atelier-gm .frodo-panel-heading{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr);
  gap:7px;margin:0 0 12px;padding:0 43px 0 0;
 }
 #legolasPanel.legolas-atelier-gm .frodo-heading-copy{
  grid-column:1;min-width:0;
 }
 #legolasPanel.legolas-atelier-gm .frodo-eyebrow{display:none}
 #legolasPanel.legolas-atelier-gm #frodoPanelTitle{
  display:block;margin:0 0 4px;color:#f7dca9;
  font:700 clamp(19px,5.2vw,25px)/1.16 Georgia,serif;
  overflow-wrap:normal;word-break:normal;hyphens:none;
 }
 #legolasPanel.legolas-atelier-gm #frodoPanelSubtitle{
  display:block;font:12px/1.35 Georgia,serif;color:#c9b599;
 }
 #legolasPanel.legolas-atelier-gm .frodo-live-chip{
  grid-column:1;justify-self:start;
  padding:5px 10px;min-height:26px;
 }
 #legolasPanel.legolas-atelier-gm .frodo-close-mobile{
  position:absolute;top:0;right:0;display:grid;place-items:center;
  box-sizing:border-box;width:37px;height:37px;min-height:37px;
  padding:0;border:1px solid #b79865;border-radius:9px;
  background:#222d25;color:#f9deb2;font:600 22px/1 Georgia,serif;
  cursor:pointer;touch-action:manipulation;
 }
 #legolasPanel.legolas-atelier-gm .frodo-close-mobile:focus-visible{
  outline:2px solid #f2d29d;outline-offset:3px;
 }
}


/* Arcane Gallery v0.35.237 – one bronze viewer for the GM as well as players.
   Retain the legacy preview nodes for compatibility; never display both. */
#legolasPanel .frodo-panel.frodo-is-gm .frodo-gm-preview{display:none!important}
#legolasPanel .frodo-panel .arcane-gm-gallery{
 display:none;width:100%;max-width:none;margin:4px auto 7px;
 padding:0;background:none;border:0;box-shadow:none;
}
#legolasPanel .frodo-panel.frodo-is-gm .arcane-gm-gallery:not(.hidden){display:block}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-heading{
 padding:0 2%!important;margin:0 0 2px;min-height:20px;
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-heading strong{
 color:#f6dba5;font:700 clamp(11px,2.6vw,16px) Georgia,serif;letter-spacing:.13em;
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-heading span{
 color:#ccb68f;font-size:11px;
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-picture{
 background:radial-gradient(ellipse at 50% 43%,#28372c,#101c17 70%,#080e0b 100%);
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-picture:focus-visible,
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-tile:focus-visible{
 outline:2px solid #ffe0a4;outline-offset:-2px;
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gm-vacant{
 cursor:default;background:radial-gradient(ellipse,#342c21,#110f0c 75%);
 border-left:1px solid #91704a33;opacity:.87;
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-controls{
 margin:-2px auto 1px;max-width:none;
}
#legolasPanel .frodo-panel .arcane-gm-gallery .arcane-gallery-status{
 font-size:11px;color:#ebd1a3;line-height:1.35;
}
#legolasPanel.legolas-atelier-gm #legolasGmQueue{display:none!important}
@media(max-width:720px){
 #legolasPanel .frodo-panel .arcane-gm-gallery{margin:1px 0 0;width:100%}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-strip .frodo-queue-tile,
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-strip .frodo-queue-overflow{display:none}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-add{
  flex:1 1 100%;min-height:47px;max-width:none;
  padding:4px 12px;flex-direction:row;gap:8px;
  border-style:solid!important;background:#27251c!important;
 }
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-add>span{font-size:27px}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-add small{font-size:12px}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-add small br{display:none}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-heading{margin-bottom:5px}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-hint{margin-top:3px}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-queue-view{margin-top:7px}
}


/* Sisyphus · Arcane Gallery mobile focus v0.35.238.
   Only the GM's OPEN material route is full-bleed. Every other Alea page,
   the player gallery and the desktop atelier keep their normal navigation. */
@media (max-width:720px){
 body:has(#legolasPanel.legolas-atelier-gm:not(.hidden)) > .alea-app-header{
  display:none!important;
 }
 main > #legolasPanel.legolas-atelier-gm{
  margin:0!important;padding:0!important;width:100%!important;
  min-height:100dvh;background:#0d1511!important;
 }
 #legolasPanel.legolas-atelier-gm .legolas-panel-inner{
  width:100%!important;max-width:none!important;min-height:100dvh!important;
  margin:0!important;padding:0!important;border:0!important;
  border-radius:0!important;box-shadow:none!important;background:#101911!important;
 }
 #legolasPanel.legolas-atelier-gm > .legolas-panel-inner > .legolas-heading,
 #legolasPanel.legolas-atelier-gm .frodo-panel-heading,
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-heading{
  display:none!important;
 }
 #legolasPanel.legolas-atelier-gm .frodo-panel.frodo-is-gm{
  margin:0!important;padding:0 0 max(12px,env(safe-area-inset-bottom))!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background:linear-gradient(#0d1511,#19241b)!important;
 }
 /* Keep the five miniature apertures and every bronze ornament undistorted:
    the top/bottom of the approved asset retain their original scaling while
    only the plain central rails stretch vertically (9-slice border-image). */
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery{
  display:block!important;position:relative!important;
  width:100%!important;max-width:100%!important;min-width:0;
  margin:0!important;padding:0!important;border:0!important;
  container-type:inline-size;isolation:isolate;overflow:visible;
 }
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery.hidden{display:none!important}
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-machine{
  width:100%;aspect-ratio:auto!important;
  height:calc(100dvh - 58px - env(safe-area-inset-bottom));
  min-height:max(360px,118cqw);
  max-height:980px;
  overflow:hidden;
 }
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-overlay{
  display:none!important;
 }
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-machine::after{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  border-style:solid;border-width:1px 0;
  border-image-source:url("./arcane-gallery-overlay-7KwaAgyK.webp?v=0.35.238");
  border-image-slice:230 0 215 0 fill;
  border-image-width:19.965cqw 0 18.663cqw 0;
  border-image-repeat:stretch;
 }
 /* Translate the transparent picture aperture through the same 9-slice
    geometry. The horizontal dimensions never change. */
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-picture{
  left:12.6%;top:6.73cqw;width:74.8%;
  height:calc(80.495% - 17.86cqw);
 }
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-belt{
  left:16.6%;width:66.7%;
  top:calc(100% - 15.94cqw);height:8.8cqw;
 }
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery .arcane-gallery-controls{
  margin:0 auto!important;padding:0 8px!important;
  min-height:48px;max-width:100%;
  background:#101911;
 }
 /* Exiting the full-frame view stays available; no title/header is needed. */
 #legolasPanel.legolas-atelier-gm .arcane-gm-close{
  display:grid;position:absolute;top:6px;right:6px;z-index:8;
  place-items:center;width:44px;height:44px;min-height:44px;
  padding:0;border:1px solid #d4af76;border-radius:50%;
  color:#fbe9c6;background:#211d18e8;box-shadow:0 3px 14px #000b;
  font:700 25px/1 Georgia,serif;cursor:pointer;touch-action:manipulation;
 }
 #legolasPanel.legolas-atelier-gm .arcane-gm-close:focus-visible{
  outline:3px solid #ffe0a4;outline-offset:2px;
 }
 #legolasPanel.legolas-atelier-gm .frodo-queue-view{
  margin:0 6px 8px!important;padding:8px!important;
 }
 #legolasPanel.legolas-atelier-gm #frodoGmActions{
  margin:8px 6px 0!important;
 }
 #legolasPanel.legolas-atelier-gm #frodoNotice{
  margin:4px 8px 8px;
 }
}


/* v0.35.239: the selected image ratio overrides the empty-state full-height
   viewer. Sizing is calculated from the transparent picture aperture in JS. */
@media(max-width:720px){
 #legolasPanel.legolas-atelier-gm .arcane-gm-gallery.arcane-gallery-fluid .arcane-gallery-machine{
  height:var(--arcane-frame-height)!important;
  min-height:0!important;max-height:none!important;
  transition:height 460ms cubic-bezier(.22,1,.36,1);
 }
 @media(prefers-reduced-motion:reduce){
  #legolasPanel.legolas-atelier-gm .arcane-gm-gallery.arcane-gallery-fluid .arcane-gallery-machine{
   transition:none;
  }
 }
}


/* GOOSE 05 — one exact same published image frame for GM and players.
 * The existing heading still supplies accessible current-state announcements,
 * but the one real Gallery supplies the visual title and count. */
#legolasPanel .frodo-panel .frodo-panel-heading{
 position:absolute!important;width:1px!important;height:1px!important;
 padding:0!important;margin:0!important;overflow:hidden!important;
 clip-path:inset(100%)!important;white-space:nowrap!important;
}
/* GOOSE 05 — one exact same published image frame for GM and players.
 * The staging queue is a separate private administration surface. */
#legolasPanel .frodo-panel{position:relative}
#legolasPanel .frodo-panel #arcaneGallery{display:block;width:100%;max-width:none;margin:0 auto 10px}
#legolasPanel .frodo-panel #arcaneGallery.hidden{display:none!important}
#legolasPanel .frodo-panel .frodo-gm-preview{display:none!important}
#legolasPanel .frodo-panel .frodo-gm-admin{
 margin:14px 0 10px;border:1px solid #856b42;border-radius:12px;
 background:linear-gradient(140deg,#1a271f,#101c17);
 box-shadow:inset 0 1px #ecd39824,0 8px 18px #0006;
}
#legolasPanel .frodo-panel .frodo-gm-admin.hidden{display:none!important}
#legolasPanel .frodo-panel .frodo-gm-admin>summary{
 display:flex;align-items:center;justify-content:space-between;gap:10px;
 cursor:pointer;list-style:none;padding:12px 14px;
 color:#e9cea0;font:700 16px Georgia,serif;
}
#legolasPanel .frodo-panel .frodo-gm-admin>summary::-webkit-details-marker{display:none}
#legolasPanel .frodo-panel .frodo-gm-admin>summary small{
 color:#c4b392;font:11px system-ui,sans-serif;text-align:right
}
#legolasPanel .frodo-panel .frodo-gm-admin>summary:focus-visible{
 outline:2px solid #e7c98c;outline-offset:2px
}
#legolasPanel .frodo-panel .frodo-gm-admin-body{padding:0 12px 13px}
#legolasPanel .frodo-panel .frodo-gm-admin .frodo-queue-view{margin:0}
#legolasPanel .frodo-panel .frodo-gm-admin .frodo-queue-tile{display:block}
#legolasPanel .frodo-panel .frodo-gm-admin .frodo-queue-overflow{display:inline}
#legolasPanel .frodo-panel #arcaneGallery .arcane-gallery-picture img{object-fit:contain}
@media(max-width:720px){
 #legolasPanel.legolas-atelier-gm .frodo-panel.frodo-is-gm{
  padding:0 0 max(12px,env(safe-area-inset-bottom))!important;
 }
 #legolasPanel.legolas-atelier-gm .frodo-panel #arcaneGallery{
  width:100%!important;max-width:100%!important;
  margin:0!important;padding:0 0 8px!important;
  container-type:inline-size;isolation:isolate;
 }
 #legolasPanel.legolas-atelier-gm .frodo-panel .frodo-gm-admin{margin:10px 8px!important}
 #legolasPanel .frodo-panel .frodo-gm-admin>summary{padding:11px}
 #legolasPanel .frodo-panel .frodo-gm-admin>summary small{font-size:10px}
 #legolasPanel .frodo-panel .frodo-gm-admin-body{padding:0 8px 10px}
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-gm-admin .frodo-queue-strip .frodo-queue-tile{
  display:block!important;
 }
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-gm-admin .frodo-queue-strip .frodo-queue-overflow{
  display:inline!important;
 }
 #legolasPanel .frodo-panel.frodo-is-gm .frodo-gm-admin .frodo-queue-add{
  flex:0 0 110px;min-height:104px;padding:0;flex-direction:column;
 }
 #legolasPanel.legolas-atelier-gm .frodo-close-mobile{
  display:grid!important;position:absolute;top:7px;right:7px;z-index:15;
  place-items:center;width:42px;height:42px;min-height:42px;
  border:1px solid #bb9968;border-radius:50%;background:#231d17eb;
  color:#f5e2b8;font:700 24px/1 Georgia,serif;cursor:pointer;
  box-shadow:0 3px 12px #000a;touch-action:manipulation;
 }
 #legolasPanel.legolas-atelier-gm #frodoPanel .frodo-gm-admin #frodoGmActions{
  margin:12px 0 0!important
 }
}

/* GOOSE 05A: temporary shutter test buttons for GM only. */
#legolasPanel .frodo-panel .frodo-goose-test-controls{
 display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;
 margin:4px auto 12px;padding:8px 10px;max-width:520px;
 border:1px dashed #8c714e70;border-radius:9px;background:#1a211bc7;
 color:#c4b18d;font:12px system-ui,sans-serif;
}
#legolasPanel .frodo-panel .frodo-goose-test-controls.hidden{display:none!important}
#legolasPanel .frodo-panel .frodo-goose-test-label{
 color:#af976e;font:700 10px system-ui,sans-serif;letter-spacing:.12em
}
#legolasPanel .frodo-panel .frodo-goose-test-controls button{
 min-height:42px;min-width:95px;padding:7px 16px;border-radius:7px;
 border:1px solid #c5a46d;background:linear-gradient(#3c3122,#211b16);
 color:#f5ddb0;font:700 14px Georgia,serif;cursor:pointer
}
#legolasPanel .frodo-panel .frodo-goose-test-controls button:disabled{opacity:.45;cursor:wait}
#legolasPanel .frodo-panel .frodo-goose-test-controls button:focus-visible{outline:3px solid #f9dc9a;outline-offset:2px}
#legolasPanel .frodo-panel #frodoGooseTestStatus{
 flex:1 1 100%;text-align:center;font:11px system-ui,sans-serif;color:#cdb994
}
@media(max-width:720px){
 #legolasPanel.legolas-atelier-gm .frodo-goose-test-controls{margin:4px 9px 11px;padding:7px 8px}
}
.journal-feed,.journal-page{--jbg:#181d29;--jgold:#dab77a;--jink:#f5f0e6;--jmuted:#c6bdaf;color:var(--jink);background:linear-gradient(145deg,#22283a,#171b28);border:1px solid #66563f;border-radius:16px;box-shadow:0 6px 22px #0002}
.journal-feed{margin:20px auto 32px;max-width:1380px;padding:14px 18px}
.journal-feed-head,.journal-page-head,.journal-toolbar,.journal-row-top,.journal-note-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.journal-feed h3,.journal-page h2,.journal-notes h3{margin:0;color:#f5d29a}
.journal-feed-head span,.journal-page-head p,.journal-row small,.journal-row time,.journal-connection{font-size:.8rem;color:var(--jmuted)}
.journal-feed-rows{max-height:270px;overflow-y:auto;margin-top:12px}
.journal-page{max-width:1320px;margin:14px auto 24px;padding:22px}
.journal-page-head p{margin:6px 0 0}
.journal-toolbar{justify-content:flex-start;margin:22px 0 12px}
.journal-toolbar input,.journal-toolbar select,.journal-notes textarea{background:#101522;color:#fff;border:1px solid #78674d;border-radius:8px;padding:10px;font:inherit;max-width:100%}
.journal-toolbar input{flex:1;min-width:220px}
.journal-connection{margin-left:auto}
.journal-row{display:flex;gap:13px;align-items:flex-start;border-top:1px solid #ffffff20;padding:12px 4px}
.journal-row-icon{font-size:1.35rem;width:32px;text-align:center;flex:none}
.journal-row-main{flex:1;min-width:0}
.journal-row-top{justify-content:flex-start;gap:8px}
.journal-row-main strong{font-size:1rem;color:#fff4dc}
.journal-row p{margin:4px 0 3px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--jink)}
.journal-row time{white-space:nowrap;margin-left:auto}
.journal-outcome{font-size:.75rem;font-weight:700;background:#524628;border:1px solid #8c7541;color:#ffe2a7;border-radius:10px;padding:2px 8px}
.journal-private{font-size:.73rem;border:1px solid #d8a171;border-radius:10px;padding:2px 8px}
.journal-notes{border:1px solid #786448;border-radius:12px;padding:14px;margin:20px 0}
.journal-notes textarea{display:block;width:100%;min-height:90px;margin:12px 0}
.journal-note-actions{justify-content:flex-end}
.journal-note-actions label{display:flex;align-items:center;gap:6px}
.journal-empty{padding:16px;color:#d8cdbb}
.journal-rows{margin-top:12px}
#journalMore{margin-top:14px}
@media(max-width:650px){.journal-page{padding:12px}.journal-row time{font-size:.68rem}.journal-feed{margin:14px 7px 24px}.journal-toolbar input{min-width:120px}.journal-page-head h2{font-size:1.2rem}}

/* Compact, keyboard-accessible journal entries – 0.35.39. */
 .journal-feed-rows{max-height:270px;overflow-y:auto;margin-top:9px}
.journal-row{display:block;border-top:1px solid #ffffff1b;padding:0;min-width:0}
.journal-row-trigger{
 display:flex;
 align-items:center;
 gap:8px;
 width:100%;
 min-height:39px;
 padding:6px 8px;
 margin:0;
 border:0;
 border-radius:5px;
 background:transparent;
 color:var(--jink);
 font:inherit;
 text-align:left;
 cursor:pointer;
}
.journal-row-trigger:hover{background:rgba(218,183,122,.09)}
.journal-row-trigger:focus-visible{outline:2px solid var(--jgold);outline-offset:-2px}
.journal-row.is-expanded>.journal-row-trigger{background:rgba(218,183,122,.10)}
.journal-row-icon{font-size:1rem;width:22px;flex:none;text-align:center}
.journal-row-main{flex:1 1 auto;min-width:0}
.journal-row-top{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;flex-wrap:nowrap;min-width:0}
.journal-row-main strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:750;color:#fff4dc}
.journal-row-actor{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--jmuted);font-size:.72rem}
.journal-row time{font-size:.68rem;white-space:nowrap;margin:0 0 0 auto;color:var(--jmuted);font-variant-numeric:tabular-nums}
.journal-row-arrow{width:12px;flex:none;text-align:center;color:var(--jgold);font-size:1rem}
.journal-outcome,.journal-private{flex:none;font-size:.68rem;line-height:1.2;padding:3px 6px;border-radius:7px}
.journal-row-details{margin:0 8px 6px 30px;padding:9px 11px;border-left:2px solid #ae8c55;border-radius:0 5px 5px 0;background:rgba(0,0,0,.17)}
.journal-row-details[hidden]{display:none}
.journal-row-details p{margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.48;font-size:.88rem}
.journal-row-details-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 12px;color:var(--jmuted);font-size:.73rem}
.journal-row-details-meta time{margin:0;font-size:inherit}
@media(max-width:650px){
 .journal-row-trigger{gap:6px;padding:5px 4px;min-height:37px}
 .journal-row-actor{display:none}
 .journal-row-icon{width:18px}
 .journal-row-main strong{font-size:.79rem}
 .journal-row time{font-size:.62rem}
 .journal-outcome,.journal-private{font-size:.6rem;padding:2px 4px}
 .journal-row-details{margin-left:22px}
}
.game-session-nav{white-space:nowrap;font-size:.82rem}
.game-session-backdrop{position:fixed;inset:0;z-index:100050;background:rgba(12,8,6,.76);backdrop-filter:blur(7px);display:grid;place-items:center;padding:20px}
.game-session-backdrop.hidden{display:none!important}
.game-session-dialog{width:min(520px,100%);max-height:min(84vh,760px);overflow:auto;border:1px solid rgba(222,187,125,.56);border-radius:18px;background:linear-gradient(145deg,#261c13,#120f0c 72%);color:#f1e2c9;box-shadow:0 24px 80px #000b;padding:24px}
.game-session-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border-bottom:1px solid #8e704544;padding-bottom:14px;margin-bottom:16px}
.game-session-dialog h2{font:600 1.55rem/1.2 Georgia,serif;margin:5px 0 0;color:#f4e4c8}
.game-session-eyebrow{font:600 .65rem/1 sans-serif;letter-spacing:.19em;color:#c9a86e}
.game-session-close{border:0;background:transparent;color:#e9d6b6;font-size:1.8rem;line-height:1;cursor:pointer}
.game-session-field{display:grid;gap:6px;margin:14px 0;color:#d9c6a6;font-size:.9rem}
.game-session-field input{box-sizing:border-box;width:100%;border:1px solid #8e704577;border-radius:9px;background:#100d0b;color:#f5ead8;padding:11px 12px;font:inherit}
.game-session-roster{border:1px solid #8e704544;border-radius:11px;margin:18px 0;padding:10px 13px 12px}
.game-session-roster legend{padding:0 5px;color:#d5b77f;font-size:.86rem}
.game-session-roster label{display:flex;align-items:center;gap:10px;padding:8px 3px;border-bottom:1px solid #8e704422;cursor:pointer}
.game-session-roster label:last-of-type{border-bottom:0}
.game-session-roster input{accent-color:#c79b54;width:17px;height:17px}
.game-session-roster p,.game-session-muted{color:#bcae98;font-size:.9rem;line-height:1.5}
.game-session-status{display:flex;align-items:center;justify-content:space-between;color:#c9aa72;font-size:.9rem}
.game-session-title{font:600 1.2rem Georgia,serif;margin:.65rem 0}
.game-session-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:16px}
.game-session-action{margin-top:4px}
.game-session-dialog .danger{border-color:#a9584d;color:#f0b5a9}
.game-session-error{color:#ffb7aa}
body.game-session-open{overflow:hidden}
@media(max-width:700px){.game-session-backdrop{padding:10px;align-items:end}.game-session-dialog{max-height:88vh;border-radius:17px 17px 10px 10px;padding:19px}.game-session-nav{font-size:.74rem}}
/* Alea Crusaders v0.35.62 — cinematic start page */
.landing-route-nav{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.landing-route-nav .btn{font-weight:650;white-space:nowrap;padding:9px 13px}
.landing-route-nav .btn[aria-current="page"]{border-color:#cea268;background:#56301e;color:#ffebc7;box-shadow:inset 0 -2px #d4a46b}
#landing.alea-landing{max-width:1480px;margin:0 auto 32px}
main:has(> #landing:not(.hidden)){max-width:1540px;padding:clamp(10px,1.8vw,28px)}
.landing-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 4px 15px}
.landing-topline p{margin:0;font-size:11px;font-weight:750;letter-spacing:.2em;text-transform:uppercase;color:#cba979}
.landing-topline span{color:#968877;font-size:12px}
.landing-cinematic{position:relative;isolation:isolate;overflow:hidden;min-height:420px;aspect-ratio:16/9;max-height:min(79vh,880px);background:radial-gradient(ellipse at 50% 35%,#4d3b35 0%,#29201b 45%,#100d0d 100%);border:1px solid #9b7851;border-radius:18px;box-shadow:0 16px 70px #000b,0 2px 0 #9d7049}
.landing-cinematic>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:1;transition:opacity .3s ease,transform 6s ease;display:block}
.landing-cinematic::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(10,8,9,.57) 0%,transparent 26%,transparent 48%,rgba(10,6,7,.93) 100%),linear-gradient(90deg,rgba(17,10,14,.52),transparent 42%)}
.landing-cinematic::before{content:"";position:absolute;inset:9px;z-index:3;pointer-events:none;border:1px solid rgba(221,170,100,.25);border-radius:11px}
.landing-hero-fallback{position:absolute;inset:0;background:radial-gradient(circle at 65% 25%,#64443d,#29202e 45%,#151219 76%)}
.landing-logo-corner{position:absolute;z-index:4;left:clamp(22px,3vw,52px);top:clamp(22px,3vw,52px);display:flex;gap:12px;align-items:center;text-shadow:0 3px 16px #000}
.landing-logo-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid #d9b37e;background:#22131bcc;color:#f2cf91;font:700 25px Georgia,serif;box-shadow:0 2px 16px #0008}
.landing-logo-wordmark{display:flex;flex-direction:column;font:700 clamp(16px,2vw,27px) Georgia,serif;text-transform:uppercase;letter-spacing:.17em;color:#fff3dc;line-height:1.1}
.landing-logo-wordmark small{font:600 10px Inter,system-ui,sans-serif;letter-spacing:.38em;margin-top:6px;color:#f5d1a1}
.landing-hero-copy{position:absolute;z-index:4;bottom:clamp(42px,7vw,90px);left:clamp(24px,4vw,66px);right:clamp(24px,4vw,66px);max-width:720px;text-shadow:0 3px 18px #000}
.landing-hero-eyebrow{display:block;color:#f4ce94;font-size:11px;letter-spacing:.25em;font-weight:800;text-transform:uppercase;margin:0 0 14px}
.landing-hero-copy h2{font:700 clamp(36px,5.2vw,75px)/1.04 Georgia,serif;letter-spacing:-.035em;margin:0 0 14px;color:#fff5e7}
.landing-hero-copy p{font-size:clamp(15px,1.65vw,21px);line-height:1.45;color:#e8d8c4;margin:0 0 22px}
.landing-start-buttons{display:flex;flex-wrap:wrap;gap:11px}
.landing-start-buttons .btn{background:linear-gradient(#be8c50,#966232);color:#22140f;border-color:#e5bd7e;font-weight:800;box-shadow:0 4px 12px #0008;padding:12px 19px}
.landing-start-buttons .btn.secondary{background:#1d1514cc;color:#f9e4cc;border-color:#bd9568}
.landing-gallery-controls{position:absolute;z-index:4;right:clamp(16px,3vw,42px);bottom:24px;display:flex;align-items:center;gap:9px}
.landing-gallery-arrow{width:38px;height:38px;display:grid;place-items:center;border:1px solid #b38f62;background:#1b1416b8;color:#f8e2c3;border-radius:50%;font-size:20px;cursor:pointer}
.landing-gallery-arrow:hover{background:#61402e}
.landing-gallery-dots{display:flex;align-items:center;gap:7px}
.landing-gallery-dot{width:10px;height:10px;border-radius:50%;padding:0;cursor:pointer;border:1px solid #efcf9d;background:#47342ce0}
.landing-gallery-dot.active{background:#f2c481;box-shadow:0 0 8px #f3ba6f}
.landing-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:16px}
.landing-feature-card{min-width:0;display:flex;gap:13px;align-items:center;text-align:left;color:#f5e5ce;background:linear-gradient(135deg,#33251c,#1f1a1a);border:1px solid #65503b;border-radius:13px;padding:18px 20px;cursor:pointer}
.landing-feature-card:hover,.landing-feature-card:focus-visible{border-color:#d4a86b;background:#473124;outline:none}
.landing-feature-card .symbol{width:42px;height:42px;display:grid;place-items:center;border:1px solid #69533b;border-radius:10px;background:#211811;color:#ddbb85;font-size:23px;flex-shrink:0}
.landing-feature-card span:last-child{display:flex;min-width:0;flex-direction:column;gap:4px}
.landing-feature-card strong{font:700 19px Georgia,serif;color:#f6dab1}
.landing-feature-card small{font-size:12px;line-height:1.4;color:#c7b6a3}
@media(max-width:950px){
 .landing-route-nav .btn{font-size:13px;padding:8px 9px}
 .landing-feature-card{padding:14px 12px;gap:10px}
 .landing-feature-card strong{font-size:17px}
}
@media(max-width:700px){
 header .bar{flex-wrap:wrap}
 header .landing-route-nav{order:20;flex:1 1 100%;width:100%;justify-content:stretch}
 header .landing-route-nav .btn{flex:1}
 .landing-topline span{display:none}
 .landing-cinematic{aspect-ratio:4/5;min-height:470px;max-height:72svh;border-radius:13px}
 .landing-cinematic>img{object-position:center}
 .landing-cinematic::after{background:linear-gradient(180deg,#09090a7d,transparent 28%,#110d0d55 54%,#100a0bf2 100%)}
 .landing-logo-mark{width:42px;height:42px;font-size:20px}
 .landing-logo-wordmark{font-size:19px}
 .landing-hero-copy{left:24px;right:20px;bottom:81px}
 .landing-hero-copy h2{font-size:38px}
 .landing-hero-copy p{font-size:15px}
 .landing-gallery-controls{left:24px;right:auto;bottom:22px}
 .landing-feature-grid{grid-template-columns:1fr;gap:9px}
 .landing-feature-card{padding:13px 15px}
}
@media(prefers-reduced-motion:reduce){.landing-cinematic>img{transition:none}}


/* v0.35.64 – Home: mobile image frames and tiles must stay inside viewport. */
@media(max-width:700px){
  /* Constrain the complete home route, not just the photo element. */
  main:has(> #landing:not(.hidden)){
    width:100%;
    max-width:100%;
    min-width:0;
    padding:10px 12px;
    overflow-x:clip;
  }
  #landing.alea-landing,
  #landing .landing-topline,
  #landing .landing-feature-grid{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  #landing .landing-cinematic{
    display:block;
    width:100%;
    max-width:100%;
    min-width:0;
    height:clamp(390px,105vw,510px);
    min-height:0;
    max-height:none;
    aspect-ratio:auto;
    overflow:hidden;
  }
  #landing .landing-cinematic > img{
    display:block;
    width:100%;
    max-width:100%;
    height:100%;
    object-fit:cover;
  }
  #landing .landing-hero-copy{
    left:18px;
    right:18px;
    bottom:70px;
    max-width:calc(100% - 36px);
    min-width:0;
  }
  #landing .landing-hero-copy h2{
    font-size:clamp(29px,8vw,38px);
    overflow-wrap:break-word;
  }
  #landing .landing-hero-copy p{
    font-size:14px;
    margin-bottom:15px;
  }
  #landing .landing-hero-eyebrow{
    font-size:10px;
    letter-spacing:.13em;
    margin-bottom:9px;
  }
  #landing .landing-start-buttons{
    max-width:100%;
    gap:7px;
  }
  #landing .landing-start-buttons .btn{
    min-width:0;
    max-width:100%;
    padding:10px 12px;
    font-size:13px;
    white-space:normal;
  }
  #landing .landing-gallery-controls{
    max-width:calc(100% - 36px);
    min-width:0;
    gap:7px;
    left:18px;
    bottom:15px;
  }
  #landing .landing-gallery-arrow{
    flex:0 0 34px;
    width:34px;
    height:34px;
  }
  #landing .landing-feature-grid{
    grid-template-columns:minmax(0,1fr);
    gap:9px;
  }
  #landing .landing-feature-card{
    width:100%;
    max-width:100%;
    min-width:0;
    gap:10px;
    padding:12px 13px;
  }
  #landing .landing-feature-card strong,
  #landing .landing-feature-card small,
  #landing .landing-topline p{
    overflow-wrap:anywhere;
  }
  header .bar{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  header .landing-route-nav{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  header .landing-route-nav .btn{
    min-width:0;
    max-width:100%;
    white-space:normal;
  }
}
/* Narrow phones, including 320px viewports. */
@media(max-width:360px){
  #landing .landing-cinematic{height:380px}
  #landing .landing-logo-corner{left:14px;top:14px;gap:8px}
  #landing .landing-logo-mark{width:36px;height:36px;font-size:18px}
  #landing .landing-logo-wordmark{font-size:15px;letter-spacing:.1em}
  #landing .landing-logo-wordmark small{font-size:9px;letter-spacing:.25em}
  #landing .landing-hero-copy{left:14px;right:14px;bottom:59px;max-width:calc(100% - 28px)}
  #landing .landing-hero-copy h2{font-size:28px;margin-bottom:9px}
  #landing .landing-hero-copy p{font-size:13px;margin-bottom:12px}
  #landing .landing-hero-eyebrow{font-size:9px;letter-spacing:.1em;margin-bottom:7px}
  #landing .landing-start-buttons .btn{padding:8px 10px;font-size:12px}
  #landing .landing-gallery-controls{left:14px;bottom:10px;max-width:calc(100% - 28px)}
}


/* v0.35.148 — personal combat round art on character roster cards.
   Artwork is decorative and never replaces the character's portrait. */
#home .charcard.has-round-bg{
  isolation:isolate;
}
#home .charcard > .charcard-round-bg{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:66% center;
  opacity:.7;
  z-index:0;
  pointer-events:none;
}
#home .charcard.has-round-bg::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(23,15,12,.88) 0%,
    rgba(23,15,12,.78) 38%,
    rgba(23,15,12,.53) 68%,
    rgba(23,15,12,.66) 100%);
}
#home .charcard.has-round-bg > :is(.charportrait,.charinfo,.char-delete){
  position:relative;
  z-index:2;
}
#home .charcard.has-round-bg > .char-delete{
  position:absolute;
}
@media(max-width:600px){
  #home .charcard.has-round-bg::before{
    background:linear-gradient(90deg,
      rgba(23,15,12,.9),rgba(23,15,12,.75) 58%,rgba(23,15,12,.63));
  }
}
/* v0.35.66: unified Alea Crusaders navigation. Keep selectors scoped to the app header. */
.alea-app-header{padding:10px clamp(10px,2vw,24px);overflow:visible}
.alea-app-header>.bar{
  display:flex!important;flex-direction:column;flex-wrap:nowrap!important;
  align-items:stretch!important;gap:10px!important;
  width:100%;max-width:1280px;min-width:0;margin-inline:auto;
}
.alea-app-header .alea-toolstrip{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;
  gap:8px;width:100%;min-width:0;max-width:100%;
}
.alea-app-header .alea-toolstrip>.btn{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 48px;width:48px;min-width:0!important;max-width:48px;
  height:48px;min-height:48px;padding:0!important;
  border:1px solid #826447;border-radius:13px;
  background:linear-gradient(150deg,#382b22,#211915);
  font-size:23px;line-height:1;color:#f4d9ac;
  box-shadow:inset 0 1px #ffffff0b,0 3px 8px #0005;
  transition:border-color .16s,background .16s,transform .16s;
  cursor:pointer;white-space:nowrap;
}
.alea-app-header .alea-toolstrip>.btn:hover,
.alea-app-header .alea-toolstrip>.btn:focus-visible{
  border-color:#cba36e;background:linear-gradient(150deg,#59402d,#322117);
  transform:translateY(-1px);
}
.alea-app-header .alea-toolstrip>.btn:focus-visible{
  outline:2px solid #f0c88b;outline-offset:2px;
}
.alea-app-header .alea-toolstrip #materialNavBtn .material-nav-label{display:none!important}
.alea-app-header .alea-headingbar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:10px 18px;min-width:0;padding-top:10px;
  border-top:1px solid #795d3b55;
}
.alea-app-header .alea-heading-left,
.alea-app-header .alea-heading-right,
.alea-app-header .alea-clock,
.alea-app-header .alea-account{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;
}
.alea-app-header .alea-heading-left{flex:1 1 auto}
.alea-app-header .alea-heading-left h1{
  order:0;flex:0 1 auto;min-width:0;margin:0 8px 0 0;
  font:700 clamp(19px,2.1vw,26px)/1.2 Georgia,serif;white-space:normal;
  color:#f4dfc2;
}
.alea-app-header .alea-heading-left #back{order:0;flex:0 0 auto}
.alea-app-header .alea-heading-left .landing-route-nav{
  order:1;flex:0 1 auto;width:auto;min-width:0;max-width:100%;
}
.alea-app-header .alea-heading-left .landing-route-nav .btn{
  min-height:38px;padding:8px 11px;border-radius:10px;
}
.alea-app-header .alea-heading-left .pill{order:2}
.alea-app-header .alea-heading-right{justify-content:flex-end;flex:0 1 auto;gap:8px 12px}
.alea-app-header .alea-account{gap:6px}
.alea-app-header .alea-clock{gap:8px}
.alea-app-header .alea-clock #dayNavBtn,
.alea-app-header .alea-clock .time-nav{
  min-height:39px;height:39px;padding:7px 11px!important;
  border-radius:11px;white-space:nowrap;font-size:13px;
}
.alea-app-header .alea-clock .campaign-time-control{min-width:0}
@media(max-width:700px){
  .alea-app-header{padding:8px 10px}
  .alea-app-header>.bar{gap:9px!important}
  .alea-app-header .alea-toolstrip{
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));
    width:100%;gap:7px;
  }
  .alea-app-header .alea-toolstrip>.btn{
    flex:none;width:100%;max-width:100%;height:46px;min-height:46px;
    border-radius:11px;font-size:22px;
  }
  .alea-app-header .alea-headingbar{
    flex-direction:column;align-items:stretch;gap:9px;padding-top:9px;
  }
  .alea-app-header .alea-heading-left{
    display:flex;flex-wrap:wrap;gap:8px;align-items:center;
    width:100%;min-width:0;
  }
  .alea-app-header .alea-heading-left h1{
    order:0;flex:1 1 130px;min-width:0;
    font-size:clamp(18px,5.3vw,22px)!important;
  }
  .alea-app-header .alea-heading-left #back{order:0}
  .alea-app-header .alea-heading-left .landing-route-nav{
    order:2;flex:1 1 100%;width:100%!important;max-width:100%;
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;
  }
  .alea-app-header .alea-heading-left .landing-route-nav .btn{
    flex:none;width:100%;max-width:100%;min-width:0;
    padding:8px 10px!important;min-height:36px;
    font-size:13px!important;white-space:normal;
  }
  .alea-app-header .alea-heading-right{
    width:100%;min-width:0;justify-content:space-between;align-items:center;
    gap:7px;
  }
  .alea-app-header .alea-clock{
    display:flex;flex:1 1 auto;flex-wrap:wrap;align-items:center;
    justify-content:flex-start;gap:7px;min-width:0;
  }
  .alea-app-header .alea-clock #dayNavBtn,
  .alea-app-header .alea-clock .time-nav{
    order:0;flex:0 1 auto;min-height:37px;height:37px;
    max-width:100%;padding:7px 9px!important;
    font-size:12px!important;
  }
  .alea-app-header .alea-account{
    flex:0 1 auto;flex-wrap:wrap;margin-left:auto;
    align-items:center;justify-content:flex-end;gap:6px;
  }
  .alea-app-header .alea-account .btn{
    min-height:37px;padding:7px 9px!important;font-size:12px!important;
  }
}
@media(max-width:360px){
  .alea-app-header .alea-toolstrip{gap:6px}
  .alea-app-header .alea-toolstrip>.btn{height:43px;min-height:43px;font-size:21px}
  .alea-app-header .alea-heading-right{flex-wrap:wrap}
  .alea-app-header .alea-clock{flex:1 1 100%}
}

/* v0.35.66: compact mobile navigation, with only the toolstrip pinned after scrolling. */
@media (max-width:700px){
  .alea-app-header{padding:6px 8px!important}
  .alea-app-header>.bar{gap:6px!important;max-width:100%}
  .alea-app-header .alea-toolstrip{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr));
    width:100%;min-width:0;gap:5px;
  }
  .alea-app-header .alea-toolstrip>.btn{
    width:100%;min-width:0!important;max-width:100%;
    height:42px;min-height:42px;line-height:1;
    border-radius:10px;font-size:21px;
  }
  .alea-app-header .alea-headingbar{
    display:flex!important;flex-direction:row!important;
    flex-wrap:wrap!important;align-items:center;justify-content:space-between;
    gap:6px;padding-top:6px;
  }
  .alea-app-header .alea-heading-left,
  .alea-app-header .alea-heading-right{display:contents!important}
  .alea-app-header .alea-heading-left h1,
  .alea-app-header .alea-heading-left .pill{display:none!important}
  .alea-app-header .alea-heading-left #back{
    order:0;flex:0 0 34px;min-width:34px;max-width:34px;
    height:34px;min-height:34px;padding:0!important;font-size:0!important;
  }
  .alea-app-header .alea-heading-left #back::before{content:"←";font-size:19px}
  .alea-app-header .alea-heading-left .landing-route-nav{
    order:1;display:flex!important;flex:1 1 130px;
    width:auto!important;min-width:0;max-width:100%;gap:5px;
  }
  .alea-app-header .alea-heading-left .landing-route-nav .btn{
    width:auto;min-width:0;max-width:none;min-height:34px;
    padding:6px 8px!important;font-size:12px!important;white-space:nowrap;
  }
  .alea-app-header .alea-clock{
    order:2;flex:0 1 auto;display:flex;flex-wrap:nowrap;
    align-items:center;justify-content:flex-start;gap:5px;
    min-width:0;max-width:100%;
  }
  .alea-app-header .alea-clock #dayNavBtn,
  .alea-app-header .alea-clock .time-nav{
    flex:0 1 auto;min-width:0;max-width:100%;
    height:34px;min-height:34px;padding:6px 8px!important;font-size:12px!important;
  }
  .alea-app-header .alea-account{
    order:3;display:flex;flex:0 1 auto;flex-wrap:wrap;
    width:auto;min-width:0;justify-content:flex-end;
    margin-left:auto;gap:5px;
  }
  .alea-app-header .alea-account .btn{
    min-height:34px;padding:6px 8px!important;font-size:12px!important;
  }
  .alea-app-header.alea-header-collapsed{padding-block:4px!important}
  .alea-app-header.alea-header-collapsed>.bar{gap:0!important}
  .alea-app-header.alea-header-collapsed .alea-headingbar{display:none!important}
}
@media (max-width:360px){
  .alea-app-header .alea-toolstrip{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
  .alea-app-header .alea-toolstrip>.btn{height:40px;min-height:40px;font-size:20px}
  .alea-app-header .alea-clock{flex:0 1 auto}
  .alea-app-header .alea-heading-right{flex-wrap:nowrap}
}

/* v0.35.102: mobile adventure hub. Desktop retains individual destinations. */
.alea-app-header .alea-toolstrip>#mobileHubNavBtn,
.alea-app-header .alea-toolstrip>.mobile-hub-menu{display:none!important}
@media(max-width:700px){
  .alea-app-header .alea-toolstrip{position:relative}
  .alea-app-header .alea-toolstrip>#shopNavBtn,
  .alea-app-header .alea-toolstrip>#alchemyNavBtn,
  .alea-app-header .alea-toolstrip>#innNavBtn,
  .alea-app-header .alea-toolstrip>#academyNavBtn,
  .alea-app-header .alea-toolstrip>#journalNavBtn{display:none!important}
  .alea-app-header .alea-toolstrip>#mobileHubNavBtn{display:inline-flex!important}
  .alea-app-header .alea-toolstrip>#mobileHubNavBtn[aria-expanded="true"]{
    border-color:#f0c88b;background:linear-gradient(150deg,#674527,#35251b);
    box-shadow:inset 0 0 0 1px #c79d5a66,0 3px 12px #0006
  }
  .alea-app-header .alea-toolstrip>.mobile-hub-menu:not(.hidden){
    display:grid!important;position:absolute;z-index:30;
    top:calc(100% + 7px);left:0;
    width:min(320px,calc(100vw - 16px));max-width:100%;
    grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;
    border:1px solid #a78353;border-radius:14px;padding:10px;
    background:linear-gradient(145deg,#32271e,#1b1714);
    box-shadow:0 14px 38px #000b,inset 0 1px #e4b77a27
  }
  .alea-app-header .mobile-hub-menu button{
    display:flex;align-items:center;gap:8px;justify-content:flex-start;
    width:100%;min-width:0;min-height:46px;padding:9px;
    border:1px solid #685139;border-radius:10px;
    background:#241c16;color:#f5dfbb;font:600 12px/1.2 system-ui,sans-serif;
    text-align:left;white-space:normal;cursor:pointer;
  }
  .alea-app-header .mobile-hub-menu button span{
    font-size:23px;line-height:1;flex:0 0 auto
  }
  .alea-app-header .mobile-hub-menu button:where(:hover,:focus-visible){
    outline:2px solid #f0c88b;outline-offset:1px;
    border-color:#d8ae73;background:#463220
  }
}


/* v0.35.109: desktop-only illustrated banner.
   The image contains only the landscape and frame; all navigation elements
   remain separate, interactive HTML so both icons and future logos can change. */
@media (min-width: 901px) {
  .alea-app-header {
    position: sticky;
    isolation: isolate;
    background-color: #140f0d;
    background-image: url("./alea-desktop-header-DkDoW9rz.avif");
    background-position: center center;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    border-bottom: 0;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .6);
    padding: 16px clamp(24px, 3vw, 44px);
  }
  .alea-app-header > .bar {
    position: relative;
    z-index: 1;
    max-width: none;
    min-width: 0;
    padding-inline: clamp(12px, 1.5vw, 26px);
  }
  .alea-app-header .alea-toolstrip {
    position: relative;
    z-index: 2;
  }
  .alea-app-header .alea-headingbar {
    position: relative;
    z-index: 1;
    border-top-color: rgba(222, 165, 93, .4);
    background: linear-gradient(90deg, rgba(16, 11, 10, .65),
      rgba(16, 11, 10, .3) 65%, rgba(16, 11, 10, .53));
    border-radius: 6px;
    padding: 7px 10px 3px;
    margin-inline: -10px;
  }
  .alea-app-header .alea-heading-left h1,
  .alea-app-header .alea-headingbar .btn,
  .alea-app-header .alea-headingbar .pill {
    text-shadow: 0 2px 8px rgba(0, 0, 0, .9);
  }
}

/* v0.35.110: align the illustrated desktop header to the combat 1:2:1 grid.
   Combat: main <=1600px (18px padding), .combatpage <=1550px
   (8px padding each side). Thus the actual grid max-width is 1534px,
   and for narrower desktop windows it is viewport width minus 52px.
   Gaps are 12px; the first grid track and one gap = 25% + 6px. */
@media (min-width: 1024px) {
  .alea-app-header {
    --alea-desktop-grid-width: 1534px;
    --alea-desktop-grid-gutters: 52px;
    position: sticky;
    padding: 16px 0;
    background-color: #100e0c;
    background-image: none;
  }

  /* Separate decoration layer: leave the existing navigation clickable,
     and keep the left quarter available for a replaceable logo later. */
  .alea-app-header::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: 50%;
    width: min(var(--alea-desktop-grid-width), calc(100% - var(--alea-desktop-grid-gutters)));
    transform: translateX(-50%);
    background: url("./alea-desktop-header-DkDoW9rz.avif") center / 100% 100% no-repeat;
    pointer-events: none;
  }

  .alea-app-header > .bar {
    width: min(var(--alea-desktop-grid-width), calc(100% - var(--alea-desktop-grid-gutters)));
    max-width: none;
    margin-inline: auto;
    padding-inline: 0;
  }

  /* First grid column: (width - 2 * 12px) / 4.
     The next column begins after an additional 12px gap. */
  .alea-app-header .alea-toolstrip {
    padding-left: calc(25% + 6px);
    flex-wrap: nowrap;
  }

  .alea-app-header .alea-headingbar {
    margin-inline: 0;
    padding: 7px 10px 3px calc(25% + 6px);
    box-sizing: border-box;
  }

  .alea-app-header .alea-heading-left > h1 {
    display: none !important;
  }
}


/* v0.35.116 — One scale and one rendering method for every bronze icon.
 * The former 48px AVIF sprite was magnified to 104px and looked blurred.
 * Each icon now uses its own 512px image pair, as ordinary <img> elements.
 * Keep this section authoritative: no 48/56/62px sprite overrides below it.
 */
.alea-app-header .alea-banner-home-link {display:none}
.alea-app-header .alea-toolstrip > .btn.alea-nav-art {
  position:relative;
  isolation:isolate;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:12px;
  flex:0 0 48px;
  width:48px;
  min-width:0!important;
  max-width:48px;
  height:48px;
  min-height:48px;
  color:transparent!important;
  font-size:0!important;
  overflow:visible;
}
.alea-app-header .alea-toolstrip > .btn.alea-nav-art:is(:hover,:focus-visible) {
  background:transparent!important;
  box-shadow:none!important;
  border-color:transparent!important;
}
.alea-app-header .alea-nav-art > .alea-nav-asset {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease;
}
.alea-app-header .alea-nav-art > .alea-nav-asset--normal {opacity:1}
.alea-app-header .alea-nav-art > .alea-nav-asset--active {opacity:0}
.alea-app-header .alea-nav-art[aria-current="page"] > .alea-nav-asset--normal {opacity:0}
.alea-app-header .alea-nav-art[aria-current="page"] > .alea-nav-asset--active {opacity:1}
.alea-app-header .alea-nav-art:is(:hover,:focus-visible) > .alea-nav-asset {transform:scale(1.035)}
.alea-app-header .alea-toolstrip > .btn.alea-nav-art:focus-visible,
.alea-app-header .alea-banner-home-link:focus-visible {
  outline:2px solid #f4c77d!important;
  outline-offset:2px!important;
}
.alea-app-header .alea-nav-art:disabled > .alea-nav-asset {opacity:.45}

/* Desktop: 104 CSS pixels per illustrated icon, including Home.
   Reserve only a 120px column for Home, rather than 25% of the banner.
   Remaining icon buttons wrap only when the actual viewport demands it. */
@media(min-width:901px) {
  .alea-app-header > .bar {position:relative}
  .alea-app-header .alea-toolstrip {
    box-sizing:border-box;
    width:100%;
    min-width:0;
    min-height:104px;
    padding-left:120px;
    display:flex;
    align-items:center;
    align-content:flex-start;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:6px;
  }
  .alea-app-header .alea-headingbar {
    padding:7px 10px 3px 120px;
  }
  .alea-app-header .alea-banner-home-link {
    position:absolute;
    z-index:4;
    top:0;
    left:8px;
    display:block;
    width:104px;
    height:104px;
    cursor:pointer;
    border:0;
    background:transparent;
    border-radius:12px;
  }
  .alea-app-header .alea-banner-home-icon {
    display:block;
    position:absolute;
    inset:0;
    width:104px;
    height:104px;
    max-height:none;
    object-fit:contain;
    pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
  }
  .alea-app-header .alea-banner-home-icon--normal {opacity:1}
  .alea-app-header .alea-banner-home-icon--active {opacity:0}
  .alea-app-header .alea-banner-home-link[aria-current="page"] .alea-banner-home-icon--normal {opacity:0}
  .alea-app-header .alea-banner-home-link[aria-current="page"] .alea-banner-home-icon--active {opacity:1}
  .alea-app-header .alea-banner-home-link:hover .alea-banner-home-icon {transform:scale(1.035)}
  .alea-app-header .alea-toolstrip > .btn.alea-nav-art {
    box-sizing:border-box;
    flex:0 0 104px!important;
    width:104px!important;
    min-width:104px!important;
    max-width:104px!important;
    height:104px!important;
    min-height:104px!important;
  }
  .alea-app-header .alea-toolstrip > .btn:not(.alea-nav-art) {
    flex:0 0 48px;
    width:48px;
    min-width:48px;
    max-width:48px;
  }
  .alea-app-header .landing-route-nav #landingHomeNavBtn {display:none}
}
@media(max-width:700px) {
  .alea-app-header .alea-toolstrip > .btn.alea-nav-art {
    flex:none;
    width:100%;
    max-width:100%;
    height:42px;
    min-height:42px;
  }
}

/* Mobile hub: show the same high-resolution 512px artwork at 34px.
   The original menu labels and click-delegation remain unchanged. */
@media(max-width:700px) {
  .alea-app-header .mobile-hub-menu button[data-mobile-target]::before {
    content:"";
    display:block;
    flex:0 0 34px;
    width:34px;
    height:34px;
    background-size:contain;
    background-position:center;
    background-repeat:no-repeat;
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="shopNavBtn"]::before {
    background-image:url("./guild-normal-BkZmZZXn.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="shopNavBtn"][data-nav-active="true"]::before {
    background-image:url("./guild-active-DEI7bRPi.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="alchemyNavBtn"]::before {
    background-image:url("./alkemi-normal-CrAIxs8M.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="alchemyNavBtn"][data-nav-active="true"]::before {
    background-image:url("./alkemi-active-Dx2Tyv35.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="innNavBtn"]::before {
    background-image:url("./inn-normal-Bf3VNQhh.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="innNavBtn"][data-nav-active="true"]::before {
    background-image:url("./inn-active-BSIHhVfn.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="academyNavBtn"]::before {
    background-image:url("./academy-normal-D3wU3sZR.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="academyNavBtn"][data-nav-active="true"]::before {
    background-image:url("./academy-active-B2etNlor.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="journalNavBtn"]::before {
    background-image:url("./journal-normal-COG2u3Ch.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target="journalNavBtn"][data-nav-active="true"]::before {
    background-image:url("./journal-active-SvklB07P.avif");
  }
  .alea-app-header .mobile-hub-menu button[data-mobile-target] > span {display:none}
}

/* v0.35.118: one persistent illustrated banner, also above Material overlays.
   The responsive measured header height reserves the same space on every page. */
body:has(#legolasPanel:not(.hidden)) .alea-app-header,
body:has(#legolasViewer:not(.hidden)) .alea-app-header {
  position:sticky;
  top:0;
  z-index:30002!important;
}
.legolas-viewer:not(.hidden) {
  top:var(--alea-header-bottom,0px);
}
.legolas-viewer:fullscreen {top:0}
.alea-app-header .alea-toolstrip>.btn:not(.alea-nav-art)[aria-current="page"] {
  border-color:#e8b970;
  background:linear-gradient(145deg,#78502d,#49301c);
  color:#ffe9bc;
  box-shadow:0 0 14px #e6ae644b,inset 0 1px #f6d8ac33;
}
.alea-app-header .mobile-hub-menu button[data-nav-active="true"] {
  border-color:#dfb36a;
  background:#59402c;
  color:#ffe7b6;
}
/* Alea Crusaders v0.35.94 — Arcane equipment aura.
   A single generic visual treatment for any *equipped instance* marked magical.
   The weapon image is unchanged; the sigil sits behind it, sparks above it.
   Works with uploaded per-instance artwork as well as the master image.
   The two-hand tall frame uses the same effect without touching its layout. */

.gandalf-equip-slot.magical .gandalf-equip-face {
  isolation:isolate;
  /* The transparent decorative frame remains the existing background image. */
  box-shadow:inset 0 0 22px rgba(235,169,57,.13),0 0 10px rgba(237,159,40,.08);
}

/* Rotating arcane runes: behind the actual weapon, not baked into its pixels. */
.gandalf-equip-slot.magical .gandalf-equip-face::before {
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  left:50%;top:49%;
  width:88%;
  aspect-ratio:1;
  background:
    radial-gradient(circle,rgba(255,188,69,.16) 0,rgba(231,153,43,.07) 45%,transparent 72%),
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiB2aWV3Qm94PSIwIDAgMzIwIDMyMCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPgo8IS0tIEEgcmV1c2FibGUgdmVjdG9yIHNpZ2lsOiBuZXZlciBiYWtlZCBpbnRvIGEgY2hhcmFjdGVyJ3Mgd2VhcG9uIGFydHdvcmsuIC0tPgo8ZGVmcz4KIDxsaW5lYXJHcmFkaWVudCBpZD0iZ29sZCIgeDE9IjAiIHkxPSIwIiB4Mj0iMzIwIiB5Mj0iMzIwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CiAgPHN0b3Agc3RvcC1jb2xvcj0iI2ZmZjJiOCIvPjxzdG9wIG9mZnNldD0iLjQ1IiBzdG9wLWNvbG9yPSIjZDlhMjRhIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZjBjZTc2Ii8+CiA8L2xpbmVhckdyYWRpZW50PgogPGcgaWQ9ImdseXBoIiBzdHJva2U9InVybCgjZ29sZCkiIHN0cm9rZS13aWR0aD0iMS40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxwYXRoIGQ9Ik0xNTYgMzlsNCAtOCA0IDhtLTQgLTh2MTdtLTcgLTVoMTQiLz4KIDwvZz4KIDxnIGlkPSJ0aWNrIiBzdHJva2U9IiNmM2Q0OGIiIHN0cm9rZS13aWR0aD0iMSI+CiAgPHBhdGggZD0iTTE2MCAxM3YxMSIvPgogPC9nPgo8L2RlZnM+CjxnIHN0cm9rZT0idXJsKCNnb2xkKSIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CiA8Y2lyY2xlIGN4PSIxNjAiIGN5PSIxNjAiIHI9IjE0MyIgc3Ryb2tlLXdpZHRoPSIuODUiIG9wYWNpdHk9Ii42MiIvPgogPGNpcmNsZSBjeD0iMTYwIiBjeT0iMTYwIiByPSIxMzIiIHN0cm9rZS13aWR0aD0iMS42IiBvcGFjaXR5PSIuODMiLz4KIDxjaXJjbGUgY3g9IjE2MCIgY3k9IjE2MCIgcj0iMTExIiBzdHJva2Utd2lkdGg9Ii44NSIgb3BhY2l0eT0iLjYwIi8+CiA8Y2lyY2xlIGN4PSIxNjAiIGN5PSIxNjAiIHI9Ijk5IiBzdHJva2Utd2lkdGg9IjEuMiIgb3BhY2l0eT0iLjY1Ii8+CiA8Y2lyY2xlIGN4PSIxNjAiIGN5PSIxNjAiIHI9Ijg2IiBzdHJva2Utd2lkdGg9Ii42IiBvcGFjaXR5PSIuMzYiIHN0cm9rZS1kYXNoYXJyYXk9IjMgOCIvPgogPHBhdGggZD0iTTE2MCA4TDE2OCAyMyAxNjAgMzEgMTUyIDIzWiBNMTYwIDMxMkwxNjggMjk3IDE2MCAyODkgMTUyIDI5N1ogTTggMTYwTDIzIDE1MiAzMSAxNjAgMjMgMTY4WiBNMzEyIDE2MEwyOTcgMTUyIDI4OSAxNjAgMjk3IDE2OFoiIHN0cm9rZS13aWR0aD0iMS40Ii8+CiA8cGF0aCBkPSJNMTYwIDYxbDEwIDg5IDg5IDEwLTg5IDEwLTEwIDg5LTEwLTg5LTg5LTEwIDg5LTEweiIgc3Ryb2tlLXdpZHRoPSIuOSIgb3BhY2l0eT0iLjY0Ii8+CiA8cGF0aCBkPSJNMTYwIDg2bDE5IDU0IDU1IDIwLTU1IDE5LTE5IDU1LTIwLTU1LTU0LTE5IDU0LTIweiIgc3Ryb2tlLXdpZHRoPSIuOSIgb3BhY2l0eT0iLjUyIi8+CiA8cGF0aCBkPSJNOTggOThsMTI0IDEyNE0yMjIgOThMOTggMjIyIiBzdHJva2Utd2lkdGg9Ii43IiBvcGFjaXR5PSIuMzIiLz4KIDxwYXRoIGQ9Ik0xNjAgMTE2bDE0IDQ0LTE0IDQ0LTE0LTQ0eiIgc3Ryb2tlLXdpZHRoPSIxIiBvcGFjaXR5PSIuNzUiLz4KIDxjaXJjbGUgY3g9IjE2MCIgY3k9IjE2MCIgcj0iMTIiIHN0cm9rZS13aWR0aD0iLjgiIG9wYWNpdHk9Ii42NSIvPgo8L2c+CjxnIG9wYWNpdHk9Ii44MCI+CiA8dXNlIGhyZWY9IiNnbHlwaCIvPjx1c2UgaHJlZj0iI2dseXBoIiB0cmFuc2Zvcm09InJvdGF0ZSgyMi41IDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoNDUgMTYwIDE2MCkiLz48dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoNjcuNSAxNjAgMTYwKSIvPgogPHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDkwIDE2MCAxNjApIi8+PHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDExMi41IDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoMTM1IDE2MCAxNjApIi8+PHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDE1Ny41IDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoMTgwIDE2MCAxNjApIi8+PHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDIwMi41IDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoMjI1IDE2MCAxNjApIi8+PHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDI0Ny41IDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoMjcwIDE2MCAxNjApIi8+PHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDI5Mi41IDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiNnbHlwaCIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1IDE2MCAxNjApIi8+PHVzZSBocmVmPSIjZ2x5cGgiIHRyYW5zZm9ybT0icm90YXRlKDMzNy41IDE2MCAxNjApIi8+CjwvZz4KPGcgb3BhY2l0eT0iLjYzIj4KIDx1c2UgaHJlZj0iI3RpY2siLz48dXNlIGhyZWY9IiN0aWNrIiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxNjAgMTYwKSIvPgogPHVzZSBocmVmPSIjdGljayIgdHJhbnNmb3JtPSJyb3RhdGUoNjAgMTYwIDE2MCkiLz48dXNlIGhyZWY9IiN0aWNrIiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAxNjAgMTYwKSIvPgogPHVzZSBocmVmPSIjdGljayIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDE2MCAxNjApIi8+PHVzZSBocmVmPSIjdGljayIgdHJhbnNmb3JtPSJyb3RhdGUoMTUwIDE2MCAxNjApIi8+CiA8dXNlIGhyZWY9IiN0aWNrIiB0cmFuc2Zvcm09InJvdGF0ZSgxODAgMTYwIDE2MCkiLz48dXNlIGhyZWY9IiN0aWNrIiB0cmFuc2Zvcm09InJvdGF0ZSgyMTAgMTYwIDE2MCkiLz4KIDx1c2UgaHJlZj0iI3RpY2siIHRyYW5zZm9ybT0icm90YXRlKDI0MCAxNjAgMTYwKSIvPjx1c2UgaHJlZj0iI3RpY2siIHRyYW5zZm9ybT0icm90YXRlKDI3MCAxNjAgMTYwKSIvPgogPHVzZSBocmVmPSIjdGljayIgdHJhbnNmb3JtPSJyb3RhdGUoMzAwIDE2MCAxNjApIi8+PHVzZSBocmVmPSIjdGljayIgdHJhbnNmb3JtPSJyb3RhdGUoMzMwIDE2MCAxNjApIi8+CjwvZz4KPGcgZmlsbD0iI2ZmZGY4NSI+CiA8Y2lyY2xlIGN4PSI1NyIgY3k9Ijc3IiByPSIyIiBvcGFjaXR5PSIuNjUiLz48Y2lyY2xlIGN4PSIyNzQiIGN5PSI4OCIgcj0iMS41IiBvcGFjaXR5PSIuNTgiLz4KIDxjaXJjbGUgY3g9IjI1OCIgY3k9IjI2OCIgcj0iMiIgb3BhY2l0eT0iLjcyIi8+PGNpcmNsZSBjeD0iNDYiIGN5PSIyMjgiIHI9IjEuOCIgb3BhY2l0eT0iLjY0Ii8+CjwvZz4KPC9zdmc+") center/contain no-repeat;
  filter:drop-shadow(0 0 4px rgba(253,199,83,.38));
  opacity:.92;
  transform:translate(-50%,-50%) rotate(0deg);
  animation:aleaArcaneOrbit 36s linear infinite;
}

/* Six independent, staggered glints instead of five fixed bright spots.
   Opacity/transform animate on the compositor. Each spark fades out before it
   changes location, giving an unpredictable-looking constellation of light. */
.gandalf-equip-slot.magical .alea-magic-sparks {
  position:absolute;
  z-index:3;
  pointer-events:none;
  inset:11%;
  overflow:hidden;
}
.gandalf-equip-slot.magical .alea-magic-spark {
  position:absolute;
  display:block;
  left:var(--spark-x);
  top:var(--spark-y);
  width:clamp(5px,1.3vw,9px);
  aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,248,214,.60) 0%,rgba(255,224,163,.48) 18%,rgba(239,188,92,.32) 42%,rgba(243,172,48,.10) 68%,transparent 76%);
  box-shadow:0 0 4px rgba(255,230,147,.30),0 0 8px rgba(237,170,64,.14);
  opacity:0;
  transform:translate(-50%,-50%) scale(.2);
  animation:aleaMagicalTwinkle var(--spark-speed,5.3s) ease-in-out var(--spark-delay,0s) infinite;
  will-change:transform,opacity;
}
/* Deliberately incommensurate timings prevent six sparks blinking in unison. */
.gandalf-equip-slot.magical .alea-magic-spark:nth-child(1) {
  --spark-x:17%;--spark-y:20%;--spark-dx:34px;--spark-dy:15px;
  --spark-speed:5.1s;--spark-delay:-3.2s;
}
.gandalf-equip-slot.magical .alea-magic-spark:nth-child(2) {
  --spark-x:81%;--spark-y:28%;--spark-dx:-26px;--spark-dy:24px;
  --spark-speed:7.1s;--spark-delay:-5.3s;
}
.gandalf-equip-slot.magical .alea-magic-spark:nth-child(3) {
  --spark-x:25%;--spark-y:74%;--spark-dx:25px;--spark-dy:-29px;
  --spark-speed:4.6s;--spark-delay:-1.3s;
}
.gandalf-equip-slot.magical .alea-magic-spark:nth-child(4) {
  --spark-x:73%;--spark-y:83%;--spark-dx:-31px;--spark-dy:-18px;
  --spark-speed:6.3s;--spark-delay:-4.8s;
}
.gandalf-equip-slot.magical .alea-magic-spark:nth-child(5) {
  --spark-x:54%;--spark-y:13%;--spark-dx:-18px;--spark-dy:34px;
  --spark-speed:5.8s;--spark-delay:-.9s;
}
.gandalf-equip-slot.magical .alea-magic-spark:nth-child(6) {
  --spark-x:39%;--spark-y:54%;--spark-dx:30px;--spark-dy:-23px;
  --spark-speed:8.2s;--spark-delay:-6.1s;
}
/* Image over rune-ring: alpha-aware glow traces the item, not the gold frame. */
.gandalf-equip-slot.magical .gandalf-equip-face > img.gandalf-equip-art {
  z-index:2;
}
.gandalf-equip-slot.magical .gandalf-equip-face > .gandalf-equip-value,
.gandalf-equip-slot.magical .gandalf-equip-face > .gandalf-equip-stack-count,
.gandalf-equip-slot.magical .gandalf-equip-face > .gandalf-ammo-count {
  z-index:4;
}

/* The two-handed weapon artwork is portrait-oriented; keep the rune ring
   circular behind its centre and ensure the glints stay inside the frame. */
.gandalf-equip-twohand.magical .gandalf-equip-face::before {
  width:108%;
  top:49%;
}
.gandalf-equip-twohand.magical .alea-magic-sparks {
  inset:12% 7%;
}

/* No-image magical equipment still looks enchanted; icon/text stays readable. */
.gandalf-equip-slot.magical-no-art .gandalf-equip-face::before { opacity:.62; }
.gandalf-equip-slot.magical-no-art .alea-magic-sparks { opacity:.72; }

@keyframes aleaArcaneOrbit {
  from { transform:translate(-50%,-50%) rotate(0deg); }
  to   { transform:translate(-50%,-50%) rotate(360deg); }
}
@keyframes aleaMagicalTwinkle {
  0%   {opacity:0;transform:translate(-50%,-50%) translateY(6px) scale(.2);}
  11%  {opacity:.86;transform:translate(-50%,-50%) scale(1.05);}
  16%  {opacity:.22;transform:translate(-50%,-50%) scale(.55);}
  22%  {opacity:1;transform:translate(-50%,-50%) translate(3px,-2px) scale(1.2);}
  34%  {opacity:0;transform:translate(-50%,-50%) translate(6px,-7px) scale(.18);}
  /* Move while invisible, then twinkle at a new position. */
  37%  {opacity:0;transform:translate(-50%,-50%) translate(var(--spark-dx),var(--spark-dy)) scale(.18);}
  48%  {opacity:.95;transform:translate(-50%,-50%) translate(var(--spark-dx),var(--spark-dy)) scale(1.18);}
  55%  {opacity:.15;transform:translate(-50%,-50%) translate(var(--spark-dx),var(--spark-dy)) scale(.45);}
  62%  {opacity:.83;transform:translate(-50%,-50%) translate(var(--spark-dx),var(--spark-dy)) scale(1);}
  73%  {opacity:0;transform:translate(-50%,-50%) translate(var(--spark-dx),var(--spark-dy)) scale(.18);}
  76%  {opacity:0;transform:translate(-50%,-50%) scale(.18);}
  88%  {opacity:.70;transform:translate(-50%,-50%) scale(.9);}
  100% {opacity:0;transform:translate(-50%,-50%) translateY(6px) scale(.2);}
}

/* Keep mobile GPU work bounded; this is a compact inventory slot. */
@media(max-width:620px){
  .gandalf-equip-slot.magical .alea-magic-sparks { inset:16%; }
  .gandalf-equip-twohand.magical .alea-magic-sparks { inset:13% 7%; }
  .gandalf-equip-slot.magical .alea-magic-spark {width:5px;box-shadow:0 0 3px rgba(255,230,147,.28),0 0 6px rgba(237,170,64,.12);}
  .gandalf-equip-slot.magical .gandalf-equip-face::before { filter:none; }
}
@media(prefers-reduced-motion:reduce){
  .gandalf-equip-slot.magical .gandalf-equip-face::before,
  .gandalf-equip-slot.magical .alea-magic-spark {animation:none;will-change:auto;}
  .gandalf-equip-slot.magical .gandalf-equip-face::before {transform:translate(-50%,-50%) rotate(0);}
  .gandalf-equip-slot.magical .alea-magic-spark {opacity:.3;transform:translate(-50%,-50%) scale(.6);}
}/* v0.35.98 — shared circular section help icon and accessible modal. */
.alea-section-help-trigger{
 display:inline-flex;justify-content:center;align-items:center;flex:0 0 auto;
 width:30px;height:30px;padding:0;border-radius:50%;
 border:1px solid #b49463;background:#261f15;color:#ffe2a4;
 font:800 18px/1 Georgia,serif;box-shadow:0 2px 7px #0008;cursor:pointer;touch-action:manipulation
}
.alea-section-help-trigger:hover{background:#3d2e1d;border-color:#edcc8d}
.alea-section-help-trigger:focus-visible,.alea-section-help-close:focus-visible{
 outline:3px solid #f6d27d;outline-offset:3px
}
.alea-section-help-dialog{
 position:fixed;inset:0;margin:auto;width:min(420px,calc(100vw - 36px));
 max-width:420px;max-height:min(80dvh,620px);box-sizing:border-box;
 padding:0;border:1px solid #ac8855;border-radius:15px;
 background:linear-gradient(155deg,#21251b,#101a16);color:#f2e8d3;
 box-shadow:0 20px 65px #000c;overflow:auto
}
.alea-section-help-dialog::backdrop{background:rgba(0,0,0,.72)}
.alea-section-help-content{padding:18px 20px 20px}
.alea-section-help-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.alea-section-help-heading h2{margin:0;color:#ffdfaa;font:700 23px/1.25 Georgia,serif}
.alea-section-help-close{
 display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;
 width:34px;height:34px;border:1px solid #7d6546;border-radius:9px;
 background:#392c21;color:#f9e1bb;font:700 25px/1 system-ui;cursor:pointer
}
.alea-section-help-content p{margin:15px 0 0;color:#d5dfd0;font:400 14px/1.65 system-ui,sans-serif}
@media(max-width:480px){
 .alea-section-help-content{padding:15px 16px 19px}
 .alea-section-help-heading h2{font-size:21px}
}
/* v0.35.112 – battle stop control and permanent after-action report */
#combatPage .combat-stop-btn{
  border:1px solid #c57d6a;
  background:linear-gradient(145deg,#733f36,#3e2220);
  color:#fff1df;
  font-weight:700;
  white-space:nowrap;
  min-height:40px;
  box-shadow:inset 0 1px #fff2,0 4px 12px #0005;
}
#combatPage .combat-stop-btn:hover:not(:disabled),
#combatPage .combat-stop-btn:focus-visible{
  background:linear-gradient(145deg,#905042,#51271f);
  border-color:#f3ad8a;
}
#combatPage .combat-stop-btn:disabled{opacity:.6;cursor:wait}
#combatPage .combathead .combat-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
#combatPage .combat-finished-shell{max-width:1180px;margin:12px auto 32px;display:grid;gap:15px}
#combatPage .combat-finished-shell>.combat-gm-controls{width:100%;box-sizing:border-box}
#combatPage .combat-finish-report{
  color:#e8d8c4;
  background:linear-gradient(158deg,#2c241f 0%,#181412 75%);
  border:1px solid #91704b;
  border-radius:15px;
  padding:clamp(14px,2.4vw,25px);
  box-shadow:0 14px 34px #0007,inset 0 1px #f5cc8733;
}
#combatPage .combat-report-intro{text-align:center;border-bottom:1px solid #99714877;padding:4px 0 18px;margin-bottom:17px}
#combatPage .combat-report-eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:#e1b980}
#combatPage .combat-report-intro h3{font:700 clamp(23px,3vw,37px)/1.15 Georgia,serif;color:#fae2b5;margin:10px 0}
#combatPage .combat-report-winner{color:#e4bb79;font-weight:750;font-size:16px}
#combatPage .combat-report-dates{font-size:12px;color:#ad9c87;margin:8px 0 0}
#combatPage .combat-report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:9px;margin-bottom:22px}
#combatPage .combat-report-metrics>div{border:1px solid #806343;border-radius:10px;padding:11px 9px;background:#241e19;text-align:center}
#combatPage .combat-report-metrics span{display:block;font-size:11px;color:#b6a48d;margin-bottom:5px}
#combatPage .combat-report-metrics strong{font-size:21px;color:#f7d8a4;font-variant-numeric:tabular-nums}
#combatPage .combat-finish-report h4{font:700 17px/1.3 Georgia,serif;color:#e7c28a;margin:16px 0 10px}
#combatPage .combat-report-sides{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr));gap:15px}
#combatPage .combat-report-side{border:1px solid #6f583d;border-radius:11px;background:#201a17;padding:12px;min-width:0}
#combatPage .combat-report-side h4{margin:0 0 10px}
#combatPage .combat-report-side h4 small{color:#ba9871;font:500 12px system-ui}
#combatPage .combat-report-table-wrap{max-width:100%;overflow-x:auto}
#combatPage .combat-report-side table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
#combatPage .combat-report-side th{text-align:left;color:#ccb08d;font-size:11px;font-weight:700}
#combatPage .combat-report-side td,#combatPage .combat-report-side th{padding:8px 7px;border-bottom:1px solid #6c533a66;white-space:nowrap}
#combatPage .combat-report-side td:first-child{white-space:normal}
#combatPage .combat-report-side tr:last-child td{border-bottom:0}
#combatPage .combat-report-side tr.is-fallen td:nth-child(2){color:#f3ad91}
#combatPage .combat-report-bottom{margin-top:18px;display:grid;grid-template-columns:minmax(0,2fr) minmax(210px,1fr);gap:18px}
#combatPage .combat-report-events{padding-left:23px;font-size:13px;line-height:1.5;margin:0}
#combatPage .combat-report-events li{margin-bottom:7px}
#combatPage .combat-report-events li span{color:#d6aa6a;font-weight:750;margin-right:8px}
#combatPage .combat-report-footnote{font-size:11px;color:#b4a18a;margin-top:20px}
@media(max-width:700px){
 #combatPage .combathead{align-items:flex-start;gap:9px}
 #combatPage .combathead .combat-head-actions{gap:6px}
 #combatPage .combat-stop-btn{font-size:12px;min-height:35px;padding:7px 9px}
 #combatPage .combat-report-bottom{grid-template-columns:1fr}
 #combatPage .combat-report-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Alea Crusaders – Combat round visual foundation, phase 1.
   Scoped strictly to the live round panel. No combat mechanics or sizing changes. */
.combat-turn-panel {
  --alea-round-bg: #160f0b;
  --alea-round-surface: #241910;
  --alea-round-surface-raised: #332318;
  --alea-round-bronze: #926638;
  --alea-round-bronze-light: #c39658;
  --alea-round-gold: #eac17d;
  --alea-round-text: #f4e8d5;
  --alea-round-muted: #c4a781;
  --alea-round-blood: #671d15;
  --alea-round-glow: 0 0 9px rgba(255,190,72,.48), 0 0 24px rgba(216,139,36,.22);
  color: var(--alea-round-text);
  border: 1px solid var(--alea-round-bronze);
  border-radius: 13px;
  background:
    radial-gradient(ellipse at 75% -20%, rgba(180,114,46,.14), transparent 60%),
    repeating-linear-gradient(125deg, transparent 0 3px, rgba(255,214,147,.008) 3px 4px),
    linear-gradient(160deg,#2c1d13 0%,#1b130e 48%,#120d0a 100%);
  box-shadow: inset 0 1px 0 rgba(255,224,165,.19),
              inset 0 0 28px rgba(0,0,0,.38),
              0 8px 28px rgba(0,0,0,.26);
  position: relative;
  isolation: isolate;
}
.combat-turn-panel::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 9px;
  border: 1px solid rgba(202,148,73,.18);
  pointer-events: none;
  z-index: 0;
}
.combat-turn-panel > * { position: relative; z-index: 1; }
.combat-turn-panel .combat-turn-head {
  border-bottom-color: rgba(194,139,64,.5);
  background: linear-gradient(90deg,rgba(59,32,20,.7),rgba(24,15,11,.16));
}
.combat-turn-panel .combat-turn-head h2,
.combat-turn-panel .combat-turn-head strong {
  color: var(--alea-round-gold);
  font-family: Georgia, 'Times New Roman', serif;
  text-shadow: 0 1px 1px #110a07, 0 0 13px rgba(221,147,48,.2);
}
.combat-turn-panel .combat-turn-action-status {
  border-color: rgba(182,83,52,.65);
  background: linear-gradient(180deg,#6a241a,#3e1511);
  color: #ffe1c6;
}
.combat-turn-panel .combat-turn-identity {
  color: var(--alea-round-text);
}
.combat-turn-panel .combat-turn-identity strong {
  color: #f4d49c;
  font-family: Georgia, 'Times New Roman', serif;
}
.combat-turn-panel .combat-turn-undo-btn {
  border-color: rgba(188,131,65,.65);
  background: linear-gradient(150deg,#342418,#1c130e);
  color: #f4cf8c;
}
.combat-turn-panel .combat-turn-undo-btn:hover {
  border-color: var(--alea-round-gold);
  box-shadow: var(--alea-round-glow);
}
@media (prefers-reduced-motion: reduce) {
  .combat-turn-panel *, .combat-turn-panel *::before, .combat-turn-panel *::after {
    scroll-behavior: auto;
  }
}

/* Phase 2: round heading, active portrait and live vitals. */
.combat-turn-panel .combat-turn-head{
  min-height:64px;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  gap:4px 10px;
  padding:10px 12px;
  background:radial-gradient(ellipse at 85% 15%,rgba(81,111,132,.18),transparent 56%),linear-gradient(110deg,#392318,#17110e);
}
.combat-turn-panel .combat-turn-head .combat-round{
  grid-column:1;grid-row:1;
  color:#f3cb88;font:700 clamp(19px,2.1vw,26px)/1.05 Georgia,serif;
  text-shadow:0 2px 2px #070504,0 0 16px rgba(228,155,63,.27);
}
.combat-turn-panel .combat-turn-action-status{
  grid-column:1;grid-row:2;justify-self:start;
  border-radius:7px;padding:5px 9px;
  font-size:10px;
}
.combat-turn-panel .combat-turn-head .combat-status{display:none}
.combat-turn-panel .combat-turn-undo-btn{grid-column:2;grid-row:1 / 3;align-self:start}
.combat-turn-panel .combat-turn-actor:not(.empty){
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  grid-template-areas:"portrait identity" "vitals vitals" "actions actions";
  gap:8px 10px;
  padding:10px 11px 12px;
}
.combat-turn-panel .combat-turn-portrait{
  grid-area:portrait;width:56px;height:62px;flex-basis:56px;
  filter:drop-shadow(0 0 5px rgba(194,151,81,.26));
}
.combat-turn-panel .combat-turn-identity{grid-area:identity;min-width:0}
.combat-turn-panel .combat-turn-identity span{color:#c39a65;letter-spacing:.1em;font-size:9px}
.combat-turn-panel .combat-turn-identity b{
  font:700 clamp(17px,1.7vw,22px)/1.1 Georgia,serif;
  color:#f3d39b;text-shadow:0 1px 3px #000b;
}
.combat-turn-panel .combat-turn-identity small{color:#d9c5a9;font-size:11px}
.combat-turn-panel .combat-turn-vitals{
  grid-area:vitals;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  background:linear-gradient(180deg,rgba(38,27,20,.94),rgba(20,14,11,.94));
  border:1px solid rgba(153,105,57,.64);border-radius:8px;
  overflow:hidden;min-width:0;
}
.combat-turn-panel .combat-turn-vitals>div{
  min-width:0;padding:7px 6px 6px;
  border-right:1px solid rgba(161,112,65,.38);
}
.combat-turn-panel .combat-turn-vitals>div:last-child{border-right:0}
.combat-turn-panel .combat-turn-vitals span{
  display:block;font-size:9px;letter-spacing:.055em;
  color:#c7a780;opacity:1;
}
.combat-turn-panel .combat-turn-vitals b{
  display:block;margin:4px 0 6px;color:#f8e1b8;
  font:700 clamp(13px,1.4vw,17px)/1.1 Georgia,serif;
}
.combat-turn-panel .combat-vital-meter{
  height:6px;overflow:hidden;border-radius:10px;
  background:#0e0b0a;border:1px solid rgba(255,255,255,.12);
}
.combat-turn-panel .combat-vital-fill{
  display:block;height:100%;max-width:100%;border-radius:10px;
  transition:width .25s ease;
}
.combat-turn-panel .combat-vital-fill.move{background:linear-gradient(90deg,#89653c,#d1a660)}
.combat-turn-panel .combat-vital-fill.kp{background:linear-gradient(90deg,#267f27,#75e63c);box-shadow:0 0 5px #5bce36}
.combat-turn-panel .combat-vital-fill.psy{background:linear-gradient(90deg,#6433a7,#c353f4);box-shadow:0 0 5px #a33ed6}
.combat-turn-panel .combat-turn-actions{
  grid-area:actions;justify-content:space-around;min-width:0;flex-wrap:nowrap;
}
@media(max-width:460px){
 .combat-turn-panel .combat-turn-head{min-height:58px}
 .combat-turn-panel .combat-turn-actor:not(.empty){padding:8px;gap:6px}
 .combat-turn-panel .combat-turn-vitals>div{padding:6px 4px}
 .combat-turn-panel .combat-turn-vitals span{font-size:8px}
}
@media(prefers-reduced-motion:reduce){
 .combat-turn-panel .combat-vital-fill{transition:none}
}

/* Phase 3: five consistent action tiles; functionality remains in existing buttons. */
.combat-turn-panel .combat-turn-actions{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(3px,1vw,10px);
  width:100%;
  align-items:start;
  justify-content:stretch;
  padding:5px 0 20px;
}
.combat-turn-panel .combat-turn-actions .combat-turn-action-tool{
  --round-action-label:"";
  position:relative;
  min-width:0;
  width:100%;
  flex:initial;
  display:flex;
  justify-content:center;
}
.combat-turn-panel .combat-turn-actions .move-tool{--round-action-label:"FÖRFLYTTNING"}
.combat-turn-panel .combat-turn-actions .attack-tool{--round-action-label:"ATTACK"}
.combat-turn-panel .combat-turn-actions .magic-tool{--round-action-label:"MAGI"}
.combat-turn-panel .combat-turn-actions .action-tool{--round-action-label:"HANDLING"}
.combat-turn-panel .combat-turn-actions .end-tool{--round-action-label:"AVSLUTA"}
.combat-turn-panel .combat-turn-actions .combat-turn-action-tool::after{
  content:var(--round-action-label);
  position:absolute;
  top:calc(clamp(42px,5.2vw,61px) + 5px);
  left:50%;
  transform:translateX(-50%);
  pointer-events:none;
  font:700 clamp(7px,.8vw,10px)/1 Georgia,serif;
  letter-spacing:.025em;
  color:#dbbb89;
  white-space:nowrap;
  text-shadow:0 1px 2px #000;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn{
  position:relative;
  width:clamp(42px,5.2vw,61px);
  min-width:0;
  height:clamp(42px,5.2vw,61px);
  padding:9px;
  border-radius:10px;
  border:1px solid #b18a57;
  background:
    linear-gradient(135deg,rgba(255,223,149,.11),transparent 32%),
    radial-gradient(ellipse at 50% 15%,#533b28,#2b1d14 67%,#160f0b);
  box-shadow:inset 0 0 0 2px #21160f,inset 0 0 0 3px rgba(207,157,88,.4),0 2px 6px #000a;
  transition:box-shadow .18s ease,border-color .18s ease,filter .18s ease;
  color:#e5c58e;
  overflow:hidden;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn::before{
  content:"";pointer-events:none;position:absolute;inset:4px;
  border:1px solid rgba(215,175,112,.22);
  border-radius:6px;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-icon{
  position:relative;
  display:block;
  width:100%;height:100%;
  max-width:100%;max-height:100%;
  object-fit:contain;
  filter:sepia(.2) saturate(.8) drop-shadow(0 1px 1px #0009);
}
.combat-turn-panel .combat-turn-actions .combat-magic-glyph{
  position:relative;font-size:clamp(25px,3.1vw,35px);
  color:#e5c58e;text-shadow:0 1px 2px #0009;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn:not(:disabled):hover{
  border-color:#f0c47d;
  box-shadow:inset 0 0 0 2px #352114,inset 0 0 0 3px #d5a261,0 0 11px rgba(237,172,67,.33);
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn.active,
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn.chosen{
  border-color:#ffe2a0;
  background:radial-gradient(circle at 50% 42%,#855019,#41240e 73%,#231308);
  box-shadow:inset 0 0 0 2px #6c400f,inset 0 0 0 3px #f9c975,0 0 8px #f3b347,0 0 19px rgba(241,161,31,.65);
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn.active .combat-row-tool-icon,
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn.chosen .combat-row-tool-icon{
  filter:brightness(1.18) sepia(.1) drop-shadow(0 0 5px #fbc45c);
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn.active .combat-magic-glyph,
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn.chosen .combat-magic-glyph{
  color:#ffdf8c;text-shadow:0 0 7px #fcbf55;
}
.combat-turn-panel .combat-turn-actions .combat-turn-action-tool:has(.active)::after,
.combat-turn-panel .combat-turn-actions .combat-turn-action-tool:has(.chosen)::after{
  color:#ffdf9a;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn:disabled{
  opacity:.46;filter:saturate(.65);cursor:not-allowed;
}
.combat-turn-panel .combat-turn-actions .combat-row-action-menu{
  z-index:50;
  top:calc(clamp(42px,5.2vw,61px) + 5px);
}
@media(max-width:460px){
  .combat-turn-panel .combat-turn-actions{gap:2px;padding-bottom:18px}
  .combat-turn-panel .combat-turn-actions .combat-row-tool-btn{padding:7px}
  .combat-turn-panel .combat-turn-actions .combat-turn-action-tool::after{
    font-size:clamp(6px,1.7vw,8px);
    letter-spacing:0;
  }
}
@media(prefers-reduced-motion:reduce){
  .combat-turn-panel .combat-turn-actions .combat-row-tool-btn{transition:none}
}


/* Phase 3 imagery (v0.35.122)
   Five actions × 2 states in a single transparent AVIF sprite.
   Frame columns: move, attack, magic, action, end.
   Row 1: normal; row 2: selected/hover. The original buttons and event handlers
   remain unchanged, including disabled states and popover menus. */
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background-color:transparent!important;
  background-image:url("./round-step3-sprite--jovwFYo.avif")!important;
  background-repeat:no-repeat!important;
  background-size:500% 200%!important;
  box-shadow:none!important;
  overflow:visible;
  transition:filter .15s ease;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn::before{display:none!important}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn > .combat-row-tool-icon,
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn > .combat-magic-glyph{
  visibility:hidden!important;
  pointer-events:none!important;
}
.combat-turn-panel .combat-turn-actions .combat-row-move{background-position:0% 0%!important}
.combat-turn-panel .combat-turn-actions .combat-row-attack{background-position:25% 0%!important}
.combat-turn-panel .combat-turn-actions .combat-row-magic{background-position:50% 0%!important}
.combat-turn-panel .combat-turn-actions .combat-row-action{background-position:75% 0%!important}
.combat-turn-panel .combat-turn-actions .combat-row-end{background-position:100% 0%!important}
.combat-turn-panel .combat-turn-actions .combat-row-move:is(.active,.chosen,:hover:not(:disabled),:focus-visible){background-position:0% 100%!important}
.combat-turn-panel .combat-turn-actions .combat-row-attack:is(.active,.chosen,:hover:not(:disabled),:focus-visible){background-position:25% 100%!important}
.combat-turn-panel .combat-turn-actions .combat-row-magic:is(.active,.chosen,:hover:not(:disabled),:focus-visible){background-position:50% 100%!important}
.combat-turn-panel .combat-turn-actions .combat-row-action:is(.active,.chosen,:hover:not(:disabled),:focus-visible){background-position:75% 100%!important}
.combat-turn-panel .combat-turn-actions .combat-row-end:is(.active,.chosen,:hover:not(:disabled),:focus-visible){background-position:100% 100%!important}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn:focus-visible{
  outline:2px solid #fce2a0;
  outline-offset:2px;
}
.combat-turn-panel .combat-turn-actions .combat-row-tool-btn:disabled{
  opacity:.45;
  filter:grayscale(.3);
}
.combat-turn-panel .combat-turn-actions .combat-turn-action-tool:has(.combat-row-tool-btn:hover:not(:disabled))::after{
  color:#ffdf9a;
}
@media(prefers-reduced-motion:reduce){
 .combat-turn-panel .combat-turn-actions .combat-row-tool-btn{transition:none}
}

/* Phase 4 – ornamental outer frame. One artwork rotated through four corners.
   CSS edges grow with the panel while action menus remain interactive. */
.combat-turn-panel {
  --alea-frame-corner-size: 48px;
  --alea-frame-edge-width: 5px;
  --alea-frame-gold: #d7a45b;
  --alea-frame-bronze: #69401f;
  border: 0;
  border-radius: 11px;
  padding: var(--alea-frame-edge-width);
  background:
    linear-gradient(180deg, #ddad6c 0%, #74411e 25%, #2e1c12 48%, #b47c3d 76%, #e0b274 100%) left / var(--alea-frame-edge-width) 100% no-repeat,
    linear-gradient(180deg, #ddad6c 0%, #74411e 25%, #2e1c12 48%, #b47c3d 76%, #e0b274 100%) right / var(--alea-frame-edge-width) 100% no-repeat,
    linear-gradient(90deg, #ddad6c 0%, #74411e 25%, #2e1c12 48%, #b47c3d 76%, #e0b274 100%) top / 100% var(--alea-frame-edge-width) no-repeat,
    linear-gradient(90deg, #ddad6c 0%, #74411e 25%, #2e1c12 48%, #b47c3d 76%, #e0b274 100%) bottom / 100% var(--alea-frame-edge-width) no-repeat,
    radial-gradient(ellipse at 75% 0%, rgba(141,86,38,.18), transparent 65%),
    linear-gradient(160deg,#2c1d13,#1b130e 48%,#120d0a);
  box-shadow: inset 0 0 0 1px rgba(244,195,111,.35), inset 0 0 22px #0008,0 8px 28px #0005;
  overflow: visible;
}
.combat-turn-panel::before { inset: 7px; border-color: rgba(225,173,95,.15); }
.combat-turn-panel > .combat-ornate-corners {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}
.combat-turn-panel .combat-ornate-corner {
  position: absolute;
  display: block;
  width: var(--alea-frame-corner-size);
  height: var(--alea-frame-corner-size);
  background: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20120%20120'%3e%3cdefs%3e%3clinearGradient%20id='metal'%20x2='.8'%20y2='1'%3e%3cstop%20stop-color='%23fff0b9'/%3e%3cstop%20offset='.19'%20stop-color='%23cc812e'/%3e%3cstop%20offset='.48'%20stop-color='%236b3715'/%3e%3cstop%20offset='.73'%20stop-color='%23f2b75d'/%3e%3cstop%20offset='1'%20stop-color='%23603216'/%3e%3c/linearGradient%3e%3clinearGradient%20id='edge'%3e%3cstop%20stop-color='%23f5d089'/%3e%3cstop%20offset='.26'%20stop-color='%239b5e2c'/%3e%3cstop%20offset='.55'%20stop-color='%233d2317'/%3e%3cstop%20offset='.84'%20stop-color='%23c5924f'/%3e%3cstop%20offset='1'%20stop-color='%23f8cf7e'/%3e%3c/linearGradient%3e%3cradialGradient%20id='orb'%3e%3cstop%20stop-color='%23ffe4a0'/%3e%3cstop%20offset='.38'%20stop-color='%23d8973f'/%3e%3cstop%20offset='.74'%20stop-color='%23855022'/%3e%3cstop%20offset='1'%20stop-color='%233c210f'/%3e%3c/radialGradient%3e%3c/defs%3e%3cg%20stroke-linejoin='round'%3e%3cpath%20d='M31%2024H120V32H35L32%2035V120H24V31Z'%20fill='url(%23edge)'%20stroke='%23e4b36b'%20stroke-width='1.5'/%3e%3cpath%20d='M31%2029H120M29%2031V120'%20stroke='%23f5d38e'%20stroke-width='1'%20fill='none'/%3e%3cpath%20d='M12%204C20%209%2025%2014%2025%2022C35%2020%2046%2016%2057%2013C48%2025%2043%2028%2036%2029C45%2032%2059%2025%2071%2027C64%2036%2048%2039%2037%2035C43%2044%2035%2060%2028%2066C28%2056%2025%2048%2021%2044C19%2058%2017%2064%209%2073C11%2055%2011%2042%2015%2035C3%2030%204%2016%2012%204Z'%20fill='url(%23metal)'%20stroke='%23f3bb67'%20stroke-width='1.4'/%3e%3cpath%20d='M9%2019C13%2010%2019%2012%2019%2020C19%2028%2010%2026%2011%2034C12%2040%2022%2039%2027%2035C35%2028%2035%2018%2028%2017C23%2016%2022%2020%2024%2022'%20stroke='%23e5a65e'%20stroke-width='4'%20fill='none'/%3e%3cpath%20d='M9%2019C13%2010%2019%2012%2019%2020C19%2028%2010%2026%2011%2034C12%2040%2022%2039%2027%2035C35%2028%2035%2018%2028%2017C23%2016%2022%2020%2024%2022'%20stroke='%233b2618'%20stroke-width='1.4'%20fill='none'/%3e%3ccircle%20cx='26'%20cy='27'%20r='13'%20fill='url(%23orb)'%20stroke='%23eec07e'%20stroke-width='2'/%3e%3ccircle%20cx='26'%20cy='27'%20r='9.5'%20fill='none'%20stroke='%23754320'%20stroke-width='1.2'/%3e%3cpath%20d='M35%2029C53%2018%2062%2025%2070%2018C67%2032%2052%2034%2042%2034M29%2037C40%2053%2033%2065%2023%2072C30%2054%2022%2049%2029%2037Z'%20fill='url(%23metal)'%20stroke='%23e1aa5d'%20stroke-width='1'/%3e%3cpath%20d='M19%208C22%2014%2021%2019%2018%2023M49%2024C55%2027%2063%2026%2066%2023M28%2052C27%2057%2026%2061%2024%2065'%20fill='none'%20stroke='%23ffdf94'%20stroke-width='1.4'/%3e%3c/g%3e%3c/svg%3e") center / contain no-repeat;
  pointer-events: none;
}
.combat-turn-panel .combat-ornate-corner.tl {top:0;left:0;transform:translate(-16%,-16%) rotate(0deg)}
.combat-turn-panel .combat-ornate-corner.tr {top:0;right:0;transform:translate(16%,-16%) rotate(90deg)}
.combat-turn-panel .combat-ornate-corner.br {bottom:0;right:0;transform:translate(16%,16%) rotate(180deg)}
.combat-turn-panel .combat-ornate-corner.bl {bottom:0;left:0;transform:translate(-16%,16%) rotate(270deg)}
@media(max-width:600px) {
 .combat-turn-panel { --alea-frame-corner-size:32px; --alea-frame-edge-width:4px; }
}

/* v0.35.123 — Pilot: continuous battle artwork from the round heading into
   the active combatant identity. All action controls and frame corners stay
   above the purely decorative layer, and the image fades before equipment. */
.combat-turn-panel::after {
  content:"";
  position:absolute;
  top:var(--alea-frame-edge-width);
  left:var(--alea-frame-edge-width);
  right:var(--alea-frame-edge-width);
  height:210px;
  max-height:calc(100% - 2 * var(--alea-frame-edge-width));
  border-radius:8px 8px 0 0;
  pointer-events:none;
  z-index:0;
  background-image:
    linear-gradient(180deg,
      rgba(19,12,9,.10) 0%,
      rgba(19,12,9,.20) 27%,
      rgba(19,12,9,.69) 56%,
      rgba(19,12,9,.94) 78%,
      #160f0b 100%),
    linear-gradient(90deg,
      rgba(14,9,7,.80) 0%,
      rgba(14,9,7,.50) 34%,
      rgba(14,9,7,.06) 70%,
      transparent 100%),
    url('data:image/avif;base64,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');
  background-size:100% 100%,100% 100%,cover;
  background-position:center,center,center 32%;
  background-repeat:no-repeat;
}
.combat-turn-panel .combat-turn-head,
.combat-turn-panel .combat-turn-actor {
  background:transparent;
}
/* The existing actor information and action menus retain foreground layering.
   The ornate corners intentionally remain on z-index:3 above the artwork. */
@media(max-width:460px) {
  .combat-turn-panel::after {
    height:188px;
    background-position:center,center,60% 30%;
  }
}

/* ARCANE COMBAT – responsive round header pilot.
   Presentation only: preserve all action/state mechanics. */
.combat-turn-panel .combat-turn-action-status{display:none!important}
.combat-turn-panel .combat-turn-head{
  grid-template-rows:auto;
  min-height:54px;
}
.combat-turn-panel .combat-turn-undo-btn{grid-row:1}
.combat-turn-panel .combat-turn-actor:not(.empty){
  grid-template-columns:clamp(60px,17%,86px) minmax(0,1fr);
  grid-template-areas:"portrait identity" "vitals vitals" "actions actions";
  align-items:center;
}
.combat-turn-panel .combat-turn-portrait{
  width:clamp(60px,100%,82px);
  height:auto;
  min-height:60px;
  aspect-ratio:1;
  border:2px solid #b98b4f;
  border-radius:50%;
  overflow:hidden;
  background:radial-gradient(circle,#39291c,#120d0a);
  box-shadow:0 0 0 3px #392316,0 2px 12px #0009;
}
.combat-turn-panel .combat-turn-portrait img{width:100%;height:100%;object-fit:cover}
.combat-turn-panel .combat-turn-identity{align-self:center;z-index:2}
.combat-turn-panel .combat-turn-vitals>div{padding-block:5px}
@media(min-width:700px){
 .combat-turn-panel .combat-turn-actor:not(.empty){grid-template-columns:82px minmax(0,1fr)}
 .combat-turn-panel .combat-turn-vitals{max-width:94%;margin-inline:auto;width:100%}
}
@media(max-width:600px){
 .combat-turn-panel .combat-turn-actor:not(.empty){grid-template-columns:64px minmax(0,1fr)}
 .combat-turn-panel .combat-turn-portrait{width:62px;min-height:62px}
}
/* Alea Crusaders v0.35.142 – illustrated attack-panel background.
   Only the attack panel changes: magic, round equipment, portraits and combat
   mechanics keep their existing design and behavior. No new stacking layers
   are placed above interactive content. */
#combatPage .combat-mini-attack {
  background-color: #21160f;
  background-image:
    linear-gradient(180deg,
      rgba(17, 10, 7, .74) 0%,
      rgba(15, 9, 7, .72) 45%,
      rgba(15, 8, 6, .78) 100%),
    url("data:image/webp;base64,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");
  background-size: 100% 100%, cover;
  background-position: center, center 58%;
  background-repeat: no-repeat;
}
@media (max-width: 520px) {
  #combatPage .combat-mini-attack {
    background-position: center, center 64%;
  }
}
/* v0.35.124 — the gallery-selected combat artwork occupies the third layer. */
.combat-turn-panel::after{
 background-image:
  linear-gradient(180deg,rgba(19,12,9,.10) 0%,rgba(19,12,9,.20) 27%,rgba(19,12,9,.69) 56%,rgba(19,12,9,.94) 78%,#160f0b 100%),
  linear-gradient(90deg,rgba(14,9,7,.80) 0%,rgba(14,9,7,.50) 34%,rgba(14,9,7,.06) 70%,transparent 100%),
  var(--alea-round-illustration,url('data:image/avif;base64,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'));
}
.round-gallery-upload{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 0}
.round-gallery-upload label{display:flex;gap:8px;align-items:center;cursor:pointer}
.round-gallery-upload input{max-width:260px}
.round-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.round-gallery-card{border:1px solid #865b33;border-radius:10px;overflow:hidden;background:#201712}
.round-gallery-card.muted{opacity:.72}
.round-gallery-preview{aspect-ratio:3/1;background:#120e0c}
.round-gallery-preview img{display:block;width:100%;height:100%;object-fit:cover}
.round-gallery-copy{padding:10px;display:grid;gap:4px}
.round-gallery-copy small{color:#c2a47c}
.round-gallery-actions{display:flex;gap:6px;flex-wrap:wrap;padding:0 10px 10px}
#roundGalleryStatus{min-height:1.3em;color:#e6c28f}

/* v0.35.126 — preserve the artwork's right-hand subject in narrow round panels.
   With center cover cropping, the hero at the far right may disappear entirely. */
.combat-turn-panel::after {
  background-position:center,center,right 25%;
}
@media(max-width:460px) {
  .combat-turn-panel::after { background-position:center,center,right 20%; }
}

/* v0.35.127: an explicit image element avoids invisible CSS background layers
   on mobile browsers. It is wholly decorative and never blocks controls. */
.combat-turn-panel::after{display:none!important}
.combat-turn-panel > .combat-round-artwork {
 position:absolute!important;
 display:block;
 top:var(--alea-frame-edge-width,4px);
 left:var(--alea-frame-edge-width,4px);
 right:var(--alea-frame-edge-width,4px);
 height:230px;
 max-height:calc(100% - 2 * var(--alea-frame-edge-width,4px));
 overflow:hidden;
 border-radius:8px 8px 0 0;
 pointer-events:none;
 z-index:0!important;
 isolation:isolate;
}
.combat-turn-panel .combat-round-artwork-image {
 display:block;
 width:100%;
 height:100%;
 object-fit:cover;
 object-position:var(--alea-round-focus-x,100%) var(--alea-round-focus-y,24%);
 opacity:1;
 filter:brightness(1.12) saturate(1.12);
 -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 38%,rgba(0,0,0,.78) 55%,rgba(0,0,0,.24) 82%,transparent 100%);
 mask-image:linear-gradient(to bottom,#000 0%,#000 38%,rgba(0,0,0,.78) 55%,rgba(0,0,0,.24) 82%,transparent 100%);
}
.combat-turn-panel .combat-round-artwork::after {
 content:"";position:absolute;inset:0;pointer-events:none;
 background:linear-gradient(90deg,rgba(19,12,9,.78) 0%,rgba(19,12,9,.38) 38%,rgba(19,12,9,.02) 85%),
 linear-gradient(to bottom,rgba(19,12,9,.04) 0%,rgba(19,12,9,.06) 43%,rgba(19,12,9,.60) 88%,#160f0b 100%);
}
.combat-turn-panel > .combat-turn-head,
.combat-turn-panel > .combat-turn-actor {
 position:relative;
 z-index:1;
 background:transparent!important;
}
@media(max-width:600px) {
 .combat-turn-panel > .combat-round-artwork {height:220px}
 .combat-turn-panel .combat-round-artwork-image {object-position:var(--alea-round-focus-x,75%) var(--alea-round-focus-y,18%);filter:brightness(1.18) saturate(1.18)}
 .combat-turn-panel .combat-round-artwork::after {
  background:linear-gradient(90deg,rgba(19,12,9,.82) 0%,rgba(19,12,9,.35) 42%,rgba(19,12,9,.01) 100%),
  linear-gradient(to bottom,transparent 0%,rgba(19,12,9,.04) 44%,rgba(19,12,9,.62) 90%,#160f0b 100%);
 }
}

/* Compact editor launcher inside the Runda banner; no extra panel height. */
.combat-turn-panel .combat-round-adjust-button{
 position:absolute;top:72px;right:9px;z-index:6;
 width:31px;height:31px;padding:0;border:1px solid #b28a54;border-radius:8px;
 background:rgba(34,21,13,.88);color:#f3d29a;cursor:pointer;
 font:700 23px/1 Georgia,serif;box-shadow:0 2px 6px #0009;
}
.combat-turn-panel .combat-round-adjust-button:hover,
.combat-turn-panel .combat-round-adjust-button:focus-visible{
 outline:2px solid #f1c879;outline-offset:2px;
}
.alea-round-focus-scrim{
 position:fixed;inset:0;z-index:10010;display:grid;place-items:center;
 padding:16px;background:rgba(7,5,4,.84);overflow:auto;
}
.alea-round-focus-dialog{
 display:flex;flex-direction:column;gap:12px;width:min(680px,100%);
 max-height:calc(100dvh - 28px);overflow:auto;
 padding:16px;border:1px solid #b08a54;border-radius:13px;
 background:linear-gradient(160deg,#342416,#130e0b);color:#f3dfc1;
 box-shadow:0 14px 44px #000;
}
.alea-round-focus-dialog h3{font:700 21px Georgia,serif;margin:0;color:#f4d8a1}
.alea-round-focus-dialog p{margin:0;color:#d5b991;font:12px/1.45 system-ui,sans-serif}
.alea-round-focus-stage{
 position:relative;width:100%;overflow:hidden;touch-action:none;
 border:2px solid #c49a61;border-radius:8px;background:#110b08;
 cursor:grab;user-select:none;-webkit-user-select:none;
}
.alea-round-focus-stage:active{cursor:grabbing}
.alea-round-focus-stage img{
 display:block;width:100%;height:100%;object-fit:cover;
 pointer-events:none;user-select:none;
}
.alea-round-focus-stage::after{
 content:"";pointer-events:none;position:absolute;inset:0;
 background:linear-gradient(90deg,rgba(19,12,9,.44),transparent 80%),
 linear-gradient(to bottom,transparent 15%,rgba(19,12,9,.64) 95%);
}
.alea-round-focus-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.alea-round-focus-controls label{display:grid;gap:5px;font:600 12px system-ui,sans-serif}
.alea-round-focus-controls input{accent-color:#d9a356;width:100%;min-width:0}
.alea-round-focus-buttons{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.alea-round-focus-buttons button{
 min-height:38px;padding:7px 13px;border:1px solid #a7804f;border-radius:7px;
 background:#332317;color:#f3ddb5;cursor:pointer;font-weight:650;
}
.alea-round-focus-buttons button.primary{
 background:linear-gradient(#926330,#5c3d20);border-color:#e1b875;color:#fff2d9;
}
.alea-round-focus-buttons button:disabled{opacity:.5;cursor:wait}
.alea-round-focus-status{min-height:17px;color:#f1c27a;font:12px system-ui,sans-serif}
@media(max-width:600px){
 .combat-turn-panel .combat-round-adjust-button{top:67px;right:8px;width:29px;height:29px}
 .alea-round-focus-dialog{padding:12px}
}
/* Character-specific combat-round banner preview, kept separate from figure gallery. */
#imagesPanel .character-round-gallery{margin:16px 0 2px;padding:14px;border:1px solid #856237;border-radius:13px;background:linear-gradient(135deg,#22180f,#110f0d);color:#ecdec5}
.character-round-heading{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.character-round-heading strong{font:700 18px Georgia,serif;color:#f2dba9}
.character-round-heading small{font-size:12px;line-height:1.55;color:#cebaa0}
.character-round-preview{aspect-ratio:3 / 1;border:1px solid #9b7141;border-radius:9px;display:grid;place-items:center;background:linear-gradient(120deg,#19130e,#322219);overflow:hidden;text-align:center;padding:0}
.character-round-preview img{width:100%;height:100%;display:block;object-fit:cover}
.character-round-preview span{padding:12px;color:#c8a777;font-size:13px}
.character-round-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px}
.character-round-actions label{position:relative;cursor:pointer}
.character-round-file{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);opacity:0}
.character-round-actions small{color:#c9ac84;font-size:12px}
#characterRoundStatus{min-height:1.2em;margin:6px 0 0;color:#e6c28f;font-size:12px}
/* Alea Crusaders v0.35.130 – combat hit-figure catalogue */
.hit-figure-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 14px}
.hit-figure-toolbar label{display:grid;gap:5px;color:#d9bf90;font-weight:700;font-size:13px}
.hit-figure-toolbar select{min-width:180px;max-width:100%;padding:10px;border-radius:9px;border:1px solid #947651;background:#241b14;color:#f1dfbe}
.hit-figure-note{color:#c9ae87;font-size:13px;margin:10px 0 16px}
.hit-figure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.hit-figure-tile{border:1px solid rgba(183,143,88,.45);border-radius:12px;background:linear-gradient(160deg,#2b2118,#1a1511);padding:10px;display:flex;flex-direction:column;align-items:stretch;gap:9px;min-width:0}
.hit-figure-tile strong{color:#f1dbb0;font-size:13px;min-height:2em;text-align:center}
.hit-figure-preview{height:192px;max-width:100%;display:grid;place-items:center;border:1px solid rgba(187,144,82,.22);border-radius:8px;background:radial-gradient(circle,#443322,#16110d);overflow:hidden}
.hit-figure-preview img{display:block;max-width:100%;height:100%;object-fit:contain}
.hit-figure-preview span{color:#a58a67;font-size:12px}
.hit-figure-file{display:flex!important;justify-content:center;align-items:center;cursor:pointer;position:relative;min-height:36px}
.hit-figure-file input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;max-width:100%}
.hit-figure-remove{color:#f5baa8!important;min-height:34px}
.hit-figure-series{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.hit-figure-series-status{border:1px solid rgba(173,137,86,.4);background:#241b15;border-radius:9px;padding:9px 12px;display:flex;flex-direction:column;gap:3px}
.hit-figure-series-status b{color:#efd6ac;font-size:12px}
.hit-figure-series-status span{color:#a9cba7;font-size:11px}
#hitFigureStatus{min-height:20px;color:#b9d5ac;font-size:13px}
#hitFigureStatus.is-error{color:#f3a99a}
.combat-hit-art-image{mix-blend-mode:normal!important}
@media(max-width:520px){
 .hit-figure-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .hit-figure-tile{padding:8px}
 .hit-figure-preview{height:160px}
 .hit-figure-toolbar label{flex:1 1 140px}
 .hit-figure-toolbar select{min-width:0;width:100%}
}

.hit-figure-bulk{position:relative;display:inline-flex!important;align-items:center;justify-content:center;max-width:100%;cursor:pointer;margin-bottom:14px;min-height:38px}
.hit-figure-bulk input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}


/* v0.35.154 – no right-hand gutter around illustrated hit locations.
   The result card itself clips the illustration at its bronze/green border.
   The image's visible left edge is positioned dynamically by hit-figures.js. */
#combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result.has-hit-camera{
 padding-right:0;
 overflow:hidden;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-attack-hit-camera{
 width:100%;
 min-width:0;
 justify-self:stretch;
 margin-right:0;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-hit-figure-wrap{
 width:100%;
 justify-items:stretch;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-hit-image-switch{
 box-sizing:border-box;
 width:100%;
 max-width:none;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-hit-image-switch > img.combat-hit-art-image{
 object-fit:contain;
 object-position:left center;
}
/* Specialbilder v0.35.131: shared admin page, separate galleries and data models. */
.special-image-tabs{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:8px;
 margin:16px 0;
 padding:5px;
 border:1px solid rgba(194,151,91,.4);
 border-radius:12px;
 background:linear-gradient(135deg,#17110c,#2b2017);
}
.special-image-tab{
 appearance:none;
 display:flex;
 align-items:center;
 justify-content:center;
 min-width:0;
 padding:12px 10px;
 border:1px solid transparent;
 border-radius:9px;
 background:transparent;
 color:#c9b393;
 font:inherit;
 font-size:14px;
 font-weight:700;
 text-align:center;
 cursor:pointer;
 transition:background-color .15s,border-color .15s,color .15s;
}
.special-image-tab.active,
.special-image-tab[aria-selected="true"]{
 color:#ffe6b2;
 background:linear-gradient(145deg,#4a3521,#2e2017);
 border-color:#ac8446;
 box-shadow:inset 0 1px 0 rgba(255,224,165,.15),0 0 10px rgba(203,137,46,.13);
}
.special-image-tab:focus-visible{
 outline:2px solid #ffd073;
 outline-offset:2px;
}
.special-image-panel[hidden]{display:none!important}
.special-image-panel>.adminsectionhead{margin-top:8px}
.special-image-panel>.adminsectionhead h3{color:#e9c994;margin:0}
@media(max-width:520px){
 .special-image-tabs{gap:4px;padding:4px}
 .special-image-tab{font-size:12px;padding:11px 5px;line-height:1.25}
}
/* Alea v0.35.132 — in-flow spell selection for mobile and desktop.
   Avoid absolute dropdowns over equipment and the hex map. */
.combat-shell-live .combat-turn-magic-host{
 box-sizing:border-box;
 display:block;
 position:relative;
 min-width:0;
 width:100%;
 padding:8px 10px 12px;
 border-top:1px solid rgba(175,137,82,.4);
 background:rgba(10,8,6,.18);
}
.combat-shell-live .combat-turn-magic-host > .combat-row-magic-menu{
 position:static;
 inset:auto;
 z-index:auto;
 display:block;
 box-sizing:border-box;
 width:100%;
 min-width:0;
 max-width:none;
 padding:12px;
 margin:0;
 transform:none;
 border:1px solid #82623e;
 border-radius:10px;
 background:linear-gradient(155deg,#2a2119,#17120e);
 color:#f3dfbb;
 box-shadow:none;
}
.combat-shell-live .combat-turn-magic-host > .combat-row-magic-menu::before{display:none}
.combat-turn-magic-host .combat-spell-panel-top{
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:12px;
 padding-bottom:9px;
 border-bottom:1px solid rgba(200,157,95,.4);
}
.combat-turn-magic-host .combat-spell-panel-top h3{
 margin:0;
 color:#f5daaa;
 font:800 clamp(13px,3.6vw,16px)/1.3 Georgia,serif;
}
.combat-turn-magic-host .combat-spell-panel-top button{
 display:grid;
 place-items:center;
 flex:0 0 34px;
 height:34px;
 border:1px solid #7c613c;
 border-radius:7px;
 background:#312318;
 color:#f3dfbb;
 cursor:pointer;
 font-size:16px;
}
.combat-turn-magic-host .combat-spell-choice{
 display:grid;
 gap:9px;
 padding-top:12px;
 min-width:0;
}
.combat-turn-magic-host .combat-spell-choice-head{
 display:flex;
 align-items:baseline;
 justify-content:space-between;
 gap:8px;
}
.combat-turn-magic-host .combat-spell-choice-head strong{font-size:13px;color:#f2dcaf}
.combat-turn-magic-host .combat-spell-choice-head span{
 white-space:nowrap;
 font-size:11px;
 color:#c3a37b;
}
.combat-turn-magic-host .combat-spell-empty{
 margin:0;
 font-size:12px;
 color:#d6c3a5;
 line-height:1.35;
}
.combat-turn-magic-host .combat-spell-selected{
 display:flex;
 align-items:center;
 flex-wrap:wrap;
 gap:6px 10px;
 border:1px solid #8b713f;
 border-radius:8px;
 padding:9px 10px;
 background:#3d2d1d;
}
.combat-turn-magic-host .combat-spell-selected span{
 color:#d4b680;
 font-size:10px;
 font-weight:800;
 letter-spacing:.06em;
}
.combat-turn-magic-host .combat-spell-selected strong{
 color:#ffecbf;
 font-size:14px;
 overflow-wrap:anywhere;
}
.combat-turn-magic-host .combat-spell-effect{
 display:flex;
 align-items:center;
 gap:7px;
 flex-wrap:wrap;
 padding:8px 10px;
 border:1px solid rgba(188,147,92,.45);
 border-radius:8px;
 background:rgba(255,225,180,.05);
}
.combat-turn-magic-host .combat-spell-effect>span{
 font-size:12px;
 font-weight:800;
 color:#e4cb9d;
 margin-right:auto;
}
.combat-turn-magic-host .combat-spell-effect>b{
 min-width:22px;
 text-align:center;
 color:#ffe4aa;
 font:800 17px/1.2 system-ui,sans-serif;
}
.combat-turn-magic-host .combat-spell-effect>small{
 flex:1 1 100%;
 color:#d3bb93;
 font-size:11px;
}
.combat-turn-magic-host .combat-spell-effect button{
 display:grid;
 place-items:center;
 min-width:38px;
 min-height:38px;
 border:1px solid #927348;
 border-radius:7px;
 background:#3b2a1b;
 color:#ffe5b2;
 font-size:20px;
 font-weight:800;
 cursor:pointer;
}
.combat-turn-magic-host .combat-spell-effect button:disabled{opacity:.42;cursor:default}
.combat-turn-magic-host .combat-spell-catalog{
 display:grid;
 gap:10px;
 max-height:min(34vh,315px);
 max-height:min(34dvh,315px);
 min-height:0;
 overflow-y:auto;
 overflow-x:hidden;
 overscroll-behavior:contain;
 padding:3px 6px 3px 2px;
 scrollbar-color:#856745 #201810;
}
.combat-turn-magic-host .combat-spell-source-group{min-width:0}
.combat-turn-magic-host .combat-spell-source-group h4{
 position:sticky;
 top:0;
 z-index:1;
 margin:0 0 7px;
 padding:5px 2px;
 background:#201912;
 color:#e2c694;
 font-size:12px;
}
.combat-turn-magic-host .combat-spell-source-group .combat-weapon-choice-grid{
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:7px;
 max-height:none;
 overflow:visible;
 padding:0;
}
.combat-turn-magic-host .combat-row-action-menu .combat-weapon-choice-btn,
.combat-turn-magic-host .combat-weapon-choice-btn{
 min-width:0;
 min-height:55px;
 box-sizing:border-box;
 background:#30251c;
 border:1px solid #765a3d;
 border-radius:8px;
 color:#f8e6c7;
 padding:9px 10px;
 gap:4px;
 text-align:left;
}
.combat-turn-magic-host .combat-weapon-choice-btn b{
 font-size:13px;
 line-height:1.3;
 overflow-wrap:anywhere;
}
.combat-shell-live .combat-turn-magic-host .combat-weapon-choice-btn small{
 color:#d9c0a0;
 opacity:1;
 font-size:11px;
 font-weight:500;
 line-height:1.4;
 overflow-wrap:anywhere;
}
.combat-shell-live .combat-turn-magic-host .combat-weapon-choice-btn.active{
 background:#4d371c;
 color:#fff0c8;
 border-color:#e4b55d;
 outline:1px solid rgba(239,193,99,.8);
 box-shadow:inset 0 0 12px rgba(209,145,49,.16);
}
.combat-turn-magic-host .combat-weapon-choice-btn:disabled{opacity:.4;cursor:not-allowed}
.combat-turn-magic-host .combat-spell-footnote{
 color:#c8b393;
 font-size:11px;
 line-height:1.4;
}
.combat-turn-magic-host button:focus-visible{
 outline:2px solid #f6cc6f;
 outline-offset:2px;
}
@media(max-width:600px){
 .combat-shell-live .combat-turn-magic-host{padding:7px 7px 10px}
 .combat-shell-live .combat-turn-magic-host > .combat-row-magic-menu{padding:10px 8px}
 .combat-turn-magic-host .combat-spell-source-group .combat-weapon-choice-grid{grid-template-columns:1fr}
 .combat-turn-magic-host .combat-spell-catalog{max-height:min(30dvh,260px)}
}

/* v0.35.178 — compact single-line alphabetical spell dropdown.
   The platform select scrolls naturally even with all 91 test spells. */
.combat-turn-magic-host .combat-spell-choice--compact{
 gap:7px;
 padding-top:9px;
}
.combat-turn-magic-host .combat-spell-picker{
 display:flex;
 align-items:center;
 gap:10px;
 min-width:0;
 color:#e8d0a4;
 font-size:12px;
 font-weight:800;
}
.combat-turn-magic-host .combat-spell-picker>span:first-child{
 flex:0 0 75px;
}
.combat-turn-magic-host .combat-spell-select-frame{
 position:relative;
 display:block;
 flex:1 1 auto;
 min-width:0;
}
.combat-turn-magic-host .combat-spell-select-frame select{
 display:block;
 box-sizing:border-box;
 width:100%;
 min-width:0;
 height:40px;
 min-height:40px;
 padding:0 30px 0 12px;
 border:1px solid #ae8350;
 border-radius:7px;
 background:#332619;
 color:#ffebbf;
 box-shadow:inset 0 1px 0 rgba(255,223,166,.12);
 font:700 13px/1.2 system-ui,sans-serif;
 appearance:none;
 -webkit-appearance:none;
 text-overflow:ellipsis;
 white-space:nowrap;
 cursor:pointer;
}
.combat-turn-magic-host .combat-spell-select-frame select:focus-visible{
 outline:2px solid #f6cc6f;
 outline-offset:2px;
}
.combat-turn-magic-host .combat-spell-select-frame option{
 background:#292018;
 color:#f8dfb8;
 font-weight:500;
}
.combat-turn-magic-host .combat-spell-chevron{
 position:absolute;
 right:11px;
 top:50%;
 transform:translateY(-55%);
 pointer-events:none;
 color:#efbe75;
 font-size:23px;
 line-height:1;
}
.combat-turn-magic-host .combat-spell-current-info{
 min-width:0;
 margin:-2px 0 0 85px;
 overflow:hidden;
 text-overflow:ellipsis;
 white-space:nowrap;
 color:#c9ac81;
 font-size:11px;
 line-height:1.35;
}
.combat-turn-magic-host .combat-spell-choice--compact .combat-spell-effect{
 min-height:40px;
 padding:5px 9px;
 gap:8px;
 flex-wrap:nowrap;
}
.combat-turn-magic-host .combat-spell-choice--compact .combat-spell-effect button{
 min-width:34px;
 min-height:34px;
}
@media(max-width:600px){
 .combat-turn-magic-host .combat-spell-picker{gap:7px}
 .combat-turn-magic-host .combat-spell-picker>span:first-child{flex-basis:70px}
 .combat-turn-magic-host .combat-spell-current-info{margin-left:77px}
}


/* v0.35.199 – magic carousel prototype. Antique-gold frames, compact banner.
   5 visible on desktop; 3 on mobile, with a genuine wrap-around scroll. */
#combatPage .combat-shell-live .combat-magic-carousel{
 position:relative;z-index:3;min-width:0;margin:0 0 8px;
 border:1px solid rgba(181,135,70,.66);border-radius:10px;
 padding:7px 5px 5px;
 background:radial-gradient(ellipse at 50% 10%,rgba(132,71,26,.28),transparent 68%),
  linear-gradient(135deg,rgba(15,10,8,.96),rgba(40,24,16,.94));
 box-shadow:inset 0 0 16px #0008,0 1px 7px #0007;
}
#combatPage .combat-shell-live .combat-magic-carousel-banner{
 display:grid;grid-template-columns:25px minmax(0,1fr) 25px;
 gap:3px;align-items:center;min-width:0;
}
#combatPage .combat-shell-live .combat-magic-carousel-arrow{
 border:0;background:transparent;color:#e9bd71;cursor:pointer;
 display:grid;place-items:center;min-height:54px;min-width:23px;padding:0;
 font:900 20px/1 Georgia,serif;text-shadow:0 0 8px #dd943b77;
}
#combatPage .combat-shell-live .combat-magic-carousel-track{
 display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
 gap:clamp(4px,.7vw,10px);align-items:center;min-width:0;
 padding:3px 3px;touch-action:pan-y;user-select:none;-webkit-user-select:none;
 outline-offset:2px;
}
#combatPage .combat-shell-live .combat-carousel-spell-tile{
 position:relative;isolation:isolate;display:grid;place-items:center;
 align-content:center;min-width:0;box-sizing:border-box;
 aspect-ratio:1/1;max-height:110px;min-height:54px;
 padding:4px;border:0;border-radius:5px;overflow:visible;
 background:radial-gradient(circle at 50% 42%,#593322,#130e0b 73%);
 box-shadow:inset 0 0 13px #0009;
 color:#f8e5bf;cursor:pointer;
 transition:filter .16s ease,transform .16s ease;
}
#combatPage .combat-shell-live .combat-carousel-spell-tile::after{
 content:"";position:absolute;z-index:5;inset:-1px;pointer-events:none;
 background:url("data:image/png;base64,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") center /100% 100% no-repeat;
 filter:drop-shadow(0 1px 2px #000a);
}
#combatPage .combat-shell-live .combat-carousel-spell-tile.center{
 transform:scale(1.1);z-index:2;filter:brightness(1.15);
}
#combatPage .combat-shell-live .combat-carousel-spell-tile.selected{
 filter:brightness(1.3) drop-shadow(0 0 7px #f0ac45a9);
}
#combatPage .combat-shell-live .combat-carousel-spell-tile:focus-visible{
 outline:2px solid #ffe0a1;outline-offset:3px;
}
#combatPage .combat-shell-live .combat-carousel-spell-tile:disabled{opacity:.4;cursor:not-allowed}
#combatPage .combat-shell-live .combat-carousel-spell-tile .combat-carousel-spell-art{
 position:absolute;inset:7%;display:block;overflow:hidden;pointer-events:none;z-index:1;
}
#combatPage .combat-shell-live .combat-carousel-spell-art img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 object-fit:fill;pointer-events:none;
}
#combatPage .combat-shell-live .combat-carousel-spell-art img[hidden]{display:none!important}
#combatPage .combat-shell-live .combat-carousel-spell-glyph{
 position:relative;z-index:1;font-size:clamp(24px,3vw,40px);
 line-height:1;text-shadow:0 2px 7px #000;
}
#combatPage .combat-shell-live .combat-carousel-spell-label{
 position:absolute;z-index:6;left:6%;right:6%;bottom:5%;
 padding:2px 1px;border-radius:3px;
 background:linear-gradient(90deg,transparent,#140d0be8 15% 85%,transparent);
 color:#ffe7ba;text-align:center;font:700 clamp(7px,.85vw,11px)/1.2 Georgia,serif;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
 pointer-events:none;text-shadow:0 1px 3px #000;
}
#combatPage .combat-shell-live .combat-magic-carousel-all{
 margin:4px 4px 0;color:#dbb988;font:650 11px/1.25 system-ui,sans-serif;
}
#combatPage .combat-shell-live .combat-magic-carousel-all summary{
 width:max-content;max-width:100%;cursor:pointer;padding:3px 4px;
}
#combatPage .combat-shell-live .combat-magic-carousel-all[open]{
 border-top:1px solid #9a714766;padding-top:5px;
}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-choice{
 padding:5px 4px 7px;display:grid;gap:8px;
}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-picker{
 display:grid;grid-template-columns:auto minmax(0,1fr);
 align-items:center;gap:8px;color:#ead4ac;
}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-select-frame{position:relative;min-width:0}
#combatPage .combat-shell-live .combat-magic-carousel-all select{
 display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;
 border:1px solid #a9804e;border-radius:6px;min-height:39px;
 padding:7px 25px 7px 8px;background:#281b13;color:#f5dcad;font:600 12px system-ui,sans-serif;
}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-chevron{
 position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:none;
}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-current-info{font-size:10px;color:#ddc298}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-effect{
 display:flex;align-items:center;gap:10px;justify-content:center;
}
#combatPage .combat-shell-live .combat-magic-carousel-all .combat-spell-effect button{min-width:33px;min-height:33px}
#combatPage .combat-shell-live .combat-magic-select-panel{
 padding:8px 9px 7px;min-width:0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer .combat-action-confirm{
 display:flex;gap:6px;width:100%;margin-top:2px;min-width:0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-action-confirm .combat-cancel-spell{
 background:linear-gradient(150deg,#5b291f,#351a18);border-color:#ad6a54;color:#f6d5c8;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-magic-carousel{
  padding:5px 3px 4px;margin-bottom:6px;
 }
 #combatPage .combat-shell-live .combat-magic-carousel-banner{
  grid-template-columns:20px minmax(0,1fr) 20px;gap:1px;
 }
 #combatPage .combat-shell-live .combat-magic-carousel-track{
  grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;
 }
 #combatPage .combat-shell-live .combat-carousel-spell-tile[data-index="0"],
 #combatPage .combat-shell-live .combat-carousel-spell-tile[data-index="4"]{display:none}
 #combatPage .combat-shell-live .combat-carousel-spell-tile{max-height:96px}
 #combatPage .combat-shell-live .combat-carousel-spell-tile.center{transform:scale(1.07)}
 #combatPage .combat-shell-live .combat-carousel-spell-glyph{font-size:clamp(25px,7vw,37px)}
 #combatPage .combat-shell-live .combat-carousel-spell-label{font-size:clamp(8px,2.2vw,10px)}
 #combatPage .combat-shell-live .combat-mini-magic .combat-action-confirm:has(.combat-cancel-spell){
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;width:100%;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-action-confirm .combat-cancel-spell,
 #combatPage .combat-shell-live .combat-mini-magic .combat-action-confirm:has(.combat-cancel-spell) .combat-confirm-magic{
  min-width:0;width:100%;white-space:normal;font-size:clamp(10px,2.7vw,12px);
  line-height:1.15;padding:7px 4px;min-height:43px;
 }
}
@media(prefers-reduced-motion:reduce){
 #combatPage .combat-shell-live .combat-carousel-spell-tile{transition:none}
}

/* Carousel footer: compact EG +/- beside optional full test register. */
#combatPage .combat-shell-live .combat-magic-carousel-tools{
 display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
 gap:2px 8px;padding:3px 5px 0;min-width:0;
}
#combatPage .combat-shell-live .combat-magic-carousel-tools .combat-magic-carousel-all{
 flex:0 1 auto;margin:0;min-width:0;
}
#combatPage .combat-shell-live .combat-magic-carousel-tools .combat-magic-carousel-all[open]{
 flex:1 1 100%;order:2;width:100%;
}
#combatPage .combat-shell-live .combat-magic-carousel-eg{
 display:flex;align-items:center;justify-content:center;gap:6px;
 margin-left:auto;color:#f7d998;white-space:nowrap;
}
#combatPage .combat-shell-live .combat-magic-carousel-eg button{
 display:grid;place-items:center;width:28px;height:28px;padding:0;
 border:1px solid #aa804e;border-radius:6px;
 background:#372417;color:#ffe1a8;cursor:pointer;font:800 19px/1 Georgia,serif;
}
#combatPage .combat-shell-live .combat-magic-carousel-eg button:disabled{opacity:.35;cursor:not-allowed}
#combatPage .combat-shell-live .combat-magic-carousel-eg strong{
 font:700 12px Georgia,serif;
}

/* v0.35.200 – a genuinely continuous, low-friction carousel.
   The viewport clips a long, repeated belt of gold-framed icons while
   transform: translate3d is updated directly during drag and coasting. */
#combatPage .combat-shell-live .combat-magic-carousel-viewport{
 position:relative;min-width:0;width:100%;overflow:hidden;
 box-sizing:border-box;padding:9px 4px;
 touch-action:pan-y;overscroll-behavior-x:contain;
 -webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;
}
#combatPage .combat-shell-live .combat-magic-carousel-track{
 display:flex;grid-template-columns:none;align-items:center;justify-content:flex-start;
 flex-wrap:nowrap;gap:var(--combat-carousel-gap,9px);
 width:max-content;min-width:0;padding:0;margin:0;
 transform:translate3d(0,0,0);
 transition:none!important;will-change:transform;
 touch-action:pan-y;outline-offset:-2px;
}
#combatPage .combat-shell-live .combat-magic-carousel-track>.combat-carousel-spell-tile{
 display:grid!important;position:relative;
 flex:0 0 var(--combat-carousel-tile-width,80px);
 width:var(--combat-carousel-tile-width,80px);
 min-width:var(--combat-carousel-tile-width,80px);
 height:var(--combat-carousel-tile-width,80px);
 min-height:0;max-height:none;
 box-sizing:border-box;aspect-ratio:1/1;
 cursor:pointer;
}
#combatPage .combat-shell-live .combat-magic-carousel-track>.combat-carousel-spell-tile.center{
 z-index:2;transform:scale(1.085);
 filter:brightness(1.17);
}
#combatPage .combat-shell-live .combat-magic-carousel-track>.combat-carousel-spell-tile.center.selected{
 filter:brightness(1.25) drop-shadow(0 0 7px rgba(239,169,73,.8));
}
#combatPage .combat-shell-live .combat-magic-carousel-track>.combat-carousel-spell-tile.selected:not(.center){
 filter:brightness(1.13) drop-shadow(0 0 4px rgba(233,167,82,.42));
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-magic-carousel-viewport{padding:8px 4px}
 #combatPage .combat-shell-live .combat-magic-carousel-track{
  gap:var(--combat-carousel-gap,6px);grid-template-columns:none;
 }
 #combatPage .combat-shell-live .combat-magic-carousel-track>.combat-carousel-spell-tile{
  display:grid!important;max-height:none;
 }
}
@media(prefers-reduced-motion:reduce){
 #combatPage .combat-shell-live .combat-magic-carousel-track>.combat-carousel-spell-tile{transition:none!important}
}

/* v0.35.201 – small Expert F/K/R markers in the top-right corner of each
   spell icon. They sit OVER the icon art but inside the ornate gold frame.
   Their colors distinguish types without increasing the carousel height. */
#combatPage .combat-shell-live .combat-carousel-spell-marks{
 position:absolute;z-index:8;top:7%;right:6%;
 display:flex;align-items:center;justify-content:flex-end;gap:2px;
 max-width:90%;height:auto;pointer-events:none;
}
#combatPage .combat-shell-live .combat-carousel-spell-mark{
 display:grid;place-items:center;flex:none;
 width:clamp(15px,1.7vw,20px);height:clamp(15px,1.7vw,20px);
 box-sizing:border-box;border-radius:50%;
 border:1px solid rgba(250,207,129,.95);
 background:radial-gradient(circle at 30% 25%,#6b4a2c,#25160e 78%);
 color:#fff0c7;
 box-shadow:0 1px 4px #000d,inset 0 0 0 1px rgba(0,0,0,.62);
 text-shadow:0 1px 2px #000;
 font:900 clamp(10px,1.05vw,12px)/1 Georgia,serif;
}
#combatPage .combat-shell-live .combat-carousel-spell-mark.quick{
 border-color:#b2d9d8;background:radial-gradient(circle at 30% 25%,#4f807e,#193938 78%);
 color:#e8ffff;box-shadow:0 1px 4px #000d,0 0 4px #94d7d04b;
}
#combatPage .combat-shell-live .combat-carousel-spell-mark.ritual{
 border-color:#c5b0e8;background:radial-gradient(circle at 30% 25%,#74578b,#34243e 78%);
 color:#f4e9ff;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-carousel-spell-marks{top:7%;right:7%;gap:2px}
 #combatPage .combat-shell-live .combat-carousel-spell-mark{
  width:clamp(15px,3.9vw,19px);height:clamp(15px,3.9vw,19px);
  font-size:clamp(10px,2.65vw,12px);
 }
}
/* v0.35.133 – illustrated attacker / defender cards.
   CSS borders, bronze corner accents and portraits re-create the approved
   Alea look without placing UI text in a baked background bitmap. */
.combat-mini-attack .combat-mini-duel{
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);
  gap:5px;
  align-items:stretch;
}
.combat-mini-attack .combat-mini-side.combat-duelist-card,
.combat-shell-live .combat-mini-side.combat-duelist-card{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:clamp(46px,4.8vw,62px) minmax(0,1fr);
  gap:9px;
  align-items:center;
  min-width:0;
  min-height:83px;
  box-sizing:border-box;
  padding:6px 9px 6px 6px;
  border:1px solid #a77b45;
  border-radius:10px;
  background:
    radial-gradient(ellipse at 8% 10%,rgba(162,102,45,.13),transparent 58%),
    linear-gradient(115deg,rgba(16,12,10,.96),rgba(33,23,17,.97));
  box-shadow:
    inset 0 1px 0 rgba(255,231,180,.25),
    inset 0 -1px 0 rgba(93,52,23,.55),
    0 3px 8px rgba(0,0,0,.44);
}
.combat-mini-attack .combat-duelist-card::before,
.combat-mini-attack .combat-duelist-card::after{
  position:absolute;
  content:"";
  width:11px;
  height:11px;
  pointer-events:none;
  z-index:1;
  opacity:.9;
  background:
    linear-gradient(135deg,transparent 42%,#bd8f4f 43% 53%,transparent 54%),
    linear-gradient(45deg,transparent 42%,#76512d 43% 53%,transparent 54%);
}
.combat-mini-attack .combat-duelist-card::before{top:-4px;left:-4px}
.combat-mini-attack .combat-duelist-card::after{bottom:-4px;right:-4px;transform:rotate(180deg)}
.combat-mini-attack .combat-duelist-portrait{
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  min-width:0;
  aspect-ratio:4/5;
  max-height:82px;
  align-self:center;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid #ca9653;
  border-radius:7px 7px 9px 9px;
  background:
    radial-gradient(ellipse at 50% 22%,#654027 0%,#241711 75%);
  box-shadow:
    0 0 0 2px #2d1b10,
    0 0 0 3px rgba(207,159,92,.65),
    1px 3px 7px rgba(0,0,0,.5);
}
.combat-mini-attack .combat-duelist-portrait::before{
  position:absolute;
  content:"";
  inset:2px;
  border:1px solid rgba(250,214,149,.35);
  border-radius:5px;
  pointer-events:none;
  z-index:2;
}
.combat-mini-attack .combat-duelist-portrait img{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:center 29%;
  filter:contrast(1.055) saturate(.95);
}
.combat-mini-attack .combat-duelist-portrait img[hidden]{display:none}
.combat-mini-attack .combat-duelist-portrait .combat-duelist-initials{
  font:700 19px Georgia,serif;
  letter-spacing:0;
  color:#f0d7aa;
}
.combat-mini-attack .combat-duelist-portrait .combat-duelist-initials[hidden]{display:none}
.combat-mini-attack .combat-duelist-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  min-width:0;
  overflow:hidden;
}
.combat-mini-attack .combat-duelist-copy .combat-duelist-role{
  flex:none;
  color:#dbaf73;
  font:800 10px/1.15 Georgia,serif;
  letter-spacing:.045em;
  text-transform:uppercase;
}
.combat-mini-attack .combat-duelist-copy .combat-duelist-name{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:anywhere;
  font:700 15px/1.12 Georgia,serif;
  color:#f7ead2;
  text-shadow:0 2px 3px rgba(0,0,0,.5);
}
.combat-mini-attack .combat-duelist-copy .combat-duelist-meta{
  display:block;
  color:#d0b79a;
  font:400 10px/1.35 system-ui,sans-serif;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:anywhere;
}
.combat-mini-attack .combat-mini-arrow{
  font:700 24px/1 Georgia,serif;
  color:#e3b164;
  text-shadow:0 0 8px rgba(206,140,58,.25);
}
@media(max-width:1023px){
  .combat-shell-live .combat-mini-attack .combat-mini-duel{
    grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr);
    gap:5px;
  }
  .combat-shell-live .combat-mini-side.combat-duelist-card{
    grid-template-columns:clamp(38px,11vw,58px) minmax(0,1fr);
    min-height:74px;
    gap:6px;
    padding:6px 5px 6px 6px;
  }
  .combat-shell-live .combat-duelist-copy .combat-duelist-name{font-size:clamp(11px,2.7vw,15px)}
  .combat-shell-live .combat-duelist-copy .combat-duelist-role{font-size:9px}
  .combat-shell-live .combat-duelist-copy .combat-duelist-meta{font-size:9px}
  .combat-shell-live .combat-mini-arrow{font-size:18px}
}
@media(max-width:390px){
  .combat-shell-live .combat-mini-attack .combat-mini-duel{gap:3px;grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr)}
  .combat-shell-live .combat-mini-side.combat-duelist-card{
    grid-template-columns:38px minmax(0,1fr);
    gap:5px;
    padding:5px 3px 5px 4px;
  }
  .combat-shell-live .combat-duelist-copy .combat-duelist-role{font-size:8px}
  .combat-shell-live .combat-duelist-copy .combat-duelist-name{font-size:11px}
  .combat-shell-live .combat-duelist-copy .combat-duelist-meta{font-size:8px}
}

/* v0.35.134: mirror only the defender, keeping names and HP right aligned.
   The attacker retains its existing left portrait / left-aligned text. */
.combat-mini-attack .combat-mini-side.combat-duelist-card.defender,
.combat-shell-live .combat-mini-side.combat-duelist-card.defender{
  grid-template-columns:minmax(0,1fr) clamp(46px,4.8vw,62px);
}
.combat-mini-attack .combat-duelist-card.defender .combat-duelist-portrait{
  grid-column:2;
  grid-row:1;
}
.combat-mini-attack .combat-duelist-card.defender .combat-duelist-copy{
  grid-column:1;
  grid-row:1;
  text-align:right;
  align-items:flex-end;
}
.combat-mini-attack .combat-mini-title:has(>span:only-child){
  margin-bottom:7px;
}
@media(max-width:1023px){
  .combat-shell-live .combat-mini-side.combat-duelist-card.defender{
    grid-template-columns:minmax(0,1fr) clamp(38px,11vw,58px);
  }
}
@media(max-width:390px){
  .combat-shell-live .combat-mini-side.combat-duelist-card.defender{
    grid-template-columns:minmax(0,1fr) 38px;
  }
}

/* Attack panel shares active combatant artwork with the round panel.
   Uses the bundled pilot illustration until the gallery selection resolves. */
#combatPage .combat-shell-live .combat-mini-attack{
  background-color:#21140e;
  background-image:
    linear-gradient(180deg,rgba(15,9,7,.78),rgba(18,10,7,.74) 46%,rgba(14,8,6,.80)),
    var(--alea-attack-illustration, url("data:image/avif;base64,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"));
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center 58%;
  color:#f2dfc6;
}
#combatPage .combat-shell-live .combat-mini-attack.reaction{
  border-color:#b47c4b;
}


/* v0.35.143 – shared magic duel composition.
   Uses the same portrait, frame and outcome vocabulary as regular attacks.
   The right-hand illustration is a CSS slot: no new bitmap is required. */
#combatPage .combat-shell-live .combat-mini-attack.combat-mini-magic {
  min-width:0;
  overflow:hidden;
  position:relative;
  isolation:isolate;
  /* Inherit the same illustrated, combatant-aware backdrop as Attack. */
  border:1px solid #997343;
  border-radius:13px;
  box-shadow:inset 0 0 0 1px rgba(237,191,119,.1),0 5px 20px rgba(0,0,0,.32);
}
#combatPage .combat-mini-magic .combat-magic-heading{
  margin:0 0 9px;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  min-width:0;
}
#combatPage .combat-mini-magic .combat-magic-eyebrow{
  flex:1 1 auto;
  min-width:0;
  overflow-wrap:anywhere;
  font:800 clamp(13px,1.3vw,16px)/1.3 Georgia,serif;
  letter-spacing:.055em;
  color:#f0cd91;
}
#combatPage .combat-mini-magic .combat-magic-duel{
  display:grid;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);
  gap:5px;
  align-items:stretch;
}
#combatPage .combat-mini-magic .combat-magic-duel .combat-duelist-card{
  min-width:0;
  min-height:88px;
  background:linear-gradient(125deg,rgba(19,14,12,.94),rgba(37,25,20,.96));
}
#combatPage .combat-mini-magic .combat-magic-duel .combat-duelist-role{color:#dbb57c}
#combatPage .combat-mini-magic .combat-magic-target-glyph{
  color:#dcb46d;
  font:700 30px/1 Georgia,serif;
  text-shadow:0 0 12px #d6934780;
}
#combatPage .combat-mini-magic .magic-empty-target .combat-duelist-name{
  font-size:clamp(12px,1.2vw,15px);
}
#combatPage .combat-mini-magic.resolved .combat-spell-result{
  position:relative;
  display:block;
  margin-top:11px;
  padding:0;
  overflow:hidden;
  border:1px solid #a57a44;
  border-radius:11px;
  background:linear-gradient(135deg,#261a15,#120d0b);
  color:#f3e6d1;
  box-shadow:inset 0 1px 0 rgba(245,205,140,.16),0 3px 12px #0005;
}
#combatPage .combat-mini-magic .combat-spell-result .combat-attack-result-main{
  display:flex;
  flex-direction:column;
  gap:0;
}
#combatPage .combat-mini-magic .combat-spell-outcome-banner{
  order:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 12px;
  justify-content:flex-start;
  padding:10px 13px;
  border-bottom:1px solid rgba(189,147,87,.36);
  background:rgba(15,12,10,.76);
}
#combatPage .combat-mini-magic .combat-spell-outcome-banner>span{
  font:800 10px/1.2 system-ui,sans-serif;
  letter-spacing:.065em;
  text-transform:uppercase;
  color:#c8a87c;
}
#combatPage .combat-mini-magic .combat-spell-outcome-banner>b,
#combatPage .combat-mini-magic .combat-spell-result:is(.success,.special,.perfect,.fail,.fumble) .combat-spell-outcome-banner>b{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#91eacb;
  font:800 clamp(18px,2.1vw,26px)/1.12 Georgia,serif;
  text-shadow:0 0 11px #44b39440;
}
#combatPage .combat-mini-magic .combat-spell-result:is(.fail,.fumble) .combat-spell-outcome-banner>b{color:#f0a198;text-shadow:none}
#combatPage .combat-mini-magic .combat-spell-result.special .combat-spell-outcome-banner>b{color:#9eddf0}
#combatPage .combat-mini-magic .combat-spell-result.perfect .combat-spell-outcome-banner>b{color:#f7db80}
#combatPage .combat-mini-magic .combat-spell-outcome-banner .combat-result-icon{font-size:1.25em}
#combatPage .combat-mini-magic .combat-spell-effect-surface{
  position:relative;
  order:1;
  display:flex;
  flex-direction:column;
  gap:7px;
  min-height:106px;
  padding:13px 43% 12px 13px;
  background-image:
    linear-gradient(90deg,rgba(18,12,10,.98) 0%,rgba(18,12,10,.9) 43%,rgba(18,12,10,.25) 100%),
    var(--alea-spell-effect-art,radial-gradient(ellipse at 88% 87%,rgba(220,100,26,.5),rgba(76,36,23,.5) 45%,transparent 80%));
  background-repeat:no-repeat;
  background-position:center,right bottom;
  background-size:cover;
}
#combatPage .combat-mini-magic .combat-spell-effect-label{
  position:relative;
  font:800 13px/1.2 Georgia,serif;
  letter-spacing:.05em;
  color:#edc17c;
}
#combatPage .combat-mini-magic .combat-spell-effect-label span{color:#f7cd87}
#combatPage .combat-mini-magic .combat-spell-outcome-note{
  position:relative;
  margin:0;
  padding:0;
  border:0;
  background:none;
  border-radius:0;
  color:#f1e2cc;
  font:550 12px/1.45 system-ui,sans-serif;
}
#combatPage .combat-mini-magic .combat-spell-effect-surface :is(.combat-spell-rule-note,.combat-spell-heal-result,.combat-damage-result,.combat-erf-result){
  position:relative;
  max-width:100%;
}
#combatPage .combat-mini-magic .combat-spell-rule-note{
  margin-top:3px;
  padding:6px 8px;
  background:rgba(19,13,10,.62);
  border-color:rgba(189,142,83,.33);
  color:#dac7a9;
}
#combatPage .combat-mini-magic .combat-spell-result .combat-attack-result-rolls{
  order:2;
  display:flex;
  flex-wrap:wrap;
  gap:4px 10px;
  margin:0;
  padding:7px 12px;
  border-top:1px solid rgba(189,147,87,.26);
  background:#1a1410;
  color:#c3ad8d;
  font:600 10px/1.4 system-ui,sans-serif;
}
#combatPage .combat-mini-magic .combat-spell-result .combat-attack-result-rolls b{color:#f1dfc1}
#combatPage .combat-mini-magic .combat-magic-detail-values{
  margin-top:8px;
  padding:0 2px;
  color:#cbb18b;
}
#combatPage .combat-mini-magic .combat-magic-detail-values summary{
  padding:5px 3px;
  font:650 10px/1.3 system-ui,sans-serif;
  cursor:pointer;
}
#combatPage .combat-mini-magic .combat-magic-detail-values .combat-magic-facts{
  margin:5px 0 0;
}
#combatPage .combat-mini-magic .combat-magic-detail-values .combat-magic-fact{
  padding:5px 6px;
  background:rgba(22,16,13,.88);
}
#combatPage .combat-mini-magic.planning .combat-magic-status{
  margin-top:10px;
  border-color:rgba(195,151,94,.4);
  background:rgba(219,174,108,.055);
}
@media(max-width:1023px){
 #combatPage .combat-mini-magic .combat-magic-duel{grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr)}
}
@media(max-width:540px){
 #combatPage .combat-mini-magic .combat-spell-effect-surface{
   min-height:100px;
   padding:11px 34% 12px 10px;
 }
 #combatPage .combat-mini-magic .combat-spell-outcome-banner{
   padding:9px 10px;
 }
 #combatPage .combat-mini-magic .combat-spell-outcome-banner>b{font-size:18px}
}
@media(max-width:390px){
 #combatPage .combat-mini-magic .combat-magic-duel{grid-template-columns:minmax(0,1fr) 13px minmax(0,1fr);gap:3px}
 #combatPage .combat-mini-magic .combat-magic-duel .combat-duelist-card{gap:4px;min-height:78px}
 #combatPage .combat-mini-magic .combat-spell-effect-surface{padding-right:15%;background-position:center,right bottom}
}

/* Active spell controls: targets and EG must be actionable in the main
   magic panel, independently of the popover/turn-action toolbar. */
#combatPage .combat-mini-magic .combat-magic-target-picker{
 position:relative;z-index:2;display:grid;gap:7px;margin-top:10px;
 padding:9px;border:1px solid rgba(213,166,98,.55);border-radius:8px;
 background:rgba(22,14,10,.76);
}
#combatPage .combat-mini-magic .combat-magic-target-picker>strong{
 color:#f3d5a2;font:700 12px/1.3 Georgia,serif;
}
#combatPage .combat-mini-magic .combat-magic-target-picker>small{
 color:#e4c6a0;font-size:12px;
}
#combatPage .combat-mini-magic .combat-magic-target-options{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;
}
#combatPage .combat-mini-magic .combat-magic-target-option{
 appearance:none;min-width:0;min-height:38px;padding:7px 9px;text-align:left;
 border:1px solid #967044;border-radius:7px;cursor:pointer;
 background:#38271a;color:#f4dfbb;font:700 12px/1.3 system-ui,sans-serif;
 overflow-wrap:anywhere;touch-action:manipulation;
}
#combatPage .combat-mini-magic .combat-magic-target-option.selected{
 border-color:#f6cf7f;background:#694822;color:#fff1cd;
 box-shadow:inset 0 0 0 1px #d5a45f;
}
#combatPage .combat-mini-magic .combat-magic-eg-control{grid-column:span 2}
#combatPage .combat-mini-magic .combat-magic-eg-actions{
 display:flex;align-items:center;gap:6px;min-width:0;
}
#combatPage .combat-mini-magic .combat-magic-eg-actions b{
 flex:1;text-align:center;min-width:1ch;color:#ffe7ad;
}
#combatPage .combat-mini-magic .combat-magic-eg-actions button{
 appearance:none;flex:0 0 36px;width:36px;height:36px;
 border:1px solid #c49a56;border-radius:7px;background:#52361d;
 color:#ffe1a7;font:800 23px/1 system-ui,sans-serif;
 cursor:pointer;touch-action:manipulation;
}
#combatPage .combat-mini-magic .combat-magic-eg-actions button:disabled{
 opacity:.42;cursor:not-allowed;
}
#combatPage .combat-mini-magic .combat-magic-target-option:focus-visible,
#combatPage .combat-mini-magic .combat-magic-eg-actions button:focus-visible{
 outline:2px solid #ffe6a3;outline-offset:2px;
}
@media(max-width:420px){
 #combatPage .combat-mini-magic .combat-magic-target-options{grid-template-columns:1fr}
}


/* v0.35.153 – transparent attack outcome, preserving the illustrated backdrop.
   Override both base and outcome-specific opaque legacy gradients. */
#combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result{
  background:rgba(18,12,10,.34);
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px);
  box-shadow:inset 0 1px 0 rgba(244,215,167,.1),0 4px 13px rgba(0,0,0,.16);
}
#combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result:is(.success,.special,.perfect,.fail,.fumble){
  background:rgba(18,12,10,.34);
}
#combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result.success{
  border-color:rgba(126,201,133,.72);
  box-shadow:inset 0 0 0 1px rgba(126,201,133,.18),0 0 16px rgba(126,201,133,.1);
}
#combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result:is(.fail,.fumble){
  border-color:rgba(210,108,98,.72);
  box-shadow:inset 0 0 0 1px rgba(210,108,98,.18),0 0 16px rgba(210,108,98,.1);
}
#combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-damage-result{
  background:rgba(30,20,15,.44);
  backdrop-filter:blur(1px);
  -webkit-backdrop-filter:blur(1px);
}
/* Retain the darker glass option when transparency is reduced for accessibility. */
@media(prefers-reduced-transparency:reduce){
  #combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result,
  #combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-attack-result:is(.success,.special,.perfect,.fail,.fumble){
    background:rgba(18,12,10,.9);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #combatPage .combat-shell-live .combat-mini-attack:not(.combat-mini-magic) .combat-damage-result{
    background:rgba(30,20,15,.9);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}


/* v0.35.155 – desktop shield/weapon parry slides out from the attack card,
   over the left portion of the hex map. Keep the existing mobile bar intact. */
#combatPage .combat-mini-attack .combat-defense-drawer{
  display:none;
}
@media (min-width:1024px){
 #combatPage .combat-shell-live .combat-left-column:has(.combat-defense-drawer){
   position:relative;
   z-index:35;
   overflow:visible;
 }
 #combatPage .combat-shell-live .combat-defense-attack{
   position:relative;
   overflow:visible;
 }
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-mobile{
   display:none;
 }
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer{
   position:absolute;
   z-index:40;
   top:clamp(25px,11%,65px);
   left:calc(100% + 12px);
   box-sizing:border-box;
   display:flex;
   flex-direction:column;
   align-items:stretch;
   gap:12px;
   width:clamp(290px,31vw,455px);
   max-height:min(75vh,670px);
   overflow-y:auto;
   overflow-x:visible;
   margin:0;
   padding:15px;
   border:2px solid #c09353;
   border-radius:13px;
   background:
     radial-gradient(ellipse at 96% 4%,rgba(184,121,57,.15),transparent 54%),
     linear-gradient(145deg,rgba(49,31,21,.98),rgba(21,15,13,.985) 68%);
   color:#eedbc0;
   box-shadow:
     inset 0 0 0 1px rgba(242,203,141,.16),
     inset 0 1px 0 rgba(255,226,175,.22),
     0 17px 32px rgba(0,0,0,.64),
     0 0 26px rgba(176,119,57,.17);
   animation:aleaDefenseDrawerEnter 290ms cubic-bezier(.19,.78,.31,1) both;
 }
 #combatPage .combat-shell-live .combat-defense-drawer::before{
   content:"";
   position:absolute;
   top:29px;
   right:100%;
   border-top:13px solid transparent;
   border-bottom:13px solid transparent;
   border-right:13px solid #c09353;
   filter:drop-shadow(-2px 2px 2px rgba(0,0,0,.25));
 }
 #combatPage .combat-shell-live .combat-defense-drawer .combat-defense-drawer-head{
   display:grid;
   grid-template-columns:36px minmax(0,1fr) auto;
   align-items:center;
   justify-content:stretch;
   flex-wrap:nowrap;
   gap:10px;
   padding:0 0 11px;
   border-bottom:1px solid rgba(197,148,82,.43);
 }
 #combatPage .combat-defense-drawer-emblem{
   display:grid;
   place-items:center;
   width:36px;
   height:40px;
   border:1px solid rgba(213,165,88,.65);
   border-radius:8px;
   background:linear-gradient(135deg,#6a4426,#2c2017);
   font-size:24px;
 }
 #combatPage .combat-defense-drawer-head > div{
   display:flex;
   flex-direction:column;
   align-items:flex-start;
   min-width:0;
   gap:4px;
 }
 #combatPage .combat-defense-drawer-head small{
   font:800 10px/1.15 system-ui,sans-serif;
   letter-spacing:.11em;
   color:#e3b777;
 }
 #combatPage .combat-defense-drawer-head strong{
   color:#fff0cd;
   font:700 21px/1.15 Georgia,serif;
   overflow-wrap:anywhere;
 }
 #combatPage .combat-defense-drawer-alert{
   color:#ffdb95;
   background:rgba(138,82,34,.22);
   border:1px solid rgba(214,158,84,.55);
   border-radius:999px;
   padding:5px 7px;
   font:800 9px system-ui,sans-serif;
   letter-spacing:.075em;
 }
 #combatPage .combat-defense-drawer-copy{
   margin:0;
   font:500 13px/1.5 system-ui,sans-serif;
   color:#e6cfad;
 }
 #combatPage .combat-shell-live .combat-defense-drawer > .combat-defense-drawer-actions{
   display:grid;
   grid-template-columns:minmax(0,1fr);
   align-items:stretch;
   justify-content:stretch;
   gap:8px;
   width:100%;
 }
 #combatPage .combat-defense-drawer .combat-defense-choice{
   display:grid;
   grid-template-columns:27px minmax(0,1fr) auto;
   align-items:center;
   gap:10px;
   width:100%;
   min-height:58px;
   padding:8px 10px;
   text-align:left;
   border:1px solid rgba(190,145,86,.7);
   border-radius:9px;
   background:linear-gradient(140deg,#61412b,#37271d);
   color:#f8e6c7;
   cursor:pointer;
   font-size:20px;
   white-space:normal;
 }
 #combatPage .combat-defense-drawer .combat-defense-choice.shield{
   border-color:#ab9b70;
   background:linear-gradient(130deg,#4a4431,#30291f);
 }
 #combatPage .combat-defense-drawer .combat-defense-choice:hover,
 #combatPage .combat-defense-drawer .combat-defense-choice:focus-visible{
   border-color:#f7c778;
   background:linear-gradient(140deg,#795037,#423024);
   outline:2px solid rgba(255,226,172,.4);
   outline-offset:1px;
 }
 #combatPage .combat-defense-choice-text{
   display:flex;flex-direction:column;gap:4px;min-width:0;
 }
 #combatPage .combat-defense-choice-text strong{
   font:800 13px/1.15 system-ui,sans-serif;
   color:#ffebc4;
 }
 #combatPage .combat-defense-choice-text small{
   font:500 12px/1.25 system-ui,sans-serif;
   color:#d9c19d;
   overflow-wrap:anywhere;
 }
 #combatPage .combat-defense-choice-fv{
   font:800 13px/1.2 system-ui,sans-serif;
   color:#f5cf93;
   white-space:nowrap;
 }
 #combatPage .combat-defense-drawer .combat-defense-decline{
   display:flex;
   align-items:center;
   justify-content:space-between;
   width:100%;
   min-height:43px;
   padding:9px 12px;
   border:1px solid rgba(184,101,91,.7);
   border-radius:8px;
   background:rgba(92,39,35,.62);
   color:#ffd1c1;
   font:800 12px system-ui,sans-serif;
   cursor:pointer;
 }
 #combatPage .combat-defense-drawer .combat-defense-decline:hover,
 #combatPage .combat-defense-drawer .combat-defense-decline:focus-visible{
   border-color:#ffa89e;
   background:#69332f;
   outline:2px solid rgba(255,164,148,.35);
   outline-offset:1px;
 }
 #combatPage .combat-defense-drawer-hint{
   margin:0;
   padding-top:2px;
   color:#bba789;
   font:500 11px/1.4 system-ui,sans-serif;
 }
 @keyframes aleaDefenseDrawerEnter{
   from{opacity:0;transform:translateX(-28px) scale(.975)}
   to{opacity:1;transform:translateX(0) scale(1)}
 }
}
@media (min-width:1024px) and (prefers-reduced-motion:reduce){
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer{
   animation:none;
 }
}

/* v0.35.156 – mobile defense sheet descends immediately below the complete
   attack/result/hit-location card, on top of the map (without reflow).
   Desktop remains a horizontal flyout. */
@media (max-width:1023px){
 #combatPage .combat-shell-live .combat-defense-attack{
  position:relative;
  z-index:35;
  overflow:visible;
 }
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer{
  position:absolute;
  z-index:50;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:11px;
  top:calc(100% - 1px);
  left:0;
  right:0;
  width:100%;
  max-height:min(62svh,490px);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  margin:0;
  padding:14px 13px 15px;
  border:2px solid #bb8d50;
  border-radius:0 0 13px 13px;
  background:
   radial-gradient(ellipse at 90% 2%,rgba(187,122,62,.16),transparent 58%),
   linear-gradient(155deg,rgba(48,31,22,.99),rgba(22,16,13,.99));
  box-shadow:
   inset 0 1px 0 rgba(249,213,154,.2),
   inset 0 0 0 1px rgba(212,173,112,.13),
   0 18px 30px rgba(0,0,0,.73);
  color:#f5e1c2;
  animation:aleaDefenseMobileDrop .3s cubic-bezier(.17,.78,.24,1) both;
 }
 #combatPage .combat-shell-live .combat-defense-drawer .combat-defense-drawer-head{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) auto;
  align-items:center;
  justify-content:stretch;
  gap:9px;
  flex-wrap:nowrap;
  padding-bottom:10px;
  border-bottom:1px solid rgba(198,153,93,.49);
 }
 #combatPage .combat-defense-drawer-emblem{
  display:grid;place-items:center;
  width:36px;height:40px;
  border:1px solid rgba(213,165,88,.65);
  border-radius:8px;
  background:linear-gradient(135deg,#6a4426,#2c2017);
  font-size:23px;
 }
 #combatPage .combat-defense-drawer-head > div{
  display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;
 }
 #combatPage .combat-defense-drawer-head small{
  font:800 10px/1.15 system-ui,sans-serif;
  letter-spacing:.08em;color:#e3b777;
 }
 #combatPage .combat-defense-drawer-head strong{
  color:#fff0cd;font:700 19px/1.15 Georgia,serif;overflow-wrap:anywhere;
 }
 #combatPage .combat-defense-drawer-alert{
  padding:5px 6px;
  border:1px solid rgba(214,158,84,.55);
  border-radius:999px;
  background:rgba(138,82,34,.22);
  color:#ffdb95;
  font:800 9px system-ui,sans-serif;
 }
 #combatPage .combat-defense-drawer-copy{
  margin:0;color:#e6cfad;font:500 12px/1.4 system-ui,sans-serif;
 }
 #combatPage .combat-shell-live .combat-defense-drawer > .combat-defense-drawer-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:9px;
  width:100%;
  align-items:stretch;
  justify-content:stretch;
 }
 #combatPage .combat-defense-drawer .combat-defense-choice{
  display:grid;
  grid-template-columns:27px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-height:51px;
  width:100%;
  padding:9px;
  border:1px solid rgba(190,145,86,.78);
  border-radius:9px;
  background:linear-gradient(145deg,#61412b,#37271d);
  color:#f8e6c7;
  text-align:left;
  font-size:20px;
  white-space:normal;
  touch-action:manipulation;
 }
 #combatPage .combat-defense-drawer .combat-defense-choice.shield{
  border-color:#ab9b70;
  background:linear-gradient(135deg,#4a4431,#30291f);
 }
 #combatPage .combat-defense-drawer .combat-defense-choice:active{
  border-color:#ffe2a2;background:#745039;
 }
 #combatPage .combat-defense-choice-text{
  display:flex;flex-direction:column;gap:3px;min-width:0;
 }
 #combatPage .combat-defense-choice-text strong{
  color:#ffebc4;font:800 13px/1.2 system-ui,sans-serif;
 }
 #combatPage .combat-defense-choice-text small{
  color:#d9c19d;font:500 12px/1.2 system-ui,sans-serif;
  overflow-wrap:anywhere;
 }
 #combatPage .combat-defense-choice-fv{
  color:#f5cf93;font:800 13px system-ui,sans-serif;white-space:nowrap;
 }
 #combatPage .combat-defense-drawer .combat-defense-decline{
  display:flex;align-items:center;justify-content:space-between;
  width:100%;min-height:45px;padding:10px 12px;
  border:1px solid rgba(184,101,91,.75);
  border-radius:8px;background:rgba(92,39,35,.7);
  color:#ffd1c1;font:800 13px system-ui,sans-serif;
  touch-action:manipulation;
 }
 #combatPage .combat-defense-drawer .combat-defense-decline:active{
  border-color:#ffa89e;background:#69332f;
 }
 #combatPage .combat-defense-drawer-hint{
  margin:0;color:#bba789;font:500 11px/1.35 system-ui,sans-serif;
 }
 @keyframes aleaDefenseMobileDrop{
  from{opacity:0;transform:translateY(-25px) scaleY(.98)}
  to{opacity:1;transform:translateY(0) scaleY(1)}
 }
 @keyframes aleaDefenseMobileRetract{
  from{opacity:1;transform:translateY(0)}
  to{opacity:0;transform:translateY(-25px)}
 }
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer.is-retracting{
  animation:aleaDefenseMobileRetract .22s ease-in both;
  pointer-events:none;
 }
}
@media (min-width:1024px){
 @keyframes aleaDefenseDrawerRetract{
  from{opacity:1;transform:translateX(0)}
  to{opacity:0;transform:translateX(-28px)}
 }
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer.is-retracting{
  animation:aleaDefenseDrawerRetract .22s ease-in both;
  pointer-events:none;
 }
}
@media (prefers-reduced-motion:reduce){
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer,
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer.is-retracting{
  animation:none;
 }
}

/* v0.35.157 — compact three-choice defense, with illustration-ready art slots.
 * Mobile: single short row below attack, overlaying the map without reflow. */
#combatPage .combat-shell-live .combat-defense-drawer .combat-defense-choice:disabled{
 opacity:.43;
 filter:grayscale(.8);
 cursor:not-allowed;
 pointer-events:none;
}
#combatPage .combat-defense-choice-art{
 display:grid;
 place-items:center;
 flex:none;
 width:27px;
 height:28px;
 font-size:22px;
 line-height:1;
 /* future icon files can be added with background-image per data-defense-art */
 background-position:center;
 background-size:contain;
 background-repeat:no-repeat;
}
#combatPage .combat-shell-live .combat-defense-drawer .combat-defense-decline.combat-defense-choice{
 display:grid;
 grid-template-columns:27px minmax(0,1fr) auto;
 gap:10px;
 align-items:center;
 text-align:left;
 min-height:58px;
 padding:8px 10px;
 color:#ffd1c1;
}
@media (max-width:1023px){
 #combatPage .combat-shell-live .combat-defense-attack > .combat-defense-drawer.combat-defense-compact{
  gap:7px;
  padding:7px 8px 9px;
  max-height:none;
  overflow:visible;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-head{
  display:grid;
  grid-template-columns:22px minmax(0,1fr) auto;
  gap:7px;
  padding-bottom:6px;
  min-height:24px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-emblem{
  width:22px;
  height:22px;
  border-radius:5px;
  font-size:14px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-head > div{
  display:flex;
  flex-direction:row;
  align-items:baseline;
  gap:6px;
  overflow:hidden;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-head small{
  font-size:9px;
  white-space:nowrap;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-head strong{
  font-size:14px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-alert{
  padding:3px 6px;
  font-size:9px;
 }
 #combatPage .combat-shell-live .combat-defense-compact > .combat-defense-drawer-actions{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice,
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-decline.combat-defense-choice{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:25px minmax(0,1fr) 12px;
  justify-items:center;
  align-items:center;
  align-content:center;
  min-width:0;
  width:100%;
  height:84px;
  min-height:84px;
  gap:2px;
  padding:5px 3px;
  overflow:hidden;
  border-radius:8px;
  text-align:center;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-art{
  width:27px;
  height:25px;
  font-size:23px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1px;
  min-width:0;
  width:100%;
  text-align:center;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text strong{
  width:100%;
  font-size:11px;
  line-height:1.15;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text small{
  width:100%;
  font-size:9px;
  line-height:1.15;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-fv{
  font-size:10px;
  line-height:1;
 }
}
@media (max-width:359px){
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-drawer-head strong{font-size:12px}
 #combatPage .combat-shell-live .combat-defense-compact > .combat-defense-drawer-actions{gap:4px}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text strong{font-size:10px}
}

/* v0.35.158: visual equipment quadrants in compact parry choices. */
#combatPage .combat-shell-live .combat-defense-compact > .combat-defense-drawer-actions{
 grid-template-columns:repeat(3,minmax(0,1fr));gap:7px
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice{
 display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:60px minmax(0,1fr) 17px;
 justify-items:center;align-items:center;align-content:center;
 min-width:0;min-height:137px;height:137px;gap:3px;padding:7px 5px;text-align:center;overflow:hidden;
 background:radial-gradient(ellipse at 65% 0%,rgba(167,106,48,.17),transparent 65%),linear-gradient(155deg,#493122,#221914);
 box-shadow:inset 0 0 0 1px rgba(241,195,124,.12)
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon{
 background:radial-gradient(ellipse at 60% 15%,rgba(78,115,71,.24),transparent 70%),linear-gradient(155deg,#263a2b,#1b201a)
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit{
 background:radial-gradient(ellipse at 45% 0%,rgba(185,75,26,.25),transparent 66%),linear-gradient(145deg,#49271e,#221713)
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text{
 align-items:center;min-width:0;width:100%;text-align:center;gap:1px
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text strong{font:700 16px/1.1 Georgia,serif}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text small{
 max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-art.combat-defense-item-art{
 display:block;position:relative;overflow:hidden;isolation:isolate;
 width:min(100%,110px);height:60px;
 --crop-top:0;--crop-bottom:auto;--crop-left:auto;--crop-right:0;
 --crop-pos:top right;--crop-origin:top right;
 background:radial-gradient(ellipse,rgba(195,144,73,.14),transparent 70%)
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art[data-combat-crop="top-left"]{
 --crop-top:0;--crop-bottom:auto;--crop-left:0;--crop-right:auto;--crop-pos:top left;--crop-origin:top left
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art[data-combat-crop="bottom-left"]{
 --crop-top:auto;--crop-bottom:0;--crop-left:0;--crop-right:auto;--crop-pos:bottom left;--crop-origin:bottom left
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art[data-combat-crop="bottom-right"]{
 --crop-top:auto;--crop-bottom:0;--crop-left:auto;--crop-right:0;--crop-pos:bottom right;--crop-origin:bottom right
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art > .combat-defense-art-img{
 display:block;position:absolute;top:var(--crop-top);bottom:var(--crop-bottom);left:var(--crop-left);right:var(--crop-right);
 width:210%;height:210%;max-width:none;max-height:none;min-width:0;min-height:0;object-fit:contain;object-position:var(--crop-pos);
 transform-origin:var(--crop-origin);pointer-events:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.8))
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art[data-combat-crop="full"] > .combat-defense-art-img{
 position:static;inset:auto;width:100%;height:100%;object-fit:contain;object-position:center;transform:none
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art.twohand[data-combat-crop="top-right"] > .combat-defense-art-img{
 top:50%;right:0;bottom:auto;left:auto;width:200%;height:auto;aspect-ratio:1;
 object-fit:contain;object-position:top right;transform:rotate(45deg);transform-origin:top right
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art > .alea-magic-item-dot{
 position:absolute;z-index:3;top:2px;right:2px;pointer-events:none;transform:scale(.6);transform-origin:top right
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-item-art .combat-defense-art-fallback{
 display:grid;place-items:center;width:100%;height:100%;font-size:29px
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi{
 grid-template-rows:19px minmax(0,1fr);gap:2px;padding:6px 4px;cursor:default
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi-title{
 color:#ffebc4;font:700 15px/1 Georgia,serif;text-align:center
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-options{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;min-width:0;width:100%;height:100%
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option{
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 min-width:0;min-height:0;gap:2px;padding:2px;border:1px solid rgba(199,155,90,.38);border-radius:5px;
 color:#ffe5bd;background:rgba(18,24,17,.5);cursor:pointer
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:hover,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:focus-visible{
 border-color:#f5c77f;background:rgba(110,86,43,.5);outline:1px solid #e5b66c
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option .combat-defense-item-art{
 width:100%;height:50px
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-label{
 width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font:600 10px/1.15 system-ui,sans-serif
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option .combat-defense-choice-fv{font-size:11px}
@media(max-width:1023px){
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice,
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-decline.combat-defense-choice{
  grid-template-rows:34px minmax(0,1fr) 12px;min-height:91px;height:91px;gap:2px;padding:5px 3px
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-art.combat-defense-item-art{
  width:min(100%,65px);height:34px
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi{
  grid-template-rows:12px minmax(0,1fr);gap:1px;padding:3px 2px
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi-title{font-size:11px}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-options{gap:2px}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option{padding:1px;gap:1px}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option .combat-defense-item-art{height:36px;width:100%}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-label{font-size:8px}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option .combat-defense-choice-fv{font-size:9px}
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text strong{font-size:11px}
}

/* v0.35.159 — personal equipment art over three image-backed defense choices.
   Paths are relative to this CSS file, including when served via GitHub Pages. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice{
 position:relative;
 isolation:isolate;
 background-size:cover;
 background-position:center center;
 background-repeat:no-repeat;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield{
 background-image:linear-gradient(to bottom,rgba(15,10,7,.06),rgba(15,10,7,.2) 42%,rgba(9,7,6,.84)),url("data:image/webp;base64,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");
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon{
 background-image:linear-gradient(to bottom,rgba(15,10,7,.06),rgba(15,10,7,.2) 42%,rgba(9,7,6,.84)),url("data:image/webp;base64,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");
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit{
 background-image:linear-gradient(to bottom,rgba(15,10,7,.06),rgba(15,10,7,.2) 42%,rgba(9,7,6,.84)),url("data:image/webp;base64,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");
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice > *{
 position:relative;
 z-index:1;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text strong,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-text small,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice-fv{
 text-shadow:0 2px 5px rgba(0,0,0,.96),0 0 6px rgba(0,0,0,.78);
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice:disabled{
 filter:grayscale(.7) brightness(.72);
}

/* v0.35.160 — "Ta smällen": the transparent knight sits on top of the
   battlefield background. Neither the reaction rules nor card size change. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit::after{
 content:"";
 position:absolute;
 inset:0;
 z-index:1;
 pointer-events:none;
 background-image:url("./defense-knight-DfN5BozO.avif");
 background-repeat:no-repeat;
 background-position:center 28%;
 background-size:auto 116%;
 filter:drop-shadow(0 2px 5px rgba(0,0,0,.55));
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit > *{
 position:relative;
 z-index:2;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit > .combat-defense-choice-art[data-defense-art="take-hit"]{
 visibility:hidden;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit .combat-defense-choice-text{
 align-self:end;
 background:linear-gradient(to bottom,transparent,rgba(8,6,5,.7) 38%,rgba(8,6,5,.82));
 border-radius:4px;
 padding:2px 0;
}
@media(max-width:1023px){
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit::after{
  background-position:center 23%;
  background-size:auto 110%;
 }
}

/* v0.35.161 — defense artwork layer.
   app.css sets .combat-parry-btn and .combat-take-hit-btn backgrounds with
   !important; a normal background-image on the button is therefore hidden.
   A dedicated ::before layer cannot be replaced by those button shorthands. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit{
 position:relative;
 isolation:isolate;
 background-color:#120e0b!important;
 background-image:none!important;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield::before,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon::before,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit::before{
 content:"";
 position:absolute;
 inset:0;
 z-index:0;
 display:block;
 pointer-events:none;
 background-repeat:no-repeat;
 background-size:cover;
 background-position:center;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield::before{
 background-image:linear-gradient(to bottom,rgba(10,8,6,.02),rgba(8,6,5,.14) 48%,rgba(8,6,5,.78)),url("data:image/webp;base64,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");
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon::before{
 background-image:linear-gradient(to bottom,rgba(10,8,6,.02),rgba(8,6,5,.14) 48%,rgba(8,6,5,.78)),url("data:image/webp;base64,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");
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit::before{
 background-image:linear-gradient(to bottom,rgba(10,8,6,.02),rgba(8,6,5,.12) 45%,rgba(8,6,5,.75)),url("data:image/webp;base64,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");
}
/* Keep all labels and equipped shields/weapons clearly in front. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice > *{
 position:relative;
 z-index:2;
}
/* Knight layer from v0.35.160 sits between the battlefield and labels. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit::after{
 z-index:1;
}
/* The colored default button styles must not bleed through on hover/focus. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield:hover,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:hover,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.take-hit:hover{
 background-color:#120e0b!important;
}


/* v0.35.165 – defense artwork owns its gilded frame.
   Weapons deliberately break across the illustration frame while their
   source-quadrant crop remains intact. No new button borders or labels. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice:is(.shield,.weapon,.take-hit){
 border:0!important;
 border-radius:8px;
 box-shadow:none!important;
 outline-offset:1px;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice:is(.shield,.weapon,.take-hit)::before{
 border-radius:inherit;
}
/* Keep focus discoverable without reinstating the separate metallic button frame. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice:is(.shield,.weapon,.take-hit):focus-visible,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:focus-visible{
 outline:2px solid #f5d69c;
 outline-offset:2px;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon{
 overflow:visible;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi){
 position:relative;
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:minmax(0,1fr) auto 18px;
 gap:1px;
 padding:4px 4px 6px;
}
/* The whole cropped viewport can extend beyond the original decorative
   frame. Its inner image still displays the admin-selected source quadrant. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-item-art{
 position:absolute;
 z-index:3;
 top:-19%;
 left:-31%;
 width:162%;
 height:133%;
 max-width:none;
 overflow:hidden;
 margin:0;
 background:none;
 pointer-events:none;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon > .combat-defense-item-art .combat-defense-art-img,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option > .combat-defense-item-art .combat-defense-art-img{
 width:230%;
 height:230%;
 filter:drop-shadow(1px 5px 6px rgba(0,0,0,.9));
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-item-art.twohand > .combat-defense-art-img{
 width:220%;
 height:auto;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-choice-text{
 grid-row:2;
 z-index:4;
 position:relative;
 align-self:end;
 width:100%;
 padding:1px 2px;
 border:0;
 background:linear-gradient(180deg,transparent,rgba(11,8,6,.83) 28%,rgba(11,8,6,.9));
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-choice-text strong{
 display:none;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-choice-text small{
 position:relative;
 z-index:4;
 font-weight:750;
 font-size:clamp(10px,1vw,12px);
 color:#fff0d4;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-choice-fv{
 grid-row:3;
 align-self:end;
 z-index:4;
 position:relative;
 color:#ffe1a8;
}
/* Two independent weapons share one illustrated background, not two
   smaller button frames. Their art can meet/overlap across the center. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi{
 display:grid;
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:minmax(0,1fr);
 min-width:0;
 padding:4px 2px 6px;
 gap:0;
 overflow:visible;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi-title{
 display:none;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-options{
 position:relative;
 z-index:2;
 display:grid;
 grid-template-columns:repeat(2,minmax(0,1fr));
 gap:0;
 width:100%;
 height:100%;
 overflow:visible;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option{
 position:relative;
 display:grid;
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:minmax(0,1fr) auto 18px;
 align-items:end;
 justify-items:center;
 overflow:visible;
 min-width:0;
 padding:2px 0;
 gap:1px;
 background:transparent;
 border:0;
 border-radius:0;
 box-shadow:none;
 color:#ffebc4;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:hover{
 background:rgba(253,206,125,.10);
 border-color:transparent;
 outline:0;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:disabled{
 opacity:.5;
 cursor:not-allowed;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option > .combat-defense-item-art{
 position:absolute;
 top:-16%;
 left:-47%;
 width:194%;
 height:128%;
 max-width:none;
 overflow:hidden;
 z-index:3;
 background:none;
 pointer-events:none;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:first-child > .combat-defense-item-art{
 transform:rotate(-10deg);
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option:last-child > .combat-defense-item-art{
 transform:rotate(10deg);
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-label,
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option > .combat-defense-choice-fv{
 position:relative;
 z-index:4;
 align-self:end;
 width:100%;
 padding:1px 0;
 border:0;
 text-align:center;
 background:rgba(14,9,7,.81);
 text-shadow:0 2px 5px #090604;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-label{
 grid-row:2;
 color:#fff0d5;
 font-weight:700;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option > .combat-defense-choice-fv{
 grid-row:3;
 color:#ffe1a8;
}
@media(max-width:1023px){
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi){
  grid-template-rows:minmax(0,1fr) auto 13px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-item-art{
  top:-14%;left:-23%;width:146%;height:124%;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.weapon:not(.combat-defense-multi) > .combat-defense-choice-text small{
  font-size:9px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-multi{
  grid-template-rows:minmax(0,1fr);
  padding:2px 1px 4px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option{
  grid-template-rows:minmax(0,1fr) auto 12px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option > .combat-defense-item-art{
  top:-11%;left:-34%;width:168%;height:114%;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option .combat-defense-item-art{
  height:114%;
  width:168%;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-label{
  font-size:8px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-weapon-option > .combat-defense-choice-fv{
  font-size:9px;
 }
}

/* v0.35.167 — oversized shield illustration, matching the dramatic weapon
   treatment. Use the shield's existing admin-selected source quadrant.
   The crop viewport deliberately rises beyond its background card. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield{
 position:relative;
 overflow:visible;
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:minmax(0,1fr) auto 18px;
 gap:1px;
 padding:4px 4px 6px;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-item-art{
 position:absolute;
 z-index:3;
 top:-23%;
 left:-20%;
 width:140%;
 height:143%;
 max-width:none;
 margin:0;
 overflow:hidden;
 isolation:isolate;
 background:none;
 pointer-events:none;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-item-art:not([data-combat-crop="full"]) > .combat-defense-art-img{
 width:230%;
 height:230%;
 max-width:none;
 max-height:none;
 filter:drop-shadow(2px 5px 7px rgba(0,0,0,.92));
}
/* Full-image is also valid in the master: enlarge its viewport without
   forcing a quadrant crop onto a deliberate full-image selection. */
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-item-art[data-combat-crop="full"] > .combat-defense-art-img{
 position:static;
 inset:auto;
 width:100%;
 height:100%;
 object-fit:contain;
 object-position:center;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-item-art .combat-defense-art-fallback{
 font-size:clamp(38px,4vw,68px);
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-choice-text{
 position:relative;
 z-index:4;
 grid-row:2;
 align-self:end;
 width:100%;
 padding:1px 2px;
 border:0;
 background:linear-gradient(180deg,transparent,rgba(11,8,6,.84) 30%,rgba(11,8,6,.93));
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-choice-text strong{
 display:none;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-choice-text small{
 font-weight:750;
 font-size:clamp(10px,1vw,12px);
 color:#fff0d4;
}
#combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-choice-fv{
 position:relative;
 z-index:4;
 grid-row:3;
 align-self:end;
 color:#ffe1a8;
}
@media(max-width:1023px){
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield{
  grid-template-rows:minmax(0,1fr) auto 13px;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-item-art{
  top:-18%;
  left:-16%;
  width:132%;
  height:133%;
 }
 #combatPage .combat-shell-live .combat-defense-compact .combat-defense-choice.shield > .combat-defense-choice-text small{
  font-size:9px;
 }
}

/* v0.35.169 — spell targeting is explicit at each casting SR.
   SR1 is a preparation-only step; in SR2 the target portrait opens the
   same filtered target list as the hex map and turn-order controls. */
#combatPage .combat-mini-magic .combat-magic-target-wait,
#combatPage .combat-mini-magic .combat-magic-target-collapsed{
 position:relative;
 z-index:2;
 margin-top:9px;
 padding:9px 11px;
 border:1px solid rgba(206,162,100,.48);
 border-radius:8px;
 background:rgba(27,19,14,.86);
 color:#efd5b0;
 font:600 12px/1.4 system-ui,sans-serif;
}
#combatPage .combat-mini-magic .combat-magic-target-wait{
 border-style:dashed;
 color:#e1c6a1;
}
@media(max-width:760px){
 #combatPage .combat-mini-magic button.combat-portrait-target-button{
  position:relative;
  z-index:4;
  display:grid;
  place-items:center;
  padding:0;
  margin:0;
  appearance:none;
  font:inherit;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
 }
 #combatPage .combat-mini-magic button.combat-portrait-target-button:focus-visible{
  outline:3px solid #f1c77a;
  outline-offset:3px;
 }
 #combatPage .combat-mini-magic .combat-magic-target-options{
  grid-template-columns:minmax(0,1fr);
 }
 #combatPage .combat-mini-magic .combat-magic-target-option{
  min-height:44px;
 }
}

/* v0.35.180 — one compact action panel directly below Runda. */
#combatPage .combat-shell-live .combat-left-column > #combatActionPanel{display:contents}
#combatPage .combat-shell-live .combat-action-confirm{
 display:flex;align-items:center;justify-content:flex-end;gap:7px;
 margin-top:6px;min-width:0;
}
#combatPage .combat-shell-live .combat-action-confirm .btn{
 min-height:35px;max-width:100%;padding:6px 12px;white-space:nowrap;
 border:1px solid #be9054;border-radius:7px;color:#ffe7bd;
 background:linear-gradient(155deg,#6b4828,#3b2719);font-weight:750;
 cursor:pointer;
}
#combatPage .combat-shell-live .combat-action-confirm .btn:disabled{
 opacity:.48;cursor:not-allowed;filter:saturate(.5);
}
#combatPage .combat-shell-live .combat-action-confirm .combat-action-cancel{
 border-color:#6e604d;background:rgba(35,26,21,.9);color:#cdbb9e;
}
#combatPage .combat-shell-live .combat-action-placeholder{
 min-width:0;display:flex;flex-direction:column;gap:5px;
 padding:9px 11px;border:1px solid #987249;border-radius:11px;
 background:linear-gradient(140deg,#251b16,#15100e);
}
#combatPage .combat-shell-live .combat-action-placeholder-label{
 display:flex;align-items:center;gap:9px;color:#f0cc92;
 font:700 14px/1.25 Georgia,serif;
}
#combatPage .combat-shell-live .combat-action-placeholder-label>span{
 font:700 20px/1 Georgia,serif;color:#dfb36e;
}
#combatPage .combat-shell-live .combat-action-placeholder-copy{
 margin:0;font:500 11px/1.4 system-ui,sans-serif;color:#dbcaaf;
}
#combatPage .combat-shell-live .combat-magic-select-panel .combat-spell-choice{
 margin:2px 0 0;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-mini-instruction{
 margin:5px 0 0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-extra{
 margin-top:5px;padding:0 5px;border:0;color:#d8b788;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-extra summary{
 cursor:pointer;width:max-content;max-width:100%;
 font:650 11px/1.35 system-ui,sans-serif;color:#dfbc82;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-extra[open]{
 border-top:1px solid rgba(197,152,88,.28);padding-top:6px;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-extra .combat-spell-choice{
 margin-top:6px;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel .combat-duelist-meta{
 display:none!important;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-action-confirm .btn{min-height:39px;font-size:12px}
 #combatPage .combat-shell-live .combat-action-placeholder{padding:7px 9px}
 #combatPage .combat-shell-live .combat-mini-attack .combat-mini-instruction{font-size:10px}
}


/* v0.35.182: the action panel is nested in #combatActionPanel.
   Both wrapper columns use display:contents at tablet/phone widths, so the
   actual action card needs an explicit flex order after Runda. */
@media(max-width:1023px){
 #combatPage .combat-shell-live .combat-left-column > #combatActionPanel > *{
  order:2;width:100%;min-width:0;
 }
 #combatPage .combat-shell-live .combat-left-column > .combat-turn-panel{
  order:1;width:100%;
 }
}
/* v0.35.166 — touch-first attack targeting and local dice on phones.
   The desktop dashboard, shared rules and map targeting remain unchanged. */
/* All viewports can choose a defender directly in the attack frame.
   Old mobile-only strike UI is replaced with a shared compact button. */
@media (min-width:761px){
 #combatPage .combat-mobile-attack-execute{display:none!important}
 #combatPage .combat-mini-attack button.combat-portrait-target-button{
  appearance:none;display:grid;place-items:center;padding:0;margin:0;
  font:inherit;color:inherit;cursor:pointer;pointer-events:auto;
 }
 #combatPage .combat-mini-attack button.combat-portrait-target-button:focus-visible{
  outline:2px solid #e8ba70;outline-offset:3px;
 }
 #combatPage .combat-mini-attack .combat-portrait-pick-label{
  position:absolute;z-index:5;bottom:1px;left:0;width:100%;
  padding:4px 2px 5px;background:linear-gradient(0deg,#130d0bf5,#25160dcc);
  font:800 10px/1 system-ui,sans-serif;color:#ffe0a0;text-align:center;
  text-transform:uppercase;pointer-events:none;
 }
 #combatPage .combat-mini-attack .combat-portrait-target-picker{
  position:relative;z-index:6;margin:6px 0;padding:8px;
  border:1px solid #a97c49;border-radius:8px;
  background:linear-gradient(#312116,#1a120e);
 }
 #combatPage .combat-portrait-target-picker>strong{display:block;margin-bottom:6px;color:#efd6ad}
 #combatPage .combat-portrait-target-options{display:flex;flex-wrap:wrap;gap:5px;max-height:185px;overflow:auto}
 #combatPage .combat-portrait-target-option{
  display:inline-flex;align-items:center;gap:8px;padding:5px 9px;
  border:1px solid #86633c;border-radius:6px;
  background:#322218;color:#f2dec0;cursor:pointer;
 }
 #combatPage .combat-portrait-target-option.selected{border-color:#ecc57f;background:#614126}
 #combatPage .combat-portrait-target-option>small{color:#d7bf9b}
}
@media (max-width:760px){
  /* Square physics/rendering surface; mobile panels may be much taller than wide. */
  #combatPage .combat-dice-layer .combat-dice-host{
    inset:auto;
    top:50%;
    left:50%;
    width:var(--combat-dice-side,100%);
    height:var(--combat-dice-side,100%);
    transform:translate(-50%,-50%);
  }
  #combatPage .combat-dice-layer .combat-dice-host canvas{
    object-fit:contain;
  }
  #combatPage .combat-mini-attack button.combat-portrait-target-button{
    appearance:none;
    display:grid;
    place-items:center;
    padding:0;
    margin:0;
    cursor:pointer;
    color:inherit;
    font:inherit;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  #combatPage .combat-mini-attack button.combat-portrait-target-button:focus-visible{
    outline:3px solid #f3cb7f;
    outline-offset:4px;
  }
  #combatPage .combat-mini-attack .combat-portrait-pick-label{
    position:absolute;
    z-index:4;
    bottom:0;
    left:0;
    width:100%;
    padding:3px 1px 4px;
    background:linear-gradient(0deg,#130d0bf2,#25160dce);
    color:#ffdfa1;
    font:800 9px/1.05 system-ui,sans-serif;
    text-transform:uppercase;
    text-align:center;
    letter-spacing:.015em;
    pointer-events:none;
    text-shadow:0 1px 3px #000;
  }
  #combatPage .combat-mini-attack .combat-portrait-target-picker{
    position:relative;
    z-index:6;
    margin:9px 0;
    padding:10px;
    border:1px solid #c89c5f;
    border-radius:10px;
    background:linear-gradient(165deg,#352417,#180f0b);
    box-shadow:0 6px 22px #0009, inset 0 1px 0 #ffe3a31c;
  }
  #combatPage .combat-portrait-target-picker>strong{
    display:block;
    margin-bottom:7px;
    font:800 13px/1.2 Georgia,serif;
    color:#f4d5a5;
  }
  #combatPage .combat-portrait-target-picker>small{color:#e7cba7}
  #combatPage .combat-portrait-target-options{
    display:grid;
    gap:6px;
    max-height:min(40dvh,280px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  #combatPage .combat-portrait-target-option{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:9px;
    width:100%;
    min-height:44px;
    padding:9px 11px;
    border:1px solid #8e6a42;
    border-radius:8px;
    background:linear-gradient(#453020,#26190f);
    color:#f5dfbb;
    text-align:left;
    font:700 13px/1.25 system-ui,sans-serif;
    touch-action:manipulation;
  }
  #combatPage .combat-portrait-target-option>small{
    color:#d4b68e;
    font:600 11px/1.2 system-ui,sans-serif;
    white-space:nowrap;
  }
  #combatPage .combat-portrait-target-option.selected{
    border-color:#ecc57f;
    background:linear-gradient(#6b4828,#302013);
  }
  #combatPage .combat-mobile-attack-execute{margin-top:9px}
  #combatPage .combat-mobile-attack-execute .combat-attack-execute{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:8px;
    padding:9px;
    border-radius:9px;
    border:1px solid #ad814c;
    background:#1c130dde;
  }
  #combatPage .combat-mobile-attack-execute .combat-attack-execute>div{min-width:0;flex:1 1 120px}
  #combatPage .combat-mobile-attack-execute .combat-attack-execute .combat-attack-roll-btn{
    flex:1 0 auto;
    min-height:44px;
    border-color:#c89a54;
    background:linear-gradient(#785029,#513319);
    font-weight:800;
    color:#fff3dc;
  }
  #combatPage .combat-dice-layer.mobile-combat-dice{
    z-index:1250;
  }
  #combatPage .combat-dice-layer.mobile-combat-dice .combat-dice-readout{
    bottom:10px;
    width:min(95%,470px);
    max-width:calc(100% - 14px);
    padding:10px 11px;
    gap:7px;
    border-radius:14px;
    white-space:normal;
    background:rgba(25,17,13,.96);
    box-shadow:0 7px 24px rgba(0,0,0,.65);
  }
  #combatPage .combat-dice-layer.mobile-combat-dice .combat-outcome-copy{
    flex:1 1 170px;
    min-width:0;
    max-width:100%;
  }
  #combatPage .combat-dice-layer.mobile-combat-dice .combat-outcome-copy span{
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    text-overflow:clip;
  }
  #combatPage .combat-dice-layer.mobile-combat-dice .combat-dice-readout.mobile-damage-detail strong{
    font:800 17px/1.2 Georgia,serif;
    color:#ffe0a2;
    white-space:nowrap;
  }
}
@media (prefers-reduced-motion:reduce){
  #combatPage .combat-dice-layer.mobile-combat-dice .combat-dice-readout{
    transition:none;
  }
}


/* Arcane mounted mode: icon-only controls left of the active hex portrait. */
.combat-turn-actor{position:relative}
.combat-mount-toggle{display:flex;flex-direction:column;gap:5px;align-self:center;flex:none;padding:5px;border:1px solid #997647;border-radius:12px;background:#102c42;box-shadow:inset 0 0 10px #081521}
.combat-mount-toggle button{width:38px;height:38px;display:grid;place-items:center;background:#183449;color:#e6c78d;border:1px solid #58718a;border-radius:9px;font-size:22px;line-height:1;cursor:pointer;touch-action:manipulation}
.combat-mount-toggle button.selected{background:#285577;border-color:#e2b66b;box-shadow:0 0 0 2px #a77a3d,0 0 9px #3887d2}
.combat-mount-toggle button:focus-visible{outline:2px solid #f4d99b;outline-offset:3px}


/* Keep the two mounted-mode controls anchored to the hex portrait, not in a new grid row. */
#combatPage .combat-mount-portrait-group{display:flex;align-items:center;gap:6px;grid-column:1;grid-row:1;min-width:0;align-self:center}
#combatPage .combat-mount-portrait-group .combat-mount-toggle{gap:3px;padding:3px;border-radius:9px}
#combatPage .combat-mount-portrait-group .combat-mount-toggle button{width:29px;height:29px;border-radius:6px;font-size:inherit}
#combatPage .combat-mount-portrait-group .combat-mount-toggle svg{width:19px;height:19px;display:block}
#combatPage .combat-turn-actor>.combat-mount-portrait-group+.combat-turn-identity{grid-column:2;grid-row:1}
@media(max-width:600px){
 #combatPage .combat-mount-portrait-group{gap:4px}
 #combatPage .combat-mount-portrait-group .combat-mount-toggle button{width:25px;height:25px}
 #combatPage .combat-mount-portrait-group .combat-mount-toggle svg{width:17px;height:17px}
}


/* ARCANE MOUNTED SWITCH: engraved bronze icons and an animated mechanical lever. */
#combatPage .arcane-mount-switch{position:relative;isolation:isolate;gap:3px;padding:4px 7px 4px 4px;border:2px ridge #b78b4c;background:linear-gradient(115deg,#35271d,#132e40 42%,#1b2631 75%,#6e4a28);box-shadow:inset 0 1px 4px #d8a35b66,0 2px 6px #0009}
#combatPage .arcane-mount-switch button{position:relative;z-index:1;color:#bd8c4b!important;background:linear-gradient(#273746,#10202d)!important;border:1px solid #755b39!important;box-shadow:inset 0 1px 3px #050d14!important;transition:color .15s,box-shadow .15s}
#combatPage .arcane-mount-switch button.selected{color:#f4d69a!important;box-shadow:inset 0 0 7px #a46a27,0 0 0 1px #d3a55c!important}
#combatPage .arcane-mount-switch-lever{position:absolute;z-index:2;right:-5px;top:17%;width:8px;height:34%;border:1px solid #e1b66b;border-radius:5px;background:linear-gradient(90deg,#4b2c15,#edc47c 45%,#69401c);box-shadow:1px 2px 4px #000b;pointer-events:none;transition:transform .2s ease}
#combatPage .arcane-mount-switch.is-mounted .arcane-mount-switch-lever{transform:translateY(110%)}
#combatPage .arcane-mount-switch-lever i{position:absolute;left:-3px;top:35%;width:12px;height:12px;border-radius:50%;border:1px solid #e7c27f;background:radial-gradient(circle at 35% 30%,#f7e0a8,#a36d2c 75%)}
@media(prefers-reduced-motion:reduce){#combatPage .arcane-mount-switch-lever{transition:none}}


/* ARCANE MOUNTED SWITCH V5: four real WebP assets; shared, immovable axle. */
#combatPage .combat-mount-portrait-group .arcane-mount-switch{
 position:relative;display:block;flex:none;width:72px;height:auto;aspect-ratio:646 / 998;
 padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;
 isolation:isolate;touch-action:pan-y;
}
#combatPage .arcane-mount-switch .arcane-mount-panel{
 display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;
}
#combatPage .arcane-mount-switch .arcane-mount-gem{
 position:absolute;height:auto;pointer-events:none;z-index:1;
}
#combatPage .arcane-mount-switch .arcane-mount-rotor{
 position:absolute;left:83.8876%;top:48.24%;width:100%;height:100%;
 transform-origin:0 0;transform:rotate(43deg);transition:transform .32s cubic-bezier(.22,1.12,.35,1);
 pointer-events:none;z-index:2;
}
#combatPage .arcane-mount-switch.is-mounted .arcane-mount-rotor{transform:rotate(-51deg)}
#combatPage .arcane-mount-switch .arcane-mount-pointer{
 position:absolute;left:0;top:0;width:37%;height:auto;max-width:none;
 transform:translate(-73.48%,-49.04%);pointer-events:none;
}
#combatPage .arcane-mount-switch .arcane-mount-choice{
 position:absolute;left:9%;width:50%;height:39%;padding:0;border:0;border-radius:45%;
 background:transparent!important;box-shadow:none!important;z-index:3;
 color:transparent!important;cursor:pointer;touch-action:manipulation;
}
#combatPage .arcane-mount-switch .arcane-mount-choice.upper{top:8%}
#combatPage .arcane-mount-switch .arcane-mount-choice.lower{top:53%}
#combatPage .arcane-mount-switch .arcane-mount-drag{
 position:absolute;left:59%;top:27%;width:48%;height:45%;z-index:4;cursor:grab;
 touch-action:none;background:transparent;border-radius:50%;
}
#combatPage .arcane-mount-switch .arcane-mount-drag:active{cursor:grabbing}
#combatPage .arcane-mount-switch .arcane-mount-choice:focus-visible,
#combatPage .arcane-mount-switch .arcane-mount-drag:focus-visible{
 outline:2px solid #f9d98a;outline-offset:2px;
}
@media(max-width:600px){
 #combatPage .combat-mount-portrait-group .arcane-mount-switch{width:56px}
}
@media(prefers-reduced-motion:reduce){
 #combatPage .arcane-mount-switch .arcane-mount-rotor{transition:none}
}

/* ARCANE ROUND PILOT: mounted switch is a frame-mounted ornament, not an
   inline sibling competing with the active portrait/name for grid width. */
#combatPage .combat-turn-panel .combat-turn-actor:not(.empty){position:relative;overflow:visible}
#combatPage .combat-turn-panel .combat-mount-portrait-group{
 grid-area:portrait;grid-column:1;grid-row:1;
 position:relative;display:block;min-width:0;overflow:visible;
 align-self:center;z-index:4;
}
#combatPage .combat-turn-panel .combat-mount-portrait-group .combat-turn-portrait{
 display:block;margin-left:auto;max-width:100%;
}
#combatPage .combat-turn-panel .combat-mount-portrait-group .arcane-mount-switch{
 position:absolute;left:0;top:50%;transform:translate(-62%,-50%);
 width:clamp(104px,10vw,160px);max-width:none;z-index:5;
}
#combatPage .combat-turn-panel .combat-turn-identity{grid-column:2;grid-row:1;min-width:0}
#combatPage .combat-turn-panel .combat-turn-vitals{position:relative;z-index:1}
@media(max-width:699px){
 #combatPage .combat-turn-panel .combat-mount-portrait-group .arcane-mount-switch{
  width:clamp(74px,16vw,112px);transform:translate(-43%,-50%);
 }
}
@media(max-width:420px){
 #combatPage .combat-turn-panel .combat-mount-portrait-group .arcane-mount-switch{
  width:76px;transform:translate(-25%,-50%);
 }
}

/* ARCANE mounted switch: parked outside the equipment frame on its left.
   Availability rules remain unchanged until mount inventory is integrated. */
#combatPage .combat-turn-panel .combat-turn-stats{position:relative;overflow:visible}
#combatPage .combat-turn-panel .combat-equipment-mount{
 position:absolute;left:0;top:50%;transform:translate(-68%,-50%);
 z-index:7;overflow:visible;pointer-events:none;
}
#combatPage .combat-turn-panel .combat-equipment-mount .arcane-mount-switch{
 position:relative;left:auto;top:auto;transform:none;
 width:clamp(100px,10vw,150px);max-width:none;pointer-events:auto;
}
@media(max-width:699px){
 #combatPage .combat-turn-panel .combat-equipment-mount{transform:translate(-28%,-50%)}
 #combatPage .combat-turn-panel .combat-equipment-mount .arcane-mount-switch{width:76px}
}
/* Read-only magical glyph registry thumbnails in Admin > Besvärjelser. */
.adminsymboltable{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:8px;margin-top:8px}
.admin-symbol-row{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border:1px solid rgba(201,164,100,.28);border-radius:10px;background:rgba(24,20,17,.28)}
.admin-symbol-art{position:relative;width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:8px;overflow:hidden;background:rgba(30,21,15,.3)}
.admin-symbol-art img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}
.admin-symbol-art img[hidden]{display:none}
.admin-symbol-placeholder{position:absolute;color:#cda76a;font-size:24px}
.admin-symbol-art.has-icon:not(.is-missing) .admin-symbol-placeholder{display:none}
.admin-symbol-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.admin-symbol-text strong{font-size:13px;overflow-wrap:anywhere}
.admin-symbol-text small,.admin-symbol-state{font-size:11px;opacity:.75}
.admin-symbol-state{white-space:nowrap}
@media(max-width:540px){.adminsymboltable{grid-template-columns:1fr}.admin-symbol-row{padding:7px}}
/* Alea Crusaders – two independent square spell art crops.
   The very same image positioning function drives editor, spell chooser and battle. */
.spell-art-editor{
 margin:12px 0 2px;padding:14px;min-width:0;
 border:1px solid #9b7443;border-radius:11px;
 background:linear-gradient(135deg,#231a14,#120e0b);
 color:#f2dfbe;
}
.spell-art-editor>h3{margin:0 0 5px;color:#f2cf95;font:700 18px/1.35 Georgia,serif}
.spell-art-editor>p{margin:0 0 14px;color:#d7bb96;font-size:12px;line-height:1.45}
.spell-art-pane{
 padding:13px 0 15px;margin:0 0 14px;
 border-top:1px solid rgba(194,146,77,.5);
}
.spell-art-pane:last-child{margin-bottom:0;padding-bottom:5px}
.spell-art-pane h4{margin:0;color:#efc88a;font:700 15px/1.3 Georgia,serif}
.spell-art-pane>p:not(.spell-art-status){margin:4px 0 12px;color:#cfb38d;font-size:12px;line-height:1.45}
.spell-art-editor-layout{
 display:grid;grid-template-columns:minmax(180px,290px) minmax(190px,1fr);
 align-items:start;gap:15px;min-width:0;
}
.spell-art-preview-column{display:grid;justify-items:start;gap:7px;min-width:0}
.spell-art-viewport{
 position:relative;isolation:isolate;display:block;overflow:hidden;
 box-sizing:border-box;width:min(100%,290px);aspect-ratio:1/1;
 border:2px solid #bb884e;border-radius:11px;
 background:radial-gradient(circle at 70% 75%,#6f3920,#231611 55%,#100c0a);
 cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;
 outline-offset:3px;
}
.spell-art-viewport.is-dragging{cursor:grabbing;border-color:#f2ce8d}
.spell-art-viewport img,
.combat-spell-thumb img,
.combat-spell-effect-artwork img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 object-fit:fill;user-select:none;-webkit-user-drag:none;
 pointer-events:none;
}
.spell-art-viewport img[hidden],
.combat-spell-thumb img[hidden],
.combat-spell-effect-artwork img[hidden]{display:none!important}
.spell-art-viewport .spell-art-empty{
 display:grid;place-items:center;position:absolute;inset:0;
 color:#d6b481;font:700 13px Georgia,serif;
 text-align:center;padding:12px;
}
.spell-art-viewport::after{
 content:"";position:absolute;inset:0;pointer-events:none;
 border:1px solid rgba(245,207,138,.52);border-radius:9px;
 box-shadow:inset 0 0 24px rgba(17,12,9,.25);
}
.spell-art-help{color:#cab391;font-size:11px;line-height:1.4}
.spell-art-edit-controls{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}
.spell-art-edit-controls>label:not(.spell-art-upload){
 display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;
 width:100%;color:#e7c798;font-size:12px;font-weight:700;
}
.spell-art-edit-controls output{color:#f4d9a8;font-size:11px}
.spell-art-edit-controls input[type=range]{
 display:block;width:100%;grid-column:1 / -1;
 min-height:26px;padding:0;cursor:pointer;accent-color:#e3b36c;
}
.spell-art-edit-controls .smallbtn{min-height:32px;cursor:pointer}
.spell-art-control-actions{display:flex;flex-wrap:wrap;gap:7px}
.spell-art-edit-controls>small{font-size:11px;color:#cbb08b;line-height:1.4}
.spell-art-upload{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.spell-art-upload input[type=file]{
 position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;
 clip-path:inset(50%);
}
.spell-art-status{min-height:17px;margin:9px 0 0!important;color:#f0c98b;font-size:12px}
.spell-art-viewport:focus-visible,
.spell-art-upload:focus-within{
 outline:2px solid #f6d491;outline-offset:3px;
}

/* Spell chooser: square icon, clipping and drag-crop math match admin. */
#combatPage .combat-turn-magic-host .combat-weapon-choice-btn.combat-spell-with-thumb{
 display:grid;grid-template-columns:42px minmax(0,1fr);
 align-items:center;gap:3px 9px;
}
#combatPage .combat-turn-magic-host .combat-spell-thumb{
 grid-column:1;grid-row:1 / span 2;
 position:relative;display:block;overflow:hidden;
 width:42px;height:42px;box-sizing:border-box;min-width:42px;
 border:1px solid rgba(222,176,109,.86);border-radius:7px;
 background:#1c110c;
}
#combatPage .combat-turn-magic-host .combat-spell-with-thumb b,
#combatPage .combat-turn-magic-host .combat-spell-with-thumb small{
 grid-column:2;min-width:0;
}
#combatPage .combat-turn-magic-host .combat-spell-with-thumb b{grid-row:1}
#combatPage .combat-turn-magic-host .combat-spell-with-thumb small{grid-row:2}

/* Cast-result art: a dedicated SQUARE on the lower right, not a wide image.
   Dark left gradient is in front of art; outcome/effect text remains legible. */
#combatPage .combat-mini-magic .combat-spell-effect-surface{
 isolation:isolate;min-height:156px;
 padding:14px 40% 14px 13px;
 background:radial-gradient(ellipse at 84% 86%,rgba(153,72,26,.28),transparent 66%),#1b120e;
}
#combatPage .combat-mini-magic .combat-spell-effect-artwork{
 position:absolute;z-index:0;right:0;bottom:0;
 width:min(48%,218px);aspect-ratio:1/1;
 display:block;overflow:hidden;pointer-events:none;
 background:#22150e;
}
#combatPage .combat-mini-magic .combat-spell-effect-surface::before{
 content:"";position:absolute;z-index:1;inset:0;pointer-events:none;
 background:linear-gradient(90deg,
   rgba(18,12,10,.97) 0%,rgba(18,12,10,.9) 42%,
   rgba(18,12,10,.40) 71%,rgba(18,12,10,.08) 100%);
}
#combatPage .combat-mini-magic .combat-spell-effect-label,
#combatPage .combat-mini-magic .combat-spell-outcome-note,
#combatPage .combat-mini-magic .combat-spell-effect-surface :is(.combat-spell-rule-note,.combat-spell-heal-result,.combat-damage-result,.combat-erf-result){
 position:relative;z-index:2;
}
@media(max-width:660px){
 .spell-art-editor-layout{grid-template-columns:minmax(0,1fr);gap:12px}
 .spell-art-viewport{width:min(100%,320px)}
 #combatPage .combat-mini-magic .combat-spell-effect-surface{padding:12px 29% 12px 11px}
 #combatPage .combat-mini-magic .combat-spell-effect-artwork{width:min(54%,210px)}
}

/* The same square master icon is visible in the character's spell list. */
#spelltable .character-spell-icon{
 display:inline-block;position:relative;flex:0 0 32px;
 width:32px;height:32px;box-sizing:border-box;
 overflow:hidden;border:1px solid #a87b45;border-radius:6px;
 background:linear-gradient(120deg,#3a2519,#130c08);
}
#spelltable .character-spell-icon img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 pointer-events:none;object-fit:fill;
}
#spelltable .character-spell-icon img[hidden]{display:none!important}


/* Full magic-panel artwork: selected spell effect -> icon -> legacy picture.
   The image uses the existing secure blob resolver and saved crop values.
   Text, card chrome, and controls always paint ABOVE the artwork. */
#combatPage .combat-shell-live .combat-mini-attack.combat-mini-magic.has-spell-backdrop{
 position:relative;
 isolation:isolate;
 overflow:hidden;
}
#combatPage .combat-mini-magic > .combat-magic-backdrop{
 position:absolute;
 z-index:0;
 inset:0;
 overflow:hidden;
 pointer-events:none;
 background:linear-gradient(125deg,#21150f,#130d09);
}
#combatPage .combat-mini-magic > .combat-magic-backdrop img{
 position:absolute;
 display:block;
 max-width:none!important;
 max-height:none!important;
 pointer-events:none;
 object-fit:fill;
 opacity:.91;
 filter:brightness(1.05) saturate(1.1);
}
#combatPage .combat-mini-magic > .combat-magic-backdrop img[hidden]{
 display:none!important;
}
#combatPage .combat-mini-magic > .combat-magic-backdrop::after{
 content:"";
 position:absolute;
 inset:0;
 pointer-events:none;
 background:
  linear-gradient(90deg,rgba(19,12,10,.55) 0%,rgba(18,12,10,.34) 62%,rgba(18,12,10,.2) 100%),
  linear-gradient(180deg,rgba(11,8,7,.35) 0%,rgba(12,8,7,.08) 42%,rgba(12,8,7,.45) 100%);
}
#combatPage .combat-mini-magic.has-spell-backdrop > :not(.combat-magic-backdrop){
 position:relative;
 z-index:1;
}
#combatPage .combat-mini-magic.has-spell-backdrop .combat-spell-effect-surface{
 background:rgba(16,11,9,.44);
}
#combatPage .combat-mini-magic.has-spell-backdrop .combat-spell-result{
 background:rgba(20,13,10,.78);
}
@media(prefers-reduced-transparency:reduce){
 #combatPage .combat-mini-magic > .combat-magic-backdrop::after{
  background:rgba(13,9,7,.85);
 }
}

/* Third spell image: transparent cutout preview, with its own gold frame. */
.spell-art-cutout-preview{
 position:relative;isolation:isolate;width:min(100%,290px);height:290px;
 box-sizing:border-box;border:1px dashed rgba(203,159,91,.75);
 border-radius:11px;background:radial-gradient(ellipse at 50% 70%,#493023,#170f0d 72%);
 cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;
}
.spell-art-cutout-preview.is-dragging{cursor:grabbing;border-color:#f2ce8d}
.spell-art-cutout-preview:focus-visible{outline:2px solid #f6d491;outline-offset:3px}
.spell-art-cutout-frame{
 position:absolute;left:12%;bottom:17px;width:76%;aspect-ratio:4/3;
 background:radial-gradient(ellipse at center,#422719aa,#120d09dd);
}
.spell-art-cutout-frame::after{
 content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
 background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAACQCAMAAABpjJTCAAAAkFBMVEWmZR/dlDHbpE5qGwMpFAghCQFeKwdQKgzGeCAxEQFYVwByRx1ZKgjXnCjZayXPmU3xyWns1ZaVWBwnDQOgayFyRBegahi5gzn//wC5h0gAAP//AADUjSiddUi1MgCFPQf////lrHIAAFUAfwAA//+APwm/vz+sgC2fn1//AP//f3///38AAABQJwpqOhCqVQB11Ia1AAAAMHRSTlP6+vwK9ipU9P23AvuaBAR0/v6nWnSaBPgB9AEBdf0E/wEEAwIBbQR1CAECAgCz+gNXyEjdAAAG0UlEQVR42u2diXabOhBARxsSiFBiGjtu2qZ9+yLL//93b0aALchyTtK8mslhknjBDszVLBqINYHAXGAFWBDA8Rmpfr5q1dPaqOrlFvhnS9I06WaQq+9Xbyin3aYjbb+92AJ/fSyeFvXzLVA8q041BzgGJZ+QFr/k5uND+fzhLeTzh8+9DHv9s7/b4IHb9oEyQuCP3Idvc4Cr8HvbikeE3o/f9OABWS/Xr5J2LnM9+yMmHXYznVoZfpsD/BE2LVjQmVgAIRyg3N+DtzFa/HlK8DWfHvgkw10u0c9fem5vePB7OrRDfSHmammwov0YtlMAFQrZWi16Aovffiekg3vc1aEsD2V9eEQe3fhGUqIcDjguCQI8qWUt6S+0RxMElQPgE9HutI5CWHpbpLGPVpedMZfN88Z02pI6wtskO2m1FdebIQp6ADTHppUWyHJSAOzxxuruh3VXxpjmDSi60t4jAwAGA/qI3dm2vQnfj5kFSH8vBweCpH7artSlp1plSAVTau96B7caWhvbdjNa4C6YQl5La1sad6s9Ok9Sv1pMvZBcocSBTQ4OmIU0EuwK1B3C3d9mjwnUekyH4CANf2nGGFmMoDomhWgUzmEO9lGSEbaArxghI+VMoHyFNzT8C1O/N4MhI1BeEjjSmI4QoEkAICnR4kbQX0S0JpiwUOmQwGsc60ihKs8AIDHP9vqXC66d1YmApoMcwFokgOiXrT+5ERGgu9N0lruQpQ128fqfCKymAZ8AWKGxkLAmMCBwONjC5gAtxoSz0i1f/55ApLJzZgHMorFbYvp8SFBiAD8CIKAMDCwQwm1Is9WDGHAaX+IgKjnRHMCTAzGRyqATzQF2oDkEwBgHZIIMABMrkwgeTEBxrLOZGOc2Z5lEQH+O0EUxqYXQIh2PFDTGscXSM7MA2sAw0j/NBThxjecDaV7gpD9Nx1EQwGgBmsRUYIVgnZsAsAoBykN0hpwB2I7V+KPW9QgQDM4KwhpuAFTRFeGIAE0o8FyMGUAIBw8W3Z4ubN2ZCJEZwJEA6lvVX5kzwBEAXIl3PYBnB6AIoA6KM4BHAMPWhZrMAoojQOgBGrYWGGLgyNYCOQBTC9TcLYC1UAbgmAJcjQC7qHidDzQIIG96ABQnOFqATokHCzjh2QHcnCxAfyQTnpkLJYAsBiRHAHG2wI4jwJcxBlAkQ4A6XRplDHDzpa1PaVSuLnRJAL5BXPPOQvlEtmOZhbJaSHC3gGBtgXR1lzsArACXBmB5QpOdkUHknUaBJYDgDuDqHGC9sLUCvEhuJ9dGA28AthYQ7wCA70x8nF3cpXlgzUI/F+CwAqwutALw/isl81LiHQDUK8AK8GO10OE9ndDw/7SK5/qJLb4At9wB1jS6lhIrwLsK4hVgnQdeW8w13D/4qnjXQmX/8fvqjv7MyjCNwmCBbdhIhquYDiChCwqCQgMIZ9mtHyinC+E4rSbuLTADYLkUMVuO6xguBhWz9cSsAFToYLIcNwrPakG0SguiJ2vqoVZHRqUQepAfAT4RgKeZgFFXg+7c1eDOKATQlIe+8qlFU1+J3IU0hTGXvgzKdEnlCYBNy4uZeJDpe6tMAZyITIKgCgU8BEAfcgcWUaC2AUQO8GkAiOREikcEi3gGGLKQpaiGTi2eQP1SUzMbN3ch6vmUlpMtfEJuhgCYZSFtqUcSmsYvfDqjIkiCT73ypsWcRyivieDXBRMcSX+XGtNOOv0J36chTTboQrPY4Uf/kUBaRq3jGcDJqKnFbussvoa5aJEzGuWXmpqmetEKaul6AlCUVrEeldfUYFhIqE1oqgUOPyqK/i+EuAbAWlS4G+ovFO4qhYlJoklwc3KlZITbJYWCwhnW3KDOXlNDZ6C+rgJKczv23MXUhOXp0N/ZCyk2BYXMcRF2qI7U4JgGWfQKJv2HCykw8HVR7Gly8NTtCRy+F4r0hmarkOMioqrjUW3/TWfASX1IXWlp0rVU9zSVyvpOd6lhrad0mhofS+kAiou60TiloodT32mw/fBT01qBxf9XdbIAylcKcEtNME99y6n9uYPNpi4uJB3+1JsNpHbrcNIMHM0BY8kA5yDHrR7mrdeH7u3whNAb9vsd7GGPD+SLhX4r7Wi3xwQ/k92pdf1Z+0SABqjHggHONUadOs4PLe+H7vPnhvPjXt1J6GG2AcDBC8T1O3vmHZMG/EPz/ROR+TYHwLME4TL1Rq3Gw+nyKanL/0XseUAeaCXO//ch+w8Qqp42tq9R8L7fWrwuDj8lwftX/G5BOhzq+rEW+8VjADwlB1DZ/xlp8IlS6SY9u0A+rfDQqldiJs2xep8WWAFWgBWAofwH/nGIWd12H1UAAAAASUVORK5CYII=") center/100% 100% no-repeat;
}
.spell-art-cutout-frame::before{
 content:"";position:absolute;inset:0;z-index:6;pointer-events:none;
 background:url("data:image/png;base64,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") center/100% 100% no-repeat;
 clip-path:inset(89% 0 0 0);
}
.spell-art-cutout-layer{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:visible;clip-path:inset(-150% -100% 8% -100%)}
.spell-art-cutout-layer img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 object-fit:contain;pointer-events:none;filter:drop-shadow(1px 4px 6px #000b);
}
.spell-art-cutout-layer img[hidden]{display:none!important}
.spell-art-cutout-preview>.spell-art-empty{
 position:absolute;inset:0;display:grid;place-items:center;
 color:#dbc298;font:700 13px Georgia,serif;text-align:center;
}
@media(max-width:660px){.spell-art-cutout-preview{width:min(100%,320px);height:300px}}

/* Match the Eld (F) combat cutout in the master editor preview. */
.spell-art-pane[data-kind="cutout"][data-spell-id="d441b542-f8ce-47d8-ac85-5129fee115bc"] .spell-art-cutout-layer{
 clip-path:inset(0 -110% -100% 0);
}
.spell-art-pane[data-kind="cutout"][data-spell-id="d441b542-f8ce-47d8-ac85-5129fee115bc"] .spell-art-cutout-layer img{
 transform:translateY(22%);
}
.spell-art-pane[data-kind="cutout"][data-spell-id="d441b542-f8ce-47d8-ac85-5129fee115bc"] .spell-art-cutout-frame::before{
 clip-path:polygon(0 0,100% 0,100% 11%,11% 11%,11% 100%,0 100%);
}

/* HERMES · compact previews in the spell master, same crop as the combat icon. */
.adminspelltable .spell-master-icon-cell{display:flex;justify-content:center;align-items:center;padding:5px 3px}
.spell-master-icon-thumb{position:relative;display:block;flex:0 0 48px;width:48px;height:48px;padding:0;overflow:hidden;
 border:1px solid #89663e;border-radius:9px;background:radial-gradient(circle at 50% 30%,#443521,#161513 83%);
 box-shadow:inset 0 0 0 2px #201915,0 2px 5px #0005;cursor:pointer}
.spell-master-icon-thumb.has-icon{border-color:#d1a85e}
.spell-master-icon-thumb:hover{border-color:#f0cb83;box-shadow:0 0 0 2px #d9a95655}
.spell-master-icon-thumb:focus-visible{outline:2px solid #f1ca7b;outline-offset:2px}
.spell-master-icon-thumb img{position:absolute;display:block;max-width:none!important;max-height:none!important;pointer-events:none}
.spell-master-icon-thumb img[hidden],.spell-master-icon-symbol[hidden]{display:none!important}
.spell-master-icon-symbol{position:absolute;inset:0;display:grid;place-items:center;color:#9a8c76;font:700 25px Georgia,serif}
.spell-master-icon-thumb.has-icon .spell-master-icon-symbol{color:#e5bd7c}
.spell-master-icon-thumb.icon-failed{border-color:#b96b64}
.spell-master-icon-thumb.icon-failed .spell-master-icon-symbol{color:#e8a09a}
@media(max-width:700px){.spell-master-icon-thumb{width:42px;height:42px;flex-basis:42px}}

/* BESVÄRJELSE ILLUSTRATION WIDE — full uncropped preview, independent image slot. */
.spell-art-wide-preview{width:min(100%,630px);min-height:130px;display:grid;place-items:center;overflow:hidden;border:2px solid #bb884e;border-radius:10px;background:#1e1413}
.spell-art-wide-preview img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}
.spell-art-wide-preview img[hidden]{display:none!important}
.spell-art-wide-preview .spell-art-empty{color:#d6b481;padding:24px;text-align:center}
.spell-art-wide-actions{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}
.spell-art-pane-wide .spell-art-help{display:block;max-width:630px}

/* BESVÄRJELSE ILLUSTRATION: complete 1:1 image, without any crop controls. */
.spell-art-square-preview{width:min(100%,290px);aspect-ratio:1/1;min-height:0}
.spell-art-square-preview img{width:100%;height:100%;object-fit:contain}
/* Deployment retry: preserve title marquee, smaller fact typography and compact description. */
/* ARCANE SPELL CODEX — same approved premium-fantasy vocabulary as skill cards.
 * Scoped: no changes to skill, weapon, admin editor or combat modals.
 */
#spellCodexModal{z-index:7001;background:rgba(9,7,5,.85);backdrop-filter:blur(5px);padding:10px}
#spellCodexModal>.modal{
 position:relative;box-sizing:border-box;width:min(780px,100%);
 max-height:calc(100dvh - 20px);overflow-y:auto;overflow-x:hidden;
 overscroll-behavior:contain;scrollbar-color:#806137 #1b160f;
 border:2px solid #b58d4d;border-radius:17px;
 background:#17180f url("./leather-CKoMKado.webp") center/100% 100% no-repeat;
 color:#f2ddb4;box-shadow:0 24px 70px #000d,0 0 0 5px #362817
}
#spellCodexModal>.modal::before{content:"";position:absolute;inset:5px;pointer-events:none;z-index:2;border:1px solid #c7a36a66;border-radius:12px}
#spellCodexModal .modalhead{
 --spell-icon-size:100px;
 display:grid;grid-template-columns:25% minmax(0,1fr) 25%;align-items:center;
 min-height:122px;padding:0;position:relative;overflow:visible;
 background:url("./header-C4UzKJog.webp") center/100% 100% no-repeat;border:0
}
#spellCodexModal .modalhead::before,#spellCodexModal .modalhead::after{content:none;display:none}
#spellCodexModal #spellCodexTitle{
 grid-column:2;z-index:2;transform:translateY(5px);
 margin:0;min-width:0;width:100%;max-width:100%;text-align:center;overflow:hidden;
 color:#f0d69b;text-shadow:0 2px 3px #000,0 0 12px #f0bd6133;
 font:normal clamp(21px,2.7vw,29px)/1.05 Georgia,"Times New Roman",serif
}
#spellCodexModal .spell-codex-title-viewport{display:block;width:100%;min-width:0;overflow:hidden}
#spellCodexModal .spell-codex-title-text{display:inline-block;white-space:nowrap;max-width:none}
#spellCodexModal #spellCodexTitle.is-scrolling .spell-codex-title-viewport{text-align:left}
#spellCodexModal #spellCodexTitle.is-scrolling .spell-codex-title-text{
 animation:spell-codex-title-pan var(--spell-title-duration,10s) ease-in-out infinite
}
@keyframes spell-codex-title-pan{
 0%,14%,100%{transform:translateX(0)}
 46%,64%{transform:translateX(var(--spell-title-shift,0px))}
}
#spellCodexModal .spell-codex-icon{
 position:absolute;top:54%;left:clamp(22px,4.5%,38px);transform:translateY(-50%);
 z-index:3;width:var(--spell-icon-size);height:var(--spell-icon-size);display:grid;place-items:center;
 color:#c8a35d;font:48px Georgia,serif;overflow:visible
}
#spellCodexModal .spell-codex-icon img{display:block;width:100%;height:100%;object-fit:contain}
#spellCodexModal .modalclose{
 position:absolute;top:54%;right:7.5%;transform:translateY(-50%);z-index:4;
 box-sizing:border-box;width:76px;height:76px;min-width:44px;min-height:44px;
 margin:0;padding:0;border:0;border-radius:50%;
 background:transparent url("./close-button-BFvhSyXX.webp") center/contain no-repeat;
 font-size:0;color:transparent;text-shadow:none;cursor:pointer;box-shadow:none
}
#spellCodexModal .modalclose:hover{filter:brightness(1.13)}
#spellCodexModal .modalclose:focus-visible{outline:2px solid #f3d8a6;outline-offset:2px}
#spellCodexModal .spell-codex-body{padding:0 0 max(14px,env(safe-area-inset-bottom,0px))}
#spellCodexModal .spell-codex-hero{
 position:relative;box-sizing:border-box;margin:0 12px;width:calc(100% - 24px);
 aspect-ratio:16/9;overflow:hidden;border:2px solid #9e7841;border-radius:5px;
 background:radial-gradient(circle,#53452c,#20160f);box-shadow:0 3px 10px #000b
}
#spellCodexModal .spell-codex-hero img{display:block;width:100%;height:100%;object-fit:contain}
#spellCodexModal .spell-codex-hero-fallback{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px;color:#ceb88d;font:italic 17px Georgia,serif}
#spellCodexModal .spell-codex-hero.has-art .spell-codex-hero-fallback{display:none}
#spellCodexModal .spell-codex-stats,#spellCodexModal .spell-codex-facts{display:grid;gap:8px;padding:12px 17px 0;grid-template-columns:repeat(4,minmax(0,1fr))}
#spellCodexModal .spell-codex-facts{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:8px;padding-bottom:12px}
#spellCodexModal .spell-codex-stat{
 min-width:0;min-height:69px;display:flex;flex-direction:column;justify-content:center;gap:5px;
 padding:9px 6px;text-align:center;box-sizing:border-box;
 background:#241b12 url("./stat-plate-C_C_vFFX.webp") center/100% 100% no-repeat
}
#spellCodexModal .spell-codex-stat span{color:#e3c28b;font:normal 12px Georgia,serif}
#spellCodexModal .spell-codex-stat strong{color:#f1dcad;font:700 16px/1.18 Georgia,serif;overflow-wrap:anywhere}
#spellCodexModal .spell-codex-description{
 margin:0 17px 12px;padding:22px 28px 27px;
 background:#dfc495 url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20160%20160'%20width='160'%20height='160'%3e%3cdefs%3e%3cfilter%20id='paper'%3e%3cfeTurbulence%20baseFrequency='.045'%20numOctaves='3'%20seed='17'%20stitchTiles='stitch'%20type='fractalNoise'%20result='noise'/%3e%3cfeColorMatrix%20in='noise'%20type='matrix'%20values='0%200%200%200%20.36%200%200%200%200%20.23%200%200%200%200%20.11%200%200%200%20.19%200'/%3e%3c/filter%3e%3c/defs%3e%3crect%20width='160'%20height='160'%20fill='%23e6cda4'/%3e%3crect%20width='160'%20height='160'%20filter='url(%23paper)'%20opacity='.35'/%3e%3cpath%20d='M3%2035Q52%2048%2093%2031T158%2032M0%20129Q34%20117%2065%20136T160%20122'%20fill='none'%20stroke='%2383653c'%20stroke-width='.8'%20opacity='.09'/%3e%3ccircle%20cx='46'%20cy='98'%20r='29'%20fill='%23b78e56'%20opacity='.035'/%3e%3c/svg%3e") left top/160px 160px repeat;
 border:2px solid #b48d56;border-radius:10px;box-shadow:inset 0 0 20px #855a3150,0 5px 12px #0008;
 color:#352315
}
#spellCodexModal .spell-codex-description h3{
 display:flex;align-items:center;gap:15px;margin:0 0 12px;color:#3d2b1a;
 font:normal 23px/1.15 Georgia,serif
}
#spellCodexModal .spell-codex-description h3::after{content:"";height:13px;flex:1;min-width:0;background:url("./divider-CYnptNeG.webp") center/contain no-repeat}
#spellCodexModal .spell-codex-description p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:normal 16px/1.5 Georgia,serif}
.adminspelltable .spell-codex-open{
 padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;
 text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;
 cursor:pointer;text-align:left
}
.adminspelltable .spell-codex-open:hover{color:#f6d697}
.adminspelltable .spell-codex-open:focus-visible{outline:2px solid #f6d697;outline-offset:3px;border-radius:2px}
@media(max-width:560px){
 #spellCodexModal{padding:6px}
 #spellCodexModal>.modal{width:100%;max-height:calc(100dvh - 12px);border-radius:13px}
 #spellCodexModal .modalhead{--spell-icon-size:82px;grid-template-columns:34% minmax(0,1fr) 34%;min-height:108px}
 #spellCodexModal #spellCodexTitle{font-size:clamp(16px,4.3vw,21px);transform:translateY(4px)}
 #spellCodexModal .spell-codex-icon{left:20px}
 #spellCodexModal .modalclose{width:66px;height:66px}
 #spellCodexModal .spell-codex-hero{width:calc(100% - 16px);margin:0 8px}
 #spellCodexModal .spell-codex-stats{gap:4px;padding:8px 10px 0}
 #spellCodexModal .spell-codex-facts{gap:5px;padding:6px 10px 10px}
 #spellCodexModal .spell-codex-stat{min-height:58px;padding:6px 3px}
 #spellCodexModal .spell-codex-stat span{font-size:clamp(10px,2.4vw,12px)}
 #spellCodexModal .spell-codex-stat strong{font-size:clamp(11px,3vw,14px)}
 #spellCodexModal .spell-codex-description{margin:0 11px 12px;padding:18px 17px 21px}
 #spellCodexModal .spell-codex-description h3{font-size:21px}
 #spellCodexModal .spell-codex-description p{font-size:15px}
}

@media(prefers-reduced-motion:reduce){
 #spellCodexModal #spellCodexTitle.is-scrolling .spell-codex-title-text{animation:none}
 #spellCodexModal #spellCodexTitle.is-scrolling .spell-codex-title-viewport{overflow-x:auto;scrollbar-width:none}
 #spellCodexModal #spellCodexTitle.is-scrolling .spell-codex-title-viewport::-webkit-scrollbar{display:none}
}
/* v0.35.135 — compact desktop combat dashboard.
   No duplicate combat title row: the app banner is the heading.
   Keep active round + current attack visible without clipping content. */
@media (min-width:1024px){
  main:has(> #combatPage:not(.hidden)){
    padding-top:0;
  }
  #combatPage .combatpage{
    padding-top:0;
    margin-top:0;
  }
  #combatPage #combatBody{
    margin-top:0;
    padding-top:0;
  }
  #combatPage .combat-shell.combat-shell-live{
    margin-top:0;
    column-gap:10px;
    row-gap:8px;
    align-items:start;
  }
  #combatPage .combat-shell-live .combat-left-column{
    gap:6px;
  }
  #combatPage .combat-shell-live .combat-left-column > .combat-mini-attack{
    padding:7px 8px;
    margin:0;
  }
  #combatPage .combat-shell-live .combat-left-column .combat-turn-head{
    padding:5px 8px 4px;
    row-gap:3px;
  }
  #combatPage .combat-shell-live .combat-left-column .combat-turn-actor{
    padding:4px 7px 4px;
    gap:5px 7px;
  }
  #combatPage .combat-shell-live .combat-left-column .combat-turn-stats > div{
    padding:4px 2px 5px;
  }
  #combatPage .combat-shell-live .combat-mini-title{
    margin-bottom:5px;
  }
  #combatPage .combat-shell-live .combat-mini-duel{
    gap:4px;
  }
  #combatPage .combat-shell-live .combat-mini-attack .combat-attack-result{
    margin-top:7px;
  }
  #combatPage .combat-shell-live .combat-left-column > .combat-mini-attack,
  #combatPage .combat-shell-live .combat-turn-panel{
    max-height:none;
    overflow:visible;
  }
}
/* Compact short laptop screens further, without hiding any action or result. */
@media (min-width:1024px) and (max-height:830px){
  #combatPage .combat-shell-live .combat-left-column{gap:4px}
  #combatPage .combat-shell-live .combat-left-column .combat-turn-actor{gap:3px 6px;padding:3px 6px}
  #combatPage .combat-shell-live .combat-left-column .combat-turn-head{padding:4px 6px 3px}
  #combatPage .combat-shell-live .combat-turn-actions .combat-row-tool-btn{height:34px}
  #combatPage .combat-shell-live .combat-left-column .combat-turn-stats>div{padding:3px 2px 4px}
  #combatPage .combat-shell-live .combat-left-column > .combat-mini-attack{padding:6px}
}
/* End combat is a deliberate, GM-only action beside Play / Reset.
   Never let it look like the harmless 'end turn' icon. */
#combatPage .combat-gm-controls .combat-stop-btn{
  border:1px solid #a05a48;
  background:linear-gradient(#633024,#401b18);
  color:#ffe2d1;
  font-weight:800;
  white-space:normal;
}
#combatPage .combat-gm-controls .combat-stop-btn:hover:not(:disabled){
  background:linear-gradient(#793a2b,#55211b);
  border-color:#d07c63;
}
#combatPage .combat-gm-controls .combat-stop-btn:disabled{
  opacity:.55;
  cursor:wait;
}

/* Panel host is semantically addressable but must not alter left-column height. */
@media(min-width:1024px){
 #combatPage .combat-shell-live .combat-left-column > #combatActionPanel > .combat-mini-attack{
  padding:7px 8px;margin:0;max-height:none;overflow:visible;
 }
}
/* v0.35.136 — user's supplied bronze/leather banner, shared across equipment slots.
   Restrict to the round panel, not character-sheet equipment or attack results. */
#combatPage .combat-turn-panel > .combat-turn-stats {
  position:relative;
  isolation:isolate;
  box-sizing:border-box;
  padding:7px 11px 8px;
  border-top:0;
  border-radius:0 0 7px 7px;
  background-color:#1d110d;
  background-image:url("./round-equipment-leather-Bte8ENMo.webp");
  background-position:center center;
  background-repeat:no-repeat;
  background-size:100% 100%;
  /* The original gilded outline is painted in the uploaded asset. */
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art {
  position:relative;
  z-index:1;
  background:transparent;
  border-right:1px solid rgba(198,153,94,.20);
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:last-child {
  border-right:0;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art > span {
  color:#e7caa0;
  text-shadow:0 1px 3px #090604;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art > small {
  color:#e7d2b1;
  text-shadow:0 1px 3px #090604;
}
@media(max-width:760px){
  #combatPage .combat-turn-panel > .combat-turn-stats{
    padding:6px 9px 7px;
  }
}
@media(max-width:420px){
  #combatPage .combat-turn-panel > .combat-turn-stats{
    padding:5px 8px 6px;
  }
}
/* v0.35.138 — top-right artwork details for weapons, shields, armor and
   projectiles in the Runda equipment row only. Other views remain unchanged. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.weapon
> .combat-turn-art-frame{
  position:relative;
  overflow:hidden;
}

/* Art has a transparent square canvas; placing a 2x image at the frame's
   top-right corner crops it to roughly the upper-right source quadrant. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.weapon
> .combat-turn-art-frame > img.combat-turn-art{
  position:absolute;
  inset:auto 0 auto auto;
  top:0;
  right:0;
  width:210%;
  height:210%;
  max-width:none;
  max-height:none;
  min-width:0;
  min-height:0;
  display:block;
  object-fit:contain;
  object-position:top right;
  transform:none;
  transform-origin:top right;
  pointer-events:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.8));
}

/* Two-handed grip spans two slots. Crop the weapon-head (upper-right
   source quadrant), then rotate the detail clockwise into horizontal pose. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.weapon.twohand[data-combat-crop="top-right"]
> .combat-turn-art-frame > img.combat-turn-art{
  /* Source art is square: never scale it into a wide, shallow 2:1
     rectangle with object-fit:contain. That collapses the staff to a line. */
  top:50%;
  right:0;
  bottom:auto;
  left:auto;
  width:200%;
  height:auto;
  aspect-ratio:1 / 1;
  object-fit:contain;
  object-position:top right;
  transform:rotate(45deg);
  transform-origin:top right;
}

/* Never enlarge the magical sigil; it is an independent overlay. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.weapon
> .combat-turn-art-frame > .alea-magic-item-dot{
  position:absolute;
  z-index:3;
}

/* Same upper-right 2.1× crop for shields and chest armor as for weapons.
   The leather background, labels and magical badge remain unchanged. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.shield,.armor)
> .combat-turn-art-frame{
  position:relative;
  overflow:hidden;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.shield,.armor)
> .combat-turn-art-frame > img.combat-turn-art{
  position:absolute;
  top:0;
  right:0;
  width:210%;
  height:210%;
  max-width:none;
  max-height:none;
  min-width:0;
  min-height:0;
  display:block;
  object-fit:contain;
  object-position:top right;
  transform:none;
  transform-origin:top right;
  pointer-events:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.8));
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.shield,.armor)
> .combat-turn-art-frame > .alea-magic-item-dot{
  position:absolute;
  z-index:3;
}
/* Give each ammo type a viewport so its enlargement never overlaps another. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile
 .combat-turn-ammo-images > .combat-turn-projectile-crop{
  display:grid;
  place-items:center;
  position:relative;
  flex:1 1 0;
  min-width:0;
  height:100%;
  overflow:hidden;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile
 .combat-turn-projectile-crop > img.combat-turn-art{
  position:absolute;
  top:0;
  right:0;
  display:block;
  width:210%;
  height:210%;
  min-width:0;
  min-height:0;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:top right;
  transform:none;
  transform-origin:top right;
  pointer-events:none;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.8));
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile
 .combat-turn-projectile-crop > .combat-turn-ammo-placeholder{
  position:relative;
  z-index:1;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile
> .combat-turn-art-frame > .combat-turn-ammo-count{
  z-index:3;
}
/* v0.35.139: per-master crop quadrant, combat round only. */
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.weapon,.shield,.armor),
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile .combat-turn-projectile-crop {
 --crop-t:0;--crop-b:auto;--crop-l:auto;--crop-r:0;--crop-origin:top right;--crop-pos:top right;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.weapon,.shield,.armor)[data-combat-crop="top-left"],
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile .combat-turn-projectile-crop[data-combat-crop="top-left"]{
 --crop-t:0;--crop-b:auto;--crop-l:0;--crop-r:auto;--crop-origin:top left;--crop-pos:top left;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.weapon,.shield,.armor)[data-combat-crop="bottom-left"],
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile .combat-turn-projectile-crop[data-combat-crop="bottom-left"]{
 --crop-t:auto;--crop-b:0;--crop-l:0;--crop-r:auto;--crop-origin:bottom left;--crop-pos:bottom left;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.weapon,.shield,.armor)[data-combat-crop="bottom-right"],
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile .combat-turn-projectile-crop[data-combat-crop="bottom-right"]{
 --crop-t:auto;--crop-b:0;--crop-l:auto;--crop-r:0;--crop-origin:bottom right;--crop-pos:bottom right;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.weapon,.shield,.armor) > .combat-turn-art-frame > img.combat-turn-art,
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile .combat-turn-projectile-crop > img.combat-turn-art{
 top:var(--crop-t);bottom:var(--crop-b);left:var(--crop-l);right:var(--crop-r);
 transform-origin:var(--crop-origin);object-position:var(--crop-pos);
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art:is(.weapon,.shield,.armor)[data-combat-crop="full"] > .combat-turn-art-frame > img.combat-turn-art,
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.projectile .combat-turn-projectile-crop[data-combat-crop="full"] > img.combat-turn-art{
 position:static;inset:auto;width:100%;height:100%;max-width:92px;max-height:65px;
 transform:none;object-fit:contain;object-position:center;
}
#combatPage .combat-turn-panel > .combat-turn-stats > .combat-turn-equip-art.weapon.twohand[data-combat-crop="full"] > .combat-turn-art-frame > img.combat-turn-art{
 width:min(75%,145px);height:100px;max-width:none;max-height:none;
 transform:rotate(45deg) scale(1.12);transform-origin:center;
}
.combat-crop-field small{display:block;font-size:11px;margin-top:4px;color:#bca17e;line-height:1.35}
/* Alea Crusaders v0.35.187: position weapon visibly higher/right, mask blade at gold edge. */
#combatPage .combat-shell-live .combat-mini-attack .combat-mini-duel.combat-illustrated-duel{
 display:grid;grid-template-columns:minmax(0,1fr) clamp(16px,2vw,26px) minmax(0,1fr) clamp(16px,2vw,26px) minmax(0,1fr);
 gap:clamp(1px,.35vw,5px);align-items:stretch;min-width:0;isolation:isolate;
}
#combatPage .combat-illustrated-duel .combat-mini-side.combat-duelist-card,
#combatPage .combat-illustrated-duel .combat-mini-side.combat-duelist-card.defender{
 display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;
 gap:0;min-width:0;min-height:0;padding:0;border:0;
 border-radius:0;box-sizing:border-box;
 background:transparent;box-shadow:none;text-align:center;
}
#combatPage .combat-illustrated-duel .combat-duelist-card::before,
#combatPage .combat-illustrated-duel .combat-duelist-card::after{display:none}
#combatPage .combat-illustrated-duel .combat-duelist-copy,
#combatPage .combat-illustrated-duel .combat-duelist-card.defender .combat-duelist-copy{display:contents}
#combatPage .combat-illustrated-duel .combat-duelist-role{
 order:0;align-self:center;display:block;padding:3px 0 5px;
 color:#f0d6a7;font:700 clamp(8px,.95vw,12px)/1.12 Georgia,serif;
 letter-spacing:.025em;text-align:center;
}
#combatPage .combat-illustrated-duel .combat-duelist-portrait{
 order:1;position:relative;align-self:center;display:grid;place-items:center;
 width:100%;height:auto;flex:0 0 auto;min-width:0;min-height:0;max-width:100%;max-height:none;aspect-ratio:4/3;
 overflow:hidden;clip-path:inset(0 round 11px);
 border:0;border-radius:11px;background:#1b120e;box-shadow:none;isolation:isolate;
}
#combatPage .combat-illustrated-duel .combat-duelist-portrait::before{
 content:"";position:absolute;inset:0;z-index:4;pointer-events:none;
 border:0;border-radius:0;box-shadow:none;display:block;
 background:url("data:image/png;base64,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") center/100% 100% no-repeat;
}
/* The gold PNG has inset ornamental edges. Clip all RP/SLP portraits to the
   INSIDE of that frame, rather than allowing the image under the corner metal. */
#combatPage .combat-illustrated-duel .combat-duelist-portrait img{
 position:absolute;z-index:1;display:block;
 left:9%;top:10%;right:auto;bottom:auto;
 width:82%;height:80%;min-width:0;max-width:82%;min-height:0;max-height:none;
 aspect-ratio:auto;box-sizing:border-box;
 object-fit:cover;object-position:center 27%;border-radius:4px;filter:none;
}
#combatPage .combat-illustrated-duel .combat-duelist-name{
 order:2;width:100%;align-self:center;margin-top:5px;min-width:0;
 color:#f8e9d0;text-align:center;font:700 clamp(10px,1.15vw,16px)/1.16 Georgia,serif;
 overflow-wrap:anywhere;white-space:normal;
}
#combatPage .combat-illustrated-duel .combat-duelist-meta{
 order:3;width:100%;align-self:center;margin-top:3px;min-width:0;
 color:#dbc29e;text-align:center;font:500 clamp(9px,.87vw,12px)/1.25 system-ui,sans-serif;
 overflow-wrap:anywhere;white-space:normal;
}
#combatPage .combat-illustrated-duel .combat-mini-arrow{
 align-self:center;justify-self:center;display:block;
 width:clamp(23px,2.4vw,34px);max-width:none;height:auto;aspect-ratio:120/128;
 color:transparent;font-size:0;text-shadow:none;pointer-events:none;
 position:relative;z-index:4;transform:translateY(-12px);
 background:url("./duel-double-chevron-CgjN4PZK.svg") center/contain no-repeat;
}
#combatPage .combat-illustrated-duel .combat-duel-center{
 display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;position:relative;min-width:0;
 box-sizing:border-box;padding:0;border:0;border-radius:0;
 background:transparent;box-shadow:none;text-align:center;
}
#combatPage .combat-illustrated-duel .combat-duel-center-role{
 padding:3px 0 5px;color:#efd5aa;font:700 clamp(8px,.95vw,12px)/1.12 Georgia,serif;
 letter-spacing:.025em;
}
#combatPage .combat-illustrated-duel .combat-duel-center-viewport{
 position:relative;display:block;flex:0 0 auto;width:100%;min-width:0;max-width:100%;height:auto;aspect-ratio:4/3;
 isolation:isolate;overflow:visible;background:radial-gradient(ellipse at center,#422719aa,#120d09dd);
}
#combatPage .combat-illustrated-duel .combat-duel-center-viewport::after{
 content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
 background:url("data:image/png;base64,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") center/100% 100% no-repeat;
}
#combatPage .combat-illustrated-duel .combat-duel-center-name{
 z-index:4;position:relative;width:100%;margin-top:5px;color:#f6e4c8;
 font:700 clamp(10px,1vw,15px)/1.15 Georgia,serif;overflow-wrap:anywhere;
}
#combatPage .combat-illustrated-duel .combat-duel-center-empty{
 position:absolute;inset:0;display:grid;place-items:center;
 font-size:clamp(26px,4.5vw,55px);color:#d0a469;
}
#combatPage .combat-illustrated-duel .combat-duel-spell-art{
 position:absolute;inset:clamp(4px,.65vw,8px);z-index:1;overflow:hidden;
 border-radius:7px;background:transparent;
}
#combatPage .combat-illustrated-duel .combat-duel-spell-art img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 object-fit:fill;pointer-events:none;
}
#combatPage .combat-illustrated-duel .combat-duel-spell-art img[hidden]{display:none!important}
#combatPage .combat-illustrated-duel .combat-duel-weapon-art{
 position:absolute;z-index:2;inset:1px;overflow:hidden;
}
#combatPage .combat-illustrated-duel .combat-duel-weapon-art img{
 position:absolute;max-width:none!important;max-height:none!important;
 width:200%;height:200%;object-fit:contain;filter:drop-shadow(1px 3px 4px #000c);
}
#combatPage .combat-illustrated-duel [data-combat-crop="top-right"] .combat-duel-weapon-art img{top:0;right:0}
#combatPage .combat-illustrated-duel [data-combat-crop="top-left"] .combat-duel-weapon-art img{top:0;left:0}
#combatPage .combat-illustrated-duel [data-combat-crop="bottom-right"] .combat-duel-weapon-art img{bottom:0;right:0}
#combatPage .combat-illustrated-duel [data-combat-crop="bottom-left"] .combat-duel-weapon-art img{bottom:0;left:0}
#combatPage .combat-illustrated-duel [data-combat-crop="full"] .combat-duel-weapon-art img{
 inset:0;width:100%;height:100%;object-fit:contain;
}
/* Keep the saved, pixel-accurate crop within the gold spell frame. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell .combat-duel-center-viewport{
 overflow:hidden;border-radius:10px;
}
/* The cast result is the first and only item in its banner. */
#combatPage .combat-mini-magic .combat-spell-outcome-banner{
 text-align:left;justify-content:flex-start;
}
#combatPage .combat-mini-magic .combat-spell-outcome-banner>b{
 margin:0;text-align:left;justify-content:flex-start;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-attack .combat-mini-duel.combat-illustrated-duel{
  grid-template-columns:minmax(0,1fr) clamp(17px,4.8vw,22px) minmax(0,1fr) clamp(17px,4.8vw,22px) minmax(0,1fr);gap:1px;
 }
 #combatPage .combat-illustrated-duel .combat-mini-arrow{
  width:clamp(29px,7.5vw,40px);transform:translateY(-10px);
 }
 #combatPage .combat-illustrated-duel .combat-mini-side.combat-duelist-card,
 #combatPage .combat-illustrated-duel .combat-mini-side.combat-duelist-card.defender,
 #combatPage .combat-illustrated-duel .combat-duel-center{padding:0;border:0;border-radius:0}
 /* Keep MAGIKER, BESVÄRJELSE and MÅL on single lines in narrow columns. */
 #combatPage .combat-illustrated-duel .combat-duelist-role,
 #combatPage .combat-illustrated-duel .combat-duel-center-role{
  font-size:clamp(7px,1.85vw,9px);line-height:1.15;letter-spacing:0;
  white-space:nowrap;overflow-wrap:normal;word-break:normal;
  padding-top:3px;padding-bottom:4px;
 }
 /* Names wrap at word boundaries only; lighter text improves mobile contrast. */
 #combatPage .combat-illustrated-duel .combat-duelist-name,
 #combatPage .combat-illustrated-duel .combat-duel-center-name{
  font-size:clamp(9px,2.35vw,11px);line-height:1.18;
  overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:nowrap;
  text-shadow:0 1px 4px rgba(0,0,0,.95);
 }
 #combatPage .combat-illustrated-duel .combat-duelist-meta{
  font-size:clamp(8px,2.05vw,10px);line-height:1.2;
  text-shadow:0 1px 4px #000,0 0 6px rgba(0,0,0,.85);
 }
 #combatPage .combat-mini-magic .combat-illustrated-duel .combat-duelist-card{min-height:0}
 #combatPage .combat-mini-attack .combat-illustrated-duel button.combat-portrait-target-button{position:relative;width:100%;min-width:0}
}
/* Consistent image geometry on narrow displays; never stretch the portrait itself. */
#combatPage .combat-illustrated-duel .combat-duelist-portrait img{
 object-fit:cover;object-position:center 27%;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell .combat-duel-spell-art{
 inset:clamp(4px,.65vw,8px);
}
@media(max-width:390px){
 #combatPage .combat-illustrated-duel .combat-duelist-role,
 #combatPage .combat-illustrated-duel .combat-duel-center-role{font-size:7px;letter-spacing:0;white-space:nowrap}
}


/* v0.35.177 — never break names, KP, or BESVÄRJELSE on desktop or phone.
   Keep the font sized for narrow duel columns, with ellipsis only as a last
   resort for unusually long user-entered SLP names. */
#combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
:is(.combat-duelist-role,.combat-duel-center-role,.combat-duelist-name,
    .combat-duel-center-name,.combat-duelist-meta){
 display:block;
 width:100%;max-width:100%;min-width:0;
 margin-left:0;margin-right:0;
 white-space:nowrap;
 text-wrap:nowrap;
 overflow:hidden;
 text-overflow:ellipsis;
 overflow-wrap:normal;
 word-break:normal;
 hyphens:none;
 box-sizing:border-box;
 text-align:center;
 letter-spacing:0;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
:is(.combat-duelist-role,.combat-duel-center-role){
 font-size:clamp(8px,.75vw,11px);
 line-height:1.2;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
:is(.combat-duelist-name,.combat-duel-center-name){
 font-size:clamp(10px,1vw,14px);
 line-height:1.2;
}
#combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
.combat-duelist-meta{
 font-size:clamp(8px,.75vw,11px);
 line-height:1.2;
}
/* The large spell backdrop is already the one atmospheric illustration.
   Suppress the SECOND fireball in the result, without hiding the central
   spell tile or suppressing result text, damage and healing controls. */
#combatPage .combat-shell-live .combat-mini-magic.has-spell-backdrop .combat-spell-result{
 background:#1b1410;
 background-image:none;
}
#combatPage .combat-shell-live .combat-mini-magic.has-spell-backdrop .combat-spell-effect-surface{
 background:linear-gradient(135deg,#211812,#15100d);
 background-image:linear-gradient(135deg,#211812,#15100d);
 padding:13px;
}
#combatPage .combat-shell-live .combat-mini-magic.has-spell-backdrop .combat-spell-effect-artwork{
 display:none;
}
#combatPage .combat-shell-live .combat-mini-magic.has-spell-backdrop .combat-spell-effect-surface::before{
 content:none;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
 :is(.combat-duelist-role,.combat-duel-center-role){
  font-size:clamp(7px,1.8vw,9px);
 }
 #combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
 :is(.combat-duelist-name,.combat-duel-center-name){
  font-size:clamp(8px,2.15vw,10px);
 }
 #combatPage .combat-shell-live .combat-mini-attack .combat-illustrated-duel
 .combat-duelist-meta{
  font-size:clamp(7px,1.95vw,9px);
 }
 #combatPage .combat-shell-live .combat-mini-magic.has-spell-backdrop .combat-spell-effect-surface{
  padding:11px;
 }
}


/* Non-quick spell, SR1: a framed spell icon replaces the target portrait.
   Keep the same three-column gold-frame composition as SR2 and attacks. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-portrait{
 background:radial-gradient(ellipse at 50% 50%,rgba(117,74,43,.65),rgba(24,14,13,.98) 76%);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-art{
 position:absolute;inset:10% 9%;z-index:1;overflow:hidden;
 border-radius:5px;isolation:isolate;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-art img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 object-fit:fill;pointer-events:none;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-art img[hidden]{
 display:none!important;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-duelist-name{
 white-space:nowrap;text-wrap:nowrap;overflow:hidden;text-overflow:ellipsis;
 font-size:clamp(10px,1vw,13px);line-height:1.12;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-duelist-name{
  font-size:clamp(8px,2vw,10px);line-height:1.1;
 }
}


/* Duel weapon focus: full item art deliberately breaks out of its gold frame.
   This affects only attacks/weapon reactions, never the framed spell artwork. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon{
 overflow:visible;padding-top:clamp(11px,1.2vw,17px);min-width:0;
}
#combatPage .combat-illustrated-duel button.combat-duel-center.is-weapon{
 appearance:none;display:flex;flex-direction:column;align-items:stretch;
 width:100%;min-width:0;max-width:100%;margin:0;
 padding-right:0;padding-bottom:0;padding-left:0;border:0;
 background:transparent;color:inherit;font:inherit;text-align:center;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-center-viewport{
 overflow:visible;isolation:isolate;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-center-viewport::after{
 z-index:1;
}
/* Put just the lower golden edge IN FRONT of the blade, so the cropped
   weapon visually emerges from behind the frame rather than floating on it. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-center-viewport::before{
 content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
 background:url("data:image/png;base64,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") center/100% 100% no-repeat;
 clip-path:inset(89% 0 0 0);
}
/* The selected master-register quadrant stays in a square, undistorted crop.
   Place the entire crop visibly higher/right. The weapon must be hidden at
   the gold frame bottom without leaving a rectangular art strip beneath it. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-weapon-art{
 position:absolute;z-index:4;inset:auto;
 top:-51%;left:63%;width:125%;height:auto;aspect-ratio:1 / 1;
 transform:translateX(-50%);display:block;overflow:hidden;pointer-events:none;
 /* Keep the lower edge of the weapon art behind the inset gold border. */
 clip-path:inset(0 0 14% 0);background:transparent;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-weapon-art img{
 position:absolute;display:block;
 top:0!important;left:auto!important;right:0!important;bottom:auto!important;
 width:200%!important;height:200%!important;max-width:none!important;max-height:none!important;
 object-fit:contain;object-position:center;transform:none;
 filter:drop-shadow(1px 4px 5px rgba(0,0,0,.88)) drop-shadow(0 0 7px rgba(205,156,84,.23));
}
/* Keep the saved quadrant from the weapon master; default is top-right. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon
 [data-combat-crop="top-left"] .combat-duel-weapon-art img{
 top:0!important;left:0!important;right:auto!important;bottom:auto!important;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon
 [data-combat-crop="bottom-right"] .combat-duel-weapon-art img{
 top:auto!important;left:auto!important;right:0!important;bottom:0!important;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon
 [data-combat-crop="bottom-left"] .combat-duel-weapon-art img{
 top:auto!important;left:0!important;right:auto!important;bottom:0!important;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon
 [data-combat-crop="full"] .combat-duel-weapon-art img{
 top:0!important;left:0!important;right:auto!important;bottom:auto!important;
 width:100%!important;height:100%!important;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-center-name{
 z-index:5;pointer-events:none;
}
#combatPage .combat-illustrated-duel .combat-weapon-switch{
 position:relative;cursor:pointer;touch-action:manipulation;
}
#combatPage .combat-illustrated-duel .combat-weapon-switch:focus-visible{
 outline:2px solid #f4cb79;outline-offset:4px;border-radius:5px;
}
#combatPage .combat-illustrated-duel .combat-weapon-switch .combat-duel-weapon-art img{
 transition:filter .18s ease,transform .18s ease;
}
#combatPage .combat-illustrated-duel .combat-weapon-switch:is(:hover,:focus-visible) .combat-duel-weapon-art img{
 transform:scale(1.06);
 filter:drop-shadow(1px 4px 7px #000) drop-shadow(0 0 11px rgba(246,186,96,.68));
}
#combatPage .combat-illustrated-duel .combat-weapon-switch-mark{
 position:absolute;right:-4px;bottom:-4px;z-index:6;
 display:grid;place-items:center;width:23px;height:23px;
 border:1px solid #d5a35b;border-radius:50%;background:rgba(40,25,15,.94);
 box-shadow:0 0 8px #0009,inset 0 0 6px #aa6b32;
 color:#ffdfa0;font:700 20px/1 Georgia,serif;pointer-events:none;
}
@media(max-width:760px){
 #combatPage .combat-illustrated-duel .combat-duel-center.is-weapon{
  padding-top:clamp(8px,2vw,13px);
 }
 #combatPage .combat-illustrated-duel .combat-duel-center.is-weapon .combat-duel-weapon-art{
  top:-50%;left:65%;width:120%;height:auto;
  /* More apparent offset; blade disappears on the lower gold edge. */
  clip-path:inset(0 0 11% 0);
 }
 #combatPage .combat-illustrated-duel .combat-weapon-switch-mark{
  width:19px;height:19px;right:-2px;bottom:-2px;font-size:16px;
 }
}
@media(prefers-reduced-motion:reduce){
 #combatPage .combat-illustrated-duel .combat-weapon-switch .combat-duel-weapon-art img{
  transition:none;
 }
}

/* v0.35.190 – only an explicitly uploaded transparent cutout emerges above
   the center gold frame. This does not change icon or background crops. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout{
 overflow:visible;padding-top:clamp(11px,1.2vw,17px);
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout .combat-duel-center-viewport{
 overflow:visible;isolation:isolate;
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout .combat-duel-center-viewport::after{z-index:1}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout .combat-duel-center-viewport::before{
 content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
 background:url("data:image/png;base64,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") center/100% 100% no-repeat;
 clip-path:inset(89% 0 0 0);
}
#combatPage .combat-illustrated-duel .combat-duel-spell-cutout{
 position:absolute;inset:0;z-index:4;overflow:visible;pointer-events:none;
 clip-path:inset(-150% -100% 8% -100%);
}
#combatPage .combat-illustrated-duel .combat-duel-spell-cutout img{
 position:absolute;display:block;max-width:none!important;max-height:none!important;
 object-fit:contain;pointer-events:none;
 filter:drop-shadow(1px 5px 5px #000d) drop-shadow(0 0 8px rgba(227,168,87,.35));
}
#combatPage .combat-illustrated-duel .combat-duel-spell-cutout img[hidden]{display:none!important}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout .combat-duel-center-name{
 z-index:6;pointer-events:none;
}
@media(max-width:760px){
 #combatPage .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout{
  padding-top:clamp(8px,2vw,13px);
 }
}

/* v0.35.191 – Eld (F): the tail enters behind the upper-left gold rim,
   while the fireball breaks out over the lower-right corner. */
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.is-eld-projectile .combat-duel-spell-cutout{
 clip-path:inset(0 -110% -100% 0);
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.is-eld-projectile .combat-duel-spell-cutout img{
 transform:translateY(22%);
}
#combatPage .combat-illustrated-duel .combat-duel-center.is-spell.is-eld-projectile .combat-duel-center-viewport::before{
 /* Only the top and left parts of the golden border cover the entering tail. */
 clip-path:polygon(0 0,100% 0,100% 11%,11% 11%,11% 100%,0 100%);
}

/* v0.35.193 – Align the three magic cards. The ornate PNGs already
   contain alpha; it was the CSS backgrounds making solid dark slabs. */
#combatPage .combat-shell-live .combat-mini-magic .combat-mini-duel.combat-illustrated-duel{
 align-items:start;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel .combat-duel-center.is-spell.has-spell-cutout{
 padding-top:0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel .combat-duel-center.is-spell .combat-duel-center-viewport,
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel .combat-mini-side .combat-duelist-portrait,
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel .combat-magic-preparation .combat-preparation-portrait{
 background:transparent;box-shadow:none;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel
:is(.combat-duelist-role,.combat-duel-center-role){
 padding:3px 0 5px;line-height:1.2;
}
/* Dynamic first available casting round, inside the third gold frame. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-portrait{
 display:grid;place-items:center;isolation:isolate;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-round{
 position:relative;z-index:2;display:grid;place-items:center;
 width:76%;aspect-ratio:1/1;max-height:88%;border:2px solid rgba(230,178,94,.92);
 border-radius:50%;
 background:radial-gradient(circle,rgba(43,24,15,.90) 12%,rgba(38,22,13,.80) 70%,rgba(19,11,9,.40));
 box-shadow:0 0 15px rgba(240,121,41,.48),inset 0 0 14px rgba(234,138,58,.42);
 font:700 clamp(12px,1.8vw,26px)/1 Georgia,serif;
 color:#f7deb0;text-shadow:0 2px 5px #120a07,0 0 9px rgba(255,168,84,.6);
 white-space:nowrap;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-caption{
 display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
 gap:2px;white-space:normal;text-wrap:wrap;overflow:visible;
 text-overflow:clip;line-height:1.18;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-spell{
 display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-eg{
 display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
 width:clamp(23px,2.9vw,36px);height:clamp(23px,2.9vw,36px);flex:0 0 auto;
 border:1px solid #e3b570;border-radius:50%;background:rgba(49,27,15,.9);
 box-shadow:inset 0 0 6px #c48447aa,0 0 8px rgba(0,0,0,.65);
 color:#ffe0a7;text-shadow:0 1px 3px #000;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-eg strong{
 font:700 clamp(11px,1.45vw,18px)/1 Georgia,serif;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-preparation-eg small{
 font:700 clamp(6px,.68vw,9px)/1 Georgia,serif;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-preparation-round{
  font-size:clamp(10px,2.8vw,17px);border-width:1px;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-preparation-spell{gap:3px}
 #combatPage .combat-shell-live .combat-mini-magic .combat-preparation-eg{
  width:22px;height:22px;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-preparation-eg strong{font-size:11px}
 #combatPage .combat-shell-live .combat-mini-magic .combat-preparation-eg small{font-size:6px}
}

/* v0.35.194: transparent bronze hourglass emerges above the third frame.
   Keep the top of all three frame PNGs level; only the cutout protrudes. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-portrait{
 position:relative;isolation:isolate;overflow:visible;clip-path:none;
 background:transparent;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass{
 position:absolute;z-index:5;pointer-events:none;
 display:block;left:50%;top:-22%;width:68%;aspect-ratio:3/4;
 transform:translateX(-50%);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass img{
 position:static;display:block;
 width:100%;height:100%;max-width:none;max-height:none;
 object-fit:contain;object-position:center center;
 filter:drop-shadow(0 4px 7px rgba(0,0,0,.78)) drop-shadow(0 0 7px rgba(234,144,60,.28));
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-portrait::after{
 content:"";position:absolute;inset:0;z-index:6;pointer-events:none;
 background:url("data:image/png;base64,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") center/100% 100% no-repeat;
 clip-path:inset(94% 0 0 0);
}
/* The SR value is actual first casting SR, independent of the
   1 SR duration permanently engraved on the hourglass. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-role{
 position:relative;z-index:8;white-space:nowrap;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-role small{
 font:700 .9em/1.1 Georgia,serif;color:#f2d8ae;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass{
  width:68%;top:-22%;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-role small{
  font-size:.85em;
 }
}

/* v0.35.195 – preparing a spell is one visual card sequence, with no
   redundant status or instruction strips beneath the gold framed illustrations. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 :is(.combat-duelist-portrait,.combat-duel-center-viewport){margin-top:clamp(42px,4vw,56px)}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-magic-preparation{position:relative;padding-bottom:clamp(48px,5vw,76px)}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-topline{
 position:absolute;top:clamp(19px,1.8vw,26px);left:0;right:0;z-index:10;
 display:flex;justify-content:center;align-items:center;min-width:0;pointer-events:none;
 color:#f7e0b5;text-shadow:0 2px 5px #0c0706,0 0 8px #000;
 font:700 clamp(11px,1.15vw,16px)/1.1 Georgia,serif;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-spell{
 display:inline-flex;align-items:center;justify-content:center;gap:clamp(3px,.6vw,8px);
 max-width:100%;white-space:nowrap;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-eg{
 width:clamp(24px,2.7vw,38px);height:clamp(24px,2.7vw,38px);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-portrait{
 isolation:isolate;overflow:visible;clip-path:none;
 background:radial-gradient(ellipse at 50% 48%,rgba(46,27,20,.95) 0%,rgba(22,14,12,.96) 68%,rgba(9,7,6,.98) 100%);
 box-shadow:inset 0 0 24px rgba(0,0,0,.8),0 7px 17px rgba(0,0,0,.53);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass{
 left:50%;top:-21%;width:96%;height:auto;aspect-ratio:3/4;
 transform:translateX(-50%);z-index:5;overflow:visible;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass img{
 position:static;display:block;width:100%;height:100%;max-width:none;max-height:none;
 object-fit:contain;object-position:center;filter:
  drop-shadow(0 10px 12px rgba(0,0,0,.92))
  drop-shadow(3px 5px 6px rgba(0,0,0,.76))
  drop-shadow(0 0 9px rgba(237,140,56,.25));
}
#combatPage .combat-shell-live .combat-mini-magic
 .combat-duel-center.is-spell.is-eld-projectile .combat-duel-spell-cutout{
 clip-path:inset(12% -115% -110% 11%);
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
  :is(.combat-duelist-portrait,.combat-duel-center-viewport){margin-top:42px}
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-topline{
  top:19px;font-size:clamp(9px,2.3vw,12px);
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass{
  width:96%;top:-21%;
 }
}

/* v0.35.195: the dark inset must outrank the transparent generic magic tile. */
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel
 .combat-magic-preparation.combat-mini-side .combat-preparation-portrait.combat-duelist-portrait{
 background:radial-gradient(ellipse at 50% 48%,rgba(46,27,20,.96) 0%,rgba(22,14,12,.97) 68%,rgba(9,7,6,.99) 100%);
 box-shadow:inset 0 0 24px rgba(0,0,0,.86),0 7px 17px rgba(0,0,0,.6);
}

/* v0.35.196 – compact spell preparation: spell name + EG belong over
   the SECOND (spell) frame, not over the third (preparation) frame. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 :is(.combat-duelist-role,.combat-duel-center-role){
 display:flex;align-items:center;justify-content:center;
 height:clamp(32px,2.9vw,38px);min-height:0;box-sizing:border-box;
 padding:2px 0;margin:0;
 line-height:1.15;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 :is(.combat-duelist-portrait,.combat-duel-center-viewport){
 margin-top:clamp(16px,1.65vw,22px);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-magic-preparation{
 padding-bottom:clamp(34px,3.5vw,58px);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-duel-center.is-spell .combat-duel-center-name{
 display:none!important;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-duel-center-role.combat-magic-spell-heading{
 display:flex;gap:clamp(3px,.5vw,7px);min-width:0;
 white-space:nowrap;overflow:visible;
 color:#f6deb7;text-shadow:0 1px 5px #000;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-spell-heading-name{
 display:block;min-width:0;max-width:calc(100% - 28px);
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-spell-heading .combat-preparation-eg{
 width:clamp(24px,2.5vw,33px);height:clamp(24px,2.5vw,33px);
 min-width:24px;flex:0 0 auto;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-role{
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 gap:0;white-space:normal;text-align:center;
}
/* Only the inset receives the darkening. Do NOT put an opaque rounded
   slab or outer box-shadow over the transparent gold corners. */
#combatPage .combat-shell-live .combat-mini-magic .combat-illustrated-duel
 .combat-magic-preparation.combat-mini-side .combat-preparation-portrait.combat-duelist-portrait{
 background:radial-gradient(ellipse at 50% 46%,rgba(56,34,25,.99) 0%,
  rgba(24,15,13,.99) 65%,rgba(12,8,7,.97) 100%) center center / 82% 80% no-repeat;
 box-shadow:none;
}
/* Continue to let the hourglass crown and engraved 1 SR plinth break out
   across the top/bottom gold edges, with a soft contact shadow. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass{
 top:-13%;width:96%;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass img{
 filter:drop-shadow(0 9px 10px rgba(0,0,0,.87))
   drop-shadow(2px 5px 6px rgba(0,0,0,.67))
   drop-shadow(0 0 7px rgba(220,136,54,.2));
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
  :is(.combat-duelist-role,.combat-duel-center-role){
  height:32px;line-height:1.12;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
  :is(.combat-duelist-portrait,.combat-duel-center-viewport){
  margin-top:16px;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-spell-heading-name{
  max-width:calc(100% - 24px);
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-spell-heading .combat-preparation-eg{
  width:24px;height:24px;min-width:24px;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation .combat-preparation-hourglass{
  top:-13%;width:96%;
 }
}

/* v0.35.197 – tighten the three preparation frames and simplify captions.
   Labels now belong BELOW the picture; EG overlaps the lower-left gold
   corner of the SECOND picture. No changes to casting mechanics or EG. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-heading{
 margin-bottom:clamp(3px,.4vw,6px);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-mini-side.attacker .combat-duelist-role{
 display:none!important;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 :is(.combat-duelist-portrait,.combat-duel-center-viewport){
 margin-top:clamp(3px,.4vw,6px);
}
/* Keep the frame top lines aligned with the portrait and preparation tile. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-duel-center.is-spell .combat-duel-center-viewport{
 overflow:visible;isolation:isolate;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-duel-center.is-spell .combat-duel-center-name{
 display:block!important;
 margin-top:5px;
 color:#f8e9d0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-duel-center.is-spell .combat-spell-eg-corner{
 position:absolute;z-index:9;
 left:-7%;bottom:-13%;
 width:clamp(24px,2.5vw,36px);height:clamp(24px,2.5vw,36px);
 min-width:24px;pointer-events:none;
 filter:drop-shadow(1px 4px 6px rgba(0,0,0,.85));
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation
 .combat-preparation-caption{
 display:block;order:2;width:100%;
 margin-top:5px;padding:0;
 white-space:nowrap;text-align:center;
 color:#f8e9d0;font:700 clamp(10px,1.15vw,16px)/1.16 Georgia,serif;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
 .combat-magic-preparation{padding-bottom:0}
/* Horizontal framing is untouched. Center the tall 1 SR hourglass along the
   same vertical axis as the square gold frame; equal overlap above/below. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation
 .combat-preparation-hourglass{
 top:50%;left:50%;width:88%;height:auto;aspect-ratio:3/4;
 transform:translate(-50%,-50%);
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-duel.is-preparing
  :is(.combat-duelist-portrait,.combat-duel-center-viewport){margin-top:4px}
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-preparation
  .combat-preparation-hourglass{
  top:50%;width:88%;transform:translate(-50%,-50%);
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-duel-center.is-spell
  .combat-spell-eg-corner{
  width:24px;height:24px;left:-7%;bottom:-13%;
 }
}

/* v0.35.198 – spell casting: the gold-framed portraits remain the focus.
   No duplicate target notice, status strip or instructions below them.
   Keep casting and context-dependent advanced settings reachable without
   adding a second/third footer row to normal mobile combat. */
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer{
 display:flex;flex-flow:row wrap;justify-content:flex-end;align-items:center;
 column-gap:10px;row-gap:2px;min-width:0;
 margin-top:clamp(2px,.55vw,6px);
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer>.combat-action-confirm{
 order:1;flex:0 0 auto;margin:0 0 0 auto;padding:0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer>.combat-magic-extra{
 order:0;flex:0 1 auto;min-width:0;
 margin:0 auto 0 0;padding:0;border:0;
}
#combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer>.combat-magic-extra[open]{
 order:2;flex:1 1 100%;width:100%;margin-top:5px;padding:5px 0 0;
}
#combatPage .combat-shell-live .combat-mini-magic.planning{
 padding-bottom:8px;
}
@media(max-width:760px){
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer{
  column-gap:6px;margin-top:3px;
 }
 #combatPage .combat-shell-live .combat-mini-magic .combat-magic-footer>.combat-action-confirm .btn{
  min-height:39px;padding:6px 11px;
 }
 #combatPage .combat-shell-live .combat-mini-magic.planning{
  padding-bottom:7px;
 }
}
/* Arcane Gold Cryptex v0.35.207 – approved square-window lion housing.
   The transparent artwork dominates preparation, with integrated bronze
   arrow hit areas and a live spell-name plate. Mechanical inertia is unchanged. */
#combatPage .combat-shell-live .combat-magic-carousel.cryptex-prototype{
 position:relative;min-width:0;width:100%;
 margin:0 0 4px;padding:0;border:0;border-radius:0;
 background:none;box-shadow:none;overflow:visible;
}
/* The cryptex is a sibling of its spell-card content, not a child of a
   framed .combat-mini-attack. This shared host is a genuine stacking
   context even on phones, where #combatActionPanel has display:contents. */
#combatPage .combat-shell-live .combat-magic-float-shell{
 position:relative;
 display:flex;
 flex-direction:column;
 align-items:stretch;
 gap:0;
 min-width:0;
 width:100%;
 overflow:visible;
 isolation:auto;
}
#combatPage .combat-shell-live .combat-magic-float-shell>.combat-mini-attack{
 min-width:0;
 overflow:visible;
}
#combatPage .combat-shell-live .combat-magic-float-shell>.combat-magic-carousel.cryptex-prototype{
 flex:0 0 auto;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-banner{
 display:block;min-width:0;width:100%;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-stage{
 position:relative;isolation:isolate;display:block;
 width:100%;min-width:0;aspect-ratio:1536/1024;
 margin:0;padding:0;border:0;border-radius:0;
 background:none;box-shadow:none;overflow:visible;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-viewport{
 position:absolute;inset:0;display:flex;align-items:center;
 width:100%;height:100%;padding:0;overflow:hidden;background:transparent;
 touch-action:pan-y;
 /* Only the three square cutouts show the moving belt. */
 -webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1536'%20height='1024'%20viewBox='0%200%201536%201024'%20aria-hidden='true'%3e%3c!--%20Actual%20transparent%20window%20openings%20of%20the%20locked%20v2%20PNG%20(in%20its%20native%20pixels).%20--%3e%3crect%20x='241'%20y='363'%20width='199'%20height='215'%20rx='14'%20fill='%23fff'/%3e%3crect%20x='582'%20y='305'%20width='372'%20height='351'%20rx='20'%20fill='%23fff'/%3e%3crect%20x='1097'%20y='363'%20width='200'%20height='215'%20rx='14'%20fill='%23fff'/%3e%3c/svg%3e");
 mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1536'%20height='1024'%20viewBox='0%200%201536%201024'%20aria-hidden='true'%3e%3c!--%20Actual%20transparent%20window%20openings%20of%20the%20locked%20v2%20PNG%20(in%20its%20native%20pixels).%20--%3e%3crect%20x='241'%20y='363'%20width='199'%20height='215'%20rx='14'%20fill='%23fff'/%3e%3crect%20x='582'%20y='305'%20width='372'%20height='351'%20rx='20'%20fill='%23fff'/%3e%3crect%20x='1097'%20y='363'%20width='200'%20height='215'%20rx='14'%20fill='%23fff'/%3e%3c/svg%3e");
 -webkit-mask-size:100% 100%;mask-size:100% 100%;
 -webkit-mask-position:center;mask-position:center;
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
 -webkit-mask-mode:alpha;mask-mode:alpha;
}
/* HERMES UI: fixed dark clockwork behind rotating tablets; still behind masked housing. */
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-viewport{
 background-image:url("./arcane-mechanism-chamber-Ce9JqDYE.webp?v=0.35.222");
 background-size:100% 100%;background-position:center;background-repeat:no-repeat;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-housing{
 position:absolute;z-index:4;inset:0;display:block;
 width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-track{
 position:relative;top:-3.1%;z-index:1;padding:0;margin:0;
 /* Match JS tile pitch and keep all copies in one continuous row. */
 display:flex;flex-wrap:nowrap;align-items:center;
 width:max-content;gap:var(--combat-carousel-gap,0px);
 transform-style:preserve-3d;backface-visibility:hidden;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-track>.combat-carousel-spell-tile{
 flex:0 0 var(--combat-carousel-tile-width,80px);
 width:var(--combat-carousel-tile-width,80px);
 height:var(--combat-carousel-tile-width,80px);
 max-height:none;min-height:0;aspect-ratio:1/1;
 background:transparent;
 box-shadow:none;
 border:0;border-radius:8px;overflow:visible;
 transform-origin:50% 50%;transition:none!important;
}
/* Position complete 3:4 links BETWEEN the rendered icon edges.
   Separate overlay is deliberately outside the masked tablet viewport,
   so that the metal emblem can actually be seen between the windows. */
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-link-layer{
 position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-link{
 position:absolute;display:none;transform:translateY(-50%);
 height:auto;aspect-ratio:3/4;
 background:url("./arcane-mechanism-link-BjZQaBF0.webp?v=0.35.227") center/100% 100% no-repeat;
 box-shadow:none;filter:none;border:0;border-radius:0;pointer-events:none;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-track>.combat-carousel-spell-tile.center{
 filter:brightness(1.08);
}
/* Reclaim the dark perimeter without modifying the source spell PNGs.
   Artwork is still clipped by the locked three-window housing mask. */
#combatPage .combat-shell-live .cryptex-prototype .combat-carousel-spell-art{
 inset:-2px;overflow:hidden;border-radius:6px;
}
/* The focused tile benefits most from filling the larger centre window. */
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-track>.combat-carousel-spell-tile.center .combat-carousel-spell-art{
 inset:-3px;border-radius:5px;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-carousel-spell-label{
 /* The label lives on the built-in bronze nameplate; keep it in DOM for accessibility. */
 visibility:hidden;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-carousel-spell-marks{
 top:2%;right:2%;gap:2px;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-carousel-spell-mark{
 width:clamp(12px,1.6vw,20px);height:clamp(12px,1.6vw,20px);
 font-size:clamp(8px,1vw,12px);
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-nameplate{
 position:absolute;z-index:5;left:34.6%;top:72.1%;width:30.8%;height:7.7%;
 display:flex;align-items:center;justify-content:center;
 box-sizing:border-box;padding:0 4px;overflow:hidden;
 color:#f6d69b;text-shadow:0 1px 3px #000,0 0 9px #120b06;
 font:700 clamp(10px,1.4vw,18px)/1.1 Georgia,serif;
 white-space:nowrap;text-overflow:ellipsis;pointer-events:none;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-nameplate-text{
 display:inline-block;flex:0 0 auto;white-space:nowrap;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-nameplate.is-scrolling{
 justify-content:flex-start;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-nameplate.is-scrolling .combat-cryptex-nameplate-text{
 animation:combat-cryptex-name-scroll var(--cryptex-scroll-duration,8s) ease-in-out infinite;
}
@keyframes combat-cryptex-name-scroll{
 0%,16%{transform:translateX(0)}
 47%,70%{transform:translateX(calc(-1 * var(--cryptex-scroll-distance,0px)))}
 100%{transform:translateX(0)}
}
/* Transparent click targets directly over the existing bronze arrows
   BELOW each side window – no extra rendered controls. */
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-end-button{
 position:absolute;z-index:6;top:61%;width:9.5%;height:18%;
 min-width:35px;min-height:35px;max-height:none;
 display:block;padding:0;margin:0;border:0;border-radius:38%;
 background:transparent;box-shadow:none;color:transparent;
 cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-end-button--prev{left:17.25%}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-end-button--next{right:17.25%}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-end-button:hover{
 background:radial-gradient(ellipse,rgba(245,183,97,.14),transparent 73%);
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-end-button:active{
 background:radial-gradient(ellipse,rgba(245,183,97,.22),transparent 73%);
}
#combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-end-button:focus-visible{
 outline:2px solid #f2c579;outline-offset:-4px;
}
#combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-tools{
 border-top:0;padding:1px 5px 0;margin-top:0;
}
/* Desktop: move the CRYPTEX artwork, not the shared spell-panel host.
   A visual transform preserves the surrounding layout and its click targets. */
@media(min-width:761px){
 #combatPage .combat-shell-live #combatActionPanel{
  position:relative;
  overflow:visible;
 }
 #combatPage .combat-shell-live .combat-magic-float-shell{
  position:relative;
  z-index:40;
  overflow:visible;
  margin-top:0;
 }
 #combatPage .combat-shell-live .combat-magic-float-shell>.combat-magic-carousel.cryptex-prototype{
  position:relative;
  z-index:5;
  overflow:visible;
  transform:translateY(-45px);
 }
}
@media(max-width:760px){
 /* An independent float-shell is a real flex sibling of the equipment panel.
    All layering belongs here, not on display:contents #combatActionPanel. */
 #combatPage .combat-shell-live .combat-turn-panel{
  position:relative;
  z-index:1;
 }
 #combatPage .combat-shell-live .combat-magic-float-shell{
  position:relative;
  z-index:40;
  isolation:isolate;
  overflow:visible;
  /* The crown only touches the equipment's bottom gold edge. Keep the
     equipment inventory and its hit targets fully readable/tappable.
     A -112px offset covered most of the equipment area on phones. */
  margin-top:-46px;
 }
 /* Remove the entire second framed card during spell preparation.
    The bronze cryptex itself is the only decorative frame at the top. */
 #combatPage .combat-shell-live .combat-magic-float-shell>.combat-mini-attack.combat-mini-magic{
  position:relative;
  z-index:1;
  margin:0;
  padding:2px 8px 9px;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0;
  background:transparent!important;
  isolation:auto;
  overflow:visible!important;
  clip-path:none!important;
 }
 #combatPage .combat-shell-live .combat-magic-float-shell>.combat-mini-attack::before{
  content:none!important;
  display:none!important;
 }
 #combatPage .combat-shell-live .combat-magic-float-shell>.combat-magic-carousel.cryptex-prototype{
  position:relative;
  z-index:5;
  flex:0 0 auto;
  width:min(calc(100% + 56px),calc(100vw - 8px));
  max-width:none;
  left:50%;
  transform:translateX(-50%);
  padding:0;
  margin:0 0 1px;
  overflow:visible;
 }
 #combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-stage{
  overflow:visible;
 }
 #combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-housing{
  z-index:7;
  overflow:visible;
 }
 #combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-nameplate{
  /* Keep names ABOVE the mobile housing (z-index:7), not hidden behind the bronze plaque. */
  z-index:8;
  font-size:clamp(9px,2.5vw,12px);
 }
 #combatPage .combat-shell-live .cryptex-prototype .combat-carousel-spell-mark{
  width:clamp(10px,3vw,15px);height:clamp(10px,3vw,15px);font-size:9px;
 }
}
@media(prefers-reduced-motion:reduce){
 #combatPage .combat-shell-live .cryptex-prototype .combat-magic-carousel-track{will-change:auto}
 #combatPage .combat-shell-live .cryptex-prototype .combat-cryptex-nameplate.is-scrolling .combat-cryptex-nameplate-text{
  animation:none;transform:none;
 }
}
/* Desktop-only combat gallery (under Turordning).
 * First client: cryptex spell icons. Frame accepts other art later.
 * Rendering deliberately uses the untouched original bitmap, NOT its 42px crop.
 */
#combatPage .combat-shell-live .combat-art-viewer{display:none}
@media(min-width:1024px){
 #combatPage .combat-shell-live .combat-art-viewer{
  display:block;position:relative;isolation:isolate;
  margin:4px 5px 8px;padding:5px;
  border:1px solid #a9814a;border-radius:11px;
  background:linear-gradient(138deg,#3f3020 0,#17120f 19%,#0b0c0c 52%,#332415 86%,#654422);
  box-shadow:inset 0 0 0 1px #d0aa6f3c,inset 0 2px 16px #000b,0 4px 14px #0009;
  min-width:0;
 }
 #combatPage .combat-art-viewer-head{
  display:flex;justify-content:space-between;align-items:center;
  gap:4px;margin:0 1px 3px;border-bottom:1px solid #7c5a2d;
  padding:0 2px 3px;color:#d6ae6b;
 }
 #combatPage .combat-art-viewer-eyebrow{
  color:#e2be80;font:700 11px/1.15 Georgia,serif;letter-spacing:.12em;
 }
 #combatPage .combat-art-viewer-clear{
  border:1px solid #78613f;background:linear-gradient(#503924,#221710);
  color:#dfbd86;width:26px;height:26px;min-height:26px;padding:0;
  border-radius:5px;font:700 18px/1 Georgia,serif;cursor:pointer;
 }
 #combatPage .combat-art-viewer-clear[hidden]{display:none}
 #combatPage .combat-art-viewer-clear:hover{border-color:#e7bd7d;background:#5a3820}
 #combatPage .combat-art-viewer-clear:focus-visible{
  outline:2px solid #9ad8ff;outline-offset:2px
 }
 #combatPage .combat-art-viewer-picture{
  position:relative;display:grid;place-items:center;
  width:100%;aspect-ratio:1/1;
  overflow:hidden;isolation:isolate;
  padding:0;
  border:1px solid #8d6634;border-radius:6px;
  background:
   radial-gradient(ellipse at 51% 34%,#293038 0,#121923 44%,#0a0d11 100%);
  box-shadow:inset 0 0 0 1px #dab77c6d,inset 0 0 22px #000c,0 1px 7px #0008;
 }
 #combatPage .combat-art-viewer-image{
  position:relative;z-index:2;
  display:block;width:100%;height:100%;
  max-width:100%;max-height:100%;
  object-fit:contain;object-position:center;
  margin:auto;border:0;
  filter:drop-shadow(0 3px 7px #0008);
 }
 #combatPage .combat-art-viewer-image[hidden]{display:none!important}
 #combatPage .combat-art-viewer-empty{
  z-index:1;display:block;text-align:center;padding:14px;
  color:#c8b28f;font:13px/1.5 Georgia,serif;
  max-width:240px;
 }
 #combatPage .combat-art-viewer-empty[hidden]{display:none!important}
 #combatPage .combat-art-viewer-corner{
  position:absolute;z-index:3;width:17px;height:17px;
  pointer-events:none;border:2px solid #bb8b4d;
  filter:drop-shadow(0 1px 2px #0009);
 }
 #combatPage .combat-art-viewer-corner.top-left{left:2px;top:2px;border-right:0;border-bottom:0}
 #combatPage .combat-art-viewer-corner.top-right{right:2px;top:2px;border-left:0;border-bottom:0}
 #combatPage .combat-art-viewer-corner.bottom-left{left:2px;bottom:2px;border-right:0;border-top:0}
 #combatPage .combat-art-viewer-corner.bottom-right{right:2px;bottom:2px;border-left:0;border-top:0}
 #combatPage .combat-art-viewer-caption{
  display:grid;gap:5px;text-align:center;max-width:100%;
  padding:5px 3px 1px;min-width:0;
 }
 #combatPage .combat-art-viewer-type{
  color:#a78a5c;font:700 10px/1.2 system-ui,sans-serif;
  letter-spacing:.16em;
 }
 #combatPage .combat-art-viewer-title{
  color:#f3d49d;font:700 clamp(13px,1.17vw,18px)/1.3 Georgia,serif;
  overflow-wrap:anywhere;text-shadow:0 1px 4px #0009;
 }
}
@media(max-width:1023px){
 #combatPage .combat-art-viewer{display:none!important}
}

/* Gear art keeps its full outline; combatant portraits use the entire viewport. */
@media(min-width:1024px){
 #combatPage .combat-art-viewer-photo .combat-art-viewer-image{object-fit:cover}
 #combatPage .combat-turn-equip-art .combat-turn-art:focus-visible,
 #combatPage .combatant-card .combat-row-portrait img:focus-visible,
 #combatPage .combat-detail-header .combat-row-portrait img:focus-visible{outline:2px solid #e8ca83;outline-offset:2px}
}
/* HERMES · administration and noninteractive combat animation layer */
.hermes-combat-vfx{pointer-events:none!important;user-select:none;filter:contrast(1.15);will-change:transform,opacity}
.hermes-animation-intro{margin:0 0 14px;color:var(--muted,#b4a693)}
.hermes-animation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:14px}
.hermes-animation-card{background:linear-gradient(145deg,rgba(71,55,38,.45),rgba(24,23,26,.93));border:1px solid rgba(194,153,85,.4);border-radius:12px;padding:14px;min-width:0}
.hermes-animation-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:13px}
.hermes-animation-head strong{display:block;font-size:1.04rem;color:#edd2a4}
.hermes-animation-head small{display:block;opacity:.7;margin-top:4px}
.hermes-animation-state{font-size:.72rem;white-space:nowrap;color:#d6b778}
.hermes-animation-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.hermes-animation-controls label{display:flex;flex-direction:column;gap:3px;font-size:.75rem;color:#bcb0a0}
.hermes-animation-controls input,.hermes-animation-controls select{width:100%;min-width:0;background:#17191b;color:#faf2de;border:1px solid #655641;border-radius:6px;padding:7px}
.hermes-animation-controls label:last-child{grid-column:1/-1}
.hermes-animation-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:13px}
.hermes-animation-toggle{display:flex;align-items:center;gap:5px;margin-right:auto;font-size:.85rem}
.hermes-animation-upload{cursor:pointer}
.hermes-animation-file{display:block;overflow-wrap:anywhere;margin-top:10px;opacity:.7}
#hermesAnimationStatus{min-height:1.2em}
@media(max-width:450px){.hermes-animation-grid{grid-template-columns:minmax(0,1fr)}}

/* HERMES V2 compact registry; editor expands only on selection. */
#adminAnimationRows.hermes-animation-grid{display:block;min-width:0}
.hermes-v2-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:8px 0 14px;flex-wrap:wrap}
.hermes-v2-toolbar label{display:flex;gap:10px;align-items:center;font-size:.85rem}
.hermes-v2-toolbar select{padding:7px 10px;border-radius:7px;background:#17191b;color:#f9ecd0;border:1px solid #655641}
.hermes-v2-scroll{overflow-x:auto;max-width:100%}
.hermes-v2-table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}
.hermes-v2-table th{color:#d6bc8d;border-bottom:1px solid #66513b;padding:10px}
.hermes-v2-table td{border-bottom:1px solid rgba(194,153,85,.16);padding:10px}
.hermes-v2-table tbody tr{cursor:pointer}
.hermes-v2-table tbody tr:hover,.hermes-v2-table tbody tr:focus-visible{background:rgba(194,153,85,.14);outline:1px solid rgba(194,153,85,.35)}
.hermes-v2-table td small{display:block;opacity:.65;font-size:.72rem;margin-top:2px}
.hermes-v2-table td:last-child{white-space:nowrap;color:#e7c58c}
.hermes-v2-editor{margin-top:16px}
@media(max-width:520px){.hermes-v2-table td,.hermes-v2-table th{padding:8px 5px;font-size:.75rem}.hermes-animation-controls{grid-template-columns:1fr}}
#adminPaperDollWorkshop{padding:18px}
.apdw-head,.apdw-preview-top,.apdw-profile-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.apdw-head{margin-bottom:14px}.apdw-head h2{margin:0 0 5px}.apdw-head p,.apdw-preview-top small{margin:0;color:#c4b49c}.apdw-badge{border:1px solid #9d7941;border-radius:999px;padding:6px 10px;color:#e5c98e;font-size:11px;letter-spacing:.12em;white-space:nowrap}
.apdw-status{min-height:1.25em;color:#dcc695;margin:8px 0 14px}.apdw-status[data-state="error"]{color:#ffb2a9}
.apdw-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:18px;align-items:start}
.apdw-workbench,.apdw-controls{min-width:0;border:1px solid rgba(190,151,93,.35);border-radius:12px;background:linear-gradient(145deg,#211a14,#15110e);padding:14px;box-shadow:0 12px 32px #0004}
.apdw-preview-top{margin-bottom:12px}.apdw-preview-top small{display:block;margin-top:3px;font-size:12px}.apdw-zoom{display:flex;align-items:center;gap:6px}.apdw-zoom button,.apdw-profile-row button{font-size:12px}.apdw-zoom span{min-width:38px;text-align:center;color:#ecd9b4;font-variant-numeric:tabular-nums}
.apdw-stage-clip{overflow:hidden;border-radius:10px;background:radial-gradient(ellipse at center,#453520 0,#211a13 65%,#100d0a 100%);display:grid;place-items:center;min-height:300px}
.apdw-stage{position:relative;width:min(100%,760px);aspect-ratio:1.5;transform:scale(var(--zoom,1));transform-origin:center;transition:transform .18s ease;isolation:isolate;overflow:hidden}
.apdw-base,.apdw-stand{position:absolute;object-fit:contain;pointer-events:none;user-select:none}.apdw-base{inset:0;width:100%;height:100%;z-index:0}.apdw-stand{z-index:4;left:50%;top:50%;height:98%;width:auto;max-width:90%;transform:translate(-50%,-50%) rotate(var(--stand-tilt));filter:drop-shadow(0 4px 4px #100b08a8)}
.apdw-placeholder{position:absolute;inset:0;pointer-events:none}.apdw-base-placeholder{z-index:0;display:grid;place-items:end center;padding-bottom:7%;box-sizing:border-box;color:#ead39c;text-align:center;font:600 clamp(9px,1.5vw,14px)/1.3 Georgia,serif;letter-spacing:.18em;text-shadow:0 1px 5px #000}.apdw-placeholder-hex{position:absolute;width:82%;height:67%;bottom:5%;left:9%;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);background:linear-gradient(135deg,#c4a568,#65502f 38%,#b28b50 57%,#352719);filter:drop-shadow(0 9px 8px #000);transform:perspective(500px) rotateX(23deg)}
.apdw-placeholder-hex:after{content:"";position:absolute;inset:6%;clip-path:inherit;background:radial-gradient(ellipse,#d8c79d,#8e7951 64%,#55452d);border:2px solid #e0bd77}
.apdw-portrait-window{position:absolute;z-index:2;left:50%;top:7%;width:34%;height:51%;transform:translate(calc(-50% + var(--p-x)),var(--p-y)) scale(var(--p-scale,1)) perspective(600px) rotateY(var(--p-perspective));transform-origin:50% 95%;filter:drop-shadow(0 calc(var(--contact-shadow) / 5) calc(var(--contact-shadow) / 2) #090604bf);transition:filter .1s}
.apdw-portrait-mask{width:100%;height:100%;overflow:hidden;clip-path:polygon(calc(13% + var(--mask)) 0,calc(87% - var(--mask)) 0,100% 14%,calc(95% - var(--mask)) 78%,50% 100%,calc(5% + var(--mask)) 78%,0 14%);background:linear-gradient(140deg,#40362b,#211912);display:grid;place-items:center}.apdw-portrait-mask img{width:100%;height:100%;object-fit:cover;object-position:center 24%;filter:drop-shadow(0 3px 3px #000)}.apdw-initials{color:#d9bd80;font-size:clamp(24px,5vw,54px)}
.apdw-shadow{position:absolute;z-index:1;left:50%;bottom:13%;width:24%;height:5%;border-radius:50%;background:#090705aa;filter:blur(calc(2px + var(--contact-shadow) / 3));transform:translateX(-50%) perspective(200px) rotateX(45deg)}
.apdw-stand-placeholder{z-index:4;display:flex;align-items:center;flex-direction:column;filter:drop-shadow(0 5px 4px #0008);transform:rotate(var(--stand-tilt));}.apdw-stand-arch{position:absolute;top:4%;left:34%;width:32%;height:54%;border:clamp(5px,1vw,11px) ridge #d6ad64;border-radius:46% 46% 12% 12%;background:linear-gradient(135deg,#d9be85,#6e4c27 28%,#b78d4f 70%,#54371c);box-shadow:inset 0 0 0 3px #392919,inset 0 0 0 6px #e0c688aa}.apdw-stand-arch:after{content:"";position:absolute;inset:7%;border:2px solid #ead7a7;border-radius:inherit;opacity:.8}.apdw-stand-post{position:absolute;top:58%;left:48.8%;width:2.4%;height:32%;background:linear-gradient(90deg,#553a20,#d9b86e 38%,#805726 70%,#e0c17c)}.apdw-stand-foot{position:absolute;top:86%;left:39%;width:22%;height:12%;border:4px ridge #c9a15c;background:linear-gradient(145deg,#d8c08c,#6e4e2b);clip-path:polygon(50% 0,100% 45%,80% 100%,20% 100%,0 45%);border-radius:7px}
.apdw-minimap{display:flex;align-items:center;gap:10px;margin-top:12px;color:#cbb995;font-size:12px}.apdw-hexmap{position:relative;width:116px;height:68px;flex:0 0 116px}.apdw-map-hex{position:absolute;width:36px;height:32px;background:linear-gradient(135deg,#67563c,#342b20);border:1px solid #a7854d;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%)}.apdw-map-hex.h0{left:0;top:18px}.apdw-map-hex.h1{left:27px;top:2px}.apdw-map-hex.h2{left:27px;top:34px}.apdw-map-hex.h3{left:54px;top:18px}.apdw-map-hex.h4{left:81px;top:2px}.apdw-map-hex.h5{left:81px;top:34px}.apdw-map-hex.h6{left:54px;top:-14px}.apdw-map-token{position:absolute;z-index:2;left:50%;top:50%;width:25px;height:25px;border-radius:50%;transform:translate(-50%,-50%);background-size:cover;background-position:center;background-color:#927343;border:2px solid #e1c27e;box-shadow:0 2px 6px #000;display:grid;place-items:center;color:#241a0e;font-size:12px}
.apdw-controls{display:grid;gap:14px}.apdw-controls label,.apdw-profile-box>label{font-weight:700;color:#eadcc4}.apdw-control-group select,.apdw-profile-row select,.apdw-profile-row input{min-width:0;width:100%;padding:9px 10px;border:1px solid #705b3c;border-radius:7px;background:#17120e;color:#f0e3ca}.apdw-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.apdw-range{display:block;font-size:13px}.apdw-range span{display:flex;justify-content:space-between;gap:7px;margin-bottom:5px}.apdw-range output{font-variant-numeric:tabular-nums;color:#ddb96d}.apdw-range input{width:100%;accent-color:#c19a59}.apdw-help{margin:5px 0 0;color:#aa9c87;font-size:12px;line-height:1.45}.apdw-profile-box{border-top:1px solid #59452d;padding-top:12px}.apdw-profile-row{margin-top:8px;flex-wrap:wrap;justify-content:flex-start}.apdw-profile-row select,.apdw-profile-row input{flex:1 1 140px}.apdw-actions{display:flex;justify-content:flex-end}
@media(max-width:900px){.apdw-layout{grid-template-columns:1fr}.apdw-stage{width:100%}.apdw-controls{grid-template-columns:1fr 1fr}.apdw-control-group,.apdw-control-grid,.apdw-profile-box,.apdw-actions,#apdwActionStatus{grid-column:1/-1}}
@media(max-width:560px){#adminPaperDollWorkshop{padding:10px}.apdw-head{align-items:flex-start}.apdw-badge{font-size:9px}.apdw-layout{gap:10px}.apdw-workbench,.apdw-controls{padding:10px}.apdw-stage-clip{min-height:220px}.apdw-preview-top{align-items:flex-start;flex-direction:column}.apdw-zoom{width:100%;justify-content:flex-start;flex-wrap:wrap}.apdw-control-grid{grid-template-columns:1fr}.apdw-controls{grid-template-columns:1fr}.apdw-control-group,.apdw-control-grid,.apdw-profile-box,.apdw-actions,#apdwActionStatus{grid-column:1}.apdw-profile-row>*{flex:1 1 100%}.apdw-profile-row button{min-height:40px}}
@media(prefers-reduced-motion:reduce){.apdw-stage,.apdw-portrait-window{transition:none}}

/* Hidden placeholders must stay hidden despite their display:grid/flex rules. */
#arcanePaperDollWorkshopMount .apdw-placeholder[hidden],
#arcanePaperDollWorkshopMount .apdw-base[hidden],
#arcanePaperDollWorkshopMount .apdw-stand[hidden]{display:none!important}

/* ARES baseplate foundation: calibrate the universal hex independently. */
.apdw-base-picker{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 14px;padding:12px;border:1px solid #8c7046;border-radius:10px;background:#211a14;color:#ead8b4}
.apdw-base-picker select{min-width:190px;max-width:100%;padding:8px;background:#17120e;color:#ead8b4;border:1px solid #8c7046;border-radius:6px}
.apdw-base-picker label{display:flex;align-items:center;gap:8px}
.apdw-base-only-mode .apdw-stand,.apdw-base-only-mode .apdw-stand-placeholder,.apdw-base-only-mode .apdw-portrait-window,.apdw-base-only-mode .apdw-shadow{display:none!important}

/* ARES: independent baseplate scale and centered mount anchor. */
.apdw-base{transform:scale(var(--base-scale,.7));transform-origin:center center}
.apdw-base-placeholder{transform:scale(var(--base-scale,.7));transform-origin:center center}
.apdw-anchor{position:absolute;z-index:6;left:var(--anchor-x,50%);top:var(--anchor-y,64%);width:12px;height:12px;border:2px solid #f5d899;border-radius:50%;background:#5c381b;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #1c100b99;pointer-events:none}
.apdw-anchor[hidden]{display:none!important}
.apdw-base-scale{display:flex;align-items:center;gap:12px;margin:10px 0;color:#ead8b4}
.apdw-base-scale input{flex:1;min-width:80px}

/* Keep every baseplate grounded at the bottom of the mounting stage. */
.apdw-base{inset:auto 0 0;width:100%;height:100%;transform:scale(var(--base-scale,.7));transform-origin:50% 100%}
.apdw-base-placeholder{transform:scale(var(--base-scale,.7));transform-origin:50% 100%}

/* First interchangeable Battle Pose: portrait stand, mounted above the base. */
.apdw-stand{height:98%;transform:translate(calc(-50% + var(--stand-x,0%)),calc(-50% + var(--stand-y,0%))) scale(var(--stand-scale,.65)) rotate(var(--stand-tilt,0deg));transform-origin:50% 80%}
.apdw-stand-placeholder{transform:translate(var(--stand-x,0%),var(--stand-y,0%)) scale(var(--stand-scale,.65)) rotate(var(--stand-tilt,0deg));transform-origin:50% 80%}
.apdw-stand-settings{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 12px;padding:12px;border:1px solid #8c7046;border-radius:10px;color:#ead8b4;background:#211a14}
.apdw-stand-settings label{display:flex;align-items:center;gap:8px;flex:1 1 170px}.apdw-stand-settings input{min-width:70px;flex:1}.apdw-stand-settings output{min-width:38px;text-align:right}

/* ARES desktop-first three-panel Dockfabriken */
@media(min-width:900px){
 #arcanePaperDollWorkshopMount .apdw-layout{grid-template-columns:minmax(170px,.8fr) minmax(300px,2fr) minmax(220px,1fr);gap:14px;align-items:stretch}
 #arcanePaperDollWorkshopMount .apdw-left-panel{grid-column:1;grid-row:1}
 #arcanePaperDollWorkshopMount .apdw-workbench{grid-column:2;grid-row:1}
 #arcanePaperDollWorkshopMount .apdw-controls{grid-column:3;grid-row:1;display:block}
 #arcanePaperDollWorkshopMount .apdw-stage{aspect-ratio:1 / 1.2}
 #arcanePaperDollWorkshopMount .apdw-stage-clip{min-height:560px}
}
#arcanePaperDollWorkshopMount .apdw-left-panel{min-width:0;border:1px solid rgba(190,151,93,.35);border-radius:12px;background:linear-gradient(145deg,#211a14,#15110e);padding:14px}
#arcanePaperDollWorkshopMount .apdw-left-panel h3,#arcanePaperDollWorkshopMount .apdw-controls h3{margin:0 0 14px;color:#ead8b4}
#arcanePaperDollWorkshopMount .apdw-left-panel .apdw-profile-box{min-width:0}
#arcanePaperDollWorkshopMount .apdw-left-panel .apdw-profile-row{flex-wrap:wrap}
#arcanePaperDollWorkshopMount .apdw-left-panel .apdw-profile-row>*{min-width:0;flex:1 1 100%}
#arcanePaperDollWorkshopMount .apdw-controls .apdw-base-picker,#arcanePaperDollWorkshopMount .apdw-controls .apdw-base-scale,#arcanePaperDollWorkshopMount .apdw-controls .apdw-stand-settings{margin-bottom:14px}
@media(max-width:899px){
 #arcanePaperDollWorkshopMount .apdw-layout{grid-template-columns:minmax(0,1fr)}
 #arcanePaperDollWorkshopMount .apdw-workbench{order:1}
 #arcanePaperDollWorkshopMount .apdw-controls{order:2}
 #arcanePaperDollWorkshopMount .apdw-left-panel{order:3}
}

/* ARES: use full available desktop width with three equal panels. */
@media(min-width:900px){
 #adminPaperDollWorkshop{box-sizing:border-box;width:calc(100vw - 32px);max-width:none;margin-left:calc(50% - 50vw + 16px);margin-right:0}
 #arcanePaperDollWorkshopMount .apdw-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 #arcanePaperDollWorkshopMount .apdw-stage-clip{min-height:620px;display:flex;align-items:stretch;justify-content:center}
 #arcanePaperDollWorkshopMount .apdw-stage{width:100%;height:620px;aspect-ratio:auto;flex:none;transform:scale(var(--zoom,1));transform-origin:50% 100%;overflow:visible}
}
/* The image is bottom aligned and scales from the floor, not its midpoint. */
#arcanePaperDollWorkshopMount .apdw-base{inset:auto 0 0;width:100%;height:auto;max-height:100%;object-fit:contain;object-position:center bottom;transform:scale(var(--base-scale,.35));transform-origin:50% 100%}
#arcanePaperDollWorkshopMount .apdw-base-placeholder{transform:scale(var(--base-scale,.35));transform-origin:50% 100%}
#arcanePaperDollWorkshopMount .apdw-anchor{top:auto;bottom:4%;transform:translate(-50%,50%)}

/* Match the navigation banner's centered content width on desktop. */
@media(min-width:900px){
 #adminPaperDollWorkshop{width:100%;max-width:1100px;margin-left:auto;margin-right:auto;box-sizing:border-box}
 #arcanePaperDollWorkshopMount{width:100%;max-width:100%}
}

/* Reuse combat view's centered 1500px container rather than a viewport breakout. */
@media(min-width:900px){
 #admin .adminpage:has(#adminPaperDollWorkshop:not(.hidden)){max-width:1500px;width:100%;margin-inline:auto}
 #adminPaperDollWorkshop{max-width:none;width:100%;margin:0;box-sizing:border-box}
 #arcanePaperDollWorkshopMount .apdw-layout{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Workshop follows the same desktop width token as navigation and combat. */
@media(min-width:900px){
 #adminPaperDollWorkshop{max-width:none;width:100%;margin:0;box-sizing:border-box}
 #arcanePaperDollWorkshopMount .apdw-layout{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Three-base workshop and local cutout calibration. */
#arcanePaperDollWorkshopMount .apdw-cutout{position:absolute;z-index:7;height:auto;max-width:none;transform:translateX(-50%);object-fit:contain;pointer-events:none;filter:none}
#arcanePaperDollWorkshopMount .apdw-base-upload,#arcanePaperDollWorkshopMount .apdw-cutout-controls{display:grid;gap:8px;padding:12px;border:1px solid #70573c;border-radius:10px;margin:10px 0}
#arcanePaperDollWorkshopMount .apdw-cutout-controls label{display:grid;gap:4px}
#arcanePaperDollWorkshopMount .apdw-cutout-controls input[type=range]{width:100%}
#arcanePaperDollWorkshopMount .apdw-base-only-mode .apdw-cutout{display:none}

/* Cutout-only workshop: no synthetic hex artwork or obsolete portrait/stand. */
#arcanePaperDollWorkshopMount .apdw-base-unavailable{position:absolute;z-index:2;left:10%;right:10%;bottom:18%;padding:12px;border:1px solid #9c7c4e;border-radius:8px;background:#201912e8;color:#f0d6a5;text-align:center;font-size:13px}
#arcanePaperDollWorkshopMount .apdw-base-unavailable[hidden]{display:none!important}

/* Strictly layered mounting: the base remains visible beneath the figure. */
#arcanePaperDollWorkshopMount .apdw-base{z-index:1!important}
#arcanePaperDollWorkshopMount .apdw-cutout{z-index:5!important;max-height:none;width:auto;object-fit:contain;pointer-events:none}
#arcanePaperDollWorkshopMount .apdw-cutout-controls{background:#201a13}

#arcanePaperDollWorkshopMount .apdw-pose-admin{display:grid;gap:10px;padding:14px;margin:12px 0;border:1px solid #927246;border-radius:10px;background:#201a14}
#arcanePaperDollWorkshopMount .apdw-pose-admin label{display:grid;gap:5px;color:#ead8b4}
#arcanePaperDollWorkshopMount .apdw-pose-admin select,#arcanePaperDollWorkshopMount .apdw-pose-admin input{width:100%;min-width:0;padding:9px;border:1px solid #826743;border-radius:6px;background:#15110e;color:#f2e3c6;box-sizing:border-box}

/* Mobile cutout calibration: deliberate taps, numeric entry and direct dragging. */
.apdw-mobile-calibration{display:none}
@media (pointer:coarse), (max-width:700px){
 #arcanePaperDollWorkshopMount .apdw-mobile-calibration{display:grid;gap:10px;min-width:0}
 #arcanePaperDollWorkshopMount .apdw-mobile-field{display:grid;grid-template-columns:minmax(64px,1fr) 44px 70px 44px 18px;align-items:center;gap:6px;min-width:0}
 #arcanePaperDollWorkshopMount .apdw-mobile-field button{min-height:44px;touch-action:manipulation}
 #arcanePaperDollWorkshopMount .apdw-mobile-field input{min-width:0;width:100%;box-sizing:border-box;text-align:center;font-size:16px}
 #arcanePaperDollWorkshopMount .apdw-cutout-controls>label:has(input[type="range"]){display:none}
 #arcanePaperDollWorkshopMount .apdw-cutout{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-drag:none}
 #arcanePaperDollWorkshopMount .apdw-base-scale{flex-wrap:wrap;min-width:0}
 #arcanePaperDollWorkshopMount .apdw-base-scale small{flex:1 1 100%;overflow-wrap:anywhere}
 #arcanePaperDollWorkshopMount .apdw-cutout-controls{min-width:0;overflow-wrap:anywhere}
 #arcanePaperDollWorkshopMount .apdw-cutout-controls input[type=file]{max-width:100%;min-width:0}
}
#campaignImageLibrary{padding:14px 0 30px}.cil-heading,.cil-toolbar,.cil-add,.cil-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.cil-heading h3{margin:0;font-size:1.35rem}.cil-heading p{color:var(--muted,#aaa);margin:5px 0 16px}.cil-layout{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:16px}.cil-layout aside,.cil-layout main{border:1px solid rgba(196,165,109,.35);background:rgba(0,0,0,.12);border-radius:12px;padding:15px;min-width:0}.cil-layout label{display:grid;gap:5px;margin-bottom:10px;font-size:.84rem}.cil-layout input,.cil-layout select{background:#17191d;color:#eee;border:1px solid #74664d;border-radius:7px;padding:9px;max-width:100%;width:100%}.cil-targets{display:grid;gap:5px;max-height:550px;overflow:auto}.cil-targets button,.cil-actions button,.cil-add button,.cil-heading button{border:1px solid #8a7247;border-radius:7px;padding:8px 10px;background:#29251f;color:#ead9b7;cursor:pointer;text-align:left}.cil-targets button.selected{background:#6b522e;color:#fff4d9}.cil-toolbar{margin-bottom:12px}.cil-upload{position:relative;cursor:pointer;border:1px solid #ab8a4e;padding:8px 12px;border-radius:8px;color:#f5dfa5}.cil-upload input{position:absolute;opacity:0;inset:0;cursor:pointer}.cil-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.cil-card{display:grid;gap:8px;border:1px solid #65563b;border-radius:10px;padding:10px;min-width:0}.cil-preview{aspect-ratio:4/3;display:grid;place-items:center;background:#141414;color:#988e78;border-radius:7px;overflow:hidden;font-size:.8rem}.cil-preview img{width:100%;height:100%;object-fit:contain}.cil-card small{color:#c8b28d}.cil-card label{margin:0}.cil-actions{justify-content:flex-start;gap:5px}.cil-actions button{font-size:.75rem;padding:5px 7px}.cil-add{justify-content:flex-start}.cil-add select{max-width:400px}.cil-layout main h4{margin-top:24px}@media(max-width:780px){.cil-layout{grid-template-columns:1fr}.cil-targets{max-height:160px}.cil-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}/* Shared image-library photos inside the map's location description. */
.map-location-gallery.campaign-map-image-gallery{display:block}
.campaign-map-image-primary{margin:0 0 12px;min-width:0}
.campaign-map-image-stage{background:rgba(0,0,0,.28);border:1px solid rgba(185,155,90,.35);border-radius:10px;overflow:hidden;min-height:150px;display:grid;place-items:center;color:#b9a789}
.campaign-map-image-stage img{display:block;width:100%;max-height:360px;object-fit:contain;cursor:zoom-in}
.campaign-map-image-primary figcaption{padding:7px 2px;color:inherit;font-size:.9rem}
.campaign-map-image-primary figcaption p{margin:5px 0 0;font-size:.84rem;opacity:.85}
.campaign-map-image-primary .gm-only{display:inline-block;margin-left:6px}
.campaign-map-image-thumbnails{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}
.campaign-map-image-thumb{border:2px solid transparent;background:rgba(0,0,0,.3);padding:2px;border-radius:8px;min-height:64px;aspect-ratio:4/3;overflow:hidden;cursor:pointer;color:inherit;font-size:.7rem}
.campaign-map-image-thumb.active{border-color:#c4a16b}
.campaign-map-image-thumb img{display:block;width:100%;height:100%;object-fit:cover;border-radius:4px}
.campaign-map-image-thumb:focus-visible{outline:2px solid #f0d392;outline-offset:2px}

/* GM: the location detail owns vertical scrolling; the nested gallery does not. */
#mapPage #mapLocationPanel > #mapLocationImagesPanel{
  overflow:visible;
  overflow-y:visible;
  max-height:none;
  height:auto;
  min-height:0;
  flex:none;
}
#mapPage #mapLocationPanel > #mapLocationImagesPanel #mapLocationGallery{
  overflow:visible;
  overflow-y:visible;
  max-height:none;
  height:auto;
}
/* ALEA CRUSADERS · Campaign map triptych (image | double-width map | description).
   Keep the map at the visual center, with only shared images in the left viewer. */

body:has(#mapPage:not(.hidden)) > main,
body:has(#mapPage:not(.hidden)) main:has(> #mapPage) {
  max-width: 1740px;
  width: 100%;
}
#mapPage .mappage {
  max-width: 1700px;
  margin: 0 auto;
}
#mapPage .mapworkarea {
  display: grid;
  grid-template-columns: minmax(235px, 1fr) minmax(0, 2fr) minmax(260px, 1fr);
  grid-template-areas: "images map info";
  gap: 12px;
  align-items: start;
}
#mapPage .mapmain { grid-area: map; min-width: 0; }
#mapPage .map-location-panel { grid-area: info; }
#mapPage .map-location-images-panel {
  grid-area: images;
  min-width: 0;
  overflow: auto;
  max-height: min(78vh, 830px);
  border: 1px solid #55432f;
  border-radius: 16px;
  background: #17120f;
  padding: 14px;
  position: sticky;
  top: 82px;
  scrollbar-width: thin;
}
#mapPage .map-location-panel {
  max-height: min(78vh, 830px);
  scrollbar-width: thin;
}
#mapPage .map-location-images-head {
  border-bottom: 1px solid #4b3a29;
  padding-bottom: 10px;
  margin-bottom: 12px;
}
#mapPage .map-location-images-head h3 {
  font: 700 20px Georgia, serif;
  color: #f1dfc4;
  margin: 0 0 5px;
}
#mapPage .map-location-images-head p {
  font-size: 12px;
  margin: 0;
}
#mapPage .map-location-images-panel .map-location-gallery {
  display: block;
  min-width: 0;
}
#mapPage .campaign-map-image-stage img {
  max-height: min(53vh, 470px);
}
#mapPage .campaign-map-image-thumbnails {
  grid-template-columns: repeat(auto-fill, minmax(68px, 1fr));
}
#mapPage .mapviewport {
  height: min(76vh, 830px);
}
@media (max-width: 1150px) {
  #mapPage .mapworkarea {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "map map" "images info";
  }
  #mapPage .map-location-images-panel,
  #mapPage .map-location-panel {
    position: static;
    max-height: none;
  }
}
@media (max-width: 700px) {
  #mapPage .mapworkarea {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "map" "images" "info";
  }
  #mapPage .map-location-images-panel { padding: 12px; }
  #mapPage .mapviewport { height: 68vh; }
}
/* ARCANE GALLERY · desktop side carousel (Sisyphus).
 * Desktop-only presentation. Existing authenticated media and mobile remain intact.
 * The horizontal bronze carousel artwork is not stretched into a vertical rail. */
@media (min-width:901px){
 #legolasPanel:has(#arcaneGallery:not(.hidden)){
  position:relative!important;
  z-index:30003!important; /* Above sticky navigation (30002), gallery only. */
  padding:0!important;
  margin:0!important;
  border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
  overflow:visible!important;
 }
 #legolasPanel:has(#arcaneGallery:not(.hidden)) .legolas-panel-inner{
  width:100%!important;max-width:none!important;
  margin:0!important;padding:0!important;
  border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
  overflow:visible!important;
 }
 /* Frodo wraps the gallery in its own colored card: strip only that chrome. */
 #legolasPanel .frodo-panel:has(> #arcaneGallery:not(.hidden)){
  box-sizing:border-box;
  width:100%!important;max-width:none!important;
  padding:0!important;margin:0!important;
  border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
  overflow:visible!important;
 }
 #legolasPanel .frodo-panel:has(> #arcaneGallery:not(.hidden)) > .frodo-panel-heading{
  display:none!important;
 }
 /* Player gallery only: no heading card or closing cross. */
 #legolasPanel:has(#arcaneGallery:not(.hidden)) .legolas-heading,
 #legolasPanel:has(#arcaneGallery:not(.hidden)) .legolas-close,
 #legolasPanel:has(#arcaneGallery:not(.hidden)) .frodo-close-mobile{
  display:none!important;
 }
 #legolasPanel #arcaneGallery:not(.hidden){
  position:relative!important;
  box-sizing:border-box;
  display:grid!important;
  grid-template-columns:clamp(112px,15vw,194px) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  column-gap:clamp(4px,.8vw,14px);row-gap:4px;
  align-items:start;
  /* Portrait-safe gallery width: fill remaining screen height with the 9:16 rigid-kit rails. */
  width:min(90%, calc(clamp(112px,15vw,194px) + clamp(4px,.8vw,14px) + (100dvh - 5px) / 1.557), 1500px)!important;
  max-width:calc(100vw - 12px)!important;
  margin:-20px auto 0!important;padding:0!important;
  border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;
  overflow:visible!important;isolation:isolate;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-heading{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip-path:inset(50%);margin:-1px;padding:0!important;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-machine{
  grid-column:2;grid-row:1 / 3;
  width:100%;max-width:100%;min-width:0;
  margin:0;overflow:visible!important;
  transform:translateY(-46px); /* 20px more than previous 26px overlap. */
  z-index:3;
 }
 /* Portrait and landscape images are contained by the existing picture aperture. */
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-picture img{
  object-fit:contain!important;
 }
 /* Side carousel: use native thumbnails, not the landscape-only bronze dock. */
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel{
  grid-column:1;grid-row:1;
  position:relative;z-index:2;
  box-sizing:border-box;
  width:100%!important;min-width:0;
  height:clamp(220px,calc(100dvh - 175px),850px)!important;
  max-height:calc(100dvh - 105px);
  aspect-ratio:auto!important;
  margin:18px 0 0!important;padding:7px!important;
  border:1px solid #82663f;border-radius:11px;
  background:linear-gradient(120deg,#201c17,#101715 70%,#211a15)!important;
  box-shadow:inset 0 0 0 1px #d5a96e24,0 8px 22px #0007;
  overflow:hidden!important;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel-frame,
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel-shutter-window{
  display:none!important;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel-track{
  position:relative!important;inset:auto!important;
  box-sizing:border-box;
  display:flex!important;flex-direction:column!important;
  width:100%!important;height:100%!important;
  gap:8px!important;padding:2px!important;
  overflow-x:hidden!important;overflow-y:auto!important;
  scroll-snap-type:y proximity;
  touch-action:pan-y;cursor:default;
  scrollbar-width:thin;scrollbar-color:#8b6c42 transparent;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel-track .arcane-gallery-tile{
  box-sizing:border-box;flex:0 0 auto!important;
  width:100%!important;height:auto!important;
  aspect-ratio:4/3!important;
  padding:2px!important;
  border:1px solid #685132;border-radius:5px;
  scroll-snap-align:start;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel-track .arcane-gallery-tile img{
  object-fit:contain!important;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-carousel-track .arcane-gallery-tile + .arcane-gallery-tile::before{
  inset:0 0 auto 0;width:100%;height:1px;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-controls{
  grid-column:1;grid-row:2;
  box-sizing:border-box;max-width:none;width:100%;
  grid-template-columns:36px minmax(0,1fr) 36px;
  gap:3px;margin:0!important;padding:0 3px;
  z-index:4;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-controls button{
  width:36px;min-width:36px;min-height:36px;font-size:27px;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-status{
  font-size:11px;min-width:0;
 }
 #legolasPanel #arcaneGallery:not(.hidden) .arcane-gallery-hatch-test{
  display:none!important;
 }
}
/*
 * ARCANE Character Sheet — first pass, 2026-10-18
 * Character view only. Deliberately keeps the original input fields, upload
 * buttons, dynamic render() lifecycle and navigation handlers intact.
 * All ornamental assets are transparent, scalable SVGs.
 */
body.character-glowup-active #view{
  --arcane-bronze:#bb8d4c;
  --arcane-light-gold:#e7bf78;
  --arcane-ivory:#f3e4c9;
  --arcane-brown:#1b140e;
  --arcane-green:#103628;
  --arcane-border:rgba(184,133,72,.6);
}

body.character-glowup-active #view .sheet{
  border:1px solid #85613c;
  background:radial-gradient(ellipse at 50% -10%,rgba(63,80,45,.22),transparent 60%),
             linear-gradient(140deg,#14170f,#080d0a 70%);
  box-shadow:0 0 0 3px #100f0b,0 18px 45px #0009,inset 0 0 0 1px #d5b47421;
}

/* One consistent set of bronze/leather tabs throughout the character sheet. */
body.character-glowup-active #view .tabs{
  display:flex;
  gap:6px;
  margin:0 0 14px;
  padding:5px;
  max-width:100%;
  overflow-x:auto;
  scrollbar-width:thin;
  scrollbar-color:#846541 #16110d;
  background:linear-gradient(180deg,#282017,#100e0b);
  border:1px solid #766044;
  border-radius:13px;
  box-shadow:inset 0 2px 8px #000a,0 2px 0 #d9b1781b;
}
body.character-glowup-active #view .tab{
  flex:1 0 auto;
  min-height:43px;
  margin:0;
  padding:9px 14px;
  border:1px solid #745432;
  border-radius:9px;
  background:linear-gradient(165deg,#252017 0%,#11130f 56%,#0c100c 100%);
  box-shadow:inset 0 1px 0 #f5d3a220,inset 0 -2px 5px #0008;
  color:#dbc9ad;
  font:700 clamp(13px,1.2vw,17px)/1.1 Georgia,'Times New Roman',serif;
  text-shadow:0 1px 2px #000;
  white-space:nowrap;
}
body.character-glowup-active #view .tab:is(:hover,:focus-visible){
  background:linear-gradient(155deg,#352c1b,#1b2117);
  border-color:#d0ab6c;
  color:#f9e9c9;
}
body.character-glowup-active #view .tab.active{
  background:linear-gradient(165deg,#20513c,#123a2b 52%,#0b221b);
  border-color:#c4a16b;
  color:#fff1d5;
  box-shadow:inset 0 1px #e6c9855c,0 0 0 1px #744c2c,inset 0 -8px 16px #0005;
}

/* Portrait and personal information are ONE character artifact, not a form. */
body.character-glowup-active #view #grundPanel > .hero{
  display:grid;
  grid-template-columns:minmax(260px,.92fr) minmax(0,1fr);
  gap:0;
  margin:4px 0 0;
  align-items:stretch;
  overflow:visible;
}
body.character-glowup-active #view #grundPanel #portrait{
  position:relative;
  isolation:isolate;
  box-sizing:border-box;
  display:block;
  width:100%;
  min-width:0;
  min-height:0;
  height:auto;
  aspect-ratio:1 / 1.13;
  overflow:hidden;
  border:3px solid #946b3b;
  border-radius:12px;
  background:radial-gradient(circle at 50% 30%,#2d3624,#0b100d 70%);
  box-shadow:0 0 0 3px #19120e,0 0 0 4px #9a703c55,0 14px 23px #0009,inset 0 0 0 2px #f5c27e;
}
body.character-glowup-active #view #grundPanel #portrait img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 35%;
}
body.character-glowup-active #view #grundPanel #portrait::after{
  content:'';
  position:absolute;
  inset:-1px;
  z-index:1;
  pointer-events:none;
  background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1000'%20height='720'%20viewBox='0%200%201000%20720'%20preserveAspectRatio='none'%20aria-hidden='true'%3e%3cdefs%3e%3clinearGradient%20id='br'%20x1='0'%20x2='1'%20y1='0'%20y2='1'%3e%3cstop%20stop-color='%23f0cd7f'/%3e%3cstop%20offset='.28'%20stop-color='%238c5529'/%3e%3cstop%20offset='.55'%20stop-color='%23dfaf5b'/%3e%3cstop%20offset='.8'%20stop-color='%235d371e'/%3e%3cstop%20offset='1'%20stop-color='%23dfbc78'/%3e%3c/linearGradient%3e%3clinearGradient%20id='sh'%20x1='0'%20x2='0'%20y1='0'%20y2='1'%3e%3cstop%20stop-color='%23e1c081'%20stop-opacity='.82'/%3e%3cstop%20offset='1'%20stop-color='%235d4024'%20stop-opacity='.62'/%3e%3c/linearGradient%3e%3cg%20id='corner'%20fill='none'%20stroke='url(%23br)'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cpath%20stroke-width='5'%20d='M15%2095%20V31%20Q15%2015%2031%2015%20H102'/%3e%3cpath%20stroke-width='2'%20d='M26%2089%20V39%20Q26%2026%2039%2026%20H93'/%3e%3cpath%20stroke-width='3.5'%20d='M18%2074%20Q31%2064%2031%2047%20Q48%2047%2048%2030%20Q64%2031%2075%2017'/%3e%3cpath%20stroke-width='2.4'%20d='M27%2061%20C52%2057%2055%2033%2044%2039%20C31%2046%2052%2070%2072%2045%20C82%2033%2076%2028%2069%2031'/%3e%3cpath%20stroke-width='2'%20d='M30%2078%20C52%2079%2051%2058%2043%2058%20C36%2057%2044%2069%2058%2066'/%3e%3cpath%20stroke-width='2'%20d='M88%2026%20C80%2041%2091%2053%20103%2047'/%3e%3cpath%20stroke-width='1.7'%20d='M27%2089%20l8%20-8%20m-9%20-42%20l9%20-8%20m43%20-5%20l10%20-10'/%3e%3cpath%20fill='%23d9ab5c'%20stroke='%23483019'%20stroke-width='2'%20d='M14%2014%20L28%2014%20L28%2028%20L14%2028%20Z'/%3e%3cpath%20fill='%230d463b'%20stroke='%23b98947'%20stroke-width='2'%20d='M21%2017%20L25%2021%20L21%2025%20L17%2021%20Z'/%3e%3c/g%3e%3cg%20id='jewel'%20fill='none'%20stroke='url(%23br)'%20stroke-width='3'%3e%3cpath%20d='M0%20-25%2023%200%200%2025%20-23%200Z'/%3e%3cpath%20d='M0%20-17%2015%200%200%2017%20-15%200Z'/%3e%3cpath%20d='M0%20-24%20V24%20M-23%200%20H23'/%3e%3cpath%20fill='%230c4c41'%20stroke-width='2'%20d='M0%20-8%208%200%200%208%20-8%200Z'/%3e%3c/g%3e%3c/defs%3e%3crect%20x='5'%20y='5'%20width='990'%20height='710'%20rx='22'%20fill='none'%20stroke='%232d1d10'%20stroke-width='10'/%3e%3crect%20x='8'%20y='8'%20width='984'%20height='704'%20rx='17'%20fill='none'%20stroke='url(%23br)'%20stroke-width='5'/%3e%3crect%20x='15'%20y='15'%20width='970'%20height='690'%20rx='12'%20fill='none'%20stroke='%23e7c587'%20stroke-opacity='.48'%20stroke-width='1.5'/%3e%3cg%3e%3cuse%20href='%23corner'/%3e%3cuse%20href='%23corner'%20transform='translate(1000%200)%20scale(-1%201)'/%3e%3cuse%20href='%23corner'%20transform='translate(0%20720)%20scale(1%20-1)'/%3e%3cuse%20href='%23corner'%20transform='translate(1000%20720)%20scale(-1%20-1)'/%3e%3c/g%3e%3cpath%20d='M125%2012%20H461%20M539%2012%20H875%20M125%20708%20H461%20M539%20708%20H875'%20stroke='url(%23sh)'%20stroke-width='2'%20fill='none'/%3e%3cuse%20href='%23jewel'%20transform='translate(500%2013)%20scale(1%20.9)'/%3e%3cuse%20href='%23jewel'%20transform='translate(500%20707)%20scale(1%20.9)'/%3e%3c/svg%3e") center / 100% 100% no-repeat;
}
body.character-glowup-active #view #grundPanel #portrait .portrait-edit-btn{
  z-index:3;
  font-family:Georgia,serif;
  border-color:#c4995f;
  background:linear-gradient(#294332,#13241c);
  color:#fae8cb;
}

/* The existing identity fields become a real nameplate and compact stats. */
body.character-glowup-active #view #grundPanel #identity{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-template-areas:
     'name name name name'
     'race race title title'
     'combat combat gender age'
     'combat combat length weight'
     'combat combat social social';
  grid-template-rows:auto auto repeat(3,minmax(67px,auto));
  align-content:start;
  align-items:stretch;
  column-gap:7px;
  row-gap:7px;
  margin:0;
  padding:9px 11px 12px;
  min-width:0;
  border:1px solid var(--arcane-border);
  border-radius:13px;
  background:
    radial-gradient(ellipse at top,rgba(20,71,46,.27),transparent 65%),
    repeating-linear-gradient(95deg,transparent 0 4px,#c19b4c05 5px 6px),
    linear-gradient(145deg,#15170f,#0a100c);
  box-shadow:inset 0 0 0 2px #0e0c09,inset 0 0 0 3px #94683a4a,0 9px 25px #0007;
}
body.character-glowup-active #view #grundPanel #identity::before{
  content:'';
  position:absolute;
  z-index:0;
  pointer-events:none;
  top:-6px;
  left:-3px;
  right:-3px;
  height:120px;
  background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='1000'%20height='184'%20viewBox='0%200%201000%20184'%20preserveAspectRatio='none'%20aria-hidden='true'%3e%3cdefs%3e%3clinearGradient%20id='gold'%20x1='0'%20x2='1'%20y1='0'%20y2='1'%3e%3cstop%20stop-color='%23e6c586'/%3e%3cstop%20offset='.35'%20stop-color='%238e592e'/%3e%3cstop%20offset='.65'%20stop-color='%23e6c07c'/%3e%3cstop%20offset='1'%20stop-color='%2374502f'/%3e%3c/linearGradient%3e%3cg%20id='ornament'%20stroke='url(%23gold)'%20stroke-linejoin='round'%20fill='none'%3e%3cpath%20stroke-width='3.2'%20d='M15%20116%20V44%20Q15%2016%2043%2016%20H123'/%3e%3cpath%20stroke-width='1.7'%20d='M26%20105%20V49%20Q26%2027%2048%2027%20H99'/%3e%3cpath%20stroke-width='3'%20d='M15%2058%20C46%2068%2080%2043%2077%2018'/%3e%3cpath%20stroke-width='2'%20d='M30%2088%20C81%2093%2091%2050%2068%2049%20C46%2049%2066%2079%2092%2064'/%3e%3cpath%20stroke-width='1.7'%20d='M46%2037%20C65%2048%2070%2029%2084%2027'/%3e%3cpath%20stroke-width='2'%20d='M33%20111%20C55%20102%2056%20121%2038%20129'/%3e%3cpath%20stroke-width='2'%20d='M41%2018%20l-8%208%208%208%208%20-8Z'%20fill='%230f4939'/%3e%3cpath%20stroke-width='3'%20d='M37%20137%20C61%20139%2073%20155%2078%20167'/%3e%3c/g%3e%3c/defs%3e%3cpath%20d='M20%200%20H980%20L1000%2022%20V157%20L978%20184%20H22%20L0%20157%20V22Z'%20fill='%23080e0b'%20fill-opacity='.2'%20stroke='%23312113'%20stroke-width='8'/%3e%3cpath%20d='M25%207%20H975%20L992%2024%20V154%20L974%20177%20H26%20L8%20154%20V24Z'%20fill='none'%20stroke='url(%23gold)'%20stroke-width='2.5'/%3e%3cpath%20d='M155%2022%20H845%20M188%20163%20H812'%20fill='none'%20stroke='url(%23gold)'%20stroke-width='1.2'%20stroke-opacity='.55'/%3e%3cuse%20href='%23ornament'/%3e%3cuse%20href='%23ornament'%20transform='translate(1000%200)%20scale(-1%201)'/%3e%3cpath%20d='M500%205%20l14%2014%20-14%2014%20-14%20-14Z'%20fill='%230d392d'%20stroke='url(%23gold)'%20stroke-width='2'/%3e%3cpath%20d='M500%20150%20l12%2012%20-12%2012%20-12%20-12Z'%20fill='%230d392d'%20stroke='url(%23gold)'%20stroke-width='2'/%3e%3cpath%20d='M275%20142%20H464%20M536%20142%20H725'%20stroke='url(%23gold)'%20stroke-width='1.6'%20opacity='.7'/%3e%3cpath%20d='M500%20130%20l12%2012%20-12%2012%20-12%20-12Z'%20fill='%2370491d'%20stroke='url(%23gold)'%20stroke-width='2.1'/%3e%3c/svg%3e") center / 100% 100% no-repeat;
}
body.character-glowup-active #view #grundPanel #identity > .field{
  position:relative;
  z-index:1;
  min-width:0;
  min-height:0;
  margin:0;
  border-radius:7px;
  border:1px solid #815d355e;
  background:linear-gradient(155deg,#111912,#0b100d);
  box-shadow:inset 0 1px #e6c0880a;
  padding:9px 11px;
}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(1){grid-area:name}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2){grid-area:race}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3){grid-area:title}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(4){grid-area:combat}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(5){grid-area:gender}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(6){grid-area:age}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(7){grid-area:length}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(8){grid-area:weight}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(9){grid-area:social}

body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:is(:nth-child(1),:nth-child(2),:nth-child(3)){
  background:transparent;
  border:0;
  box-shadow:none;
}
body.character-glowup-active #view #grundPanel #identity > .field.name{
  display:flex;
  align-items:end;
  justify-content:center;
  padding:19px 12px 1px;
  text-align:center;
}
body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name .label,
body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(2) .label,
body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(3) .label{display:none}
body.character-glowup-active #view #grundPanel #identity > .field.name .val{
  margin:0;
  max-width:100%;
  overflow-wrap:anywhere;
  font:700 clamp(24px,2.8vw,42px)/1.06 Georgia,'Times New Roman',serif;
  color:#f7e4c1;
  letter-spacing:.01em;
  text-shadow:0 2px 2px #000,0 0 16px #ce98502b;
}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2),
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3){
  padding:0 5px 17px;
  text-align:center;
  align-self:start;
}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2){text-align:right;padding-right:8px}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3){text-align:left;padding-left:8px}
body.character-glowup-active #view #grundPanel #identity > .field:is(:nth-child(2),:nth-child(3)) .val{
  margin:0;
  font:500 clamp(13px,1.6vw,19px)/1.2 Georgia,'Times New Roman',serif;
  color:#e2c89a;
}
body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(2) .val::after{
  content:' ·';
  color:#c59b58;
  padding-left:5px;
}
body.character-glowup-active #view #grundPanel #identity .label{
  color:#bba06c;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:9px 7px 9px clamp(21px,3vw,30px);
  border:1px solid #72532e9c;
  background:linear-gradient(145deg,#111810,#0b100d);
}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5)::before{
  position:absolute;
  top:50%;
  left:7px;
  transform:translateY(-50%);
  font:700 17px/1 Georgia,serif;
  color:#cba061;
  opacity:.88;
}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(5)::before{content:'♀'}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(6)::before{content:'⌛'}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(7)::before{content:'↕'}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(8)::before{content:'◆'}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(9)::before{content:'♜'}
body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5) .val{
  margin:3px 0 0;
  color:#f2e6d0;
  font:500 clamp(15px,1.6vw,21px)/1.1 Georgia,serif;
  overflow-wrap:anywhere;
}

/* Show the actual combat token, not placeholder copy, in a bronze medallion.
 * The existing upload/remove actions remain available while editing. */
body.character-glowup-active #view #grundPanel #identity > .character-combat-icon-field{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:8px 4px;
  border:1px solid #6c4f30ad;
  background:radial-gradient(ellipse at center,#193e2c 0%,#111810 66%,#090e0b);
}
body.character-glowup-active #view #grundPanel #identity > .character-combat-icon-field > .label{
  z-index:1;
  text-align:center;
  margin:0 0 4px;
  font:600 10px Georgia,serif;
}
body.character-glowup-active #view #grundPanel .character-combat-icon-control{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:0;
  min-width:0;
  width:min(100%,132px);
  min-height:126px;
  padding:14px;
  background:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='224'%20viewBox='0%200%20200%20224'%20aria-hidden='true'%3e%3cdefs%3e%3clinearGradient%20id='gold'%20x1='0'%20y1='0'%20x2='1'%20y2='1'%3e%3cstop%20stop-color='%23ffe0a0'/%3e%3cstop%20offset='.28'%20stop-color='%238e582b'/%3e%3cstop%20offset='.6'%20stop-color='%23d3a45d'/%3e%3cstop%20offset='.9'%20stop-color='%235a361f'/%3e%3cstop%20offset='1'%20stop-color='%23d7b06d'/%3e%3c/linearGradient%3e%3clinearGradient%20id='leather'%20x1='0'%20y1='0'%20x2='0'%20y2='1'%3e%3cstop%20stop-color='%23174432'/%3e%3cstop%20offset='1'%20stop-color='%2308140e'/%3e%3c/linearGradient%3e%3c/defs%3e%3cpath%20d='M100%205%20167%2026%20194%2091%20174%20164%20100%20217%2026%20164%206%2091%2033%2026Z'%20fill='%23130f0b'%20stroke='%23392614'%20stroke-width='10'/%3e%3cpath%20d='M100%206%20167%2027%20193%2091%20174%20163%20100%20215%2026%20163%207%2091%2033%2027Z'%20fill='url(%23leather)'%20stroke='url(%23gold)'%20stroke-width='6'/%3e%3cpath%20d='M100%2017%20159%2036%20182%2093%20164%20156%20100%20202%2036%20156%2018%2093%2041%2036Z'%20fill='none'%20stroke='%23dcba78'%20stroke-width='1.6'%20opacity='.72'/%3e%3cpath%20d='M100%2029%20146%2046%20166%2094%20150%20145%20100%20185%2050%20145%2034%2094%2054%2046Z'%20fill='%230b1c15'%20stroke='%236b4928'%20stroke-width='2.6'/%3e%3cpath%20d='M100%2018%20105%2024%20100%2030%2095%2024Z%20M100%20188%20105%20194%20100%20200%2095%20194Z%20M22%2094%2028%20100%2022%20106%2016%20100Z%20M178%2094%20184%20100%20178%20106%20172%20100Z'%20fill='%230b5140'%20stroke='url(%23gold)'%20stroke-width='1.4'/%3e%3cpath%20d='M38%20137%20Q20%20119%2027%2097%20M162%20137%20Q180%20119%20173%2097'%20fill='none'%20stroke='url(%23gold)'%20stroke-width='2.1'%20stroke-linecap='round'/%3e%3cpath%20d='M45%2048%20Q62%2035%2077%2030%20M155%2048%20Q138%2035%20123%2030'%20fill='none'%20stroke='url(%23gold)'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e") center / contain no-repeat;
}
body.character-glowup-active #view #grundPanel .character-combat-icon-field .combat-icon-hex{
  flex:0 0 auto;
  width:55px;
  height:62px;
  padding:3px;
  filter:drop-shadow(0 3px 4px #0008);
}
body.character-glowup-active:not(.editing) #view #grundPanel .character-combat-icon-actions{display:none}
body.character-glowup-active.editing #view #grundPanel .character-combat-icon-control{
  width:100%;
  min-height:142px;
  padding:5px;
  background-position:center 4px;
  background-size:112px 132px;
}
body.character-glowup-active.editing #view #grundPanel .character-combat-icon-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px;
  margin-top:10px;
}
body.character-glowup-active.editing #view #grundPanel .character-combat-icon-actions small{
  flex-basis:100%;
  text-align:center;
  color:#b8a384;
}
body.character-glowup-active #view #grundPanel .grund-input{
  max-width:100%;
  min-width:0;
}
body.character-glowup-active #view #grundPanel #identity .grund-input{
  width:100%;
  margin-top:5px;
  background:#090f0b;
  border-color:#b38b57;
  color:#f8e8cd;
}

/* Prominent, functional leather equipment button below the identity panel. */
body.character-glowup-active #view #grundPanel .current-equipment-launch{
  margin:13px 0 21px;
}
body.character-glowup-active #view #grundPanel .current-equipment-launch .btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:52px;
  padding:12px 43px;
  border:2px solid #a67a43;
  border-radius:11px;
  background:linear-gradient(165deg,#20503a 0%,#143b2b 48%,#0b221a 100%);
  box-shadow:inset 0 1px 0 #e8c99066,inset 0 0 0 2px #10271c,0 6px 16px #0008;
  color:#f9e7c8;
  text-shadow:0 2px 2px #000b;
  font:700 clamp(17px,2vw,23px)/1.2 Georgia,serif;
}
body.character-glowup-active #view #grundPanel .current-equipment-launch .btn::after{
  content:'›';
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-53%);
  color:#eac181;
  font:700 32px/1 Georgia,serif;
}
body.character-glowup-active #view #grundPanel .current-equipment-launch .btn:is(:hover,:focus-visible){
  border-color:#f0c786;
  background:linear-gradient(165deg,#296347,#12402e);
}

/* Bring the following sections into the same manuscript, without changing data. */
body.character-glowup-active #view #grundPanel > .glow-stat-section{
  border-color:#947047;
  border-radius:12px;
  background:radial-gradient(ellipse at 12% 0%,#31533324,transparent 65%),linear-gradient(#111610,#080e0b);
  box-shadow:inset 0 0 0 1px #d2a56a13,0 10px 22px #0007;
}
body.character-glowup-active #view #grundPanel > .glow-stat-section > .section-title{
  color:#edd9b4;
}
body.character-glowup-active #view #grundPanel #basegrid{
  border-color:#81643c;
  background:#0d110e;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-head{
  background:linear-gradient(#194330,#112e23);
  border-bottom-color:#8f7246;
  color:#f5e6cb;
}
body.character-glowup-active #view #grundPanel #derived .glow-derived-card{
  border-color:#80613b;
  background:linear-gradient(120deg,#172e20,#0d1c15);
}
body.character-glowup-active #view #grundPanel #derived .glow-derived-value{
  border-color:#bc9356;
}

@media (max-width:850px){
  body.character-glowup-active #view #grundPanel > .hero{
    display:grid;
    grid-template-columns:1fr;
  }
  body.character-glowup-active #view #grundPanel #portrait{
    aspect-ratio:1.22 / 1;
    max-height:470px;
  }
  body.character-glowup-active #view #grundPanel #identity{
    margin-top:8px;
  }
}
@media (max-width:700px){
  /* Seven art icons fit on one row rather than wrapping settings alone. */
  body.character-glowup-active .alea-app-header .alea-toolstrip{
    grid-template-columns:repeat(7,minmax(0,1fr))!important;
    gap:3px;
  }
  body.character-glowup-active .alea-app-header .alea-toolstrip > .btn.alea-nav-art{
    min-width:0!important;
    max-width:100%!important;
    width:100%!important;
    height:42px!important;
    min-height:42px!important;
  }
  body.character-glowup-active #view .sheet{padding:9px}
  body.character-glowup-active #view .tabs{gap:4px;margin-bottom:12px}
  body.character-glowup-active #view .tab{padding:8px 10px;min-height:40px;font-size:clamp(13px,3.5vw,16px)}
  body.character-glowup-active #view #grundPanel #portrait{
    aspect-ratio:1.16 / 1;
    max-height:390px;
    border-radius:10px;
  }
  body.character-glowup-active #view #grundPanel #identity{
    grid-template-rows:auto auto repeat(3,minmax(58px,auto));
    column-gap:5px;
    row-gap:5px;
    padding:6px 7px 9px;
  }
  body.character-glowup-active #view #grundPanel #identity::before{height:105px}
  body.character-glowup-active #view #grundPanel #identity > .field.name{padding:14px 5px 1px}
  body.character-glowup-active #view #grundPanel #identity > .field.name .val{font-size:clamp(24px,6vw,31px)}
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2),
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3){padding-bottom:14px}
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
    padding:7px 4px 7px 24px;
  }
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5)::before{
    left:6px;
    font-size:15px;
  }
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5) .val{font-size:clamp(14px,4vw,17px)}
  body.character-glowup-active #view #grundPanel .character-combat-icon-control{min-height:124px}
  body.character-glowup-active #view #grundPanel .current-equipment-launch{margin:11px 0 17px}
}
@media (max-width:365px){
  body.character-glowup-active #view #grundPanel #identity{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  body.character-glowup-active #view #grundPanel #identity .label{
    font-size:9px;
    letter-spacing:0;
  }
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
    padding-left:19px;
  }
  body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5)::before{
    left:4px;font-size:13px;
  }
}
/*
 * ARCANE SYSTEM v1 — real image-rendered materials.
 * Gate keeps the existing SVG implementation as a fallback if an asset fails.
 * CSS variables are shared and can be reused by other modules.
 */
:root{
  --arcane-art-portrait: url('./portrait-frame-BjkEMuiX.avif');
  --arcane-art-nameplate: url('./nameplate-Dl-u0k1A.avif');
  --arcane-art-stat: url('./stat-panel-DS6iZWib.avif');
  --arcane-art-combat: url('./combat-medallion-Bb6V2Q-7.avif');
  --arcane-art-equipment: url('./equipment-button-GUg4WWot.avif');
  --arcane-art-tab-active: url('./tab-active-S-LDPMO7.avif');
  --arcane-art-tab-inactive: url('./tab-inactive-CsVfXJfC.avif');
  --arcane-art-nav-active: url('data:image/avif;base64,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');
  --arcane-art-nav-inactive: url('data:image/avif;base64,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');
}
/* Keep the layout and existing inputs, replace their synthetic materials. */
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait{
  box-shadow:0 10px 25px #0009!important;
  border:0!important;
  border-radius:0!important;
  overflow:hidden;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait::after{
  inset:0!important;
  background:none!important;
  border:28px solid transparent;
  border-image-source:var(--arcane-art-portrait);
  border-image-slice:18% 17% fill;
  border-image-width:28px;
  pointer-events:none;
  z-index:2;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait > img{
  /* Preserve the picture under the transparent opening. */
  box-sizing:border-box;
  padding:15px 18px 16px;
  border-radius:16px;
  object-fit:cover;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity::before{
  background:var(--arcane-art-nameplate) center / 100% 100% no-repeat!important;
  height:114px;
  top:-8px;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity{
  border:17px solid transparent!important;
  border-image-source:var(--arcane-art-stat);
  border-image-slice:23% 16% fill;
  border-image-width:17px;
  border-radius:0;
  background:none!important;
  box-shadow:0 12px 24px #0008!important;
  padding:2px 1px 4px;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
  border:0!important;
  background:var(--arcane-art-stat) center / 100% 100% no-repeat!important;
  box-shadow:none!important;
  border-radius:0!important;
  min-height:62px;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(n+5)::before{
  content:''!important;
  display:block;
  width:24px;
  height:26px;
  background:transparent center / contain no-repeat;
  left:7px;
  font-size:0!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(5)::before{
  background-image:url('data:image/avif;base64,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');
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(6)::before{
  background-image:url('data:image/avif;base64,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');
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(7)::before{
  background-image:url('data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAAGGbWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAAAAAAAOcGl0bQAAAAAAAQAAACxpbG9jAAAAAEQAAAIAAQAAAAEAAARdAAAGXQACAAAAAQAAAa4AAAKvAAAAQmlpbmYAAAAAAAIAAAAaaW5mZQIAAAAAAQAAYXYwMUNvbG9yAAAAABppbmZlAgAAAAACAABhdjAxQWxwaGEAAAAAGmlyZWYAAAAAAAAADmF1eGwAAgABAAEAAADDaXBycAAAAJ1pcGNvAAAAFGlzcGUAAAAAAAAAoAAAALAAAAAQcGl4aQAAAAADCAgIAAAADGF2MUOBAAwAAAAAE2NvbHJuY2x4AAEADQAGgAAAAA5waXhpAAAAAAEIAAAADGF2MUOBABwAAAAAOGF1eEMAAAAAdXJuOm1wZWc6bXBlZ0I6Y2ljcDpzeXN0ZW1zOmF1eGlsaWFyeTphbHBoYQAAAAAeaXBtYQAAAAAAAAACAAEEAQKDBAACBAEFhgcAAAkUbWRhdBIACgYYHefr2FQyogUSsBhgUNgCwvKze96PiQBHtgH8s5zKoa5KORNZadIIyjcmQ/SgW0ij7uT/vTzG39hu8JtJ+x0BUwBpy8hyypTcq+nJJTwFxgtgDvA5rAF5hWiuqyUsgx9qQO5eh+Vj5R1zivqbyWjXe0gtNLIEJoEjne4ll0wQsMsdnGTgrYwDRlVSjmDCnUoiBj09uQo1tLp5fFXZgwnxH1NrduyPnZupUVgsVghaLVVCcAfK53F8rG01QFOjU7N1ORHovKsQjcFw0KialN4+wTMYBmIUV0Y3GEQJ2EFqia6tXBMgE+JJSvPUa/s7WtYsCgNIm9XU7HGMvFXlW717Y9ApRN3L9oNzxwUDJIfyb8WXvcIMdpnW/gagId9zTDybY2f0lfD1fRcZLSKdZWIP7v1gu0JELaa6wJRN8BB6fp5Y2XU+eyUmCIjcc4+XZb/o71ftDjAeff7tW9cTR1nh8xPfpfjhHAcSX3V4cyskQrqG6TZ5gpVP9wlCGzB/F91D93iWVqsj8zx1Gpc/+BmwaQoLyC0AOkJb8CDYY6Kw9ctqu0lb+s2GdoquqY2UNTZzCnazwJVI0EAzV4jX2r2OPw6txBLljYpOjCnqc99OK43PryvcRt1Rw4aX31FK2TTU5KehgSBmWixEHHbtbkacB3rYbA7gpTrLK+/6M1T94UsKsd1Dzcu9G3VV2TY5KjiFB5RZXXmR3w6Vg6uvP/uum8hBcoefOw8TpFOc00UIeuHRpxa7GmMHjeSmuZpvS6u/jWpMM64sk0CyZbEkEGCv2WsFNwFrKeCn/SRcggQleMXsTYyBm9YXZCnQ4QuO8d8YYocDNi0UghT4535bc12eWvGaATtm0GMpw1N1ZLD2XKFKn+7sojU16Kowkm08nskqirPAHTUEO69upBIACgoYHefr2iAhoNCAMswMEwHh4Xd0cccYsVBg1/7wzEnN1KkvarW+aJq4cjk97sQzAsO2XIBPXCHH5ZiSrV6yv4+06UJdjwQnfozh57pjMJ3ZMx2xQx/aYPvp3I6nlssB4wpeHsFPuNpd2gyCYAONVrYKtoRxJ1ezUvC+TnDbPd60amH7H3HeF1z3l7i177C033gVvWCxjrbCNT2Z5IBYjdAKf3bcpjCeSZLgLE8pe5tfdX+nDymK04DxN2W/VXO2UF9uEmgrORuCE5+9MkEjAhjR3q+uEqa4Ci6J5bm1HS97J2KMQCJD5NAGpf1fYSyFHVCnnnIvGOnEJOX/x7bq//Egagtww/bTUmP2YEU5E5q8x3bH7oY2L3cZOySagDhsxEyAAwIm59BAnEcs7ivjEUwSu1i+xvHQPKsamUuACsc1d6QyZG420XOE//ByH2rO1kwemAjYv49xF4eTwmOwtD1vmnZzRXQPZ8fiIZY/2Qt6NOq5PMOFCiO9WxBvw3T0Zdg771UNC/8lfitOXFFuK4Dm3o9atqahpcI74kafsWjVsGnBGIo0XwDJ6MeDdZunbNUhfXAIE5ke4EQRdAu9syNXpQIsLk1j54BkjV6cYVyQvksAaBcx1ueCys1KQrNyKDJZ1QuyiEHLZsJknlToeP9AhRulWUDcnrDDh0tdjWn9qth53GgtcbQE8Y3pwBh53h00YzObor4T6sRPI9FdoaDJa2sGZ36Lx/a92YnOOYMiaFvK8uXDINP2xvn/hTXY2l2psPZ2Ycahl4fCwDm2xWNVqksJzBiAI50bJm93ohCk+1oeLNkxDhZtnKqkuH6lkn+hbqZeJytO288xY1WGAcdZrOgGYKiNawwvAWR6Aihf0IedSt7yVaIFR0obmkLqTXBM76sLdR6pJEU9/dwZFKkfyOUJ/iLl33DiwYEDEGP0olmGTMNfDawugWWo3UkOs85Kup2NMkT+8P6CELc+O/Rr5kHfMgm/ZITD0tx3yhc2A0fbuh95BhGAo8qem1M6et9W6rcUlwBJxSLHJygmz2qfCtHR7m4fLPX97RkQhtsr53hBDoTyY8xEswOXOsQjILoMYixJizOqB3Hd/561alzTBaD1eAAijyU7NixVn1hFVdIZAlA5AX6Zon4J0GAe1yqob8P6CdoG384x5N3wGrlgGzPXV7SU8+76/BgRN8p/qKcCJ07TI+3DhMOJApWAy9j8TTNBc9Yj5iSHlcum54yJ7XHkOB7BH1DMsUZHudPGhn4tX3DaG1KC4s2iU5kBWDQMHDPtatgY9M7hjkW620o3wKCFYV0cbww4+Ri0XT9g3H7AhAi8vq8gDeZttqgpyLvmFjm2lvAYBC/o2SZB89ACOCmP+iBQUY0fUNHO60IhjwIhPncxVsINgy0WJ9Cmj3l4bO/791e4VkX/afFB8IIA+82HEfifJolMfxQhFlv65zMUfemiC+fuzblifky99QJmfluYmdUWTXUUvTDMTGSbHAOr3Kwz7mqIL1U7evUS1/VlvOdi424sla1Q1UnFsdvZ5acbP4yDh8UaasFr/8x0BxDXUzg0CdVYh8ajXd430oJKF9AJ7/ZUBLzD0aaHkkl2KhV8zZ3sRayL24BUk5E00HQxjC9d9d1Qqn98n8mqAwdHuCYNmbfE8BiKPEs8lbJ1H6YT/XfGQcTNyYhr083Z4Fjjlbzwzsy6M15oZHJ+iDOXbyTLz8IEFH1+H9ytrizMdKEL7V4pJSbHr10BVAYaGUIxmkfbwEQdzQP+aqU0vbGU+gi19S+H0KfiG2Ylkb8qMp4axUoMXNOGW/NVqIJGaDE1qoCiK2Ef2O8+UnY+2t1MafQzavBSvlRcAVMB3875rGCjZ7W1btKMmj7deynQ3F/K3V5JdtfVVpy10IV6Ul0CMfv090ehQitCCrphcTQDnqQIMiVXT82480YnX5+JtvTkzQix7WgRlILQZyP6yV+/BWjEOoz/WButM0VXnYyx5yaiVHsYhzgor8BEneFrGZU9t99m4RjZaJtfse4Ha69/kPEmiwittUN4y5iDBoDLUDEeVKOK70ZzUXP4aOlKJigpILlyPa5nx12ldxqF5tLHwtWbc6KTqxRah28VZb3lQUMq1JjAYf332hRhz7bleynM2c9SzEEbu2dg5mybl42Z0RBnBcLLUA==');
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(8)::before{
  background-image:url('data:image/avif;base64,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');
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(9)::before{
  background-image:url('data:image/avif;base64,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');
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
  padding-left:35px!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .character-combat-icon-field{
  background:linear-gradient(150deg,#131a12,#090f0b)!important;
  border:1px solid #70502c!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-control{
  background:var(--arcane-art-combat) center / contain no-repeat!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-field .combat-icon-hex{
  background:#845b2c;
  --combat-side:#b6905c;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-field .combat-icon-hex-inner > span{
  display:block;
  font-size:0!important;
  width:100%;
  height:100%;
  background:url('data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAAGGbWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAAAAAAAOcGl0bQAAAAAAAQAAACxpbG9jAAAAAEQAAAIAAQAAAAEAAAQkAAAG9wACAAAAAQAAAa4AAAJ2AAAAQmlpbmYAAAAAAAIAAAAaaW5mZQIAAAAAAQAAYXYwMUNvbG9yAAAAABppbmZlAgAAAAACAABhdjAxQWxwaGEAAAAAGmlyZWYAAAAAAAAADmF1eGwAAgABAAEAAADDaXBycAAAAJ1pcGNvAAAAFGlzcGUAAAAAAAAAoAAAALYAAAAQcGl4aQAAAAADCAgIAAAADGF2MUOBAAwAAAAAE2NvbHJuY2x4AAEADQAGgAAAAA5waXhpAAAAAAEIAAAADGF2MUOBABwAAAAAOGF1eEMAAAAAdXJuOm1wZWc6bXBlZ0I6Y2ljcDpzeXN0ZW1zOmF1eGlsaWFyeTphbHBoYQAAAAAeaXBtYQAAAAAAAAACAAEEAQKDBAACBAEFhgcAAAl1bWRhdBIACgYYHeftWFQy6QRErAYYFLT6/qxf8eWdxiizxwC2nAvQMJ7Ma41+gmarnnGfhZHLMhd7Dl6j0QDuGi0cSGIwHRh6xq6kDAuTW1eDmKa8o/dkn6jmdTRLOji2a5pwn5XA1so3YgyiG9IYYAPYnpouLtNAL4HANXjsyIkJW030nM7yMt1oAjbD7xtP5WAX12tQO+zJnAyIxnw5/cofrpZJ7k3GcdL9lA99EcxQpDeJk3efLS7ZcNevz6aNLUdSFLfJgawpNw8ZMA04LsFJEvCmrhpUPH82cweZlCJZtppTHJoeBeEjVcq655TAuPn81rIlUVohhH4bjHgL7Dic3+9kJgyDcddOQIMzSLyD/pTOnc5sey6pkVE1sCxsbDfvw+1bFmYOLVm/LnftOBtaEBAmFFSzRjPCJ7NrkiQGFzOWrK3/YEJl/1x+4uqVfLRWbMz5uI7oV2Zi2+p7j7rO/UwfOweR/AXmygCAyLvf7WWKWR07FfpcnDyOhpERug2dfJFrSvFSlGUvmt3Y62yYZnI0csATgb5CjOW5ZknaWVJdxKu3Ens3/8WtqRZ8yVaCZ/33YWrLa0qZ4Kk6XPaaqEDr5Z5PnEnpHLfaNMrZKU98voeSEUoEFxwgg7Fp3qljAnIHx79CJLuLBYX6j1VWWLbr98YeoehPFiIHaD/fd8Ex9wVLvLZIYW4byzHhQfe+m/bi+rhtOtYs3KHsqUrCXFbdKNR2nqKFSWdkrcy7PFdGYZcelTYbPLt/u3gOZ6wycFjrCrq/LWDKX6JdV5ByPGvsYgLWPYKdXKwy6txMWglUs6TYPwyWyz/RZ9/JuW+Qo4H+YmVzgBIACgoYHeftWiAhoNCAMuYNEwHh4Xd0cccYsVUgzaR+1DYUlP+9MtQjWfnqulLpR9zAEa3/FzycLbRX/rZRLnibOnEw52h2xV2SWTd9kki06K/SlBoa68eYmlKLoEiy0vKZg1CyAGjd8WxOyL4HqUTxvp7HNgi9dEvTw+MBEzFgjvHx3JYAFEYv4n0BVxustVLVf3rY9LxsuajQ7wdKUVkCO7gSkiKiN6+whM8ubkvOZHNqRBKe24DQeZtVAbIrJPm//fJsbq3ceWKp6HaE53fgs0SXBIrwLdgm2Yof0aKaw5a8TnX2T0PJWx2bET+71M99lNVbWobRu6WFXFo0AaJAMfrCirEyC+kIQw+WMVKbvB5fImMULbriW/isM1iSk1u7VkI8C/c2mInjuMu/iSupwDo+wjp0H2d/w3aGZQs014HWvZnKsJ++VJg06oK8oS1Zdbyps3kswGLsink6SEDDNnLAhkq0rOFC0NjSCU0sWvZAyLvSwkrar1ur+qxeo1xQZvdm1nCLxyIf3+iPffh25t7+ByZgiSJAlyTFn7htYJGOkKAcpKOWZruNszupXbRvaVpfcXfWX1zeHAg+yoajvHHwQsGzOlg6sC3jOmXYT+NYBuSRuBrRwK8EtBgeCNjsSbRtPeWlrUoXxS+I+5okM8MS1TkEtqlcIiB86BCrGGO7lwHBI255tsP5AmFxvKv9atLdAzEPq9Q1wPobqPIpv5dmeIo0SHmrjLUlWNtWW9vNLFFpdvlBpxIgCLjSK8AsUZNlLCWD01EHsT0Nb/2CtX1bYJBYqWtvTxmRelpcXJKgombyHAnZydLjzwQcmGVB9r2RL9prroB6uCBxosKrTe1gZlapCTuiSGeSy2p92fUwERI4NXDMbwjPeZg760jb4OxFfmcGSp8R9ZX/2dMrW39UaQfvNnvXLun0oCyFfk1Z4tINjEWjcmGtsYX/UXjnKz6Ww9aD15Vu36THiotk5I+3R6UqBMsfjOm1po/GdlZqZ9lodjQwgkLDNFbeV2wYxaTrWGe6HjqLngBbJ9IJXFJctiBASBi/eHXEjFpZfsKpCpaOZ86Op/i7yuvChY3u9Oia1VXXwYVO/fu4f3sGdLkwEsAZr/WqwsZ7Tot2OSGcQkljckuuygb/vvLkdk5cwuXRvZcoQpLnM0kMwTBMKjvnZQFiNP5sBASHtKfHOztsjnQ/wZ4sT2ne3/mD6jK8KaJgmphz0t5BhMO+cGErUHuK3lt34hx2W1loCpHS2RzQE3yfOpUBDsB99ckHOVQX0Uog8H/8SmSabBDV2wOWOvaKBHV2wOe22ni105fUq+mBx8Iz4Gia00RprVAO4+cHj5QrFXFLQw9OUD8dKrhUzsxKSzW4lTwgDpozCn7Xf0c2PIU9OXQEfGmhwu1PXw/0miqUolQU9k+8ER8KklVKjWSiX0SMDYjOwm+XAdoxjRsK1mgcOK1v8vIb4lU6tUlOD9fpB5DADTz9uMW5PjFVc4dv2YMvMtV7GbhmD4mb7tQz1C/Ez5WSOcuuLYs0kdq9KrHgzfJHkG0aRXbHMpvCQO2x0DN8TlzPjI+mA5EqgxTtfx1xrXBMCBjiXzAqTvkPpmL/Tk18uGwOUAj+hk7i4EDZOoMaXPQGjo/1+qNFRkcfj6SwU5Klt3bPoS2NrGW11D+MtXEzzzDTwqdh7lzDqP/NSji/vCu+6gnK/NC27dXIgfHVeU5BiuJV8JRifO6uBz8c82FsKKGIqhlrhpR7CZwntrOAW/JwYKJQIK7K0vlIW7a6eysEqPkf/rRHbBjX2IJoEjuS1ZomofANiQFrkFCbttUdVCvodngfOVwDJD3Nf4A6qC/NwAfdwfm4wPWmh/lwYDzgv3hw1QOq+BB9Xo16mG+FtFH9pMKWR3snOCFOuEMIbb5OIDGyJpiIYgs08ddGuZUIuc+YmOGvqkw/QJmJIaxEaf8Gt9rFK8vh+MwTWHT8nyPpP9mEaBz3G0NoDk50npeoEg/jIWeYIgzFObw2UO1x6GDFRtgpACQHuInMNWP4fOYdMQMt0GpJBQTm8p0QDqIq3w2OZQCnXt9vuXIjeeL/V5PNTbaeby/9OQDICzqqf5Md2PHrDQ2XYECM6QoKIH7K90yr0FQU237Qzz8ffcW5sKZ74NJuCztX8YRNZaNc6f/E+mzpEy5RFjKZ6It4+yX2s2zsCZjnOxMwwZs4Myj+yfDbThrpTxPUC4D8J5YOgZWEwVVl/saG4bSH3DfTTEIGm98iABZ2qmLa6JeEeACO9QHcaoDFb6emZ9sHSPPTwT+x1c7070+jiMb+kyXpkvJ19l2TgKdJ/XyqMWET+bezotyfrKKiV92nIcj8SxIqNUAE4FQvm3Bv4Fnhxwi/8UA=') center / 70% 70% no-repeat;
}
html.arcane-system-images-ready body.character-glowup-active #view .tabs{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow-x:auto;
  padding:0 0 5px;
  gap:6px;
}
html.arcane-system-images-ready body.character-glowup-active #view .tab{
  border:0!important;
  border-radius:0!important;
  background:var(--arcane-art-tab-inactive) center / 100% 100% no-repeat!important;
  box-shadow:none!important;
  color:#e6d7be!important;
  text-shadow:0 2px 3px #000d;
  padding:11px 18px;
  min-height:49px;
}
html.arcane-system-images-ready body.character-glowup-active #view .tab.active{
  background:var(--arcane-art-tab-active) center / 100% 100% no-repeat!important;
  color:#fff2d7!important;
}
html.arcane-system-images-ready body.character-glowup-active #view .tab:is(:hover,:focus-visible){
  filter:brightness(1.13);
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .current-equipment-launch .btn{
  background:var(--arcane-art-equipment) center / 100% 100% no-repeat!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  min-height:73px;
  padding:14px 46px;
  text-shadow:0 2px 4px #000f;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .current-equipment-launch .btn::after{
  content:none!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .current-equipment-launch .btn:is(:hover,:focus-visible){
  filter:brightness(1.15);
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .arcane-equip-icon{
  display:block;
  flex:0 0 29px;
  height:29px;
  margin-right:10px;
  background:url('data:image/avif;base64,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') center / contain no-repeat;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .arcane-equip-label{
  display:block;
  flex:0 1 auto;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .arcane-equip-arrow{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  font:700 31px/1 Georgia,serif;
  color:#f7d5a5;
}
/*
 * ARCANE portrait/nameplate joint.
 * On stacked layouts the plaque overlaps the photo's bottom brass rail.
 * The photo stays above the identity panel's broad stat-panel background,
 * while the plaque and live character text sit above both. Avoid changing
 * portrait cropping, source art, or editable fields.
 */
@media(max-width:850px){
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel > .hero{
    isolation:isolate;
    overflow:visible;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait{
    z-index:2;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity{
    margin-top:clamp(-38px,-8.3vw,-26px);
    isolation:auto;
    z-index:auto;
    overflow:visible;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity::before{
    z-index:3;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field{
    z-index:4;
  }
}
@media(max-width:700px){
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait::after{
    border-image-width:25px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait > img{
    padding:13px 13px 14px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity{
    border-image-width:13px;
    border-width:13px!important;
    padding:0;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity::before{
    height:94px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view .tab{
    padding:9px 15px;
    min-height:43px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
    padding-left:29px!important;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity .field:nth-child(n+5)::before{
    width:20px;
    height:21px;
    left:5px;
  }
}
/*
 * ARCANE mobile character geometry.
 * Only the plaque ornament should meet the portrait's brass rail; the
 * name and subtitle stay below the photograph on one centered plaque.
 * Keep the image-generated components and all live edit controls unchanged.
 */
@media(max-width:700px){
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity{
    margin-top:clamp(-42px,-8vw,-28px)!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.32fr) minmax(0,1.32fr);
  }
  /* Keep the name clear of the lion-head relief at typical phone widths. */
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name .val{
    font-size:clamp(20px,5.45vw,28px)!important;
    line-height:1.08;
  }
  /* The right pair of cards used to break "Kvinna", "190 cm" and "115 kg"
     across lines. Give them width from the oversized medal and use one line. */
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5) .val{
    font-size:clamp(12px,3.75vw,17px)!important;
    line-height:1.16;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:100%;
    overflow-wrap:normal;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5) .label{
    font-size:clamp(9px,2.5vw,11px);
    letter-spacing:.025em;
    white-space:nowrap;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5){
    padding-left:clamp(23px,6.9vw,31px)!important;
    padding-right:4px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5)::before{
    width:clamp(17px,5vw,22px);
    height:clamp(18px,5.4vw,23px);
    left:5px;
  }
  /* Editing values must not inherit the read-only ellipsis rule. */
  html.arcane-system-images-ready body.character-glowup-active.editing #view #grundPanel #identity .grund-input{
    font-size:clamp(12px,3.4vw,16px);
  }
}
/*
 * ARCANE centered nameplate subtitle — responsive portrait/nameplate join.
 * Rendered from the SAME identity.ras/yrke fields; only the presentation
 * changes. The two original fields remain in the DOM for edit mode and for
 * browsers that fall back to the old CSS/SVG design.
 */
body.character-glowup-active #view #grundPanel #identity .arcane-nameplate-subtitle{
  display:none;
}
@media(max-width:850px){
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity{
    grid-template-areas:
      'name name name name'
      'combat combat gender age'
      'combat combat length weight'
      'combat combat social social';
    grid-template-rows:minmax(100px,auto) repeat(3,minmax(62px,auto));
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(2),
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(3){
    display:none;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:15px 44px 8px;
    min-width:0;
    text-align:center;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity .arcane-nameplate-subtitle{
    display:block;
    max-width:100%;
    margin:0;
    font:500 clamp(12px,2vw,17px)/1.22 Georgia,'Times New Roman',serif;
    color:#e2c89a;
    text-align:center;
    overflow-wrap:normal;
    hyphens:none;
    text-shadow:0 1px 3px #000a;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity .arcane-nameplate-subtitle span{
    color:#c59b58;
    padding:0 4px;
  }
}
@media(max-width:700px){
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity{
    grid-template-rows:minmax(92px,auto) repeat(3,minmax(58px,auto))!important;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name{
    padding:11px 35px 8px!important;
    gap:5px;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name .val{
    font-size:clamp(19px,5.15vw,25px)!important;
    line-height:1.09;
    overflow-wrap:anywhere;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity .arcane-nameplate-subtitle{
    font-size:clamp(12px,3.35vw,15px);
    line-height:1.22;
  }
}
@media(prefers-reduced-motion:reduce){
  html.arcane-system-images-ready body.character-glowup-active #view .tab{
    transition:none!important;
  }
}
/*
 * ARCANE identity v4: separate visible race/profession cards, centered live
 * nameplate inscription, and a small portrait-based combat miniature.
 * A character without a custom combat_icon_path uses the portrait itself.
 * Preserve the library's image-rendered frame, tabs, and all editing inputs.
 */
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .character-combat-icon-field{
  border:1px solid #80572c95!important;
  background:linear-gradient(150deg,#172018,#0b110d)!important;
  min-width:0;
  padding:6px 3px!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-control,
html.arcane-system-images-ready body.character-glowup-active.editing #view #grundPanel .character-combat-icon-control{
  width:66px!important;
  max-width:100%;
  height:70px;
  min-height:0!important;
  margin:0 auto;
  padding:8px 6px;
  box-sizing:border-box;
  background:var(--arcane-art-combat) center / contain no-repeat!important;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-field .combat-icon-hex{
  width:37px!important;
  height:43px!important;
  padding:2px;
  background:#ae8856;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-field > .label{
  margin:0;
  font-size:10px;
  line-height:1.15;
  text-align:center;
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-actions{
  display:none!important; /* Image selection lives under Bilder, for owners and GMs. */
}
html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field.name .val{
  width:100%;
  max-width:100%;
  text-align:center;
  hyphens:none;
  text-wrap:balance;
}
html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity .arcane-nameplate-subtitle{
  text-align:center;
  text-wrap:balance;
  hyphens:none;
}
@media(max-width:850px){
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity{
    grid-template-columns:minmax(72px,.75fr) minmax(0,1fr) minmax(0,1fr) minmax(88px,.95fr);
    grid-template-areas:
      'name name name name'
      'race race title title'
      'combat gender gender age'
      'length length weight weight'
      'social social social social';
    grid-template-rows:minmax(100px,auto) minmax(55px,auto) minmax(79px,auto) minmax(60px,auto) minmax(62px,auto);
    column-gap:5px;
    row-gap:6px;
  }
  /* Both fields remain visible alongside the duplicated, purely visual
     plaque subtitle, while their original selects stay available in edit. */
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(2),
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(3){
    display:flex!important;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2),
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3){
    display:flex;
    flex-direction:column;
    align-self:stretch;
    justify-content:center;
    align-items:center;
    text-align:center;
    min-width:0;
    min-height:55px;
    padding:9px 10px!important;
    margin:0;
    border:0!important;
    background:var(--arcane-art-stat) center / 100% 100% no-repeat!important;
    box-shadow:none!important;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(2) .label,
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(3) .label{
    display:block!important;
    font-size:10px;
    color:#cba873;
    line-height:1.2;
    margin:0 0 4px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2) .val,
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3) .val{
    text-align:center;
    font-size:clamp(13px,2vw,17px)!important;
    line-height:1.15;
    max-width:100%;
    overflow-wrap:anywhere;
    margin:0;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field:nth-child(2) .val::after{
    content:none!important;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name{
    justify-content:center;
    gap:4px;
    padding:11px 37px 8px;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name .val{
    font-size:clamp(19px,3.2vw,30px)!important;
    line-height:1.1;
    letter-spacing:0;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity .arcane-nameplate-subtitle{
    font-size:clamp(12px,2vw,17px);
    line-height:1.2;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .character-combat-icon-field{
    min-height:79px;
    justify-content:center;
  }
}
@media(max-width:700px){
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity{
    grid-template-columns:minmax(63px,.75fr) minmax(0,1fr) minmax(0,1fr) minmax(76px,.96fr);
    grid-template-rows:minmax(96px,auto) minmax(53px,auto) minmax(77px,auto) minmax(58px,auto) minmax(59px,auto)!important;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name{
    padding:10px clamp(41px,11vw,54px) 7px!important;
    gap:3px;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity > .field.name .val{
    font-size:clamp(18px,4.6vw,25px)!important;
    line-height:1.08;
  }
  html.arcane-system-images-ready body.character-glowup-active:not(.editing) #view #grundPanel #identity .arcane-nameplate-subtitle{
    font-size:clamp(11px,3.1vw,15px)!important;
    line-height:1.17;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2),
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3){
    padding:7px 9px!important;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(2) .val,
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(3) .val{
    font-size:clamp(12px,3.4vw,15px)!important;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-control{
    width:52px!important;
    height:56px;
    padding:6px 5px;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-field .combat-icon-hex{
    width:29px!important;
    height:34px!important;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel .character-combat-icon-field > .label{
    font-size:9px;
    letter-spacing:0;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .character-combat-icon-field{
    padding:4px 0!important;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #identity > .field:nth-child(n+5) .val{
    font-size:clamp(12px,3.4vw,16px)!important;
    text-overflow:ellipsis;
    overflow:hidden;
    white-space:nowrap;
  }
}

/* Character Bilder tab: portrait and token share the same ARCANE surfaces. */
#imagesPanel .arcane-character-image-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:12px 0 18px;
}
#imagesPanel .arcane-character-image-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  background:linear-gradient(145deg,#19221a,#0a110e);
  border:1px solid #916a40;
  border-radius:12px;
  padding:12px;
  box-shadow:inset 0 1px 0 #e2bc7820,0 8px 18px #0007;
}
#imagesPanel .arcane-character-image-preview{
  display:grid;
  place-items:center;
  height:145px;
  border:1px solid #795937;
  border-radius:9px;
  overflow:hidden;
  background:radial-gradient(circle,#29412d,#101510);
}
#imagesPanel .arcane-character-image-preview > img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
#imagesPanel .arcane-character-image-preview-combat .combat-icon-hex{
  width:76px;
  height:87px;
  --combat-side:#b78e56;
}
#imagesPanel .arcane-character-image-info{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  align-items:start;
  gap:8px;
  padding-top:10px;
  min-width:0;
}
#imagesPanel .arcane-character-image-info h3{
  margin:0;
  font:700 21px/1.2 Georgia,serif;
  color:#f1dfbd;
}
#imagesPanel .arcane-character-image-info p{
  margin:0;
  color:#d5c2a8;
  font-size:13px;
  line-height:1.35;
}
#imagesPanel .arcane-character-image-actions{display:flex;flex-wrap:wrap;gap:8px}
#imagesPanel .arcane-character-image-card .smallbtn{
  margin-top:auto;
  min-height:36px;
  border:1px solid #b58b54;
  background:linear-gradient(#214a34,#11251b);
  color:#f6e2c3;
  border-radius:8px;
}
#imagesPanel .arcane-character-image-empty{
  color:#d0ab71;
  font:700 48px Georgia,serif;
}
@media(max-width:480px){
  #imagesPanel .arcane-character-image-grid{grid-template-columns:1fr}
}
/* Systembibliotek in Administration — file-backed, read-only master catalogue. */
#adminArcaneSystem .arcane-system-toolbar{
  display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 10px;
}
#adminArcaneSystem .arcane-system-toolbar :is(select,input){
  min-height:43px;flex:1 1 190px;padding:9px 12px;border-radius:9px;
  border:1px solid #88663e;background:#171712;color:#e8d8bb;
}
#adminArcaneSystem .arcane-system-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:13px;
}
#adminArcaneSystem .arcane-system-tile{
  padding:12px;border:1px solid #755937;border-radius:13px;
  background:linear-gradient(#191a14,#0b0f0d);min-width:0;
}
#adminArcaneSystem .arcane-system-preview{
  position:relative;display:grid;place-items:center;height:146px;margin-bottom:10px;
  background:radial-gradient(ellipse,#345242,#0b0e0c);
  border:1px solid #5e4e35;border-radius:9px;overflow:hidden;
}
#adminArcaneSystem .arcane-system-preview img{
  max-width:95%;max-height:138px;object-fit:contain;display:block;
}
#adminArcaneSystem .arcane-system-missing{display:none}
#adminArcaneSystem .arcane-system-tile.is-missing .arcane-system-preview img{display:none}
#adminArcaneSystem .arcane-system-tile.is-missing .arcane-system-missing{
  display:block;text-align:center;color:#edbc9e;font:12px/1.4 system-ui,sans-serif;
}
#adminArcaneSystem .arcane-system-tile h3{
  font:700 20px Georgia,serif;color:#f4dfbb;margin:0 0 4px;
}
#adminArcaneSystem .arcane-system-tile p{font-size:12px;color:#bcb5a7;min-height:32px}
#adminArcaneSystem .arcane-system-tile code{
  display:block;word-break:break-all;color:#cfa66a;padding:6px 0;
}
#adminArcaneSystem .arcane-system-tile button{margin-top:8px}
#adminArcaneSystem #arcaneSystemLibraryStatus{color:#d9c5a3;margin:8px 0 18px;font-size:13px}
/* ARCANE GRUNDEGENSKAPER v2
 * Generated raster assets from the approved character-sheet art.
 * CSS draws layout, responsive lines and live text only; NO new SVG.
 * Sprite: 512x192 RGBA, 8 columns x 3 rows of 64x64.
 */
:root{
  --arcane-attribute-atlas:url('./attributes-atlas-DriLUiM6.png');
}
body.character-glowup-active #view #grundPanel > .glow-base-section{
  position:relative;
  isolation:isolate;
  margin:43px 0 26px;
  padding:64px clamp(12px,2.5vw,23px) 21px;
  border:2px solid #a17a48;
  border-radius:24px;
  background:
    radial-gradient(ellipse at 50% -24%,rgba(35,91,62,.55),transparent 68%),
    radial-gradient(ellipse at 1% 90%,rgba(26,66,47,.24),transparent 36%),
    repeating-linear-gradient(101deg,#20301a09 0 3px,#e9c58103 4px 6px),
    linear-gradient(160deg,#062319,#07150f 58%,#06100d);
  box-shadow:
    inset 0 0 0 4px #130f0a,inset 0 0 0 6px #8c603b,
    inset 0 0 26px #000b,0 0 0 3px #1c110b,0 14px 35px #0009;
}
body.character-glowup-active #view #grundPanel > .glow-base-section::before{
  content:'';
  position:absolute;
  pointer-events:none;
  z-index:2;
  top:-42px;
  left:50%;
  transform:translateX(-50%);
  width:88px;
  height:88px;
  border-radius:50%;
  background:radial-gradient(circle,#113724 15%,#170e09 68%);
  border:2px solid #9c7547;
  box-shadow:0 3px 9px #0009,inset 0 0 7px #0008;
}
html.arcane-attributes-ready body.character-glowup-active #view #grundPanel > .glow-base-section::before{
  border:0;
  box-shadow:none;
  background-image:var(--arcane-attribute-atlas);
  background-size:800% 300%;
  background-position:0 50%;
  background-repeat:no-repeat;
}
body.character-glowup-active #view #grundPanel > .glow-base-section::after{
  content:'';
  position:absolute;
  inset:8px;
  z-index:0;
  pointer-events:none;
  border:1px solid rgba(191,146,82,.36);
  border-radius:17px;
}
body.character-glowup-active #view #grundPanel .arcane-attribute-corners{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}
body.character-glowup-active #view #grundPanel .arcane-attribute-corner{
  position:absolute;
  width:clamp(37px,8vw,66px);
  aspect-ratio:1;
  display:block;
  opacity:.91;
  background-image:var(--arcane-attribute-atlas);
  background-size:800% 300%;
  background-repeat:no-repeat;
}
body.character-glowup-active #view #grundPanel .arcane-corner-tl{top:-6px;left:-6px;background-position:14.2857% 50%}
body.character-glowup-active #view #grundPanel .arcane-corner-tr{top:-6px;right:-6px;background-position:28.5714% 50%}
body.character-glowup-active #view #grundPanel .arcane-corner-bl{bottom:-6px;left:-6px;background-position:42.8571% 50%}
body.character-glowup-active #view #grundPanel .arcane-corner-br{bottom:-6px;right:-6px;background-position:57.1429% 50%}

body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title{
  position:relative;
  z-index:2;
  display:block;
  margin:0 0 21px;
  padding:0 0 23px;
  color:#f7e8c9;
  text-align:center;
  font:700 clamp(27px,4.9vw,42px)/1.08 Georgia,'Times New Roman',serif;
  letter-spacing:-.018em;
  text-shadow:0 2px 2px #000,0 0 17px #d2a05b23;
}
body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title::before{
  content:'';
  position:absolute;
  display:block;
  bottom:-3px;
  left:50%;
  transform:translateX(-50%);
  width:30px;
  height:30px;
  background:var(--arcane-attribute-atlas) 71.4286% 50% / 800% 300% no-repeat;
}
body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title::after{
  content:'';
  position:absolute;
  display:block;
  inset:auto 6% 11px;
  width:auto;
  height:1px;
  margin:0;
  background:linear-gradient(90deg,transparent 0,#a9804b 16%,#ae8850 84%,transparent 100%);
}

/* The original grid remains the authoritative edit/control surface. */
body.character-glowup-active #view #grundPanel #basegrid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(74px,17%,106px) clamp(67px,16%,100px);
  width:100%;
  overflow:hidden;
  border:1px solid #9f7745;
  border-radius:16px;
  background:linear-gradient(170deg,#05231a,#06150f 65%,#05110d);
  box-shadow:inset 0 1px 0 #dbb77370,0 4px 18px #0006;
}
body.character-glowup-active #view #grundPanel #basegrid > div{
  position:relative;
  min-width:0;
  min-height:74px;
  padding:10px clamp(6px,1.6vw,16px);
  border:0;
  border-bottom:1px solid #97714891;
  color:#f0e8d7;
  background:transparent;
}
body.character-glowup-active #view #grundPanel #basegrid > .glow-base-head{
  min-height:53px;
  display:flex;
  align-items:center;
  background:linear-gradient(180deg,#075037,#083925);
  border-bottom:2px solid #a98451;
  color:#f0e3c7;
  font:700 clamp(13px,2vw,20px)/1.1 Georgia,'Times New Roman',serif;
  text-shadow:0 2px 2px #000;
}
body.character-glowup-active #view #grundPanel #basegrid > .glow-base-head:not(:nth-child(3n+1)){justify-content:center}
body.character-glowup-active #view #grundPanel #basegrid > :nth-child(3n+2),
body.character-glowup-active #view #grundPanel #basegrid > :nth-child(3n+3){
  border-left:1px solid rgba(158,113,64,.4);
}
body.character-glowup-active #view #grundPanel #basegrid > :nth-last-child(-n+3){border-bottom:0}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-name{
  display:flex;
  align-items:center;
  gap:clamp(6px,1.5vw,13px);
  color:#f4ebdb;
  font:500 clamp(15px,2.1vw,23px)/1.1 Georgia,'Times New Roman',serif;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{
  display:inline-flex;
  flex:0 0 clamp(35px,6.6vw,61px);
  width:clamp(35px,6.6vw,61px);
  height:clamp(35px,6.6vw,61px);
  align-items:center;
  justify-content:center;
  border:0;
  color:#c9af7f;
  font-size:clamp(20px,3vw,28px);
}
html.arcane-attributes-ready body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{
  font-size:0;
  background-image:var(--arcane-attribute-atlas);
  background-size:800% 300%;
  background-repeat:no-repeat;
  background-position:0 0;
}
html.arcane-attributes-ready #basegrid [data-arcane-attribute="styrka"] .glow-base-icon{background-position:14.2857% 0}
html.arcane-attributes-ready #basegrid [data-arcane-attribute="karisma"] .glow-base-icon{background-position:28.5714% 0}
html.arcane-attributes-ready #basegrid [data-arcane-attribute="storlek"] .glow-base-icon{background-position:42.8571% 0}
html.arcane-attributes-ready #basegrid [data-arcane-attribute="smidighet"] .glow-base-icon{background-position:57.1429% 0}
html.arcane-attributes-ready #basegrid [data-arcane-attribute="intelligens"] .glow-base-icon{background-position:71.4286% 0}
html.arcane-attributes-ready #basegrid [data-arcane-attribute="psykisk-kraft"] .glow-base-icon{background-position:85.7143% 0}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-label{min-width:0;overflow-wrap:normal}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-value{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff3db;
  font:700 clamp(24px,3.4vw,39px)/1 Georgia,'Times New Roman',serif;
  text-shadow:0 2px 3px #000a;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-group{
  display:flex;
  justify-content:center;
  align-items:center;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-group .calculated-value{
  width:clamp(45px,7.2vw,62px);
  height:clamp(45px,7.2vw,62px);
  min-width:0;
  display:grid;
  place-items:center;
  border:1px solid #946739;
  border-radius:50%;
  padding:0;
  background:radial-gradient(circle,#352416 0%,#211911 60%,#6e4c2f 78%,#0b130d);
  color:#efbb65;
  font:700 clamp(22px,3vw,33px)/1 Georgia,'Times New Roman',serif;
}
html.arcane-attributes-ready body.character-glowup-active #view #grundPanel #basegrid .glow-base-group .calculated-value{
  border:0;
  background:var(--arcane-attribute-atlas) 100% 0 / 800% 300% no-repeat;
}
body.character-glowup-active #view #grundPanel #basegrid input.grund-input{
  min-width:0;
  width:100%;
  max-width:75px;
  padding:6px 3px;
  background:#102a20;
  color:#fff1db;
  border:1px solid #a88456;
  border-radius:6px;
  text-align:center;
  font:700 20px/1.2 Georgia,serif;
}

/* Keep bonus XP at the END of the character's Grundsida, never in the matrix. */
body.character-glowup-active #view #grundPanel > .arcane-bonus-footer{
  position:relative;
  margin:26px 0 12px;
  padding:9px;
  border:2px solid #936d42;
  border-radius:13px;
  background:linear-gradient(135deg,#0a251b,#101a12 78%);
  box-shadow:inset 0 0 0 2px #19120c,0 8px 20px #0008;
}
body.character-glowup-active #view #grundPanel > .arcane-bonus-footer > .bonus-exp-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:9px;
  min-height:54px;
  padding:7px 10px;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer .label{
  display:flex;
  align-items:center;
  gap:10px;
  color:#e4cfa5;
  text-transform:uppercase;
  font:700 clamp(10px,1.7vw,15px)/1.2 Georgia,serif;
  letter-spacing:.05em;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer .label::before{
  content:'✦';
  color:#d4a35b;
  font-size:25px;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer .mini-stepper{
  display:flex;align-items:center;gap:8px;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer .erfval{
  min-width:20px;
  color:#ffedcc;
  text-align:center;
  font:700 22px Georgia,serif;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer .mini-stepper button{
  display:grid;place-items:center;
  width:42px;height:42px;
  padding:0;
  border:1px solid #bf9255;
  border-radius:9px;
  background:linear-gradient(145deg,#332317,#1b140f 60%,#120f0c);
  box-shadow:inset 0 1px 0 #f6d39658,inset 0 -2px 5px #0009;
  color:#f6e3bd;
  font:700 29px/1 Georgia,serif;
  cursor:pointer;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer .mini-stepper button:is(:hover,:focus-visible){
  border-color:#f0cd89;
  background:linear-gradient(#403020,#20170e);
}
#adminArcaneSystem .arcane-system-preview .arcane-system-sprite{
  display:block;
  width:min(100%,116px);
  aspect-ratio:1;
  margin:auto;
  background-size:800% 300%;
  background-repeat:no-repeat;
  background-position:calc(var(--arcane-col) * 100% / 7) calc(var(--arcane-row) * 100% / 2);
}

@media(max-width:560px){
  body.character-glowup-active #view #grundPanel > .glow-base-section{
    margin-top:36px;padding:48px 9px 14px;border-radius:18px;
  }
  body.character-glowup-active #view #grundPanel > .glow-base-section::before{top:-34px;width:70px;height:70px}
  body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title{
    font-size:clamp(23px,6.1vw,31px);padding-bottom:19px;margin-bottom:14px;
  }
  body.character-glowup-active #view #grundPanel #basegrid{
    grid-template-columns:minmax(0,1fr) 58px 56px;
    border-radius:12px;
  }
  body.character-glowup-active #view #grundPanel #basegrid > div{min-height:67px;padding:8px 5px}
  body.character-glowup-active #view #grundPanel #basegrid > .glow-base-head{
    min-height:45px;font-size:12px;padding:7px 4px;
  }
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-name{font-size:clamp(13px,3.65vw,17px);gap:5px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{
    width:33px;height:33px;flex-basis:33px;
  }
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-value{font-size:27px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-group .calculated-value{
    width:45px;height:45px;font-size:24px;
  }
  body.character-glowup-active #view #grundPanel .arcane-bonus-footer .label{font-size:10px;letter-spacing:0}
  body.character-glowup-active #view #grundPanel .arcane-bonus-footer .mini-stepper button{width:35px;height:35px}
}
@media(max-width:365px){
  body.character-glowup-active #view #grundPanel #basegrid{grid-template-columns:minmax(0,1fr) 50px 49px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{width:29px;height:29px;flex-basis:29px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-name{font-size:12px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-group .calculated-value{width:39px;height:39px}
}
/*
 * ARCANE ATTRIBUTE BOARD v3
 * Ornamental title is a real image-generated, transparent WebP asset.
 * Icons and medallions come from the approved seven-attribute v2 atlas.
 * All cell values, rule groups, editing and bonus XP remain live HTML.
 */
:root{
  --arcane-attribute-v3-plaque:url('./attribute-title-plaque-DikmmmNe.webp');
}
body.character-glowup-active #view #grundPanel > .glow-base-section{
  --attribute-gold:#b99458;
  --attribute-dark:#061710;
  padding:clamp(38px,6vw,60px) clamp(9px,2.6vw,22px) clamp(14px,2.4vw,23px);
  border:2px solid #b18b53;
  border-radius:19px;
  background:
    radial-gradient(ellipse at 50% -10%,rgba(14,71,46,.4),transparent 58%),
    radial-gradient(ellipse at center,#073423 0%,#061a12 70%,#030b08 100%);
  box-shadow:
    0 0 0 3px #160e09,0 0 0 5px #5c4329,
    inset 0 0 0 2px #d0a86e53,inset 0 0 22px #010907,
    0 16px 35px #000b;
}
body.character-glowup-active #view #grundPanel > .glow-base-section::before{
  z-index:5; /* The III medal overlays the top edge of the generated banner. */
}
body.character-glowup-active #view #grundPanel > .glow-base-section::after{
  inset:7px;
  border-radius:14px;
  border:1px solid #c79b6047;
}
body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-width:0;
  box-sizing:border-box;
  position:relative;
  z-index:3;
  min-height:clamp(98px,18vw,154px);
  margin:0 0 clamp(9px,1.9vw,18px);
  padding:clamp(24px,4.3vw,40px) 9% clamp(18px,3vw,31px);
  background-image:
    var(--arcane-attribute-v3-plaque),
    linear-gradient(#0b3b2b,#071710);
  background-size:100% 100%,100% 100%;
  background-position:center,center;
  background-repeat:no-repeat;
  border:0;
  color:#f5e6cb;
  font:700 clamp(21px,4.7vw,45px)/1.06 Georgia,'Times New Roman',serif;
  letter-spacing:-.035em;
  text-align:center;
  text-wrap:balance;
  text-shadow:0 3px 3px #000e,0 0 16px #d6a45d40;
}
body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title::before,
body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title::after{
  display:none; /* Banner already contains the title-end gem and rail. */
}
/* Raise the carved corner ornament over the plain board background without
   obscuring any labels or blocking interaction. */
body.character-glowup-active #view #grundPanel .arcane-attribute-corners{
  z-index:4;
}
body.character-glowup-active #view #grundPanel .arcane-attribute-corner{
  opacity:1;
}
/* One visually integrated, gridded bronze tablet. */
body.character-glowup-active #view #grundPanel #basegrid{
  border:2px solid #ab824c;
  border-radius:13px;
  background:
    radial-gradient(ellipse at top,#094b33 0%,#082819 40%,#04160f 100%);
  box-shadow:
    0 0 0 1px #3d2a17,inset 0 0 0 1px #d5b57946,
    inset 0 0 25px #0009,0 10px 26px #0009;
}
body.character-glowup-active #view #grundPanel #basegrid > div{
  border-bottom:1px solid #af875c8c;
  color:#f1e7d4;
}
body.character-glowup-active #view #grundPanel #basegrid > :nth-child(3n+2),
body.character-glowup-active #view #grundPanel #basegrid > :nth-child(3n+3){
  border-left:1px solid #bb975c8c;
}
body.character-glowup-active #view #grundPanel #basegrid > .glow-base-head{
  background:linear-gradient(180deg,#076b49 0%,#064830 54%,#052c20 100%);
  border-bottom:2px solid #d0a468;
  color:#f6e8cc;
  font:700 clamp(12px,1.9vw,20px)/1.14 Georgia,'Times New Roman',serif;
}
body.character-glowup-active #view #grundPanel #basegrid > .glow-base-head:first-child{
  padding-left:clamp(9px,1.9vw,20px);
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-name{
  font:500 clamp(14px,2.1vw,23px)/1.12 Georgia,'Times New Roman',serif;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{
  filter:drop-shadow(0 2px 3px #000c);
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-label{
  white-space:normal;
  text-wrap:balance;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-value{
  color:#fff1d5;
  font:700 clamp(23px,3.5vw,41px)/1 Georgia,'Times New Roman',serif;
  text-shadow:0 2px 3px #000c;
}
body.character-glowup-active #view #grundPanel #basegrid .glow-base-group .calculated-value{
  filter:drop-shadow(0 2px 4px #0009);
}
/* Genuine generated gem artwork at real grid intersections. No SVG. */
html.arcane-attributes-ready body.character-glowup-active #view #grundPanel #basegrid > :is(.glow-base-name,.glow-base-value,.glow-base-col-1,.glow-base-col-2)::after{
  content:'';
  position:absolute;
  z-index:5;
  right:-9px;
  bottom:-9px;
  width:17px;
  height:17px;
  pointer-events:none;
  background:var(--arcane-attribute-atlas) 71.4286% 50% / 800% 300% no-repeat;
  filter:drop-shadow(0 1px 2px #000b);
}
body.character-glowup-active #view #grundPanel #basegrid > :nth-last-child(-n+3)::after{
  display:none;
}
body.character-glowup-active #view #grundPanel .arcane-bonus-footer{
  border-color:#ac824d;
  box-shadow:0 0 0 1px #2e2215,inset 0 0 0 1px #c79b6040,0 7px 20px #0009;
}

/* Small phone layouts: preserve useful room for names, FV input and grouping. */
@media(max-width:560px){
  body.character-glowup-active #view #grundPanel > .glow-base-section{
    padding:35px 8px 11px;
    margin-top:35px;
  }
  body.character-glowup-active #view #grundPanel > .glow-base-section::before{
    top:-30px;
    width:69px;
    height:69px;
  }
  body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title{
    min-height:100px;
    margin-bottom:8px;
    padding:24px 7% 15px;
    font-size:clamp(19px,5.25vw,29px);
  }
  body.character-glowup-active #view #grundPanel #basegrid{
    grid-template-columns:minmax(0,1fr) 58px 56px;
  }
  body.character-glowup-active #view #grundPanel #basegrid > div{
    min-height:68px;
  }
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-name{
    font-size:clamp(12px,3.7vw,17px);
    gap:5px;
  }
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{
    flex:0 0 34px;width:34px;height:34px;
  }
  body.character-glowup-active #view #grundPanel #basegrid > .glow-base-head{
    font-size:clamp(11px,2.8vw,13px);
  }
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-value{
    font-size:clamp(24px,6.5vw,30px);
  }
  html.arcane-attributes-ready body.character-glowup-active #view #grundPanel #basegrid > :is(.glow-base-name,.glow-base-value,.glow-base-col-1,.glow-base-col-2)::after{
    width:13px;
    height:13px;
    right:-7px;
    bottom:-7px;
  }
}
@media(max-width:365px){
  body.character-glowup-active #view #grundPanel > .glow-base-section > .section-title{font-size:19px}
  body.character-glowup-active #view #grundPanel #basegrid{grid-template-columns:minmax(0,1fr) 52px 48px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-icon{flex-basis:29px;width:29px;height:29px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-name{font-size:12px}
  body.character-glowup-active #view #grundPanel #basegrid .glow-base-group .calculated-value{width:38px;height:38px}
}


/*
 * ARCANE Character Profile v8 — single reusable character-card component.
 * Visual master: approved Astrid Eldhjärta concept 2026-10-19.
 *
 * This stylesheet owns the layout of .arcane-profile-structure and its cards.
 * It does not inherit ANY old identity grid, nth-child placement, or special
 * race/profession treatment. Artwork is the original system/v1 raster AVIF.
 *
 * All measures below use CSS px, not source-art/physical screenshot px.
 */
/* Explicitly load the font: Android otherwise substitutes the same system
   serif for Georgia/Baskerville/Palatino, making typography changes invisible. */
@media (max-width:850px) {
  body.character-glowup-active #view #grundPanel > .hero {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:0;
    /* Lift the visible frame 16px; tab art and handlers stay untouched. */
    margin-top:-16px;
    align-items:start;
    min-width:0;
  }
  /* Preserve the image-backed hero portrait with its genuine raster frame. */
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait {
    aspect-ratio:1.51/1;
    max-height:none;
    min-height:0;
    width:100%;
    margin:0;
    border:0;
    border-radius:0;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait > img {
    padding:clamp(10px,2.7vw,16px);
    object-fit:cover;
    object-position:center 28%;
    border-radius:0;
  }
  html.arcane-system-images-ready body.character-glowup-active #view #grundPanel #portrait::after {
    border-image-source:var(--arcane-art-portrait);
    border-image-slice:18% 17% fill;
    border-image-width:clamp(14px,4vw,28px);
  }
}
/* The mount class is independent of the ready state. Editing and values work
   even if the ornamental-image preload fails. */
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted {
  --arcane-profile-component:8;
  --ac-panel-gap:clamp(1.4px,.49vw,3.5px);
  /* Only transparent frame gutters overlap; visible gold rails stay apart. */
  --ac-card-overlap:3px;
  --ac-name-lift:8px;
  --ac-card-height:clamp(52px,14vw,70px);
  --ac-icon-width:clamp(34px,10vw,49px);
  --ac-icon-size:clamp(25px,7.25vw,36.25px);
  --ac-profile-bleed:clamp(11px,5vw,22px);
  --ac-profile-serif:'EB Garamond',Georgia,'Times New Roman',serif;
  display:block!important;
  position:relative;
  width:100%;
  min-width:0;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-image:none!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  isolation:isolate;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted::before{
  content:none!important;
  display:none!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-structure {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:auto repeat(4,calc(var(--ac-card-height) - var(--ac-card-overlap)));
  grid-auto-flow:row;
  grid-auto-rows:auto;
  gap:var(--ac-panel-gap) clamp(7px,2.2vw,15px);
  width:calc(100% + var(--ac-profile-bleed) + var(--ac-profile-bleed));
  min-width:0;
  margin:0 0 0 calc(0px - var(--ac-profile-bleed));
  padding:0 1px 8px;
  box-sizing:border-box;
  align-content:start;
  align-items:stretch;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-nameplate{
  grid-column:1/-1;
  grid-row:1;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  height:clamp(79px,21vw,116px);
  /* Bring all four rows 10px closer to the plaque. */
  margin:0 0 -19px;
  min-width:0;
  background:var(--arcane-art-nameplate) center / 100% 100% no-repeat;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-nameplate > .field {
  width:100%!important;
  max-width:100%!important;
  min-height:0!important;
  height:100%!important;
  margin:0!important;
  padding:clamp(9px,2.5vw,17px) clamp(34px,10vw,86px)!important;
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
  align-items:center!important;
  justify-content:center!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  text-align:center!important;
  box-sizing:border-box;
  transform:translateY(calc(0px - var(--ac-name-lift)));
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted:not(.none) .arcane-profile-nameplate .field .label{
  display:none;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-nameplate .field .val {
  display:block;
  width:100%;
  margin:0!important;
  font:500 clamp(19px,5.2vw,35px)/1.1 var(--ac-profile-serif)!important;
  color:#f6e5c7!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:center;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-nameplate .arcane-nameplate-subtitle {
  display:block;
  width:100%;
  margin:0;
  font:400 clamp(12px,3.35vw,20px)/1.15 var(--ac-profile-serif);
  color:#e7cda2;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card{
  position:relative;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:var(--ac-icon-width) 1px minmax(0,1fr);
  align-items:center;
  height:var(--ac-card-height);
  min-width:0;
  min-height:0;
  margin:0;
  padding:clamp(5px,1.2vw,8px) clamp(8px,1.9vw,12px);
  border:0;
  border-radius:0;
  /* The underlying AVIF already contains its own green leather. A second
     solid-color layer created the visible rectangular plate outside the gold. */
  background:var(--arcane-art-stat) center / 104% 140% no-repeat;
  /* The AVIF source itself contains opaque dark-green pixels outside its
     gold relief. Clip ONLY that outer artwork gutter; keep the original frame,
     emerald interior, icon lane and live text untouched. Insets are based
     on the visible frame bounds in the 2026-10-19 mobile reference. */
  clip-path:inset(8% 1.5% 10% 3%);
  isolation:isolate;
  overflow:hidden;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-icon-slot{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  pointer-events:none;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-field-icon{
  display:block;
  width:var(--ac-icon-size);
  height:var(--ac-icon-size);
  max-width:100%;
  object-fit:contain;
  filter:drop-shadow(0 1px 2px #0009);
  clip-path:inset(var(--ac-icon-crop,0));
  transform:translate(var(--ac-icon-shift-x,0),var(--ac-icon-shift-y,0));
}
/* The v1 icon exports contain detached atlas fragments at their edges.
   Crop the fragments in presentation, never the panel's corner ornaments.
   Recenter the remaining visible raster within the unchanged icon lane. */
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card--ras{
  --ac-icon-crop:0 0 9% 0;
  --ac-icon-shift-y:4.5%;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted :is(.arcane-profile-card--alder,.arcane-profile-card--langd){
  --ac-icon-crop:0 28% 0 0;
  --ac-icon-shift-x:14%;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted :is(.arcane-profile-card--vikt,.arcane-profile-card--stand){
  --ac-icon-crop:0 12% 0 0;
  --ac-icon-shift-x:6%;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-field-divider{
  height:68%;
  width:1px;
  display:block;
  background:linear-gradient(transparent,#bf9457 30%,#7c5735 75%,transparent);
  box-shadow:1px 0 0 #050e0b;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content{
  display:flex;
  align-items:center;
  width:100%;
  height:100%;
  min-width:0;
  padding:0 2px 0 clamp(6px,1.4vw,11px);
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content > .field{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:2px!important;
  position:static!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:0!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-image:none!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content > .field::before,
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content > .field::after{
  content:none!important;
  display:none!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content .field > .label{
  display:block!important;
  width:100%;
  margin:0!important;
  padding:0!important;
  font:500 clamp(8px,2.15vw,10px)/1.12 var(--ac-profile-serif)!important;
  letter-spacing:.025em!important;
  color:#d5b77d!important;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:left!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content .field > .val{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  margin:0!important;
  padding:0!important;
  font:400 clamp(13px,3.65vw,19px)/1.15 var(--ac-profile-serif)!important;
  letter-spacing:0!important;
  color:#f8e9d0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  overflow-wrap:normal!important;
  text-align:left!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card--combat .arcane-profile-card-content > .field {
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:3px!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card--combat .field > .label {
  flex:1 1 auto;
  min-width:0;
  width:auto;
  margin:0!important;
  letter-spacing:0!important;
  font-size:clamp(8px,2vw,10px)!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card--combat .character-combat-icon-control {
  flex:0 0 clamp(30px,8vw,44px)!important;
  width:clamp(30px,8vw,44px)!important;
  max-width:clamp(30px,8vw,44px)!important;
  height:clamp(33px,9vw,49px)!important;
  min-height:0!important;
  margin:0!important;
  padding:3px 2px!important;
  border:0!important;
  background:var(--arcane-art-combat) center / contain no-repeat!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card--combat .combat-icon-hex{
  flex:0 0 auto!important;
  width:clamp(22px,5.8vw,30px)!important;
  height:clamp(24px,6.7vw,34px)!important;
  margin:0!important;
  padding:1px!important;
}
body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .character-combat-icon-actions{
  display:none!important; /* Image choice belongs to Bilder, unchanged. */
}
/* Input rows may grow; editing must never clip live controls. */
body.character-glowup-active.editing #view #grundPanel #identity.arcane-profile-mounted{
  --ac-card-height:clamp(64px,16vw,78px);
  --ac-name-lift:0px;
}
body.character-glowup-active.editing #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-structure{
  grid-template-rows:auto repeat(4,minmax(var(--ac-card-height),auto));
}
body.character-glowup-active.editing #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-nameplate .field .label{
  display:block!important;
  margin:0 0 3px!important;
  font:700 10px/1.1 system-ui,sans-serif!important;
  color:#d5b77d!important;
}
/* Editing works in the SAME fields; it never creates a second data model. */
body.character-glowup-active.editing #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card{
  min-height:var(--ac-card-height);
  height:auto;
}
body.character-glowup-active.editing #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content .grund-input,
body.character-glowup-active.editing #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-nameplate .grund-input{
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:2px 0 0!important;
  box-sizing:border-box!important;
  padding:5px!important;
  font:500 clamp(11px,3vw,15px)/1.1 system-ui,sans-serif!important;
}
@media(max-width:350px){
  body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted{
    --ac-icon-width:29px;
    --ac-icon-size:23.75px;
    --ac-card-height:51px;
  }
  body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card{
    padding-inline:5px;
  }
  body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card-content{
    padding-left:4px;
  }
}
@media(min-width:851px){
  /* Mobile frames may use a shared bleed; desktop returns to its old bounds. */
  body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted {
    --ac-profile-bleed:0px;
  }
  /* Large screens retain the working desktop portrait beside the identity. */
  body.character-glowup-active #view #grundPanel #identity.arcane-profile-mounted .arcane-profile-card{
    --ac-card-height:68px;
  }
}
/* Alea Crusaders: campaign-independent recurring NPC library. */
#globalNpcLibraryMount {margin-top:28px;border-top:1px solid rgba(189,151,100,.32);padding-top:22px;color:#e9d8bd}
.global-npc-heading {display:flex;justify-content:space-between;align-items:start;gap:14px;margin-bottom:14px}
.global-npc-heading h3 {font-family:Georgia,serif;color:#eecf91;font-size:1.25rem;margin:0 0 5px}
.global-npc-heading p {max-width:740px;margin:0;font-size:.86rem;line-height:1.45;opacity:.8}
.global-npc-status {margin:10px 0 13px;font-size:.84rem;color:#d5bc91}
.global-npc-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px}
.global-npc-card {background:linear-gradient(150deg,rgba(69,50,30,.84),rgba(29,29,22,.94));border:1px solid rgba(202,166,105,.42);border-radius:12px;padding:17px;box-shadow:0 6px 24px #0003;min-width:0}
.global-npc-card-top {display:flex;gap:12px;align-items:center}
.global-npc-initial {width:50px;height:50px;flex:none;display:grid;place-items:center;border-radius:50%;font:700 24px Georgia,serif;border:2px solid #a88b58;color:#e6c58e;background:#212b26}
.global-npc-card h4 {margin:0;color:#f2d59b;font:700 1.13rem Georgia,serif}
.global-npc-card-top p {margin:3px 0;font-size:.86rem}
.global-npc-card-top small {opacity:.76}
.global-npc-description {font-size:.88rem;line-height:1.5;margin:15px 0 8px}
.global-npc-counts {font-size:.77rem;color:#ceb88e}
.global-npc-card details {border-top:1px solid #a88b5844;margin:12px 0}
.global-npc-card summary {padding:10px 0;cursor:pointer;color:#eacb97;font-weight:600}
.global-npc-profile {max-height:460px;overflow:auto;padding-right:6px}
.global-npc-profile h5 {margin:13px 0 4px;font:700 .88rem Georgia,serif;color:#f3d59b}
.global-npc-profile p,.global-npc-profile li {font-size:.81rem;line-height:1.48;margin:0}
.global-npc-profile ul {padding-left:18px;margin:5px 0 12px}
.global-npc-attributes {display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 13px}
.global-npc-attributes span {padding:5px 7px;background:#332c20;border:1px solid #756044;border-radius:5px;font-size:.78rem}
.global-npc-attributes strong {color:#f0cc83}
.global-npc-columns {columns:2;column-gap:18px}
.global-npc-columns li {break-inside:avoid;display:flex;justify-content:space-between;gap:8px}
.global-npc-copy {margin-top:5px;width:100%}
@media(max-width:540px) {
 .global-npc-heading {flex-wrap:wrap}
 .global-npc-card {padding:13px}
 .global-npc-columns {columns:1}
}
.global-npc-avatar {width:76px;height:98px;flex:none;display:block;object-fit:cover;object-position:center 25%;border-radius:9px;border:2px solid #b99a5e;box-shadow:0 2px 12px #0007;background:#212b26}
#trophyRoomPage{padding:clamp(12px,2vw,28px);color:#eadbbd}.trophy-room-page{max-width:1440px;margin:auto}.trophy-room-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}.trophy-room-heading h1,.trophy-room-heading h2{margin:.15rem 0;color:#e8cc91;font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:.08em}.trophy-room-heading p{margin:.25rem 0}.trophy-room-heading .eyebrow{font-size:.75rem;letter-spacing:.22em;color:#c7a46c}.trophy-room-status,.trophy-room-note{color:#c7b99e}.trophy-room-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:12px 0}.trophy-room-toolbar button{min-width:42px}.trophy-room-toolbar output{min-width:4.5rem;text-align:center}.trophy-room-viewport{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;touch-action:none;background:#17130f;border:4px ridge #8c6b40;box-shadow:0 12px 36px #0008;cursor:grab}.trophy-room-viewport:active{cursor:grabbing}.trophy-room-viewport:focus-visible{outline:3px solid #e9ca87;outline-offset:3px}.trophy-room-background{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1));transform-origin:center;user-select:none;pointer-events:none}.trophy-room-loading{position:absolute;inset:0;display:grid;place-items:center;padding:20px;text-align:center;color:#e9d6b3;background:radial-gradient(ellipse,#665238 0,#272019 70%,#15120f 100%);font-size:clamp(.9rem,2vw,1.25rem)}.trophy-room-viewport[data-ready="true"] .trophy-room-loading{display:none}.trophy-room-note{font-size:.9rem}@media(max-width:700px){.trophy-room-heading{align-items:flex-start}.trophy-room-heading .btn{white-space:nowrap}}@media(prefers-reduced-motion:no-preference){.trophy-room-background{transition:transform .12s ease-out}}
/* Trophy room immersive mobile layout */
#trophyRoomPage{padding:0 0 20px}.trophy-room-page{max-width:1440px;margin:auto}.trophy-room-toolbar{justify-content:center;flex-wrap:wrap;margin:12px 8px}.trophy-room-character{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:16px 12px;color:#e8cc91}.trophy-room-character select{min-width:190px;max-width:100%;padding:10px 14px;border:1px solid #8c6b40;border-radius:10px;background:#241d18;color:#eadbbd}.trophy-room-viewport{border-width:2px}@media(max-width:700px){#trophyRoomPage{padding:0}.trophy-room-viewport{border-left:0;border-right:0}.trophy-room-toolbar{gap:6px}.trophy-room-toolbar button{min-width:42px}}

/* JAKOB 3 pilot: armored figure on central ivory plinth; no scene asset edits. */
.trophy-room-character-layer{position:absolute;left:50%;bottom:8%;height:54%;width:30%;transform:translateX(-50%) translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1));transform-origin:center bottom;pointer-events:none;z-index:2;display:flex;align-items:end;justify-content:center;filter:drop-shadow(0 8px 6px #0009)}.trophy-room-character-layer[hidden]{display:none}.trophy-room-character-layer img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none}@media(max-width:700px){.trophy-room-character-layer{height:68%;width:40%;bottom:8%}}

/* JAKOB 3: thirty permanent positions on the far honor wall. Artwork is a separate layer. */
.trophy-room-medal-wall{position:absolute;left:50%;top:24%;width:38%;height:27%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));gap:1.5% 2%;padding:1%;transform:translateX(-50%) translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1));transform-origin:center center;pointer-events:none;z-index:1;filter:drop-shadow(0 2px 2px #000a)}.trophy-room-medal-wall[hidden]{display:none}.trophy-room-medal-slot{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;border-radius:35%;background:radial-gradient(ellipse,#5a3a2280 0%,#21160e50 60%,transparent 75%);box-shadow:inset 0 0 0 1px #b8945340}.trophy-room-medal-slot img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 1px 2px #000b)}@media(max-width:700px){.trophy-room-medal-wall{width:41%;height:28%;gap:1%}}

/* ARCANE HONORS scene preview. Relief artwork is independent of the circular frame and may overhang. */
.trophy-room-honor-preview{position:absolute;right:9%;top:22%;z-index:8;width:clamp(110px,15%,220px);display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;color:#f2dfbd;background:#17120ee8;border:1px solid #c39b5e;border-radius:10px;text-align:center;pointer-events:auto}.trophy-room-honor-preview[hidden]{display:none}.trophy-room-honor-preview-art{position:relative;width:100%;aspect-ratio:2/3;display:grid;place-items:center;overflow:visible}.trophy-room-honor-preview-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;overflow:visible}.trophy-room-honor-frame{z-index:2;pointer-events:none}.trophy-room-honor-relief{z-index:1;transform:none;pointer-events:none}.trophy-room-honor-preview-art.is-overhanging .trophy-room-honor-frame{z-index:1}.trophy-room-honor-preview-art.is-overhanging .trophy-room-honor-relief{z-index:2;transform:scale(1.14)}.trophy-room-honor-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}.trophy-room-honor-preview-tier{display:grid;justify-items:center;gap:3px;min-width:0;font-size:.72rem}.trophy-room-honor-preview-tier>span{color:#e0c18a}.trophy-room-honor-preview-art{width:100%;}.trophy-room-honor-relief-label{position:relative;z-index:3;max-width:75%;padding:8px;background:#21180ee8;border:1px dashed #d2b77f;border-radius:50%;font-size:.72rem}.trophy-room-honor-preview-close{font-size:.75rem;padding:6px 8px}

/* JAKOB 3C: user-calibrated front wall bounds, 1280x720 reference. */
.trophy-room-medal-wall{left:40.73%;top:27.69%;width:19.31%;height:32.77%;transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1));transform-origin:center center}
@media(max-width:700px){.trophy-room-medal-wall{left:40.73%;top:27.69%;width:19.31%;height:32.77%}}

/* JAKOB 3D: real awards only; calibrated wall geometry remains unchanged. */
.trophy-room-medal-wall{grid-template-columns:repeat(var(--medal-columns,6),minmax(0,1fr));grid-template-rows:none;grid-auto-rows:minmax(0,1fr);align-content:start}
.trophy-room-medal-slot{background:none;box-shadow:none;border-radius:0;aspect-ratio:1}

/* JAKOB 3E: camera zoom keeps wall art aligned with the original scene. */
.trophy-room-scene{position:absolute;inset:0;transform:translate(var(--pan-x,0px),var(--pan-y,0px)) scale(var(--zoom,1));transform-origin:50% 50%;pointer-events:none}
.trophy-room-scene .trophy-room-background{transform:none;transition:none}
.trophy-room-scene .trophy-room-medal-wall{transform:none;transition:none}
.trophy-room-character-layer{left:calc(50% - var(--hero-progress,0)*29%);opacity:calc(1 - var(--hero-progress,0)*.12);transform:translateX(-50%) translate(calc(var(--pan-x,0px)*(1 - var(--hero-progress,0))),calc(var(--pan-y,0px)*(1 - var(--hero-progress,0)))) scale(calc(1 + (var(--zoom,1) - 1)*(1 - var(--hero-progress,0))));transition:left .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),opacity .55s}
@media(prefers-reduced-motion:no-preference){.trophy-room-scene{transition:transform .55s cubic-bezier(.22,1,.36,1)}}
@media(prefers-reduced-motion:reduce){.trophy-room-scene,.trophy-room-character-layer{transition:none}}

/* JAKOB 3F: independent hero layer. No camera scale or pan on the hero. */
.trophy-room-character-layer{
 left:calc(50% - var(--hero-progress,0)*29%);
 transform:translateX(-50%) scale(calc(1 - var(--hero-progress,0)*.12));
 transform-origin:center bottom;
 transition:left .85s cubic-bezier(.22,1,.36,1),transform .85s cubic-bezier(.22,1,.36,1),opacity .85s;
}
@media(prefers-reduced-motion:reduce){.trophy-room-character-layer{transition:none}}

/* JAKOB 3G: cinematic camera move and independent waist-up hero composition. */
.trophy-room-viewport.trophy-room-cinematic .trophy-room-scene{
 transition:transform 2500ms cubic-bezier(.45,0,.16,1);
}
.trophy-room-character-layer{
 left:calc(50% - var(--hero-progress,0)*27%);
 bottom:calc(8% - var(--hero-progress,0)*46%);
 height:calc(54% + var(--hero-progress,0)*84%);
 width:calc(30% + var(--hero-progress,0)*22%);
 opacity:1;
 transform:translateX(-50%);
 transition:left 2500ms cubic-bezier(.45,0,.16,1),bottom 2500ms cubic-bezier(.45,0,.16,1),height 2500ms cubic-bezier(.45,0,.16,1),width 2500ms cubic-bezier(.45,0,.16,1);
}
@media(max-width:700px){.trophy-room-character-layer{height:calc(55% + var(--hero-progress,0)*83%);width:calc(34% + var(--hero-progress,0)*18%)}}
@media(prefers-reduced-motion:reduce){.trophy-room-viewport.trophy-room-cinematic .trophy-room-scene,.trophy-room-character-layer{transition:none}}

/* JAKOB 3H: requestAnimationFrame owns movement; no competing CSS transitions. */
.trophy-room-viewport .trophy-room-scene,
.trophy-room-viewport.trophy-room-cinematic .trophy-room-scene{transition:none!important;will-change:transform}
.trophy-room-viewport .trophy-room-character-layer{left:50%;bottom:8%;width:30%;height:54%;transform-origin:center bottom;transition:none!important;will-change:transform}
@media(max-width:700px){.trophy-room-viewport .trophy-room-character-layer{width:30%;height:54%}}
/* Restore the approved full-figure mobile fit after the animation sizing override. */
@media(max-width:700px){.trophy-room-viewport .trophy-room-character-layer{width:40%;height:68%}}
@media(prefers-reduced-motion:reduce){.trophy-room-viewport .trophy-room-scene,.trophy-room-viewport .trophy-room-character-layer{will-change:auto}}

/* JAKOB 3I: wall-view navigation, outside the animated scene. */
.trophy-room-back-button{position:absolute;left:12px;top:12px;z-index:10;pointer-events:auto;min-height:44px;padding:8px 14px;border:1px solid #c49b5e;border-radius:9px;background:#1c1510e8;color:#f1dab0;font:600 14px Georgia,serif;box-shadow:0 3px 12px #0008}
.trophy-room-back-button[hidden]{display:none}
.trophy-room-back-button:focus-visible{outline:2px solid #f0d18e;outline-offset:2px}

/* JAKOB: predefined camera positions only; Centrera is the return action. */
#trophyRoomPage .trophy-room-toolbar button[aria-label="Zooma ut"],
#trophyRoomPage .trophy-room-toolbar button[aria-label="Zooma in"],
#trophyRoomPage #trophyRoomZoomValue{display:none}
#trophyRoomPage .trophy-room-toolbar{justify-content:center}


/* JAKOB 4A: medal interaction. The approved trophy room remains unchanged. */
.trophy-room-scene .trophy-room-medal-wall{pointer-events:auto}
.trophy-room-medal-slot{position:relative;overflow:visible}
.trophy-room-medal-trigger{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;outline-offset:3px}
.trophy-room-medal-trigger img{max-width:100%;max-height:100%;object-fit:contain;transition:filter .25s ease}
.trophy-room-medal-trigger:hover img,.trophy-room-medal-trigger:focus-visible img{filter:drop-shadow(0 0 4px #ffe2a4) drop-shadow(0 0 9px #c68c32)}
.trophy-room-medal-trigger:focus-visible{outline:2px solid #f3d59b}
.trophy-room-medal-trigger::after{content:attr(data-name);position:absolute;z-index:5;left:50%;top:100%;transform:translateX(-50%) translateY(-3px);opacity:0;pointer-events:none;white-space:nowrap;max-width:220px;padding:4px 8px;border:1px solid #b78b4e;border-radius:6px;background:#24180fee;color:#f5dfb7;font:600 clamp(9px,1.5vw,14px) Georgia,serif;text-shadow:0 1px 2px #000;transition:opacity .18s,transform .18s}
.trophy-room-medal-trigger:hover::after,.trophy-room-medal-trigger:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(3px)}
/* Frame has a 3:2 source ratio; left/right panels each occupy half. */
.arcane-medal-dialog{position:fixed;inset:0;margin:auto;padding:0;width:min(96vw,1080px,calc(92dvh * 1.5));max-width:96vw;max-height:94dvh;overflow:auto;border:0;background:transparent;color:#38251a;box-shadow:none}
.arcane-medal-dialog::backdrop{background:#070504d9;backdrop-filter:blur(5px)}
.arcane-medal-display{position:relative;display:grid;grid-template-columns:1fr 1fr;width:100%;aspect-ratio:3/2;background-image:var(--medal-frame-image,linear-gradient(125deg,#4b3422,#9e7845 50%,#4b3422));background-size:contain;background-position:center;background-repeat:no-repeat;filter:drop-shadow(0 15px 22px #000b)}
.arcane-medal-display-cushion,.arcane-medal-display-parchment{position:relative;min-width:0;min-height:0}
.arcane-medal-display-cushion{display:flex;align-items:center;justify-content:center;padding:21% 16%}
.arcane-medal-display-image{position:relative;z-index:1;width:72%;height:75%;object-fit:contain;filter:drop-shadow(0 8px 9px #0009)}
.arcane-medal-display-parchment{display:flex;align-items:center;justify-content:center;padding:23% 11% 22%}
.arcane-medal-display-story{width:100%;max-height:100%;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain;text-align:center;color:#392516;font-family:"Palatino Linotype","Book Antiqua",Georgia,serif;font-size:clamp(12px,1.6vw,18px);font-style:italic;line-height:1.42;text-shadow:0 .3px .4px #5b3b241e}
.arcane-medal-display-title{margin:0 0 .4em;color:#4b291a;font-family:"URW Chancery L","Apple Chancery","Segoe Script","Palatino Linotype",Georgia,cursive;font-weight:600;font-size:clamp(18px,2.65vw,34px);line-height:1.1}
.arcane-medal-display-type{font-size:.8em;letter-spacing:.12em;text-transform:uppercase;margin:.25em 0 1em}
.arcane-medal-display-description{margin:.7em 0;white-space:pre-line}
.arcane-medal-display-reason{margin:.8em 0;font-size:.85em}
.arcane-medal-display-date{margin:1.2em 0 0;padding-top:.7em;border-top:1px solid #6e4b3066;font-size:.88em}
.arcane-medal-display-close{position:absolute;z-index:20;right:3%;top:4%;width:clamp(32px,3.4vw,40px);height:clamp(32px,3.4vw,40px);display:grid;place-items:center;padding:0;border:1px solid #b98c4c88;border-radius:50%;background:#25170e80;color:#f0d5a0b8;font:24px/1 Georgia,serif;cursor:pointer;box-shadow:none;opacity:.68;transition:opacity .15s,background-color .15s}
.arcane-medal-display-close:hover,.arcane-medal-display-close:focus-visible{background:#4c2d1a;outline:2px solid #eac584;outline-offset:2px;opacity:1}
@media(max-width:650px){
 .arcane-medal-dialog{width:min(96vw,420px);max-height:95dvh}
 .arcane-medal-display{display:grid;grid-template-columns:1fr 1fr;aspect-ratio:3/2;background-image:var(--medal-frame-image,linear-gradient(125deg,#4b3422,#9e7845 50%,#4b3422));background-size:contain;filter:drop-shadow(0 15px 22px #000b);gap:0}
 .arcane-medal-display-cushion,.arcane-medal-display-parchment{min-width:0;min-height:0;background-image:none;aspect-ratio:auto}
 .arcane-medal-display-cushion{padding:19% 13%}
 .arcane-medal-display-parchment{padding:20% 12%}
 .arcane-medal-display-image{width:74%;height:72%;object-fit:contain}
 .arcane-medal-display-story{font-size:clamp(10px,2.5vw,16px);max-height:100%}
 .arcane-medal-display-title{font-size:clamp(15px,3.5vw,26px)}
 .arcane-medal-display-close{position:sticky;top:8px;float:right;margin-bottom:-48px;margin-right:10px}
}
@media(prefers-reduced-motion:reduce){.trophy-room-medal-trigger img,.trophy-room-medal-trigger::after{transition:none}}


/* JAKOB 4B: feather-and-ink typography on parchment.
   Use freely available webfonts until a licensed Quill Ink Handy font is supplied. */
.arcane-medal-display-story{
 font-family:"IM Fell English",Georgia,serif;
 font-style:normal;
 font-size:clamp(13px,1.7vw,19px);
 line-height:1.52;
 color:#422b1e;
 text-shadow:.18px .18px .25px #5b3b2430;
}
.arcane-medal-display-title{
 font-family:"Caveat","Segoe Print",cursive;
 font-weight:600;
 font-size:clamp(25px,3.5vw,45px);
 line-height:1.05;
 letter-spacing:-.012em;
 color:#472919;
 text-shadow:.25px .3px .45px #5e331b40;
}
.arcane-medal-display-type{font-family:"IM Fell English",Georgia,serif;font-style:italic;letter-spacing:.07em}
.arcane-medal-display-description{font-family:"IM Fell English",Georgia,serif;font-style:italic;line-height:1.5}
.arcane-medal-display-date{font-family:"Caveat","Segoe Print",cursive;font-size:1.32em;font-weight:600}
@media(max-width:650px){
 .arcane-medal-display-story{font-size:clamp(15px,3.9vw,19px)}
 .arcane-medal-display-title{font-size:clamp(29px,7vw,40px)}
}

/* Medal interactions unlock only after the wall camera has completed its move. */
.trophy-room-viewport:not(.trophy-room-medals-active) .trophy-room-medal-trigger{pointer-events:none;cursor:default}
.trophy-room-viewport:not(.trophy-room-medals-active) .trophy-room-medal-trigger img{filter:none!important}
.trophy-room-viewport:not(.trophy-room-medals-active) .trophy-room-medal-trigger::after{opacity:0!important}

/* Match the trophy-room scene width to the navigation bar's 1280px desktop width. */
#trophyRoomPage .trophy-room-page{
 width:min(1280px,calc(100vw - 2 * clamp(10px,2vw,24px)));
 max-width:none;
 position:relative;
 left:50%;
 transform:translateX(-50%);
}
@media(max-width:700px){
 #trophyRoomPage .trophy-room-page{width:calc(100vw - 16px)}
}

/* Keep the medal artwork out of filter/composited hover layers: the wall is already zoomed. */
.trophy-room-medal-wall{filter:none}
.trophy-room-medal-wall .trophy-room-medal-trigger img{
 filter:none;
 transition:none;
}
.trophy-room-medal-wall .trophy-room-medal-trigger:hover img,
.trophy-room-medal-wall .trophy-room-medal-trigger:focus-visible img{filter:none}
.trophy-room-medal-wall .trophy-room-medal-trigger:hover,
.trophy-room-medal-wall .trophy-room-medal-trigger:focus-visible{
 background:radial-gradient(ellipse,#ffe2a42e 0%,transparent 72%);
}

/* Let the page itself match the navigation bar width without transforming the scene wrapper. */
main:has(> #trophyRoomPage:not(.hidden)){
 width:min(1280px,calc(100vw - 2 * clamp(10px,2vw,24px)));
 max-width:none;
 padding:0;
}
#trophyRoomPage .trophy-room-page{
 width:100%;
 max-width:none;
 position:static;
 left:auto;
 transform:none;
}
@media(max-width:700px){
 main:has(> #trophyRoomPage:not(.hidden)){width:calc(100vw - 16px)}
}


/* Render the medal wall in viewport pixels so zoom does not enlarge a cached GPU texture. */
.trophy-room-viewport > .trophy-room-medal-wall{transform:none;pointer-events:auto;filter:none}

/* PILOT-002: mobile frame follows the source ratio; the parchment stays full-width below it. */
@media(max-width:650px){
 .arcane-medal-dialog{box-sizing:border-box;width:min(96vw,440px);max-width:96vw;max-height:94dvh;overflow-x:hidden;overflow-y:auto;padding:38px 0 12px;overscroll-behavior:contain}
 .arcane-medal-display{display:flex;flex-direction:column;align-items:stretch;width:100%;aspect-ratio:auto;background:none;filter:none;gap:0}
 .arcane-medal-display-cushion{box-sizing:border-box;flex:none;align-self:center;width:100%;aspect-ratio:var(--medal-frame-ratio,4 / 5);min-height:0;padding:8% 9%;background-image:var(--medal-frame-image,linear-gradient(140deg,#583c29,#ad824f));background-size:contain;background-position:center;background-repeat:no-repeat}
 .arcane-medal-display-image{width:62%;height:68%;object-fit:contain}
 .arcane-medal-display-parchment{box-sizing:border-box;flex:none;width:100%;min-height:0;aspect-ratio:auto;display:block;padding:12px clamp(14px,4vw,18px) 16px;background:#ead5ac;color:#422b1e;border:2px solid #b38a4f;overflow-wrap:anywhere}
 .arcane-medal-display-story{max-height:none;overflow:visible;font-size:clamp(14px,3.6vw,16px);line-height:1.35}
 .arcane-medal-display-title{font-size:clamp(26px,6.5vw,32px);line-height:1.02;margin:0 0 4px;overflow-wrap:anywhere}
 .arcane-medal-display-type{font-size:.78em;margin:2px 0 8px}
 .arcane-medal-display-description{line-height:1.35;margin:7px 0}
 .arcane-medal-display-reason{font-size:.82em;margin:7px 0}
 .arcane-medal-display-date{font-size:1.15em;margin:9px 0 0;padding-top:7px}
 .arcane-medal-display-close{position:absolute;top:6px;right:8px;float:none;margin:0;width:32px;height:32px;z-index:30;font-size:21px}
}
@media(max-width:650px) and (max-height:760px){
 .arcane-medal-dialog{padding-top:36px}
 .arcane-medal-display-cushion{padding:7% 8%}
 .arcane-medal-display-parchment{padding-top:10px;padding-bottom:12px}
 .arcane-medal-display-story{font-size:clamp(13px,3.4vw,15px);line-height:1.3}
 .arcane-medal-display-title{font-size:clamp(24px,6vw,29px);margin-bottom:3px}
 .arcane-medal-display-type{margin:1px 0 6px}
 .arcane-medal-display-description,.arcane-medal-display-reason{margin:5px 0}
 .arcane-medal-display-date{margin-top:6px;padding-top:5px}
}
.arcane-honors-admin{--honors-gold:#d5ae6b;--honors-ivory:#f0e1c3;color:var(--honors-ivory);font-family:inherit;background:linear-gradient(150deg,#30241b,#17120f 65%,#2b211a);border:1px solid #84613d;border-radius:18px;padding:clamp(14px,3vw,28px);box-shadow:inset 0 0 0 2px #17110b,0 15px 40px #0007;max-width:100%;box-sizing:border-box}.arcane-honors-admin *{box-sizing:border-box}.honors-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid #765334;padding-bottom:16px}.honors-eyebrow{font-size:.7rem;letter-spacing:.18em;color:#bfa17a}.honors-top h2{margin:4px 0;color:var(--honors-gold);font-size:clamp(1.3rem,3vw,2rem)}.arcane-honors-admin button{background:linear-gradient(#59402c,#312219);border:1px solid #ae8352;border-radius:9px;color:#f5dfb4;padding:10px 14px;cursor:pointer}.arcane-honors-admin button:focus-visible,.arcane-honors-admin input:focus-visible,.arcane-honors-admin select:focus-visible{outline:2px solid #f4d491;outline-offset:2px}.honors-tabs{display:flex;gap:8px;margin:18px 0}.honors-tabs button[aria-pressed=true]{background:#8a6239}.honors-search{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;max-width:420px}.arcane-honors-admin input,.arcane-honors-admin select,.arcane-honors-admin textarea{background:#241d18;border:1px solid #7d6349;border-radius:8px;color:#f1e2c9;padding:10px;width:100%;max-width:100%;font:inherit}.honors-table-wrap{overflow-x:auto}.honors-table{width:100%;border-collapse:collapse;table-layout:auto}.honors-table th{text-align:left;color:#d9b77e;font-size:.83rem;letter-spacing:.04em;border-bottom:1px solid #896841;padding:12px 8px}.honors-table td{border-bottom:1px solid #54402f;padding:12px 8px;vertical-align:middle}.honors-medal-cell{display:flex;align-items:center;gap:12px;min-width:130px}.honors-medal-thumb{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;border:1px solid #a7804c;border-radius:12px;background:radial-gradient(circle,#5b4128,#211913);font-size:1.8rem;color:#dcb778}.honors-medal-thumb img{width:100%;height:100%;object-fit:contain}.honors-total{text-align:center;font-variant-numeric:tabular-nums}.honors-editor[hidden]{display:none}.honors-editor{position:fixed;inset:0;z-index:10050;background:#090705dc;display:flex;align-items:center;justify-content:center;padding:14px}.honors-editor-card{width:min(650px,100%);max-height:90dvh;overflow:auto;background:linear-gradient(#33251a,#1c1510);border:2px ridge #b18a51;border-radius:16px;padding:20px;box-shadow:0 18px 55px #000c}.honors-editor-card header,.honors-editor-card footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.honors-editor-card h3{color:#e3bf83}.honors-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.honors-editor-fields label{display:flex;flex-direction:column;gap:5px;font-size:.88rem}.honors-editor-fields label:has(textarea){grid-column:1/-1}.honors-editor-card footer{justify-content:flex-end}.arcane-honors-admin [hidden]{display:none!important}@media(max-width:600px){.arcane-honors-admin{padding:12px}.honors-table th,.honors-table td{padding:9px 4px;font-size:.8rem}.honors-medal-cell{gap:6px;min-width:110px}.honors-medal-thumb{width:44px;height:44px;flex-basis:44px}.honors-edit{padding:8px!important}.honors-editor-fields{grid-template-columns:1fr}.honors-editor-fields label:has(textarea){grid-column:auto}}

.honors-filters{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.honors-filters>label{display:flex;flex-direction:column;gap:6px;min-width:180px}.honors-count{font-size:.75em;opacity:.8}.honors-status{white-space:nowrap}.honors-status-draft{color:#f0c77a}.honors-status-active{color:#a8d6aa}.honors-status-inactive{color:#aaa}.honors-delete{margin-left:6px;background:#42211b!important;border-color:#ad6257!important}.honors-editor-card{width:min(900px,100%)}.honors-editor-fields .honors-basic-fields{display:contents}.honors-wide{grid-column:1/-1}.honors-tiers,.honors-frames{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border:1px solid #765b3e;border-radius:10px;padding:12px}.honors-tiers legend,.honors-frames legend{color:#d9b77e;padding:0 6px}.honors-variant-library{border-top:1px solid #765334;padding-top:14px;margin-top:14px}.honors-variant-library h4{margin:.35rem 0;color:#e3bf83}.honors-variant-library>p,.honors-help{color:#c9b896;font-size:.88rem}.honors-variant-list{display:grid;gap:8px}.honors-variant-row{display:grid;grid-template-columns:48px minmax(100px,1fr) auto;align-items:center;gap:10px;padding:8px;border:1px solid #624c36;border-radius:9px;background:#211912}.honors-variant-row>img,.honors-variant-placeholder{width:46px;height:46px;object-fit:contain;border-radius:6px;background:#30251b;color:#dfbd7d;display:grid;place-items:center}.honors-variant-row>div:nth-child(2){display:flex;flex-direction:column;gap:3px}.honors-variant-row span,.honors-variant-row small{font-size:.76rem;color:#ccb897}.honors-variant-row.is-preview{border-color:#e5c278}.honors-variant-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.honors-variant-actions button{font-size:.75rem;padding:6px 8px}.honors-variant-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0;padding:12px;border:1px solid #6c5238;border-radius:10px}.honors-variant-form label{display:flex;flex-direction:column;gap:5px}.honors-variant-form .honors-overhang{grid-column:1/-1;flex-direction:row;align-items:center}.honors-variant-form input[type=checkbox]{width:auto}.honors-preview-card{display:grid;justify-items:center;gap:8px;margin:14px auto;padding:12px;width:min(280px,100%);border:1px dashed #886a42;border-radius:12px;color:#e0c18a}.honors-preview-art{position:relative;width:120px;aspect-ratio:1/1;display:grid;place-items:center;overflow:visible;background:radial-gradient(circle,#59452e,#20170f)}.honors-preview-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;overflow:visible}.honors-preview-frame{z-index:2}.honors-preview-relief{z-index:1;transform:none;pointer-events:none}.honors-preview-art.has-overhang .honors-preview-frame{z-index:1}.honors-preview-art.has-overhang .honors-preview-relief{z-index:2;transform:scale(1.14)}.honors-preview-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}.honors-preview-tier{display:grid;justify-items:center;gap:4px;min-width:0;font-size:.78rem}.honors-preview-tiers .honors-preview-art{width:min(100%,76px);background:transparent;border:0;padding:0}.honors-preview-stars{position:absolute;z-index:3;top:-.72em;left:0;width:100%;color:#f2cf70;text-align:center;letter-spacing:.08em;font-size:1.15em;line-height:1;text-shadow:0 1px 3px #211708}.honors-preview-relief-label{z-index:3;padding:6px;background:#24190edc;border:1px dashed #d3b879;border-radius:50%;text-align:center;font-size:.72rem}.honors-preview-empty{display:grid;place-items:center;text-align:center;color:#ccb897;font-size:.75rem}.honors-frames small{color:#cab697;font-size:.72rem}@media(max-width:650px){.honors-filters{display:grid;grid-template-columns:1fr}.honors-filters>label{min-width:0}.honors-tiers,.honors-frames{grid-template-columns:1fr}.honors-wide{grid-column:auto}.honors-variant-row{grid-template-columns:40px 1fr}.honors-variant-row>img,.honors-variant-placeholder{width:38px;height:38px}.honors-variant-actions{grid-column:1/-1;justify-content:flex-start}.honors-variant-form{grid-template-columns:1fr}.honors-variant-form .honors-overhang{grid-column:auto}}
.honors-image-controls{display:grid;gap:.6rem;margin:1rem 0;padding:1rem;border:1px solid #8e744b;border-radius:.5rem;min-width:0}
.honors-image-controls input[type=file]{max-width:100%;min-width:0}
.honors-image-controls small{line-height:1.5}
.honors-image-controls [role=status]{margin:0;overflow-wrap:anywhere}
.honors-variant-row:has(.honors-image-controls){flex-wrap:wrap}
.honors-variant-row .honors-image-controls{flex-basis:100%}
.honors-image-current{max-width:160px;max-height:160px;object-fit:contain}

/* Keep image controls full-width inside the variant row's CSS grid. */
.honors-variant-row>.honors-image-controls{
  grid-column:1/-1;
  width:100%;
  min-width:0;
  max-width:100%;
}
.honors-image-controls>label,
.honors-image-controls>small,
.honors-image-controls>[role=status]{
  display:block;
  min-width:0;
  max-width:100%;
  overflow-wrap:break-word;
}
.honors-image-controls input[type=file]{display:block;width:100%;min-width:0}
@media(max-width:650px){
  .honors-editor-card{width:100%;padding:12px}
  .honors-variant-row{min-width:0}
  .honors-variant-row>div:nth-child(2){min-width:0}
  .honors-variant-row>.honors-image-controls{grid-column:1/-1}
}

.honors-metric-placeholders{grid-column:1/-1;display:grid;gap:10px;border:1px dashed #765b3e;border-radius:10px;padding:12px;color:#c9b896}.honors-metric-placeholders legend{color:#d9b77e;padding:0 6px}.honors-metric-placeholders>p{margin:0;font-size:.82rem}.honors-metric-placeholders>label{display:flex;flex-direction:column;gap:5px}.honors-metric-placeholders input:disabled,.honors-metric-placeholders select:disabled{opacity:.7;cursor:not-allowed}.honors-metric-thresholds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.honors-metric-thresholds label{display:flex;flex-direction:column;gap:5px;font-size:.88rem}@media(max-width:650px){.honors-metric-placeholders{grid-column:auto}.honors-metric-thresholds{grid-template-columns:1fr}}


/* Badge overview: keep the key facts visible without opening the long general editor. */
.honors-badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:14px;align-items:start}
.honors-badge-card{min-width:0;padding:16px;border:1px solid #765b3e;border-radius:14px;background:linear-gradient(155deg,#2b2119,#1c1510);box-shadow:inset 0 0 0 1px #17110b}
.honors-badge-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.honors-badge-card h3{margin:3px 0 0;color:#e3bf83;font-size:1.05rem;overflow-wrap:anywhere}
.honors-badge-description{min-height:2.8em;margin:12px 0;color:#e7d9c2;line-height:1.45}
.honors-badge-frames{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 14px}
.honors-badge-frame{display:grid;justify-items:center;gap:5px;color:#d9b77e;font-size:.78rem}
.honors-badge-card .honors-preview-art{width:min(100%,104px);aspect-ratio:1/1;background:transparent;border:0;border-radius:0;overflow:visible}
.honors-badge-card .honors-preview-art img{object-fit:contain}
.honors-badge-card .honors-preview-empty{z-index:1;font-size:.68rem}
.honors-badge-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.honors-badge-tier{display:grid;align-content:start;gap:5px;min-width:0;padding:9px;border:1px solid #5d4933;border-radius:9px;background:#211912}
.honors-badge-tier strong{color:#d9b77e;font-size:.8rem}
.honors-badge-tier span{font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}
.honors-badge-current{display:grid;gap:3px;margin-top:12px;padding:9px 10px;border-left:3px solid #d5ae6b;background:#211912}
.honors-badge-current strong{font-size:.8rem;color:#e5c278}
.honors-badge-current span{font-size:.8rem;color:#ccb897}
.honors-badge-variants{margin-top:10px;border-top:1px solid #54402f;padding-top:9px}
.honors-badge-variants summary{cursor:pointer;color:#d9b77e;font-size:.85rem}
.honors-badge-variants ul{display:grid;gap:7px;list-style:none;padding:8px 0 0;margin:0}
.honors-badge-variants li{display:flex;align-items:center;gap:9px;min-width:0;padding:7px;border-radius:8px;background:#211912}
.honors-badge-variants li img,.honors-badge-variant-empty{width:42px;height:42px;flex:0 0 42px;object-fit:contain;border-radius:6px;background:#30251b}
.honors-badge-variant-empty{display:grid;place-items:center;color:#dfbd7d}
.honors-badge-variants li>span:nth-child(2){display:grid;gap:3px;min-width:0}
.honors-badge-variants li strong{overflow-wrap:anywhere}
.honors-badge-variants li small{font-size:.75rem;color:#ccb897}
.honors-badge-variants li em{margin-left:auto;color:#e5c278;font-size:.75rem;font-style:normal}
.honors-badge-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid #54402f;color:#ccb897;font-size:.78rem}
.honors-badge-card>footer button{padding:7px 10px;font-size:.78rem}
@media(max-width:600px){
  .honors-badge-grid{grid-template-columns:minmax(0,1fr)}
  .honors-badge-card{padding:12px}
  .honors-badge-card .honors-preview-art{width:min(100%,82px)}
  .honors-badge-tiers{gap:5px}
  .honors-badge-tier{padding:7px}
  .honors-badge-tier span{font-size:.72rem}
}

.honors-badge-metric-note{margin:7px 0 0;color:#aa977a;font-size:.74rem;line-height:1.35}
.honors-badge-edit-fields .honors-metric-placeholders{grid-column:1/-1}

/* Badge list stays compact; only the selected row reveals its full card. */
.honors-badge-table{table-layout:fixed}
.honors-badge-table th:first-child{width:38%}
.honors-badge-table th:nth-child(2){width:17%}
.honors-badge-table th:nth-child(3){width:31%}
.honors-badge-table th:nth-child(4){width:14%}
.honors-badge-row-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:2px!important;border:0!important;background:transparent!important;text-align:left;color:#f0e1c3!important;font:inherit;font-weight:600}
.honors-badge-row-toggle>img,.honors-badge-row-placeholder{width:42px;height:42px;flex:0 0 42px;object-fit:contain;border:1px solid #8e6d43;border-radius:9px;background:#211912}
.honors-badge-row-placeholder{display:grid;place-items:center;color:#dfbd7d}
.honors-badge-row.is-expanded>td{background:#302419}
.honors-badge-row.is-expanded .honors-badge-row-toggle>span:last-child{color:#e5c278}
.honors-badge-detail-row>td{padding:10px 0 16px;border-bottom:1px solid #896841}
.honors-badge-detail-row .honors-badge-card{width:100%;box-shadow:none}
.honors-variant-library.is-badge .honors-preview-art{aspect-ratio:1/1}
.honors-preview-window{position:absolute;z-index:1;left:16%;top:16%;width:68%;height:68%;overflow:hidden;border-radius:15%}
.honors-preview-window .honors-preview-relief{inset:0;width:100%;height:100%;object-fit:cover;transform:none!important}
@media(max-width:600px){
  .honors-badge-table th:first-child{width:46%}
  .honors-badge-table th:nth-child(2){width:20%}
  .honors-badge-table th:nth-child(3){width:0}
  .honors-badge-table th:nth-child(4){width:14%}
  .honors-badge-table th:nth-child(3),.honors-badge-table td:nth-child(3){display:none}
  .honors-badge-row-toggle{gap:7px;font-size:.82rem}
  .honors-badge-row-toggle>img,.honors-badge-row-placeholder{width:36px;height:36px;flex-basis:36px}
  .honors-badge-detail-row>td{padding:8px 0 12px}
}

.honors-badge-card .honors-preview-art{overflow:visible}

/* Lion badge art uses a square frame with a landscape opening, not a round medallion. */
.honors-badge-card .honors-preview-art{
  width:min(100%,104px);
  aspect-ratio:1/1;
  background:transparent;
  border:0;
  border-radius:0;
  overflow:visible;
}
.honors-preview-window{
  left:16%;
  top:30%;
  width:68%;
  height:52%;
  border-radius:0;
}

.honors-frame-choice{grid-column:1/-1;display:grid;gap:5px;color:#e0c18a;font-size:.8rem}.honors-frame-choice select{max-width:100%;padding:7px;border:1px solid #725735;border-radius:7px;background:#211912;color:#f3e8d1}.honors-badge-frames{grid-template-columns:repeat(3,minmax(0,1fr))}
.combat-paper-doll-controls{
 display:flex;
 flex-wrap:wrap;
 align-items:center;
 gap:6px;
 padding-top:8px;
 font-size:12px;
}
.combat-paper-doll-controls button{
 border:1px solid #6f5a43;
 border-radius:6px;
 padding:6px 10px;
 background:#1d1712;
 color:#ead5b3;
 cursor:pointer;
}
.combat-paper-doll-controls button[aria-pressed="true"]{
 border-color:#dfbb70;
 background:#44341d;
}
.combat-paper-doll-controls button:focus-visible{
 outline:2px solid #dfbb70;
 outline-offset:2px;
}
/* Visibility retains the exact classic hit rectangles without painting the art.
   Only the hit element opts back in. Its existing pointer-events:all is retained. */
.combat-paper-doll-classic{visibility:hidden}
.combat-paper-doll-classic .combat-miniature{filter:none}
.combat-paper-doll-classic .combat-mini-hit{visibility:visible}
.combat-paper-doll-classic .combat-token{visibility:visible;opacity:0}
.combat-paper-doll,
.combat-paper-doll-image,
.combat-paper-doll-ring{pointer-events:none}
.combat-paper-doll-ring{
 fill:none;
 stroke:#51d276;
 stroke-width:1.5;
 vector-effect:non-scaling-stroke;
}
.combat-paper-doll.selected .combat-paper-doll-ring{stroke:#ffd06f;stroke-width:3}
.combat-paper-doll.attack-target .combat-paper-doll-ring{stroke:#e1493f;stroke-width:3}
.combat-paper-doll.movement-planning .combat-paper-doll-ring{stroke:#71ff91;stroke-width:3}

/* ARES universal miniature: visual only, legacy hit area retained. */
.combat-paper-doll-universal,.combat-paper-doll-universal image{pointer-events:none}
.combat-paper-doll-universal-ring{fill:none;stroke:#53c67b;stroke-width:1.4;vector-effect:non-scaling-stroke}
.combat-paper-doll-universal.selected .combat-paper-doll-universal-ring{stroke:#ffd06f;stroke-width:2.5}
.combat-paper-doll-universal.attack-target .combat-paper-doll-universal-ring{stroke:#e1493f;stroke-width:2.5}

/* ARCANE BASE AURA V1 – removable visual-only layer.
   Disable all effects with --arcane-aura-opacity:0 on .combat-map-svg.
   Adjust radius/offset here without changing hex geometry or combat state. */
.combat-map-svg{--arcane-aura-opacity:.58;--arcane-aura-radius:11px}
.combat-base-aura{opacity:var(--arcane-aura-opacity);fill:#48d77d;filter:blur(5px);pointer-events:none}
.combat-base-aura--npc{fill:#57aaff}
.combat-base-aura--enemy{fill:#ed5656}
.combat-base-aura--gold{fill:#ffd06b;opacity:calc(var(--arcane-aura-opacity) * 1.4);filter:blur(6px)}
@media (prefers-reduced-motion:reduce){.combat-base-aura{animation:none!important}}

/* OPERATION YELLOW BRICK ROAD – preview only; easy visual calibration. */
#combatPage .combat-map-svg .combat-hex.yellow-brick-road{
 fill:#fff1b5!important;
 fill-opacity:.38!important;
 stroke:#ffe5a0!important;
 stroke-opacity:.98!important;
 stroke-width:2.5!important;
 filter:drop-shadow(0 0 5px rgba(255,230,151,.85));
}
#combatPage .combat-map-svg .combat-hex.yellow-brick-road.move-preview{
 fill-opacity:.57!important;
 stroke-width:3.5!important;
}
@media (prefers-reduced-motion:reduce){#combatPage .combat-map-svg .combat-hex.yellow-brick-road{animation:none!important}}

/* ICARUS V1 – disposable wing placeholder, no permanent badge design. */
#combatPage .combat-flight-status circle{fill:#242f39;fill-opacity:.94;stroke:#b7dff1;stroke-width:1.4}
#combatPage .combat-flight-status path{stroke:#e1f6ff;stroke-width:2}
#combatPage .combat-flight-status{pointer-events:none}

/* YELLOW BRICK ROAD V1.1 – tune these presentation values independently. */
#combatPage .combat-map-svg .combat-hex.move-reachable.move-action-kept:not(.yellow-brick-road){
 fill-opacity:.18;stroke-opacity:.56;stroke-width:1.8;
}
/* Farther reachable cells cost the action: keep them visible, not anonymous. */
#combatPage .combat-map-svg .combat-hex.move-reachable.move-action-spent:not(.yellow-brick-road){
 fill:#9dc6a2;fill-opacity:.19;stroke:#c3ddb4;stroke-opacity:.82;stroke-width:2.2;
}
#combatPage .combat-map-svg .combat-hex.yellow-brick-road{
 fill:#fff3cb!important;fill-opacity:.48!important;
 stroke:#fff0b3!important;stroke-opacity:1!important;stroke-width:3!important;
 filter:drop-shadow(0 0 5px rgba(255,232,161,.85));
}
#combatPage .combat-map-svg .combat-hex.yellow-brick-road.move-preview{
 fill-opacity:.65!important;stroke:#fff9db!important;stroke-width:4!important;
}
#combatPage .combat-map-svg .yellow-brick-road-line{
 stroke:#fff5c9;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round;
 stroke-dasharray:5 5;filter:drop-shadow(0 0 4px rgba(255,225,137,.95));
}
