:root{--k-paper:#fbf8f1;--k-field:#fffdf8;--k-grey:#f1ede6;--k-ink:#2a211c;--k-ink2:#3b332e;--k-muted:#7d6e64;--k-muted2:#8a7a70;--k-muted3:#6b5b50;--k-red:#c73538;--k-focus:#fff;--k-field-a:rgba(255,253,248,.85);}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:#0d0b09;overscroll-behavior:none;touch-action:none;}
#stage{position:absolute;top:48px;left:0;right:0;bottom:0;cursor:grab;overflow:hidden;touch-action:none;}
#stage.grabbing{cursor:grabbing}
#stage.drawmode{cursor:crosshair;}
#stage.textmode{cursor:text;}
#world{position:absolute;transform-origin:0 0;will-change:transform}
#world img{display:block;width:100%;height:100%;-webkit-user-drag:none;user-select:none}
/* Map placeholder (core.js ctx.switchMap): the tiny thumbnail shows until the real picture is ready. No blur or zoom on it:
   a filter/transform on the full-size map picture ran iPhone Safari out of memory after a few map switches. */
/* Covers the whole map, so it must stay pointer-transparent (else clicks miss the <img> and pointer.js text-box
   placement never fires). Only .hot markers opt back in. */
#hotspots{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;}
#hotspots.off .hot:not(.hot-custom){pointer-events:none;} /* .hot sets pointer-events:auto, which would override the inherited 'none' and keep markers live with numbers off */
#hotspots.off .hot:not(.hot-custom) .hot-pin{display:none;} /* only affects maps that draw their own pins (showPins) */
#hotspots.cl-off .hot-custom{display:none;} /* Layers → Custom landmarks (own toggle, js/layers.js) */
.hot{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;cursor:pointer;pointer-events:auto;}
.hot.hot-approx{border:2px dashed rgba(240,226,196,.65);border-radius:50%;background:rgba(240,226,196,.07);}

/* ---- drawn number pin (cfg.landmarks.showPins — see tooltips.js) ----
   Bold outlined numeral, no badge, to match Eriador's numerals; size and stroke are set inline in tooltips.js,
   scaled off cfg.NW so every map has the same numeral-to-map ratio. */
.hot-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;justify-content:center;white-space:nowrap;
  font-family:Arial,Helvetica,sans-serif;font-weight:800;line-height:1;
  color:#fcfcfc;-webkit-text-stroke:2px #1a0e04;paint-order:stroke fill;
  pointer-events:none;}
.hot-pin-approx{opacity:.85;}
.hot-pin-arrow{-webkit-text-stroke:0;text-shadow:none;} /* drawn as an SVG arrow (tooltips.js) */
/* cfg.landmarks.pinStyle:'badge': white numeral on a red square, like the badges printed on the books' inside maps.
   The region ring turns red too (the cream ring vanishes on parchment). */
.hot-pin-badge{-webkit-text-stroke:0;text-shadow:none;color:#fff;font-weight:700;
  background:#c4503e;border:1.5px solid #fff4e4;border-radius:2px;padding:.16em .3em;min-width:.75em;
  box-shadow:0 1px 3px rgba(0,0,0,.55);}
.hot.hot-approx-badge{border-color:rgba(196,80,62,.8);background:rgba(196,80,62,.08);}
#drawCanvas{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;}
#drawCanvas.off{display:none;}
#textboxes{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;}
#textboxes.off{display:none;}
.tbox{position:absolute;min-width:50px;min-height:26px;width:160px;height:60px;
  background:rgba(255,255,255,.38);border:calc(1px * var(--inv,1)) dashed rgba(40,30,20,.6);
  border-radius:calc(3px * var(--inv,1));font-size:16px;pointer-events:auto;touch-action:auto;}
.tbox:focus-within{background:rgba(255,255,255,.72);border-style:solid;border-color:#a68b55;} /* easier to read while typing */
.tbox-inner{width:100%;height:100%;overflow:auto;padding:.25em .4em;outline:none;color:#000;
  font-family:Georgia,'Iowan Old Style',serif;font-size:inherit;line-height:1.3;
  text-shadow:0 0 .18em rgba(255,255,255,.9);}
/* handles sit ON the corners at a constant screen size (scale by --inv); translate(±50%) after the scale centres them. */
.tbox-h{position:absolute;width:26px;height:26px;border-radius:50%;padding:0;
  background:rgba(28,21,13,.9);border:1px solid #a68b55;color:#e8dcc0;
  display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  touch-action:none;cursor:pointer;opacity:0;transition:opacity .12s ease;
  -webkit-user-select:none;user-select:none;box-shadow:0 1px 4px rgba(0,0,0,.5);}
.tbox-h::before{content:'';position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;} /* bigger invisible touch target */
.tbox-h .icon{width:14px;height:14px;color:#e8dcc0;}
.tbox:hover .tbox-h,.tbox:focus-within .tbox-h,.tbox.tbox-busy .tbox-h{opacity:1;}
@media (hover:none){.tbox-h{opacity:.92;}}
.tbox-h:active{background:#5a4a2e;}
.tbox-move{left:0;top:0;transform:translate(-50%,-50%) scale(var(--inv,1));cursor:grab;}
.tbox-del{right:0;top:0;transform:translate(50%,-50%) scale(var(--inv,1));background:rgba(58,20,20,.92);
  border-color:#6b2b2b;color:#f0c9c9;font-size:16px;}
.tbox-resize{right:0;bottom:0;transform:translate(50%,50%) scale(var(--inv,1));cursor:nwse-resize;}
.tbox-fs{position:absolute;left:0;bottom:0;display:flex;gap:6px;pointer-events:none;
  transform-origin:left center;transform:translate(0,50%) scale(var(--inv,1));}
.tbox-fs .tbox-h{position:relative;pointer-events:auto;width:30px;}

/* ---- shared icon set (<symbol> defs in js/icons.js) ---- one accent colour/stroke for every icon; with a text
   label, only the svg takes the accent (currentColor set on the svg, not the button). */
.icon{width:16px;height:16px;display:block;flex:0 0 auto;color:#a68b55;
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;} /* clicks must report the button as e.target, not the svg/use — several handlers compare e.target to a button */
button.active .icon{color:#f0e2c4;}
.navbtn .icon{width:13px;height:13px;display:inline-block;vertical-align:-2px;}
/* inline icons next to text must not be display:block, or they wrap onto their own line */
#journalHeader .title .icon{display:inline-block;}

/* ---- top toolbar ---- */
#topbar{position:fixed;top:0;left:0;right:0;height:48px;z-index:20;display:flex;align-items:center;
  gap:6px;padding:0 8px;background:rgba(14,11,8,.96);border-bottom:1px solid #3a2f1f;
  overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-x;}
#topbar::-webkit-scrollbar{display:none;}
#topbar button{flex:0 0 auto;width:34px;height:34px;border:1px solid #4a3d2b;background:rgba(255,255,255,.03);
  color:#d8c9a8;font-size:16px;border-radius:6px;cursor:pointer;font-family:inherit;white-space:nowrap;
  display:flex;align-items:center;justify-content:center;gap:6px;}
#topbar button:active{background:#2b2318}
#topbar button.active{background:#5a4a2e;color:#f0e2c4;border-color:#a68b55;}
#topbar button:disabled{opacity:.35;cursor:default;}
#topbar .navbtn{width:auto;padding:0 10px;font-size:12.5px;letter-spacing:.03em;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#topbar .sep{flex:0 0 auto;width:1px;height:24px;background:#3a2f1f;margin:0 2px;}
#topbar .tb-gone,#topbar .tb-off{display:none!important;}
/* Customize Toolbar (js/toolbar-fit.js) */
.tbc-box{max-width:420px;}
.tbc-h{font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:12px 0 6px;opacity:.85;}
.tbc-list{display:flex;flex-direction:column;gap:4px;}
.tbc-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border:1px solid rgba(199,53,56,.3);border-radius:6px;background:var(--k-field,#fffdf8);position:relative;transition:transform .12s;}
.tbc-row.drag{transition:none;z-index:2;box-shadow:0 6px 18px rgba(0,0,0,.3);}
.tbc-grip{display:flex;cursor:grab;touch-action:none;padding:4px 2px;opacity:.7;}
.tbc-grip .icon,.tbc-ic .icon,.tbc-x .icon,.tbc-add .icon,.tbc-gh .icon,.tbc-b .icon{width:16px;height:16px;}
.tbc-ic{display:flex;color:var(--k-red,#c73538);}
.tbc-l{flex:1 1 auto;min-width:0;}
.tbc-line{width:2px;height:18px;background:currentColor;opacity:.4;margin:0 7px;}
.tbc-div .tbc-l{font-style:italic;opacity:.75;}
.tbc-x,.tbc-add,.tbc-gh,.tbc-b{font:inherit;color:inherit;background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:6px;}
.tbc-x{padding:4px;opacity:.6;}
.tbc-acts{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0;}
.tbc-b{border:1px solid rgba(199,53,56,.5);border-radius:14px;padding:4px 12px;font-size:13px;}
.tbc-gh{width:100%;padding:7px 2px;font-weight:700;border-bottom:1px solid rgba(199,53,56,.2);}
.tbc-gh span{flex:1 1 auto;text-align:left;}
.tbc-gh em{font-weight:400;opacity:.6;font-style:normal;font-size:12px;}
.tbc-gb{display:flex;flex-direction:column;padding:2px 0 6px 10px;}
.tbc-add{width:100%;padding:6px 4px;text-align:left;}
.tbc-add:hover{background:rgba(199,53,56,.07);}
html.phone #tbCustomBtn{display:none!important;}

/* ---- map switcher dropdown (under #mapBtn) — same pattern as #layers/#overflowMenu, anchored left ---- */
#mapMenu{position:fixed;top:48px;left:8px;z-index:19;display:none;flex-direction:column;gap:2px;
  background:rgba(14,11,8,.97);border:1px solid #3a2f1f;border-radius:6px;padding:6px;min-width:160px;touch-action:auto;}
.map-menu-item{display:flex;align-items:center;gap:10px;background:none;border:none;color:#d8c9a8;
  font-size:13.5px;padding:8px 8px;border-radius:4px;width:100%;text-align:left;cursor:pointer;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.map-menu-item:active{background:rgba(255,255,255,.06);}
.map-menu-dot{width:7px;height:7px;border-radius:50%;background:transparent;flex:0 0 auto;}
.map-menu-item.current{color:#f0e2c4;}
.map-menu-item.current .map-menu-dot{background:#e0b865;}
#mapBtn .icon{width:11px;height:11px;margin-left:2px;}

#palette{position:fixed;top:48px;left:0;right:0;z-index:19;display:none;gap:8px;align-items:center;
  background:rgba(14,11,8,.96);border-bottom:1px solid #3a2f1f;padding:8px;touch-action:auto;}
#palette span{color:#8a7a5c;font-size:12px;margin-right:2px;}
#palette button{width:26px;height:26px;border-radius:50%;border:2px solid #776a52;cursor:pointer;padding:0;}
#palette button.sel{border-color:#f0e2c4;box-shadow:0 0 4px rgba(240,226,196,.8);}
#palette button.eraser-swatch{background:#241c14;display:flex;align-items:center;justify-content:center;margin-left:4px;}
#palette button.eraser-swatch .icon{width:14px;height:14px;color:#cbb98c;}

#layers{position:fixed;top:48px;right:calc(38px + env(safe-area-inset-right,0px));z-index:19;display:none;flex-direction:column;gap:2px;
  background:rgba(14,11,8,.97);border:1px solid #3a2f1f;border-radius:6px;padding:6px;min-width:160px;touch-action:auto;}
#layers button{display:flex;justify-content:space-between;align-items:center;gap:14px;
  background:none;border:none;color:#d8c9a8;font-size:13.5px;padding:8px 8px;border-radius:4px;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;cursor:pointer;}
#layers button:active{background:rgba(255,255,255,.06)}
#layers .dot{width:9px;height:9px;border-radius:50%;background:#6bbf6b;}
#layers .dot.off{background:#5a4d3c;}

/* ---- toolbar overflow (•••) menu — same dropdown pattern as #layers ---- */
#overflowMenu{position:fixed;top:48px;right:8px;z-index:24;display:none;flex-direction:column;gap:2px;
  background:rgba(14,11,8,.97);border:1px solid #3a2f1f;border-radius:6px;padding:6px;min-width:180px;touch-action:auto;}
#overflowMenu button{display:flex;align-items:center;gap:10px;
  background:none;border:none;color:#d8c9a8;font-size:13.5px;padding:8px 8px;border-radius:4px;width:100%;text-align:left;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;cursor:pointer;}
#overflowMenu button:active{background:rgba(255,255,255,.06)}
#overflowMenu button .icon{color:#a68b55;}
#overflowMenu .ov-sep{height:1px;background:#3a2f1f;margin:4px 2px;}
/* collapsible groups: a heading row folds/unfolds its .ov-body (js/layers.js) */
#overflowMenu .ov-group{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;}
#overflowMenu .ov-group+.ov-group{border-top:1px solid #3a2f1f;margin-top:2px;padding-top:2px;}
#overflowMenu button.ov-head{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:#a68b55;padding:7px 8px;}
#overflowMenu button.ov-head .ov-chev{margin-left:auto;width:14px;height:14px;transition:transform .15s;}
#overflowMenu .ov-group.open>.ov-head .ov-chev{transform:rotate(180deg);}
#overflowMenu .ov-body{display:none;flex-direction:column;gap:2px;}
#overflowMenu .ov-group.open>.ov-body{display:flex;}
#overflowMenu .ov-body button{padding-left:14px;}

/* ---- music panel (Explore/Tense/Battle) — same dropdown as #layers. One shared hidden YouTube player (js/music.js),
   so a mode here and a landmark's ♪ button stop each other. ---- */
#musicPanel{position:fixed;top:48px;right:8px;z-index:19;display:none;flex-direction:column;gap:2px;
  background:rgba(14,11,8,.97);border:1px solid #3a2f1f;border-radius:6px;padding:6px;min-width:150px;touch-action:auto;}
.music-mode-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:#d8c9a8;
  font-size:13.5px;padding:8px 8px;border-radius:4px;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  cursor:pointer;text-align:left;}
.music-mode-btn:active{background:rgba(255,255,255,.06);}
.music-mode-btn.playing{background:#5a4a2e;color:#f0e2c4;}
.music-mode-btn.offline{opacity:.4;cursor:not-allowed;}

#tip{position:fixed;z-index:30;transform:translate(-50%,-100%);pointer-events:none;
  background:linear-gradient(180deg,#1c1712,#120e0a);color:#f0e2c4;border:1px solid #6b5735;
  border-radius:4px;padding:6px 10px;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  font-size:13.5px;letter-spacing:.02em;white-space:nowrap;opacity:0;transition:opacity .12s ease;
  box-shadow:0 6px 18px rgba(0,0,0,.5);margin-top:-8px;}
#tip.show{opacity:1;pointer-events:auto;}
/* a faded-out tooltip's buttons must not catch taps */
#tip:not(.show) *,#taleTip:not(.show) *{pointer-events:none!important;}
#tip{max-width:calc(100vw - 16px);}
/* Long inside-map keys scroll inside this box (height capped by js/tooltips.js); Inside/Spawn buttons are appended
   after it (js/map-extras.js) so they don't scroll away. Scroll lives here, not on #tip, because #tip's :after arrow
   would give every short tooltip 12px of stray scroll. */
#tip .tip-scroll{overflow-y:auto;overscroll-behavior:contain;}
#tip .tip-name{white-space:normal;}
#tip:after{content:'';position:absolute;left:var(--ax,50%);top:100%;transform:translateX(-50%);
  border:6px solid transparent;border-top-color:#120e0a;}
#tip.below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#1c1712;}
#musicPlayerHost{position:fixed;width:0;height:0;overflow:hidden;pointer-events:none;}

/* ---- journal panel ---- */
#journalPanel{position:fixed;left:0;right:0;bottom:0;z-index:25;display:flex;flex-direction:column;
  background:rgba(14,11,8,.97);border-top:1px solid #3a2f1f;touch-action:auto;max-height:96vh;}
/* drag-to-resize handle (js/journal.js) — hidden while collapsed, since there's nothing to resize then */
#journalGrab{flex:0 0 auto;display:flex;justify-content:center;padding:7px 0 3px;cursor:ns-resize;touch-action:none;}
#journalGrab .grab{width:36px;height:4px;border-radius:2px;background:#3a2f1f;}
#journalGrab:active .grab{background:#a68b55;}
#journalPanel.collapsed #journalGrab{display:none;}
#journalHeader{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;
  cursor:pointer;user-select:none;flex:0 0 auto;gap:8px;}
#journalHeader .title{color:#d8c9a8;font-size:13px;letter-spacing:.04em;flex:1 1 auto;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#journalHeader .chev{color:#8a7a5c;font-size:11px;transition:transform .15s ease;}
#journalPanel.collapsed .chev{transform:rotate(180deg);}
#journalClear,#journalEndSession{flex:0 0 auto;background:none;border:1px solid #4a3d2b;color:#a08a5c;font-size:11px;
  letter-spacing:.03em;padding:4px 9px;border-radius:5px;cursor:pointer;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#journalClear:hover,#journalEndSession:hover{background:rgba(255,255,255,.05);color:#d8c9a8;}
#journalBody{padding:0 12px 12px;flex:1 1 auto;min-height:0;}
#journalPanel.collapsed #journalBody{display:none;}
#journalText{width:100%;height:22vh;min-height:100px;resize:vertical;
  background:rgba(255,255,255,.06);color:#e8dcc0;border:1px solid #4a3d2b;border-radius:6px;
  padding:8px 10px;font-family:Georgia,'Iowan Old Style',serif;font-size:14px;line-height:1.4;
  touch-action:auto;}
#journalText:focus{outline:none;border-color:#a68b55;}

/* ---- tables panels (left + right, mirrored) ---- */
#loreTab{position:fixed;left:0;top:96px;z-index:23;background:rgba(20,16,11,.95);color:#d8c9a8;
  border:1px solid #3a2f1f;border-left:none;border-radius:0 8px 8px 0;padding:10px 6px;
  font-size:11px;letter-spacing:.06em;cursor:pointer;writing-mode:vertical-rl;
  text-orientation:mixed;touch-action:auto;user-select:none;transition:left .18s ease;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#loreTabRight{position:fixed;right:0;top:96px;z-index:23;background:rgba(20,16,11,.95);color:#d8c9a8;
  border:1px solid #3a2f1f;border-right:none;border-radius:8px 0 0 8px;padding:10px 6px;
  font-size:11px;letter-spacing:.06em;cursor:pointer;writing-mode:vertical-rl;
  text-orientation:mixed;touch-action:auto;user-select:none;transition:right .18s ease;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#loreBackdrop{position:fixed;top:48px;left:0;right:0;bottom:0;z-index:21;background:rgba(0,0,0,.35);display:none;}
#loreBackdrop.show{display:block;}
#lorePanel{position:fixed;left:0;top:48px;bottom:var(--journal-h,0px);width:230px;max-width:78vw;z-index:22;
  background:rgba(14,11,8,.97);border-right:1px solid #3a2f1f;overflow-y:auto;touch-action:auto;
  transform:translateX(-100%);transition:transform .18s ease;padding:12px 0 36px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
#lorePanel.open{transform:translateX(0);}
#lorePanelRight{position:fixed;right:0;top:48px;bottom:var(--journal-h,0px);width:230px;max-width:78vw;z-index:22;
  background:rgba(14,11,8,.97);border-left:1px solid #3a2f1f;overflow-y:auto;touch-action:auto;
  transform:translateX(100%);transition:transform .18s ease;padding:12px 0 36px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
#lorePanelRight.open{transform:translateX(0);}
.lore-group{border-bottom:1px solid #2a2115;}
.lore-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;
  background:none;border:none;color:#d8c9a8;font-size:13.5px;letter-spacing:.03em;text-align:left;
  padding:11px 14px;cursor:pointer;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.lore-toggle .chev{color:#8a7a5c;font-size:10px;transition:transform .15s ease;}
.lore-toggle.expanded .chev{transform:rotate(90deg);}
.lore-sub{display:none;padding:0 0 8px;}
.lore-sub.show{display:block;}
.lore-item{display:block;width:calc(100% - 28px);margin:0 0 6px 28px;text-align:left;
  background:rgba(255,255,255,.05);border:1px solid #3a2f1f;color:#cbb98f;font-size:13px;
  padding:7px 10px;border-radius:5px;cursor:pointer;font-family:Georgia,'Iowan Old Style',serif;}
.lore-item:active{background:rgba(255,255,255,.12);}
/* ---- oracle context selects (Character/Encounter/World/Discovery) ---- */
/* sub-headings that group a generator's buttons with the select that feeds them */
.oracle-heading{margin:12px 14px 6px;padding-top:8px;border-top:1px solid #2a2115;color:#8a7a5c;
  font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.oracle-heading:first-child{margin-top:4px;padding-top:0;border-top:none;}
.oracle-select-row{display:block;width:calc(100% - 28px);margin:0 0 8px 28px;}
.oracle-select-row select{display:block;width:100%;margin:0 0 6px;background:#1c1710;
  border:1px solid #3a2f1f;color:#cbb98f;font-size:12.5px;padding:5px 6px;border-radius:4px;
  font-family:Georgia,'Iowan Old Style',serif;}
/* ---- flat single-roll table buttons (Fortune / Ill-Fortune / Revelation): same level as a .lore-group ---- */
.table-btn{display:block;width:100%;text-align:left;background:none;border:none;
  border-bottom:1px solid #2a2115;color:#d8c9a8;font-size:13.5px;letter-spacing:.03em;
  padding:11px 14px;cursor:pointer;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.table-btn:active{background:rgba(255,255,255,.08);}
#loreToast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.92);z-index:40;
  background:linear-gradient(#2a2015,#1c150d);border:1px solid #6b5a3a;border-radius:10px;
  padding:22px 28px;max-width:80vw;width:320px;text-align:center;color:#f0e6cc;
  font-family:Georgia,'Iowan Old Style',serif;box-shadow:0 10px 40px rgba(0,0,0,.6);
  opacity:0;pointer-events:none;transition:opacity .35s ease, transform .35s ease;}
#loreToast.show{opacity:1;transform:translate(-50%,-50%) scale(1);}
#loreToast .cat{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#a68b55;margin-bottom:10px;}
#loreToast .txt{font-size:19px;line-height:1.4;}

/* ---- recent rolls (shown at the top of both tables panels) ---- */
.recent-rolls{padding:10px 14px 4px;border-bottom:1px solid #2a2115;}
.recent-rolls .rr-header{display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;user-select:none;margin-bottom:8px;}
.recent-rolls.collapsed .rr-header{margin-bottom:0;}
.recent-rolls .rr-title{color:#8a7a5c;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.recent-rolls .rr-header .chev{color:#8a7a5c;font-size:10px;}
.recent-rolls .rr-body{padding-bottom:2px;}
.recent-rolls .rr-empty{color:#5c5138;font-size:12px;font-style:italic;
  font-family:Georgia,'Iowan Old Style',serif;padding-bottom:6px;}
.recent-rolls .rr-item{font-size:12px;color:#cbb98f;line-height:1.45;margin-bottom:7px;
  font-family:Georgia,'Iowan Old Style',serif;}
.recent-rolls .rr-item .rr-cat{color:#a68b55;font-size:10.5px;letter-spacing:.03em;display:block;}

/* ---- reference books modal ---- */
.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:rgba(0,0,0,.6);display:none;
  align-items:center;justify-content:center;padding:20px;touch-action:auto;}
.modal-overlay.show{display:flex;}
.modal-box{position:relative;background:linear-gradient(#201a12,#140f0a);border:1px solid #6b5a3a;
  border-radius:10px;padding:20px 22px;max-width:440px;width:100%;max-height:80vh;overflow-y:auto;
  color:#e8dcc0;font-family:Georgia,'Iowan Old Style',serif;touch-action:auto;}
.modal-box-wide{max-width:640px;}
.modal-box h2{font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:16px;
  color:#d8c9a8;letter-spacing:.03em;margin-bottom:4px;}
.modal-box .modal-sub{font-size:12px;color:#8a7a5c;margin-bottom:14px;line-height:1.5;}
.modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#a08a5c;
  font-size:20px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;}
.book-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid #2a2115;}
.book-row.pending{background:rgba(166,139,85,.14);border-radius:6px;}
.book-dot{width:9px;height:9px;border-radius:50%;background:#6bbf6b;flex:0 0 auto;}
.book-dot.off{background:#5a4d3c;}
.book-name{flex:1 1 auto;font-size:13.5px;}
.book-load{flex:0 0 auto;font-size:11.5px;letter-spacing:.03em;color:#d8c9a8;
  background:rgba(255,255,255,.04);border:1px solid #4a3d2b;border-radius:5px;padding:5px 10px;
  cursor:pointer;}
.book-load:hover{background:rgba(255,255,255,.08);}
.book-load input{display:none;}

/* ---- backups modal ---- */
.backup-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid #2a2115;}
.backup-meta{flex:1 1 auto;font-size:12.5px;}
.backup-meta .backup-ts{display:block;font-size:13.5px;}
.backup-meta .backup-reason{display:block;font-size:10.5px;color:#8a7a5c;letter-spacing:.03em;}
.backup-restore{flex:0 0 auto;font-size:11.5px;letter-spacing:.03em;color:#d8c9a8;
  background:rgba(255,255,255,.04);border:1px solid #4a3d2b;border-radius:5px;padding:5px 10px;
  cursor:pointer;}
.backup-restore:hover{background:rgba(255,255,255,.08);}
.backups-empty{font-size:12.5px;color:#8a7a5c;padding:8px 4px;}

/* ---- export reminder banner ---- */
.export-reminder{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;
  background:rgba(20,16,10,.96);border:1px solid #4a3d2b;color:#d8c9a8;border-radius:8px;
  padding:8px 10px;display:flex;align-items:center;gap:10px;max-width:90vw;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:12.5px;
  box-shadow:0 6px 20px rgba(0,0,0,.4);}
.export-reminder button{background:none;border:1px solid #4a3d2b;color:#d8c9a8;border-radius:5px;
  padding:4px 8px;font-size:12px;cursor:pointer;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;}
.export-reminder button:hover{background:rgba(255,255,255,.06);}

/* ---- landmark tooltip: inline keyed-location text (js/tooltips.js cfg.landmarks.desc) ---- */
.tip-desc{white-space:normal;max-width:260px;margin-top:5px;font-size:12px;line-height:1.4;
  color:#d8c9a8;text-align:left;}

/* ---- landmark tooltip: page-link pills ---- */
.tip-links{margin-top:5px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;}
.tip-link{pointer-events:auto;background:rgba(255,255,255,.08);border:1px solid #6b5735;
  color:#f0e2c4;font-size:11px;letter-spacing:.02em;padding:3px 8px;border-radius:4px;
  cursor:pointer;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;white-space:nowrap;}
.tip-link:active{background:rgba(255,255,255,.18);}

/* ---- landmark tooltip name row (name + optional die-icon badge) ---- */
.tip-name{display:inline-flex;align-items:center;gap:6px;}
/* die-icon badge: a landmark whose page has its own area-specific roll table (js/tooltips.js) */
.tip-table{pointer-events:auto;background:none;border:1px solid #a68b55;color:#e0b865;
  width:20px;height:20px;border-radius:50%;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;}
.tip-table:active{background:rgba(224,184,101,.18);}
.tip-table .ii{width:12px;height:12px;}

/* ---- pdf page viewer ----
   Floating window, dragged by the title bar, resized by CSS `resize`; position/size persist (torMaps_pdfWindow_v1).
   #pdfCanvasWrap stacks every page for continuous scrolling, rendered lazily near the scroll position (js/pdf-viewer.js). */
#pdfViewer{position:fixed;left:0;top:0;width:600px;height:500px;
  min-width:320px;min-height:260px;max-width:97vw;max-height:95vh;
  z-index:55;background:#14100a;display:none;flex-direction:column;touch-action:auto;
  border:1px solid #4a3d2b;border-radius:8px;box-shadow:0 14px 44px rgba(0,0,0,.6);
  resize:both;overflow:hidden;}
#pdfViewer.show{display:flex;}
#pdfViewer.dragging{opacity:.94;box-shadow:0 18px 54px rgba(0,0,0,.7);}
#pdfViewerBar{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:10px 14px;
  background:rgba(14,11,8,.96);border-bottom:1px solid #3a2f1f;color:#d8c9a8;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:13px;cursor:grab;}
#pdfViewerBar:active{cursor:grabbing;}
#pdfViewerTitle{flex:1 1 auto;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#pdfViewerBar button{background:none;border:1px solid #4a3d2b;color:#d8c9a8;border-radius:5px;
  padding:5px 10px;font-size:12.5px;cursor:pointer;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;}
#pdfViewerBar button:hover{background:rgba(255,255,255,.06);}
#pdfPageLabel{font-size:12px;color:#a08a5c;white-space:nowrap;flex:0 0 auto;}
#pdfJump{width:56px;background:rgba(255,255,255,.05);border:1px solid #4a3d2b;color:#d8c9a8;
  border-radius:5px;padding:5px 6px;font-size:12.5px;flex:0 0 auto;}
#pdfZoomReset{min-width:46px;}
#pdfCanvasWrap{position:relative;flex:1 1 auto;overflow:auto;display:flex;flex-direction:column;
  align-items:center;gap:14px;padding:16px;touch-action:pan-x pan-y;cursor:grab;} /* pinch is ours (js/pdf-viewer.js) */
#pdfCanvasWrap.grabbing{cursor:grabbing;}
.pdf-page{position:relative;flex:0 0 auto;background:#fff;box-shadow:0 6px 24px rgba(0,0,0,.5);}
.pdf-page canvas{display:block;width:100%;height:100%;}
.pdf-page.loading:before{content:'Loading\2026';position:absolute;top:0;right:0;bottom:0;left:0;display:flex;
  align-items:center;justify-content:center;color:#8a7a5c;background:#f4f1ea;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:12px;}
#pdfStatus{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#d8c9a8;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:13px;pointer-events:none;}

/* ---- pdf search: find bar + on-page highlight boxes ---- */
#pdfSearchBar{display:none;align-items:center;gap:8px;padding:8px 14px;
  background:rgba(20,16,11,.96);border-bottom:1px solid #3a2f1f;color:#d8c9a8;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:13px;}
#pdfSearchBar.show{display:flex;}
#pdfSearchInput{flex:1 1 auto;min-width:0;background:rgba(255,255,255,.05);border:1px solid #4a3d2b;
  color:#d8c9a8;border-radius:5px;padding:6px 8px;font-size:13px;}
#pdfSearchCount{font-size:12px;color:#a08a5c;white-space:nowrap;flex:0 0 auto;}
#pdfSearchBar button{background:none;border:1px solid #4a3d2b;color:#d8c9a8;border-radius:5px;
  padding:5px 9px;font-size:12.5px;cursor:pointer;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;}
#pdfSearchBar button:hover{background:rgba(255,255,255,.06);}
/* Contents: the PDF's own bookmarks (js/pdf-viewer.js), a panel over the left of the pages */
#pdfToc{position:absolute;left:0;bottom:0;top:48px;width:min(340px,86%);z-index:3;display:none;flex-direction:column;
  background:#16120c;border-right:1px solid #4a3d2b;box-shadow:8px 0 28px rgba(0,0,0,.55);color:#d8c9a8;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#pdfToc.show{display:flex;}
#pdfTocHead{flex:0 0 auto;padding:10px 14px 8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#a08a5c;
  border-bottom:1px solid #3a2f1f;}
#pdfTocList{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 0 24px;touch-action:pan-y;}
.toc-row{display:flex;align-items:stretch;}
.toc-tw{flex:0 0 30px;background:none;border:0;color:#a08a5c;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;}
.toc-tw .icon{width:14px;height:14px;transition:transform .12s ease;}
.toc-item.open>.toc-row .toc-tw .icon{transform:rotate(90deg);}
.toc-tw.none{visibility:hidden;}
.toc-go{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:8px;background:none;border:0;color:inherit;cursor:pointer;
  text-align:left;padding:8px 12px 8px 0;font:inherit;font-size:14px;line-height:1.3;}
.toc-go:hover{background:rgba(255,255,255,.04);}
.toc-go .toc-t{flex:1 1 auto;min-width:0;}
.toc-go .toc-p{flex:0 0 auto;font-size:12px;color:#8a7a5c;font-variant-numeric:tabular-nums;}
.toc-kids{display:none;padding-left:14px;}
.toc-item.open>.toc-kids{display:block;}
.toc-item.cur>.toc-row .toc-go{color:#f0d79a;}
.toc-item.cur>.toc-row{background:rgba(240,215,154,.08);box-shadow:inset 3px 0 0 #c9a75a;}
#pdfViewerBar #pdfTocBtn[aria-expanded="true"]{background:rgba(240,215,154,.12);border-color:#8a7240;}
.pdf-hl{position:absolute;background:rgba(255,225,80,.35);border-radius:2px;pointer-events:none;}
.pdf-hl.active{background:rgba(255,140,0,.55);outline:2px solid rgba(255,140,0,.9);}

/* ---- Adversaries picker ---- same look as the drawers' .lore-* groups, but adv-* classes because combat.js builds
   and wires this markup itself (not tables.js). */
#adversariesList{max-height:50vh;overflow-y:auto;}
.adv-cat{border-bottom:1px solid #2a2115;}
.adv-cat-toggle{display:flex;align-items:center;gap:10px;width:100%;
  background:none;border:none;color:#d8c9a8;font-size:13.5px;letter-spacing:.03em;text-align:left;
  padding:8px 14px;cursor:pointer;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.adv-cat-label{flex:1 1 auto;}
.adv-cat-photo{flex:0 0 auto;width:30px;height:30px;border-radius:50%;object-fit:cover;
  box-shadow:0 0 0 1px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.5);}
.adv-cat-icon{flex:0 0 auto;width:22px;height:22px;color:#8a7a5c;}
.adv-cat-toggle .chev{flex:0 0 auto;color:#8a7a5c;font-size:10px;transition:transform .15s ease;}
.adv-cat-toggle.expanded .chev{transform:rotate(90deg);}
.adv-cat-list{display:none;padding:0 0 8px;}
.adv-cat-list.show{display:block;}
.adv-leaf{display:flex;flex-direction:column;gap:2px;width:calc(100% - 40px);margin:0 0 6px 40px;text-align:left;
  background:rgba(255,255,255,.05);border:1px solid #3a2f1f;color:#cbb98f;font-size:13px;
  padding:7px 10px;border-radius:5px;cursor:pointer;font-family:Georgia,'Iowan Old Style',serif;}
.adv-leaf:active{background:rgba(255,255,255,.12);}
.adv-leaf-name{color:#e8dcc0;}
.adv-leaf-meta{font-size:10.5px;color:#8a7a5c;letter-spacing:.02em;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.adv-leaf-book{font-style:italic;}

/* ---- combat tracker windows ----
   Each combatant = three independent position:fixed elements: the .cw badge (pinned to the map), the .cwp detail
   window and the optional .cwf Fell Abilities window — dragging a window never drags the badge. */
#combatLayer{position:fixed;left:0;top:0;width:0;height:0;z-index:35;pointer-events:none;}
#combatLayer.off{display:none;}
.cw{position:fixed;pointer-events:auto;width:40px;height:40px;
  font-family:Georgia,'Iowan Old Style',serif;color:#e8dcc0;touch-action:none;}
.cw.dragging{opacity:.92;}
.cw .cw-mini{display:flex;}
/* ring of light on a badge whose detail window is showing */
.cw.open .cw-mini{box-shadow:0 0 0 2px rgba(224,184,101,.8),0 3px 10px rgba(0,0,0,.5);}

/* ---- detail window: its own element, independent of the badge ---- */
.cwp{display:none;position:fixed;pointer-events:auto;width:220px;z-index:10;
  background:linear-gradient(#201a12,#140f0a);border:1px solid #6b5a3a;border-radius:8px;
  box-shadow:0 6px 18px rgba(0,0,0,.5);font-family:Georgia,'Iowan Old Style',serif;color:#e8dcc0;
  touch-action:none;cursor:grab;}
.cwp.show{display:block;}
.cwp:active{cursor:grabbing;}
.cwp.dragging{opacity:.92;box-shadow:0 10px 28px rgba(0,0,0,.65);}
.cwp input,.cwp button{cursor:auto;}
.cwp button{cursor:pointer;}

/* ---- Fell Abilities window: floating, draggable, scrollable reference ---- */
.cwf{display:none;position:fixed;pointer-events:auto;width:270px;max-width:calc(100vw - 16px);z-index:11;
  flex-direction:column;max-height:min(60vh,380px);
  background:linear-gradient(#201a12,#140f0a);border:1px solid #6b5a3a;border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.55);font-family:Georgia,'Iowan Old Style',serif;color:#e8dcc0;
  touch-action:none;}
.cwf.show{display:flex;}
.cwf.dragging{opacity:.92;box-shadow:0 12px 30px rgba(0,0,0,.65);}
.cwf-bar{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:8px 8px 6px;cursor:grab;
  border-bottom:1px solid #3a2f1f;}
.cwf-bar:active{cursor:grabbing;}
.cwf-title{flex:1 1 auto;min-width:0;font-size:12.5px;color:#f0e2c4;letter-spacing:.02em;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cwf-bar button{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:1px solid #4a3d2b;
  background:rgba(255,255,255,.04);color:#d8c9a8;font-size:14px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;}
.cwf-bar button:hover{background:rgba(255,255,255,.1);}
/* the body is its own scroll container, so it gets its own touch-action */
.cwf-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;touch-action:pan-y;padding:12px 14px;}
.cw-info.on{background:#5a4a2e;color:#f0e2c4;border-color:#a68b55;}

.cw-header{display:flex;align-items:center;gap:6px;padding:8px 8px 6px;}
.cw-grip{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:18px;height:18px;
  color:#8a7a5c;cursor:grab;touch-action:none;}
.cw-grip svg{width:16px;height:16px;}
.cw-grip:active{cursor:grabbing;color:#cbb98f;}
.cw-name{flex:1 1 auto;min-width:0;background:none;border:none;border-bottom:1px dashed #4a3d2b;
  color:#f0e2c4;font-size:13px;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  padding:2px 0;letter-spacing:.02em;}
.cw-name:focus{outline:none;border-bottom-color:#a68b55;}
.cw-header button{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1px solid #4a3d2b;
  background:rgba(255,255,255,.04);color:#d8c9a8;font-size:12px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;}
.cw-header button:hover{background:rgba(255,255,255,.1);}
.cw-info{font-family:Georgia,serif;font-style:italic;}
.cw-subtype{padding:0 10px 6px;font-size:10.5px;color:#8a7a5c;letter-spacing:.03em;}
.cw-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 8px;padding:0 10px 10px;}
.cw-stat{display:flex;flex-direction:column;gap:3px;}
.cw-stat label{font-size:9.5px;color:#8a7a5c;letter-spacing:.06em;text-transform:uppercase;}
.cw-counter{display:flex;align-items:center;gap:4px;}
.cw-counter button{width:18px;height:18px;border-radius:4px;border:1px solid #4a3d2b;
  background:rgba(255,255,255,.04);color:#d8c9a8;font-size:11px;line-height:1;cursor:pointer;padding:0;}
.cw-counter button:hover{background:rgba(255,255,255,.1);}
.cw-val{min-width:22px;text-align:center;font-size:14px;color:#f0e2c4;}
.cw-max{font-size:10px;color:#6d6046;}
.cw-num{width:100%;background:rgba(255,255,255,.05);border:1px solid #4a3d2b;color:#d8c9a8;
  border-radius:5px;padding:3px 5px;font-size:12.5px;font-family:Georgia,'Iowan Old Style',serif;}
.cw-num:focus{outline:none;border-color:#a68b55;}

/* ---- Distinctive Features + Fell Abilities content (shown in .cwf-body) ---- */
.cw-info-sec{margin-bottom:10px;}
.cw-info-sec:last-child{margin-bottom:0;}
.cw-info-sec h4{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#a68b55;margin-bottom:5px;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.cw-df{font-size:12.5px;color:#e8dcc0;}
.cw-fell{font-size:12px;color:#cbb98f;line-height:1.4;margin-bottom:6px;}
.cw-fell:last-child{margin-bottom:0;}
.cw-fell-name{color:#f0e2c4;font-style:italic;}
.cw-fell-empty{font-size:12px;color:#6d6046;font-style:italic;}

/* ---- minimized badge: thin ring drains as Endurance drops. --cw-ring is set by JS on the outer .cw and must be
   INHERITED here — redeclaring it on .cw-mini would shadow it and the ring would never move. ---- */
.cw-mini{width:40px;height:40px;border-radius:50%;cursor:grab;
  align-items:center;justify-content:center;position:relative;
  background:radial-gradient(circle,#201a12 60%,transparent 61%),
    conic-gradient(#b23a3a var(--cw-ring,360deg),#3a2f1f 0deg);
  box-shadow:0 3px 10px rgba(0,0,0,.5);}
.cw-mini:active{cursor:grabbing;}
.cw.cw-down .cw-mini{background:radial-gradient(circle,#201a12 60%,transparent 61%),
    conic-gradient(#5a1414 var(--cw-ring,360deg),#3a2f1f 0deg);}
.cw-badge-icon{width:20px;height:20px;color:#e8dcc0;pointer-events:none;}
/* Token art sits inside the dark disc (radial-gradient circle = 34px on a 40px box, leaving a ~3px ring); 32px
   leaves a hairline bezel. */
.cw-badge-photo{width:32px;height:32px;border-radius:50%;object-fit:cover;
  pointer-events:none;user-select:none;-webkit-user-select:none;}
.cw.cw-down .cw-badge-photo{filter:grayscale(1) brightness(.55);}
.cw-badge-endurance{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;
  border-radius:9px;background:#1a1510;border:1px solid #5a4a30;color:#e8dcc0;
  font-size:9.5px;font-weight:bold;line-height:14px;text-align:center;pointer-events:none;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;box-shadow:0 1px 3px rgba(0,0,0,.6);}
.cw-mini-name{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:5px;
  font-size:10.5px;color:#e8dcc0;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.7);
  letter-spacing:.01em;max-width:140px;overflow:hidden;text-overflow:ellipsis;}

/* ---- undo toast, safe areas, focus, motion ---- */
.undo-toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:80;
  transform:translate(-50%,16px);opacity:0;pointer-events:none;
  display:flex;align-items:center;gap:14px;padding:10px 12px 10px 16px;border-radius:10px;
  background:rgba(28,23,18,.96);border:1px solid #6b5735;color:#f0e2c4;
  box-shadow:0 10px 30px rgba(0,0,0,.55);font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  font-size:14px;transition:opacity .18s ease,transform .18s ease;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.undo-toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto;}
.undo-toast .ut-act{background:none;border:0;color:#e0b865;font:inherit;font-weight:600;
  letter-spacing:.03em;cursor:pointer;padding:4px 6px;border-radius:6px;}
.undo-toast .ut-act:hover{background:rgba(255,255,255,.06);}

/* notch / Dynamic Island / home indicator: page uses viewport-fit=cover, so keep chrome out of unsafe areas */
#topbar{padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));}
#journalPanel{padding-bottom:env(safe-area-inset-bottom,0px);}
#lorePanel{padding-left:env(safe-area-inset-left,0px);}
#lorePanelRight{padding-right:env(safe-area-inset-right,0px);}
#loreTab{left:0;}
#loreTabRight{right:0;}

/* visible keyboard focus (mouse/touch focus stays invisible) */
button:focus-visible,select:focus-visible,input:focus-visible,.tip-link:focus-visible{
  outline:2px solid #c9a961;outline-offset:2px;}

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

/* ---- combat polish ---- */
.cw-mini{touch-action:none;-webkit-touch-callout:none;}
.cw-grip{touch-action:none;}
.cw-counter button{touch-action:manipulation;-webkit-user-select:none;user-select:none;}
.cw-val{cursor:text;border-radius:3px;}
.cw-val:hover{background:rgba(255,255,255,.07);}
.cw-val-edit{width:44px;background:#0f0c08;border:1px solid #a68b55;border-radius:3px;
  color:#f0e2c4;font:inherit;font-size:14px;text-align:center;padding:0 2px;}
.adv-search{display:block;width:100%;box-sizing:border-box;margin:4px 0 8px;padding:9px 12px;
  background:rgba(255,255,255,.06);border:1px solid #3a2f1f;border-radius:8px;color:#e8dcc0;
  font:15px 'Iowan Old Style','Palatino Linotype',Georgia,serif;-webkit-appearance:none;appearance:none;}
.adv-search::placeholder{color:#7a6b50;}
.adv-search:focus{outline:none;border-color:#a68b55;background:rgba(255,255,255,.09);}
.adv-cat[hidden],.adv-leaf[hidden],.adv-empty[hidden]{display:none;}
#adversariesList.searching .adv-cat-list{display:block;}
#adversariesList.searching .adv-cat-toggle .chev{visibility:hidden;}
.adv-empty{padding:18px 14px;color:#8a7a5c;font-style:italic;text-align:center;}
.adv-count{margin-left:8px;padding:0 6px;border-radius:9px;background:#5a1f1f;color:#f0d8c0;
  font-size:10.5px;font-weight:600;vertical-align:1px;}
.adv-leaf.spawned{animation:adv-spawned .5s ease-out;}
@keyframes adv-spawned{0%{background:rgba(224,184,101,.35);border-color:#e0b865;}100%{}}

/* ---- PC/NPC combatants, conditions, initiative strip ---- */

/* Wound/Weary toggles — sit right under the subtype line, above the stat grid. */
.cw-conditions{display:flex;gap:6px;padding:0 10px 8px;}
.cw-cond{flex:1 1 auto;padding:4px 0;border-radius:5px;border:1px solid #4a3d2b;
  background:rgba(255,255,255,.03);color:#8a7a5c;font-size:10.5px;letter-spacing:.02em;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;cursor:pointer;}
.cw-cond:active{background:rgba(255,255,255,.08);}
.cw-cond[data-cond="wound"].active{background:#5a1f1f;border-color:#a33;color:#f0c9c9;}
.cw-cond[data-cond="weary"].active{background:#4a3f1a;border-color:#a38a2e;color:#f0e2b8;}

/* corner dots on the minimized badge: Wounded/Weary at a glance */
.cw-dot{display:none;position:absolute;width:9px;height:9px;border-radius:50%;
  box-shadow:0 0 0 2px #140f0a;pointer-events:none;}
.cw-mini.has-wound .cw-dot-wound{display:block;top:-1px;left:-1px;background:#c0392b;}
.cw-mini.has-weary .cw-dot-weary{display:block;top:-1px;right:-1px;background:#c9a227;}

/* current turn: steady amber outline plus a one-shot pulse when the turn arrives */
.cwp.active-turn,.cw.active-turn .cw-mini{box-shadow:0 0 0 2px #e0b865,0 6px 18px rgba(0,0,0,.5);}
.cwp.turn-flash,.cw.turn-flash .cw-mini{animation:cw-turn-pulse .9s ease-out;}
@keyframes cw-turn-pulse{
  0%{box-shadow:0 0 0 2px #e0b865,0 0 22px 6px rgba(224,184,101,.9);}
  100%{box-shadow:0 0 0 2px #e0b865,0 6px 18px rgba(0,0,0,.5);}
}

/* ---- initiative strip ---- */
#initiativeStrip{position:fixed;top:48px;left:0;right:0;z-index:18;display:none;align-items:center;
  gap:8px;padding:6px 8px;background:rgba(14,11,8,.96);border-bottom:1px solid #3a2f1f;
  padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));}
#initiativeStrip.show{display:flex;}
#initAddBtn,#initResetBtn,#initNextBtn{flex:0 0 auto;border:1px solid #4a3d2b;background:rgba(255,255,255,.04);
  color:#d8c9a8;border-radius:6px;cursor:pointer;font-size:13px;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  display:flex;align-items:center;gap:5px;padding:0 10px;height:30px;}
#initAddBtn{width:30px;padding:0;justify-content:center;font-size:17px;}
#initAddBtn:active,#initResetBtn:active,#initNextBtn:active{background:#2b2318;}
#initNextBtn{border-color:#a68b55;background:#5a4a2e;color:#f0e2c4;font-weight:600;}
#initResetBtn .icon{width:14px;height:14px;}
#initNextBtn .icon{width:13px;height:13px;}
#initRound{flex:0 0 auto;color:#a68b55;font-size:12.5px;letter-spacing:.03em;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;white-space:nowrap;}
#initChips{flex:1 1 auto;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;min-width:0;}
#initChips::-webkit-scrollbar{display:none;}
.init-chip{flex:0 0 auto;display:flex;align-items:center;gap:5px;padding:3px 8px 3px 3px;
  border-radius:16px;border:1px solid #3a2f1f;background:rgba(255,255,255,.03);color:#cbb98f;
  font-size:11.5px;cursor:pointer;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.init-chip.active{border-color:#e0b865;background:rgba(224,184,101,.14);color:#f0e2c4;}
.init-chip.cw-down{opacity:.55;}
.init-chip-photo,.init-chip-icon{width:20px;height:20px;border-radius:50%;flex:0 0 auto;}
.init-chip-photo{object-fit:cover;}
.init-chip-icon{color:#8a7a5c;padding:2px;box-sizing:border-box;}
.init-chip-name{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.init-chip-end{color:#8a7a5c;font-size:10.5px;}
.init-chip-x{margin-left:2px;color:#6d6046;font-size:13px;line-height:1;padding:0 2px;}
.init-chip-x:hover{color:#e8dcc0;}

/* ======================================================================
   Tale of Years: year strip, bottom panel of that year's events, faction dots on the map, lines in landmark tooltips.
   ====================================================================== */
#taleStrip{position:fixed;top:48px;left:0;right:0;z-index:18;display:none;align-items:center;gap:8px;
  padding:6px 8px;background:rgba(14,11,8,.96);border-bottom:1px solid #3a2f1f;
  padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));}
#taleStrip.show{display:flex;}
#initiativeStrip.show + #taleStrip{top:91px;} /* sit under the combat strip when both are showing */
#taleDec,#taleYear,#taleInc{flex:0 0 auto;border:1px solid #4a3d2b;background:rgba(255,255,255,.04);color:#d8c9a8;
  border-radius:6px;cursor:pointer;font-size:13px;height:30px;display:flex;align-items:center;gap:5px;padding:0 10px;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
#taleDec{width:30px;padding:0;justify-content:center;}
#taleDec .icon,#taleInc .icon{width:14px;height:14px;}
#taleYear{border-color:transparent;background:none;color:#f0e2c4;font-size:14px;letter-spacing:.03em;padding:0 4px;}
#taleInc{border-color:#a68b55;background:#5a4a2e;color:#f0e2c4;font-weight:600;}
#taleDec:active,#taleInc:active{background:#2b2318;}
#taleCount{flex:1 1 auto;min-width:0;color:#a68b55;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.tale-year-input{width:64px;background:#0f0c08;border:1px solid #a68b55;border-radius:4px;color:#f0e2c4;
  font:14px 'Iowan Old Style','Palatino Linotype',Georgia,serif;padding:2px 4px;text-align:center;}

#talePanel{position:fixed;left:0;right:0;bottom:var(--journal-h,0px);z-index:24;display:none;flex-direction:column;
  max-height:46vh;background:rgba(18,14,10,.97);border-top:1px solid #3a2f1f;padding:0 10px 8px;overflow:hidden;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;color:#d8c9a8;}
#talePanel.show{display:flex;}
#taleGrab{flex:0 0 auto;padding:8px 0 6px;cursor:pointer;}
#taleGrab .grab{display:block;width:36px;height:4px;border-radius:2px;background:#3a2f1f;margin:0 auto;}
#taleSummary{flex:0 0 auto;font-size:12.5px;color:#8a7a5c;line-height:1.4;margin-bottom:6px;cursor:pointer;min-height:1.4em;}
#talePanel:not(.open) #taleSummary::after{content:' \25B4';color:#a68b55;}
#talePanel.open #taleSummary::after{content:' \25BE';color:#a68b55;}
#taleChips,#taleCards,#taleFoot,#taleNote{display:none;}
#talePanel.open #taleChips{display:flex;gap:6px;overflow-x:auto;margin-bottom:8px;flex:0 0 auto;scrollbar-width:none;}
#talePanel.open #taleChips::-webkit-scrollbar{display:none;}
#talePanel.open #taleCards{display:flex;flex-direction:column;gap:8px;flex:1 1 auto;min-height:0;overflow-y:auto;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;padding-bottom:4px;}
#talePanel.open #taleFoot{display:flex;justify-content:flex-end;margin-top:6px;flex:0 0 auto;}
#talePanel.open #taleNote{flex:0 0 auto;font-size:11.5px;color:#8a7a5c;font-style:italic;margin-top:6px;}
#taleAdjust{background:none;border:1px solid #3a2f1f;color:#8a7a5c;border-radius:6px;font-size:11px;padding:3px 9px;cursor:pointer;
  font-family:inherit;}
#taleAdjust.on{border-color:#e0b865;color:#f0e2c4;background:rgba(224,184,101,.14);}
.tale-chip{flex:0 0 auto;display:flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid #e0b865;
  background:rgba(224,184,101,.14);border-radius:14px;font-size:11.5px;color:#f0e2c4;cursor:pointer;font-family:inherit;}
.tale-chip.off{border-color:#3a2f1f;background:transparent;color:#8a7a5c;}
.tale-chip.off .tdot{opacity:.4;}
.tdot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 0 1px #0d0b09;}
.tale-card{background:rgba(255,255,255,.04);border:1px solid #3a2f1f;border-radius:8px;padding:9px 10px;cursor:pointer;}
.tale-card.hl{border-color:#e0b865;}
.tc-top{display:flex;align-items:center;gap:6px;margin-bottom:4px;}
.tc-f{font-size:11px;color:#8a7a5c;letter-spacing:.06em;}
.tc-st,.tl-s{margin-left:auto;flex:0 0 auto;font-size:11px;line-height:1.3;padding:2px 8px;border-radius:10px;border:1px solid #4a3d2b;
  color:#cbb98f;background:transparent;font-family:inherit;}
.tc-st{cursor:pointer;}
.tc-st[data-st="1"],.tl-s[data-st="1"]{border-color:#e0b865;color:#e0b865;}
.tc-st[data-st="2"],.tl-s[data-st="2"]{border-color:#e0b865;background:#5a4a2e;color:#f0e2c4;}
.tc-t{font-size:14px;color:#f0e2c4;margin-bottom:2px;}
.tc-b{font-size:12.5px;color:#cbb98f;line-height:1.4;margin-bottom:5px;font-family:Georgia,'Iowan Old Style',serif;}
.tc-meta{display:flex;align-items:center;gap:10px;font-size:11.5px;color:#a68b55;}
.tc-loc{margin-left:auto;color:#8a7a5c;text-align:right;}
.ti-pin::before{content:'\25CF';font-size:8px;margin-right:4px;color:#a68b55;vertical-align:1px;}
.tl-open,.tl-cycle{background:none;border:1px solid #4a3d2b;border-radius:6px;color:#d8c9a8;font-size:11.5px;padding:3px 8px;
  cursor:pointer;font-family:inherit;}
.tl-open:active,.tl-cycle:active{background:rgba(255,255,255,.08);}
.tl-pg{font-size:11px;color:#8a7a5c;align-self:center;}
.tale-empty{font-size:12.5px;color:#8a7a5c;font-style:italic;padding:6px 2px;line-height:1.5;}

/* drawers rise above the panel instead of hiding behind it */
#lorePanel,#lorePanelRight{bottom:calc(var(--journal-h,0px) + var(--tale-h,0px));}

/* dots on the map — drawn in map space but kept a constant screen size */
#taleDots{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;}
#taleDots.off{display:none;}
#taleSvg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;}
/* ---- Regions overlay (js/regions.js): all Tale of Years region outlines, shown on demand
   rather than only the one an event happens to reference (see js/tale-data.js's `regions`). */
#regionsSvg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;}
/* a dark halo under a light line, and light labels on a heavy dark outline, so both read on the tan,
   orange and green parts of the map alike */
#regionsSvg polygon{fill:none;stroke:#fff1cf;stroke-width:3;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
#regionsSvg polygon.halo{stroke:rgba(28,14,4,.8);stroke-width:7;}
#regionsSvg text{font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  font-weight:700;font-size:44px;letter-spacing:1px;fill:#fff1cf;stroke:rgba(28,14,4,.9);stroke-width:10px;
  stroke-linejoin:round;paint-order:stroke;text-anchor:middle;dominant-baseline:middle;pointer-events:none;}
@keyframes region-flash{0%,100%{stroke-width:2.5;filter:none;}50%{stroke-width:8;filter:drop-shadow(0 0 10px #fff1cf);}}
#regionsSvg polygon.flash{animation:region-flash .9s ease-in-out 3;}
#overflowMenu .dot{width:9px;height:9px;border-radius:50%;background:#6bbf6b;margin-left:auto;}
#overflowMenu .dot.off{background:#5a4d3c;}
.tale-at{position:absolute;width:0;height:0;}
.tale-cl{position:absolute;left:44px;top:-8px;display:flex;gap:4px;transform-origin:0 100%;transform:scale(var(--inv,1));}
.td{display:block;width:8px;height:8px;border-radius:50%;box-sizing:border-box;border:2px solid var(--c);background:#0d0b09;
  box-shadow:0 0 0 1.5px rgba(13,11,9,.85);}
.td[data-st="1"],.td[data-st="2"]{background:var(--c);}
.td[data-st="2"]{box-shadow:0 0 0 1.5px #0d0b09,0 0 0 3px #f0e2c4;}
.tf{position:absolute;left:0;top:0;width:24px;height:24px;padding:0;background:none;border:none;pointer-events:auto;
  display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:none;
  transform:translate(-50%,-50%) scale(var(--inv,1));}
.tf .td{width:10px;height:10px;}
.tf.sel .td{box-shadow:0 0 0 1.5px #0d0b09,0 0 0 3.5px #e0b865;}
#taleDots.adjusting .tf{cursor:grab;outline:1px dashed #e0b865;border-radius:50%;}

/* the lines inside a landmark tooltip (and the free-dot tooltip) */
.tale-block{white-space:normal;width:min(252px,calc(100vw - 40px));margin-top:8px;padding-top:7px;border-top:1px solid #3a2f1f;
  text-align:left;}
.tale-head{font-size:10.5px;letter-spacing:.08em;color:#a68b55;margin-bottom:4px;}
.tale-line{margin-bottom:2px;}
.tl-row{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;color:#f0e2c4;padding:4px 0;
  text-align:left;cursor:pointer;font-family:inherit;font-size:13px;pointer-events:auto;}
.tl-t{flex:1 1 auto;min-width:0;line-height:1.25;}
.tl-more{padding:2px 0 6px 14px;}
.tl-f{font-size:10.5px;color:#8a7a5c;letter-spacing:.04em;margin-bottom:3px;}
.tl-b{font-size:12px;color:#cbb98f;line-height:1.4;margin-bottom:5px;font-family:Georgia,'Iowan Old Style',serif;}
.tl-act{display:flex;gap:6px;flex-wrap:wrap;}
#taleTip{position:fixed;z-index:31;pointer-events:none;opacity:0;background:linear-gradient(180deg,#1c1712,#120e0a);color:#f0e2c4;
  border:1px solid #6b5735;border-radius:4px;padding:6px 10px;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;
  font-size:13.5px;box-shadow:0 6px 18px rgba(0,0,0,.5);max-width:calc(100vw - 16px);transition:opacity .12s ease;}
#taleTip.show{opacity:1;pointer-events:auto;}
#taleTip:after{content:'';position:absolute;left:var(--ax,50%);top:100%;transform:translateX(-50%);border:6px solid transparent;
  border-top-color:#120e0a;}
#taleTip.below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#1c1712;}
#taleTip .tale-block{margin-top:0;padding-top:0;border-top:none;}

/* music panel: skip button + now-playing line */
.music-skip-btn{display:flex;align-items:center;gap:8px;background:none;border:none;border-top:1px solid #2a2115;margin-top:4px;
  color:#d8c9a8;font-size:13px;padding:9px 8px 8px;border-radius:0 0 4px 4px;cursor:pointer;text-align:left;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.music-skip-btn:active{background:rgba(255,255,255,.06);}
.music-skip-btn.offline{opacity:.4;cursor:not-allowed;}
#musicNow{display:none;max-width:210px;padding:2px 8px 4px;font-size:11px;line-height:1.35;color:#8a7a5c;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;overflow:hidden;text-overflow:ellipsis;}

/* ---- minimal pins over numerals that are already printed on the art (Tharbad) ---- */
.hot-min::after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%);
  border-radius:50%;box-sizing:border-box;pointer-events:none;
  border:calc(2px * var(--inv,1)) solid rgba(240,226,196,.92);
  box-shadow:0 0 0 calc(1.5px * var(--inv,1)) rgba(13,11,9,.8),inset 0 0 0 calc(1px * var(--inv,1)) rgba(13,11,9,.5);}
#hotspots.off .hot-min::after{display:none;}
.tip-inside{pointer-events:auto;background:rgba(224,184,101,.14);border:1px solid #a68b55;color:#f0e2c4;font-size:11px;
  letter-spacing:.02em;padding:3px 8px;border-radius:4px;cursor:pointer;white-space:nowrap;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.tip-inside:active{background:rgba(224,184,101,.3);}
#taleScope{display:none;background:none;border:1px solid #3a2f1f;color:#8a7a5c;border-radius:6px;font-size:11px;padding:3px 9px;
  cursor:pointer;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;margin-right:auto;}
#taleScope.on{border-color:#e0b865;color:#f0e2c4;background:rgba(224,184,101,.14);}

/* second button under the moods ("Turn music off") sits flush under the skip button */
.music-skip-btn + .music-skip-btn{border-top:none;margin-top:0;border-radius:0 0 4px 4px;}
.music-skip-btn:not(:last-of-type){border-radius:0;}
/* the music dropdown, like Layers, sits clear of the Generators tab */
#musicPanel{right:calc(38px + env(safe-area-inset-right,0px));}

/* ======================================================================
   Eye Awareness strip + Inventory sheet
   ====================================================================== */
#eyeBtn.alarm{border-color:#c0392b;color:#ff9a86;}
#eyeStrip{position:fixed;top:48px;left:0;right:0;z-index:18;display:none;background:rgba(14,11,8,.96);border-bottom:1px solid #3a2f1f;
  padding:6px 8px;padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;color:#d8c9a8;}
#eyeStrip.show{display:block;}
#eyeStrip.revealed{background:rgba(52,17,13,.97);border-bottom-color:#b0392b;}
.eye-main{display:flex;align-items:center;gap:8px;}
.eye-arrow{flex:0 0 auto;width:38px;height:38px;border:1px solid #4a3d2b;background:rgba(255,255,255,.04);color:#d8c9a8;border-radius:6px;
  font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;}
.eye-arrow:active{background:#2b2318;}
.eye-score{flex:0 0 auto;display:flex;align-items:baseline;gap:5px;min-width:70px;justify-content:center;cursor:pointer;}
.eye-num{font-size:30px;line-height:1;color:#f0e2c4;font-weight:600;}
.eye-of{font-size:13px;color:#8a7a5c;}
#eyeStrip.revealed .eye-num{color:#ff9a86;}
.eye-label{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.25;}
.eye-title{font-size:10.5px;letter-spacing:.09em;color:#a68b55;text-transform:uppercase;}
.eye-status{font-size:12.5px;color:#cbb98f;}
#eyeStrip.revealed .eye-status{color:#ffb9a8;}
.eye-more-btn{flex:0 0 auto;width:32px;height:32px;border:1px solid #3a2f1f;background:none;color:#a68b55;border-radius:6px;font-size:16px;cursor:pointer;padding:0;}
.eye-more-btn.on{background:#5a4a2e;color:#f0e2c4;}
.eye-more{display:none;padding-top:8px;}
#eyeStrip.open .eye-more{display:block;max-height:calc(100vh - 210px);overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;}
.eye-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px;}
.eye-row label{flex:1 1 auto;color:#cbb98f;}
.eye-row select{flex:0 1 auto;max-width:190px;background:#15110c;color:#f0e2c4;border:1px solid #4a3d2b;border-radius:6px;padding:5px 6px;font-size:13px;font-family:inherit;}
.eye-thr{color:#a68b55;font-size:12px;white-space:nowrap;}
.eye-mods{display:flex;flex-direction:column;gap:5px;margin:6px 0;}
.eye-mod{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:#cbb98f;line-height:1.35;cursor:pointer;}
.eye-mod input{margin-top:3px;accent-color:#a68b55;}
.eye-sub{margin:10px 0 4px;font-size:10.5px;letter-spacing:.09em;color:#8a7a5c;text-transform:uppercase;border-top:1px solid #2a2115;padding-top:8px;}
.eye-chips{display:flex;flex-wrap:wrap;gap:6px;}
.eye-chip,.eye-btn{background:rgba(255,255,255,.05);border:1px solid #4a3d2b;color:#f0e2c4;border-radius:14px;padding:5px 11px;font-size:12px;cursor:pointer;font-family:inherit;}
.eye-btn{border-radius:6px;}
.eye-chip:active,.eye-btn:active{background:#5a4a2e;}
.eye-step{display:inline-flex;align-items:center;gap:8px;}
.eye-step button{width:30px;height:30px;border:1px solid #4a3d2b;background:rgba(255,255,255,.04);color:#d8c9a8;border-radius:6px;font-size:16px;cursor:pointer;padding:0;}
.eye-step b{min-width:18px;text-align:center;color:#f0e2c4;font-size:15px;}
.eye-reset span b{color:#f0e2c4;}
.eye-rev{flex-wrap:wrap;}
.eye-revtxt{flex:1 1 100%;font-size:12.5px;color:#cbb98f;line-height:1.4;}

.inv-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid #2a2115;
  padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));}
.inv-tabs{flex:1 1 auto;min-width:0;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;touch-action:pan-x;}
.inv-tabs::-webkit-scrollbar{display:none;}
.inv-tab{flex:0 0 auto;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:1px solid #3a2f1f;color:#a08a5c;
  border-radius:14px;padding:5px 12px;font-size:13px;font-family:inherit;cursor:pointer;}
.inv-tab.on{background:#5a4a2e;border-color:#a68b55;color:#f0e2c4;}
.inv-add{padding:5px 11px;font-size:16px;line-height:1;}
.inv-close{flex:0 0 auto;width:32px;height:32px;border:1px solid #4a3d2b;background:none;color:#d8c9a8;border-radius:6px;font-size:18px;cursor:pointer;padding:0;}
.inv-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;padding:8px 10px 24px;
  padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px));}
#gearTre{width:62px;text-align:center;background:#15110c;color:#f0e2c4;border:1px solid #4a3d2b;border-radius:6px;padding:5px 2px;font-size:15px;font-family:inherit;}
#gearSearch{flex:1 1 auto;min-width:0;background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:7px 9px;font-size:14px;font-family:inherit;}
.inv-btn{flex:0 0 auto;background:rgba(255,255,255,.05);border:1px solid #4a3d2b;color:#f0e2c4;border-radius:6px;padding:6px 11px;font-size:13px;font-family:inherit;cursor:pointer;}
.inv-btn:active{background:#5a4a2e;}
.inv-primary{border-color:#a68b55;background:#5a4a2e;}
.inv-danger{color:#e3a99b;border-color:#5a2b26;}
#gearNewName{flex:1 1 auto;min-width:0;background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:7px 9px;font-size:14px;font-family:inherit;}
#gearNewCat{flex:0 0 auto;max-width:112px;background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:6px 4px;font-size:12.5px;font-family:inherit;}
#gearNotes{width:100%;min-height:90px;background:#15110c;color:#d8c9a8;border:1px solid #3a2f1f;border-radius:6px;padding:8px;font-size:14px;line-height:1.45;font-family:inherit;resize:vertical;}
/* keep the expanded Eye details clear of the Tables / Generators edge tabs */
.eye-more{padding-left:30px;padding-right:30px;}
/* Tale dots beside a landmark number: offset partly in map pixels (tracks the numeral when zoomed) and partly in
   screen pixels, so at low zoom the dot sits clear of the number. */
.tale-cl{left:40px;top:-2px;padding:0 0 7px 10px;}
/* side of the number set per landmark (--dx/--dy, tale.js) */
.tale-cl{left:0;top:0;padding:0;transform-origin:0 0;--dx:1;--dy:-1;
  transform:translate(calc(var(--dx) * 40px),calc(var(--dy) * 34px)) scale(var(--inv,1)) translate(calc(-50% + var(--dx) * 9px),calc(-50% + var(--dy) * 9px));}
.eye-fromInv{justify-content:flex-end;}
/* Eye tracker: Core / Moria rules switch */
.eye-rules{display:flex;margin:2px 0 8px;border:1px solid #4a3d2b;border-radius:7px;overflow:hidden;}
.eye-rule{flex:1 1 50%;background:none;border:none;color:#a68b55;font-family:inherit;font-size:12.5px;padding:7px 8px;cursor:pointer;}
.eye-rule+.eye-rule{border-left:1px solid #4a3d2b;}
.eye-rule.on{background:#5a4a2e;color:#f0e2c4;}
.eye-mode-tag{letter-spacing:.04em;color:#cbb98f;}
.eye-note{font-size:12px;color:#8a7a5c;line-height:1.4;margin:-2px 0 6px;}
.eye-subval{color:#f0e2c4;letter-spacing:0;margin-left:4px;}

/* ======================================================================
   Player Character / NPC tokens: hero window + the Player Characters & NPCs panel
   ====================================================================== */
.cwp.hero{width:250px;}
.cwp.hero .cw-info{display:none;}
.cw-heroline{display:flex;align-items:center;gap:8px;padding:0 10px 8px;}
.cw-avatar{flex:0 0 auto;width:34px;height:34px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.05);border:1px solid #4a3d2b;}
.cw-avatar-photo{width:100%;height:100%;object-fit:cover;display:block;}
.cw-avatar-icon{width:20px;height:20px;color:#cbb98f;}
.cw-heroline .cw-herotype{flex:1 1 auto;padding:0;}
.cw-photo-btn{flex:0 0 auto;padding:4px 9px;border-radius:5px;border:1px solid #4a3d2b;background:none;color:#cbb98f;font-size:11px;
  font-family:inherit;cursor:pointer;}
.cw-photo-btn:active{background:rgba(255,255,255,.08);}
.cw-cond[data-cond="miserable"].active{background:#38284a;border-color:#8a6ab0;color:#e3d3f2;}
.cw-mini.has-miserable .cw-dot-miserable{display:block;bottom:-1px;left:-1px;background:#8a6ab0;}
.cwp.hero .cw-max{cursor:pointer;border-bottom:1px dotted #6b5a3a;}

#heroName{width:100%;padding:9px 10px;background:rgba(255,255,255,.06);border:1px solid #4a3d2b;border-radius:8px;color:#f0e2c4;
  font-size:14px;font-family:inherit;}
#heroName::placeholder{color:#7a6b50;}
#heroName:focus{outline:none;border-color:#a68b55;}
#heroKind{display:flex;border:1px solid #3a2f1f;border-radius:8px;overflow:hidden;}
.hero-kind-btn{padding:8px 12px;background:none;border:none;color:#a68b55;font-size:12.5px;font-family:inherit;cursor:pointer;}
.hero-kind-btn.active{background:#5a4a2e;color:#f0e2c4;}
.hero-btn{flex:0 0 auto;background:rgba(255,255,255,.05);border:1px solid #4a3d2b;color:#f0e2c4;border-radius:7px;padding:7px 11px;font-size:12.5px;
  font-family:inherit;cursor:pointer;}
.hero-btn:active{background:#5a4a2e;}
.hero-primary{border-color:#a68b55;background:#5a4a2e;}
.hero-del{color:#e3a99b;border-color:#5a2b26;padding:7px 10px;}
/* inventory glyphs are sprite icons, not Unicode (a Unicode ⚠ rendered as a yellow emoji on phones) */
.ii{width:15px;height:15px;display:block;margin:auto;stroke-width:2;pointer-events:none;flex:0 0 auto;}
.ii.inl{display:inline-block;width:12px;height:12px;margin:0 5px 0 0;vertical-align:-1px;}
.inv-close .ii{width:16px;height:16px;}
.inv-add .ii{width:14px;height:14px;}
.inv-add{display:inline-flex;align-items:center;}

/* ---- Off the map (js/offmap.js) ---- */
.offmap-btn{position:fixed;left:calc(12px + env(safe-area-inset-left, 0px));bottom:calc(var(--journal-h,0px) + var(--tale-h,0px) + 12px);z-index:17;
  display:inline-flex;align-items:baseline;gap:8px;padding:7px 12px;border-radius:999px;cursor:pointer;
  background:rgba(21,17,12,.92);border:1px dashed #8a7248;color:#e6d6b3;font-family:Georgia,'Iowan Old Style',serif;font-size:13.5px;
  box-shadow:0 4px 16px rgba(0,0,0,.45);}
.offmap-btn.on{border-style:solid;background:#3a2f1f;color:#f0e2c4;}
.offmap-btn-n{font-size:12px;color:#a68b55;}
/* nested inside maps: floating 'Back to [parent]' (js/map-extras.js); same look as Off the map */
.inside-back{border-style:solid;}
.inside-back:focus-visible{outline:2px solid #c9a55a;outline-offset:2px;}
.offmap-panel{position:fixed;left:calc(12px + env(safe-area-inset-left, 0px));bottom:calc(var(--journal-h,0px) + var(--tale-h,0px) + 56px);z-index:23;
  width:min(360px, calc(100vw - 24px));max-height:calc(100vh - var(--journal-h,0px) - 130px);display:none;flex-direction:column;
  background:linear-gradient(#211a11,#17120c);border:1px solid #5a4a2e;border-radius:10px;color:#e6d6b3;
  font-family:Georgia,'Iowan Old Style',serif;box-shadow:0 12px 40px rgba(0,0,0,.6);}
.offmap-panel.show{display:flex;}
.offmap-head{display:flex;align-items:flex-start;gap:10px;padding:12px 12px 10px 14px;border-bottom:1px solid #2f2618;}
.offmap-head>div{flex:1 1 auto;}
.offmap-title{font-size:16px;color:#f0e2c4;}
.offmap-close{flex:0 0 auto;width:30px;height:30px;border:1px solid #4a3d2b;background:none;color:#a68b55;border-radius:6px;font-size:18px;line-height:1;cursor:pointer;padding:0;}
.offmap-body{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 0 8px;}
.offmap-group{border-bottom:1px solid #2a2115;}
.offmap-group:last-child{border-bottom:none;}
.offmap-gtoggle{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:#e6d6b3;font-family:inherit;
  font-size:14.5px;text-align:left;padding:10px 14px;cursor:pointer;}
.offmap-gtoggle span:first-child{flex:1 1 auto;}
.offmap-gcount{font-size:12px;color:#8a7a5c;}
.offmap-gtoggle .chev{color:#a68b55;transition:transform .15s ease;}
.offmap-gtoggle.open .chev{transform:rotate(90deg);}
.offmap-items{padding:0 10px 8px;}
.offmap-item{padding:10px 10px 10px 12px;margin:0 0 6px;border-left:2px dashed #5a4a2e;background:rgba(255,255,255,.025);border-radius:0 6px 6px 0;}
.offmap-item.s-heard{border-left-color:#a68b55;}
.offmap-item.s-found{border-left:2px solid #c9a55a;}
.offmap-item.s-reclaimed{border-left:2px solid #7fa36a;}
.offmap-row{display:flex;align-items:flex-start;gap:8px;}
.offmap-name{flex:1 1 auto;font-size:14px;color:#f0e2c4;line-height:1.3;}
.offmap-status{flex:0 0 auto;font-family:inherit;font-size:11.5px;padding:3px 9px;border-radius:999px;cursor:pointer;
  background:none;border:1px dashed #5a4a2e;color:#8a7a5c;}
.offmap-status.s-heard{border-style:solid;border-color:#8a7248;color:#cbb98f;}
.offmap-status.s-found{border-style:solid;border-color:#c9a55a;color:#f0e2c4;background:rgba(201,165,90,.14);}
.offmap-status.s-reclaimed{border-style:solid;border-color:#7fa36a;color:#dbe8cf;background:rgba(127,163,106,.16);}
.offmap-tag{font-size:11.5px;color:#a68b55;margin-top:2px;}
.offmap-hint{font-size:12.5px;color:#b9a883;line-height:1.45;margin-top:4px;}
.offmap-actions{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;}
.offmap-notebtn{background:none;border:none;color:#a68b55;font-family:inherit;font-size:12px;cursor:pointer;padding:3px 2px;text-decoration:underline;text-underline-offset:3px;}
.offmap-note{display:block;width:100%;box-sizing:border-box;margin-top:8px;resize:vertical;min-height:44px;
  background:#15110c;color:#f0e2c4;border:1px solid #4a3d2b;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px;line-height:1.4;}
.offmap-btn:focus-visible,.offmap-gtoggle:focus-visible,.offmap-status:focus-visible,.offmap-close:focus-visible{outline:2px solid #c9a55a;outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.offmap-gtoggle .chev{transition:none;}}

/* ---- Characters compendium (js/characters.js) — same bronze/ink theme as Off the map, mirrored to the right ---- */
.charcomp-panel{position:fixed;right:calc(12px + env(safe-area-inset-right, 0px));bottom:calc(var(--journal-h,0px) + 56px);z-index:23;
  width:min(380px, calc(100vw - 24px));max-height:calc(100vh - var(--journal-h,0px) - 130px);display:none;flex-direction:column;
  background:linear-gradient(#211a11,#17120c);border:1px solid #5a4a2e;border-radius:10px;color:#e6d6b3;
  font-family:Georgia,'Iowan Old Style',serif;box-shadow:0 12px 40px rgba(0,0,0,.6);}
.charcomp-panel.show{display:flex;}
.charcomp-head{display:flex;align-items:flex-start;gap:10px;padding:12px 12px 10px 14px;border-bottom:1px solid #2f2618;}
.charcomp-head>div{flex:1 1 auto;}
.charcomp-title{font-size:16px;color:#f0e2c4;}
.charcomp-close{flex:0 0 auto;width:30px;height:30px;border:1px solid #4a3d2b;background:none;color:#a68b55;border-radius:6px;font-size:18px;line-height:1;cursor:pointer;padding:0;}
.charcomp-filters{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid #2f2618;}
.charcomp-search{width:100%;box-sizing:border-box;background:#15110c;color:#f0e2c4;border:1px solid #4a3d2b;border-radius:6px;
  padding:7px 9px;font-family:inherit;font-size:13px;}
.charcomp-selects{display:flex;gap:6px;}
.charcomp-selects select{flex:1 1 0;min-width:0;background:#15110c;color:#cbb98f;border:1px solid #4a3d2b;border-radius:6px;
  padding:6px 6px;font-family:inherit;font-size:12.5px;}
.charcomp-scope{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;
  background:rgba(201,165,90,.1);border-bottom:1px solid #3a2f1f;font-size:12.5px;color:#e6d6b3;}
.charcomp-clear{flex:0 0 auto;background:none;border:none;color:#a68b55;font-family:inherit;font-size:12px;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;padding:2px;}
.charcomp-body{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:6px 0 8px;}
.charcomp-empty{padding:16px 14px;font-size:13px;color:#8a7a5c;}
.charcomp-row{padding:9px 12px;border-bottom:1px solid #241d13;}
.charcomp-row.hl{background:rgba(201,165,90,.12);}
.charcomp-rowhead{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;background:none;border:none;
  color:inherit;font-family:inherit;text-align:left;padding:0;cursor:pointer;}
.charcomp-name{font-size:14px;color:#f0e2c4;line-height:1.3;}
.charcomp-loc{flex:0 1 auto;min-width:0;overflow-wrap:anywhere;font-size:11.5px;color:#8a7a5c;text-align:right;}
.charcomp-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;}
.charcomp-tag{font-size:10.5px;padding:2px 7px;border-radius:999px;border:1px solid #4a3d2b;color:#a68b55;}
.charcomp-tag.role-ally{border-color:#5a7a4a;color:#9fc98a;}
.charcomp-tag.role-antagonist{border-color:#8a4a3a;color:#e0917d;}
.charcomp-tag.role-wildcard{border-color:#7a5a9a;color:#c6a8e6;}
.charcomp-tag.charcomp-patron{border-color:#c9a55a;color:#f0e2c4;background:rgba(201,165,90,.14);}
.charcomp-tag.charcomp-tag-custom{border-color:#5e8f4a;color:#cfe8c4;background:rgba(110,180,90,.12);}
.charcomp-secret{font-size:12.5px;color:#c98a8a;line-height:1.45;margin-top:6px;font-style:italic;}
.charcomp-actions{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;}
.charcomp-btn:focus-visible,.charcomp-close:focus-visible,.charcomp-clear:focus-visible,.charcomp-rowhead:focus-visible{
  outline:2px solid #c9a55a;outline-offset:2px;}
/* "+ New Character": green homebrew theme, like Custom Tables (user-made, not sourcebook) */
.charcomp-newbtn{display:block;width:100%;box-sizing:border-box;text-align:center;
  background:rgba(110,180,90,.12);border:1px dashed #5e8f4a;color:#cfe8c4;
  font-size:13px;padding:8px 10px;border-radius:6px;cursor:pointer;font-family:inherit;}
.charcomp-newbtn:active{background:rgba(110,180,90,.22);}

/* ---- Custom Tables (js/custom-tables.js): green (homebrew) theme, distinct from the book tables' bronze and Moria's blue ---- */
.lore-group-custom{border-bottom-color:#1f2d18;}
.lore-group-custom>.lore-toggle{color:#cfe8c4;}
.lore-group-custom>.lore-toggle .chev{color:#7fa66b;}
.lore-group-custom .lore-item.ct-roll{background:rgba(110,180,90,.08);border:1px solid #3f6b30;color:#d6ecc9;}
.lore-group-custom .lore-item.ct-roll:active{background:rgba(110,180,90,.18);}
.ct-newbtn{display:block;width:calc(100% - 28px);margin:2px 0 10px 14px;text-align:center;
  background:rgba(110,180,90,.12);border:1px dashed #5c8a47;color:#cfe8c4;
  font-size:13px;padding:8px 10px;border-radius:6px;cursor:pointer;font-family:inherit;}
.ct-newbtn:active{background:rgba(110,180,90,.22);}
.ct-empty{margin:0 14px 8px 14px;font-size:12px;color:#5f7690;line-height:1.5;}
.ct-list{padding:0 14px;}
.ct-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;}
.ct-row .ct-roll{flex:1 1 auto;margin:0;}
.ct-rowbtns{display:flex;gap:4px;flex:0 0 auto;}
.ct-icon{background:none;border:1px solid #2f4f6b;color:#7fa3c4;border-radius:5px;width:28px;height:28px;
  font-size:13px;line-height:1;cursor:pointer;padding:0;}
.ct-icon.ct-confirm{width:auto;padding:0 8px;color:#f0c4c4;border-color:#6b3535;font-size:12px;}
.ct-builder{margin:2px 14px 10px;padding:10px;border:1px solid #2f4f6b;border-radius:8px;background:rgba(20,30,42,.5);}
.ct-brow{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;font-size:12px;color:#8fadc9;}
.ct-brow label{letter-spacing:.02em;}
.ct-brow input[type="text"],.ct-brow select,.ct-brow textarea{background:#0f1a24;color:#e2edf7;border:1px solid #2f4f6b;
  border-radius:5px;padding:6px 8px;font-family:inherit;font-size:13px;}
.ct-brow textarea{resize:vertical;width:100%;box-sizing:border-box;}
.ct-entries{margin-bottom:8px;max-height:260px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.ct-erow{display:flex;align-items:center;gap:6px;margin-bottom:5px;}
.ct-eface{flex:0 0 58px;font-size:11px;color:#7fa66b;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ct-einput{flex:1 1 auto;background:#0f1a24;color:#e2edf7;border:1px solid #2f4f6b;border-radius:5px;
  padding:6px 8px;font-family:inherit;font-size:13px;min-width:0;}
.ct-edel{flex:0 0 auto;background:none;border:1px solid #2f4f6b;color:#7fa3c4;border-radius:5px;
  width:26px;height:26px;font-size:14px;line-height:1;cursor:pointer;padding:0;}
.ct-edel:disabled{opacity:.35;cursor:default;}
select.ct-eto{flex:0 0 76px;width:76px;background:#0f1a24;color:#7fa66b;border:1px solid #2f4f6b;border-radius:5px;padding:4px 2px;font:inherit;font-size:12px;text-align:left;cursor:pointer;}
.ct-addrow{display:block;width:100%;margin-bottom:8px;background:none;border:1px dashed #2f4f6b;
  color:#8fadc9;font-size:12px;padding:6px;border-radius:5px;cursor:pointer;font-family:inherit;}
.ct-err{font-size:12px;color:#f0a0a0;margin-bottom:8px;}
.ct-actions{flex-direction:row;gap:8px;}
.ct-btn{font-family:inherit;font-size:13px;padding:7px 12px;border-radius:6px;cursor:pointer;
  background:none;border:1px solid #2f4f6b;color:#cfe8c4;}
.ct-btn.ct-primary{background:#2f6091;border-color:#3f7ab0;color:#f0f6fc;}
.ct-btn.ct-primary:active{background:#3a75ad;}
.ct-btn:active{background:rgba(110,180,90,.15);}

/* ---- drawer tidy: section headings, map-aware tables, compact Fortune row,
   quieter generator options, recent-rolls peek. Logic in js/drawer-tidy.js / js/tables.js ---- */
.lore-section-heading{margin:14px 14px 2px;color:#8a7a5c;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.recent-rolls+.lore-section-heading{margin-top:12px;}
/* map-aware filter: strider tables everywhere but Moria, Moria tables only on Moria */
#lorePanel:not(.show-all)[data-ruleset="strider"] [data-set="moria"],
#lorePanel:not(.show-all)[data-ruleset="moria"] [data-set="strider"]{display:none;}
.set-suffix{display:none;}
#lorePanel.show-all .lore-toggle .set-suffix{display:inline;color:#8a7a5c;margin:0 auto 0 5px;}
/* Moria Solo: no heading, just a little breathing room above it */
.lore-group-solo{margin-top:6px;border-top:1px solid #2a2115;}
/* compact Fortune row: three small buttons side by side instead of three full-width rows */
.fortune-set{padding:6px 14px 10px;}
.fortune-set .set-label{display:none;color:#8a7a5c;font-size:10px;letter-spacing:.08em;margin:0 0 5px;}
#lorePanel.show-all .fortune-set .set-label{display:block;}
#lorePanel.show-all .fortune-set[data-set="strider"]{padding-bottom:4px;}
.fortune-row{display:flex;gap:5px;}
.fortune-row .table-btn{flex:1 1 0;min-width:0;width:auto;text-align:center;border:1px solid #3a2f1f;
  border-radius:5px;background:rgba(255,255,255,.05);color:#cbb98f;font-size:11.5px;letter-spacing:0;
  padding:8px 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fortune-row .table-btn:active{background:rgba(255,255,255,.12);}
.fortune-row .set-suffix{display:none !important;}
/* Show all toggle at the foot of the Tables drawer */
.show-all-btn{display:block;margin:14px auto 4px;background:none;border:1px solid #3a2f1f;border-radius:14px;
  color:#8a7a5c;font-size:11.5px;padding:5px 12px;cursor:pointer;font-family:Georgia,'Iowan Old Style',serif;}
.show-all-btn[aria-pressed="true"]{color:#cbb98f;border-color:#6b5a3a;}
/* generator options live in a dropdown (.gen-opts-menu) opened by a gear (.lore-gear-btn) beside the group heading
   (.lore-toggle), both wrapped in .lore-heading; the menu floats over the buttons rather than pushing them down. */
.lore-heading{display:flex;align-items:center;position:relative;}
.lore-heading .lore-toggle{width:auto;flex:1 1 auto;}
.lore-gear-btn{flex:0 0 auto;width:32px;height:32px;margin-right:6px;position:relative;
  display:flex;align-items:center;justify-content:center;background:none;border:none;
  border-radius:6px;color:#8a7a5c;cursor:pointer;}
.lore-gear-btn:active{background:rgba(255,255,255,.08);}
.lore-gear-btn .icon{width:16px;height:16px;}
.lore-gear-btn.custom{color:#8fbf72;}
.lore-gear-dot{position:absolute;top:4px;right:4px;width:6px;height:6px;border-radius:50%;
  background:#c9a55c;display:none;}
.lore-gear-btn.custom .lore-gear-dot{display:block;}
.gen-opts-menu{display:none;position:absolute;top:100%;left:14px;right:14px;z-index:6;
  background:rgba(14,11,8,.98);border:1px solid #3a2f1f;border-radius:8px;
  padding:10px 12px 2px;box-shadow:0 10px 26px rgba(0,0,0,.5);}
.gen-opts-menu.show{display:block;}
.gen-opts-menu .oracle-select-row{width:100%;margin:0 0 10px;}
.gen-opts-row-label{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a7a5c;
  margin:0 0 4px;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
/* recent rolls, collapsed: one-line peek at the latest roll */
.recent-rolls .rr-peek{font-size:11.5px;color:#a8987a;margin:5px 0 4px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;cursor:pointer;font-family:Georgia,'Iowan Old Style',serif;}
.recent-rolls .rr-peek .rr-cat{color:#a68b55;font-size:10.5px;}

/* ---- rollable dice badge (js/tooltips.js + js/area-tables.js): hover / first tap opens a
   row under the landmark name with the table's name, Roll button(s) and a p.N book link ---- */
.tip-rollrow{display:none;margin-top:7px;padding-top:7px;border-top:1px solid #3a2f1f;text-align:center;}
#tip.roll-open .tip-rollrow{display:block;}
.tip-rollname{color:#e0b865;font-size:11.5px;letter-spacing:.02em;margin-bottom:6px;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;}
.tip-rollbtns{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;align-items:center;}
.tip-roll{pointer-events:auto;display:inline-flex;align-items:center;gap:5px;background:rgba(224,184,101,.14);
  border:1px solid #a68b55;color:#f0e2c4;font-size:11.5px;padding:4px 10px;border-radius:12px;cursor:pointer;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;white-space:nowrap;}
.tip-roll .ii{width:12px;height:12px;color:#e0b865;}
.tip-roll:active{background:rgba(224,184,101,.3);}
.tip-rollpage{pointer-events:auto;background:none;border:none;color:#a68b55;font-size:11px;padding:4px 2px;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px;font-family:Georgia,'Iowan Old Style',serif;}
#tip.roll-open .tip-table.rollable{background:rgba(224,184,101,.22);}

/* ---- Storage panel + End Session (js/session.js) ---- */
.session-box{max-width:420px;}
.session-box .st-h3{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#8a7a5c;margin:16px 0 6px;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-weight:normal;}
.st-meter{height:10px;border-radius:5px;background:#1c1710;border:1px solid #3a2f1f;overflow:hidden;}
.st-fill{height:100%;background:#8fb87a;}
.st-fill.warn{background:#c9774a;}
.st-total{font-size:12.5px;color:#d8c9a8;margin:6px 0 10px;}
.st-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#cbb98f;padding:3px 0;border-bottom:1px solid #2a2115;}
.st-row span:last-child{color:#8a7a5c;white-space:nowrap;}
.st-journal{margin-top:8px;}
.st-hint{font-size:11.5px;color:#a8987a;font-style:italic;margin:6px 0;line-height:1.45;}
.st-alert{font-size:12px;color:#f3c7a8;background:rgba(201,119,74,.15);border:1px solid #6b3f26;border-radius:5px;padding:7px 9px;margin-bottom:10px;}
.st-dev{font-size:12px;color:#cbb98f;line-height:1.45;}
.st-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;}
.es-btn{font-family:Georgia,'Iowan Old Style',serif;font-size:13px;padding:7px 14px;border-radius:6px;cursor:pointer;
  background:none;border:1px solid #4a3d2b;color:#d8c9a8;}
.es-btn.es-primary{background:#6b5735;border-color:#a68b55;color:#f5ecd6;}
.es-row{display:flex;align-items:center;gap:9px;font-size:12.5px;color:#d8c9a8;padding:6px 0;border-bottom:1px solid #2a2115;cursor:pointer;}
.es-row input{flex:0 0 auto;width:16px;height:16px;accent-color:#a68b55;}
.es-row span:nth-child(2){flex:1 1 auto;}
.es-row em{color:#8a7a5c;font-style:italic;}
.es-n{color:#8a7a5c;font-size:11.5px;white-space:nowrap;}
.es-scope{display:flex;flex-direction:column;gap:4px;margin:8px 0 4px 25px;font-size:12px;color:#cbb98f;}
.es-scope input{accent-color:#a68b55;margin-right:6px;}
.export-reminder.storage-full{top:58px;bottom:auto;width:min(94vw,520px);box-sizing:border-box;border-color:#6b3f26;}
.export-reminder.storage-full span{flex:1 1 auto;}

/* ---- Character Sheet (js/sheet.js) — reuses the Inventory's .inv-* pieces for tabs, buttons and steppers ---- */
#sheetPanel{position:fixed;left:0;right:0;top:48px;bottom:var(--journal-h,0px);z-index:27;display:none;flex-direction:column;
  background:rgba(12,10,7,.985);border-top:1px solid #3a2f1f;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;color:#d8c9a8;}
#sheetPanel.show{display:flex;}
.sh-body{position:relative;}
.sh-on{display:block;margin:0 10px 8px;width:calc(100% - 20px);box-sizing:border-box;background:none;border:none;border-bottom:1px dotted #3a2f1f;color:#a99873;font-size:12.5px;font-family:inherit;padding:3px 0;}
.sh-page{margin:0 10px 8px;background:none;border:1px solid #4a3d2b;color:#e0b865;border-radius:12px;padding:3px 10px;font-size:12px;font-family:inherit;cursor:pointer;}
.sh-lbl{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#8a7a5c;letter-spacing:.04em;margin:6px 0;}
.sh-lbl select,.sh-lbl input[type=text]{background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:6px 7px;font-size:13.5px;font-family:inherit;}
.sh-hint{font-size:11.5px;color:#8a7a5c;font-style:italic;line-height:1.45;margin:4px 0;}
.sh-tnrule{flex-direction:row;align-items:center;gap:7px;font-size:12px;color:#a99873;letter-spacing:0;}
.sh-tnrule input{accent-color:#a68b55;width:16px;height:16px;}
.sh-emptyall{text-align:center;padding:40px 10px;color:#a99873;}
.sh-emptyall .inv-btn{display:inline-flex;align-items:center;}
.sh-picker{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:none;align-items:flex-start;justify-content:center;background:rgba(0,0,0,.55);padding:14px 10px;overflow:auto;}
.sh-picker.show{display:flex;}
.sh-pick-list{max-height:min(56vh,480px);overflow-y:auto;-webkit-overflow-scrolling:touch;margin:4px 0;}
.sh-pick-item{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid #2a2115;padding:8px 4px;cursor:pointer;font-family:inherit;}
.sh-pick-item:hover,.sh-pick-item:focus{background:rgba(224,184,101,.07);}
.sh-pick-n{display:flex;justify-content:space-between;gap:8px;color:#f0e2c4;font-size:14px;}
.sh-pick-n em{font-style:normal;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#8a7a5c;text-align:right;}

body.sheet-open #combatLayer{visibility:hidden;}
/* ---- Gear tab + Play-mode war gear strip (js/inventory.js drawn inside the sheet) ---- */
.gear{margin-top:10px;}
/* Player Characters & NPCs panel: which sheet a PC token follows */
#heroName[readonly]{color:#cbb98f;border-style:dashed;}

/* ---- Fellowship Phase panel (js/fellowship.js) ---- */
.fp-box{max-width:520px;}
.fp-steps{display:flex;gap:4px;margin:0 0 10px;overflow-x:auto;scrollbar-width:none;}
.fp-steps::-webkit-scrollbar{display:none;}
.fp-step{flex:1 0 auto;display:flex;align-items:center;gap:5px;background:none;border:1px solid #3a2f1f;color:#8a7a5c;border-radius:14px;padding:4px 9px;font-size:11.5px;font-family:inherit;cursor:pointer;white-space:nowrap;}
.fp-step span{display:inline;}
.fp-steps.compact .fp-step{flex:0 0 auto;}
.fp-steps.compact .fp-step:not(.on) span{display:none;}
.fp-steps.compact .fp-step.on{flex:1 0 auto;}
.fp-step.done{color:#cbb98f;border-color:#5a4a2e;}
.fp-step.on{background:#5a4a2e;border-color:#a68b55;color:#f0e2c4;}
@media (max-width:520px){.fp-step span{display:none;}.fp-step.on span{display:inline;}}
.fp-title{margin-top:4px!important;}
.fp-lbl{display:flex;flex-direction:column;gap:3px;font-size:11px;color:#8a7a5c;margin:6px 0;}
.fp-lbl select,.fp-other,.fp-und{background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:6px 7px;font-size:13.5px;font-family:inherit;width:100%;box-sizing:border-box;}
.fp-other{margin-bottom:6px;}
.fp-hero{border:1px solid #2a2115;border-radius:8px;padding:6px 9px 4px;margin:6px 0;background:rgba(255,255,255,.02);}
.fp-hname{color:#f0e2c4;font-size:14px;margin-bottom:3px;}
.fp-hname em{font-style:normal;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:#a68b55;margin-left:6px;}
.fp-xp{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding-bottom:7px;}
.fp-xp .fp-hname{flex:1 1 100%;margin:0;}
.fp-pts{font-size:12px;color:#8a7a5c;}
.fp-pts b{color:#e0b865;font-size:15px;margin-left:3px;}
.fp-xp .eye-btn{margin-left:auto;}
.fp-und{margin:2px 0 4px;}
.fp-und-d{font-size:12px;color:#a99873;line-height:1.45;margin:4px 0;}
.fp-auto{font-size:12px;color:#9fd18b;margin:2px 0 6px;}
.fp-auto.no{color:#b38a5a;}
.fp-summary{font-size:13px;color:#d8c9a8;line-height:1.55;border:1px solid #2a2115;border-radius:8px;padding:8px 10px;background:rgba(255,255,255,.02);}
.fp-nav{display:flex;justify-content:space-between;align-items:center;margin-top:14px;}
.fp-nav .eye-btn{display:inline-flex;align-items:center;padding:7px 14px;font-size:13px;}
.fp-primary{background:#5a4a2e!important;border-color:#a68b55!important;}

/* ---- Character Sheet as the paper sheet (js/sheet.js) ----
   The page is the PDF's own artwork (img/sheet-bg.webp), 792 x 612 px = the PDF's points, scaled by fitPage().
   Fonts in fonts/: Libre Baskerville (OFL), Aniron / Aniron Bold (header font); Uncial Antiqua
   (OFL) fallback. */
@font-face{font-family:'SheetBask';src:url(fonts/libre-baskerville.woff) format('woff');font-weight:400 700;font-style:normal;font-display:swap;}
@font-face{font-family:'SheetBask';src:url(fonts/libre-baskerville-italic.woff) format('woff');font-weight:400 700;font-style:italic;font-display:swap;}
@font-face{font-family:'SheetUncial';src:url(fonts/uncial-antiqua.woff) format('woff');font-display:swap;}
@font-face{font-family:'Aniron';src:url(fonts/aniron.woff) format('woff');font-weight:400;font-display:swap;}
@font-face{font-family:'Aniron';src:url(fonts/aniron-bold.woff) format('woff');font-weight:700;font-display:swap;}
#sheetPanel{--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.sh-head{flex-wrap:wrap;gap:6px;}
.sh-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;}
.sh-tools .inv-btn{display:inline-flex;align-items:center;padding:5px 10px;font-size:13px;}
.sh-menuwrap{position:relative;}
.sh-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:8;background:#1b150e;border:1px solid #4a3d2b;border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:8px;min-width:250px;box-shadow:0 8px 24px rgba(0,0,0,.6);}
.sp-body{overflow:auto;padding:8px;background:#17120c;touch-action:pan-x pan-y;}
.sp-stage{position:relative;margin:0 auto;}
.sp-page{position:absolute;left:0;top:0;width:792px;height:612px;transform-origin:0 0;background:#fff;box-shadow:0 4px 26px rgba(0,0,0,.65);
  font-family:'SheetBask','Baskerville','Libre Baskerville',Georgia,serif;color:var(--sp-ink);-webkit-user-select:none;user-select:none;}
.sp-page>*{position:absolute;box-sizing:border-box;}
.sp-page .sp-bg{left:0;top:0;width:792px;height:612px;pointer-events:none;}
.sp-in{background:transparent;border:none;outline:none;border-radius:0;font:inherit;font-size:9.5px;color:var(--sp-ink);padding:0 1px;line-height:13px;margin:0;-webkit-user-select:text;user-select:text;}
.sp-in::placeholder{color:rgba(42,33,28,.35);font-style:italic;}
.sp-in:focus{background:rgba(199,53,56,.07);}
.sp-sel{-webkit-appearance:none;appearance:none;cursor:pointer;padding-right:9px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4'%3E%3Cpath d='M0 0h6L3 4z' fill='%23c73538' fill-opacity='.55'/%3E%3C/svg%3E") no-repeat right 1px center/5px 3.5px;}
.sp-sel option{color:#111;}
button.sp-ro{text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
button.sp-ro:disabled{cursor:default;}
.sp-name{font-size:15px;text-align:center;font-weight:700;line-height:23px;letter-spacing:.02em;}
.sp-area{resize:none;line-height:11.5px;font-size:8.8px;white-space:pre-wrap;overflow:auto;}
.sp-inj{font-size:8.2px;line-height:10.5px;}
.sp-portrait{border:none;background:transparent;cursor:pointer;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center;color:rgba(199,53,56,.5);font-family:inherit;font-size:9px;font-style:italic;}
.sp-portrait img{width:100%;height:100%;object-fit:cover;}
.sp-portrait:hover span{color:var(--sp-red);}
.sp-invbtn{font-family:var(--sp-head);font-size:19px;color:var(--sp-red);background:rgba(255,253,249,.7);border:1.4px solid var(--sp-red);border-radius:3px;
  box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 2.8px rgba(199,53,56,.55);cursor:pointer;letter-spacing:.03em;line-height:1;padding:0 0 2px;}
.sp-invbtn:hover{background:var(--sp-red);color:#fff8f0;box-shadow:inset 0 0 0 2px var(--sp-red),inset 0 0 0 2.8px rgba(255,248,240,.7);}
.sp-inv{font-size:8.4px;overflow:hidden;cursor:pointer;line-height:11px;}
.sp-inv-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:.5px solid rgba(199,53,56,.25);}
.sp-inv em{font-style:italic;color:var(--sp-red);}
.sp-dim{color:#9a8a80;font-style:italic;border-bottom:none;}
.sp-num{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;cursor:text;border-radius:2px;white-space:nowrap;}
.sp-num.big{font-size:14px;}
.sp-num.xl{font-size:17px;}
.sp-num.ro{cursor:default;}
.sp-num:not(.ro):hover{background:rgba(199,53,56,.09);}
.sp-numedit{width:100%;height:100%;border:1px solid var(--sp-red);background:#fffaf2;text-align:center;font:inherit;color:var(--sp-ink);padding:0;border-radius:2px;outline:none;}
.sp-pip,.sp-box{display:block;cursor:pointer;}
.sp-pip::before,.sp-box::before{content:'';position:absolute;}
.sp-pip::before{top:2.6px;right:2.6px;bottom:2.6px;left:2.6px;transform:rotate(45deg);}
.sp-box::before{top:2.1px;right:2.1px;bottom:2.1px;left:2.1px;}
.sp-pip.on::before,.sp-box.on::before{background:var(--sp-red);}
.sp-pip:hover::before,.sp-box:hover::before{background:rgba(199,53,56,.35);}
.sp-pip.on:hover::before,.sp-box.on:hover::before{background:#a3282b;}
.sp-pip.nx::before{background:rgba(217,164,65,.55);box-shadow:0 0 0 1.2px #d9a441;animation:spPulse 1.4s ease-in-out infinite;}
.sp-pip.nx.no::before{background:none;box-shadow:0 0 0 1px rgba(140,140,140,.6);animation:none;}
@keyframes spPulse{50%{opacity:.4;}}
.sp-auto{font-size:4.6px;letter-spacing:.1em;text-transform:uppercase;color:#9a8a80;text-align:center;line-height:6px;pointer-events:none;}
.sp-roll{background:transparent;border:none;cursor:pointer;border-radius:2px;padding:0;}
.sp-roll:hover{background:rgba(199,53,56,.12);}
.sp-advbtn{border-radius:50%;background:#d9a441;color:#1a1208;border:none;font:700 11px/14px Arial,sans-serif;padding:0;cursor:pointer;}
.sp-advbtn.no{background:#c8c2b8;color:#777;cursor:not-allowed;}
.sp-num.advnum{box-shadow:0 0 0 1.5px #d9a441;}
.sp-num.advnum.no{box-shadow:0 0 0 1px #c8c2b8;}
.sp-more{background:none;border:none;color:var(--sp-red);font:italic 7px/10px inherit;font-family:inherit;text-align:left;padding:0;cursor:pointer;}
.sp-invlayer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:none;align-items:flex-start;justify-content:center;background:rgba(0,0,0,.55);padding:14px 10px;overflow:auto;}
.sp-invlayer.show{display:flex;}
.sp-invbox{width:min(760px,100%);background:linear-gradient(#201a12,#140f0a);border:1px solid #6b5a3a;border-radius:10px;padding:10px 12px 12px;box-shadow:0 10px 30px rgba(0,0,0,.6);max-height:100%;overflow:auto;}
.sp-info p{color:#cbb98f;font-size:13.5px;line-height:1.5;margin:4px 0 8px;}
.sp-info p b{color:#f0e2c4;}
.sp-info .sh-lbl input{background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:6px 7px;font-size:13.5px;font-family:inherit;}
.sp-info-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;}
.sp-bigport{max-width:100%;max-height:50vh;display:block;margin:0 auto;border-radius:4px;}
@media print{
  @page{size:letter landscape;margin:0;}
  body.print-sheet,body.print-sheet html{height:auto;overflow:visible;background:#fff;}
  body.print-sheet>*{display:none!important;}
  body.print-sheet #sheetPanel{display:block!important;position:static;background:#fff;border:none;}
  body.print-sheet #sheetPanel>*{display:none!important;}
  body.print-sheet #sheetPanel>#shBody{display:block!important;overflow:visible;padding:0;background:#fff;}
  body.print-sheet .sp-stage{width:auto!important;height:auto!important;margin:0;}
  body.print-sheet .sp-page{position:relative;transform:none!important;zoom:1.3333;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  body.print-sheet .sp-auto,body.print-sheet .sp-more,body.print-sheet .sp-portrait span,body.print-sheet .sp-advbtn{display:none!important;}
  body.print-sheet .sp-pip.nx::before{animation:none;background:none;box-shadow:none;}
  body.print-sheet .sp-num.advnum{box-shadow:none;}
  body.print-sheet .sp-in::placeholder{color:transparent;}
  body.print-sheet .sp-dim{visibility:hidden;}
  body.print-sheet .sp-sel{background-image:none;}
}
@media (max-width:700px){
  .sh-head #shTabs{flex:1 1 auto;order:1;min-width:0;}
  .sh-head #shClose{order:2;}
  .sh-head .sh-tools{order:3;flex:1 1 100%;margin-left:0;gap:5px;}
  .sh-tools .inv-btn{padding:4px 8px;font-size:12.5px;}
}

/* ---- Inventory as a card box in the paper sheet's style (js/inventory.js) ---- */
.sp-invbox{width:min(900px,100%);background:var(--k-paper);border:none;border-radius:4px;padding:14px 16px 16px;color:var(--sp-ink);
  box-shadow:0 10px 34px rgba(0,0,0,.7),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--sp-red),inset 0 0 0 7px var(--k-paper),inset 0 0 0 8px rgba(199,53,56,.55);
  font-family:'SheetBask','Libre Baskerville',Georgia,serif;}
.sp-invhead{display:flex;align-items:center;gap:12px;margin:2px 4px 8px;}
.sp-invhead b{font-family:var(--sp-head);font-weight:normal;color:var(--sp-red);font-size:30px;line-height:1;}
.sp-invhead span{flex:1 1 auto;font-size:14px;color:var(--k-muted3);font-style:italic;}
.sp-invhead .inv-close{background:none;border:1px solid rgba(199,53,56,.5);color:var(--sp-red);border-radius:50%;width:34px;height:34px;}
.sp-invhead .inv-close:hover{background:var(--sp-red);color:#fff;}
.gx{color:var(--sp-ink);}
.gx button{font-family:inherit;}
.gx-bar{display:flex;gap:22px;align-items:flex-end;padding:4px 6px 10px;border-bottom:1px solid rgba(199,53,56,.35);margin-bottom:10px;flex-wrap:wrap;}
.gx-stat{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;}
.gx-dia{width:44px;height:44px;display:flex;align-items:center;justify-content:center;position:relative;}
.gx-dia::before{content:'';position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1.6px solid var(--sp-red);transform:rotate(45deg);}
.gx-dia b,.gx-dia input{position:relative;font-weight:700;font-size:16px;color:var(--sp-ink);}
.gx-dia input{width:40px;text-align:center;background:transparent;border:none;outline:none;font-family:inherit;-moz-appearance:textfield;}
.gx-dia input::-webkit-inner-spin-button,.gx-dia input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.gx-statl{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;}
.gx-trebtns{position:absolute;left:50px;top:6px;display:flex;gap:4px;}
.gx-trebtns button,.gx-secadd,.gx-close{width:26px;height:26px;border-radius:50%;border:1px solid rgba(199,53,56,.55);background:var(--k-field);color:var(--sp-red);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.gx-trebtns button:hover,.gx-secadd:hover,.gx-close:hover{background:var(--sp-red);color:#fff;}
.gx-trebtns .ii,.gx-secadd .ii,.gx-close .ii{width:14px;height:14px;}
.gx-haul.on{background:var(--sp-red);color:#fff;}
.gx-cursed .gx-dia::before{border-color:#6d4a8f;}
.gx-tools,.gx-addrow{display:flex;gap:8px;margin:0 0 8px;flex-wrap:wrap;}
.gx-tools input,.gx-addrow input,.gx-addrow select{flex:1 1 180px;min-width:0;background:var(--k-field);border:none;border-bottom:1px solid rgba(199,53,56,.55);
  color:var(--sp-ink);font:inherit;font-size:14px;padding:6px 4px;outline:none;border-radius:0;}
.gx-addrow select{flex:0 1 190px;cursor:pointer;}
.gx-tools input:focus,.gx-addrow input:focus{border-bottom-color:var(--sp-red);background:var(--k-focus);}
.gx-btn{background:var(--k-field);border:1px solid var(--sp-red);color:var(--sp-red);border-radius:3px;padding:6px 12px;font-size:13.5px;cursor:pointer;white-space:nowrap;}
.gx-btn:hover,.gx-btn.on{background:rgba(199,53,56,.1);}
.gx-btn.gx-primary{background:var(--sp-red);color:#fff8f0;}
.gx-btn.gx-primary:hover{background:#a82b2e;}
.gx-btn.gx-danger{border-color:var(--k-muted2);color:var(--k-muted3);}
.gx-btn.gx-danger:hover{background:var(--k-muted3);color:#fff;}
.gx-deck{border:1px solid rgba(199,53,56,.3);border-radius:4px;padding:8px;margin:0 0 10px;background:var(--k-field);}
.gx-deckrow{margin-bottom:6px;}
.gx-deckh{display:block;font-family:var(--sp-head);color:var(--sp-red);font-size:17px;margin:2px 2px 4px;}
.gx-deckcards{display:flex;flex-wrap:wrap;gap:6px;}
.gx-mini{width:74px;height:98px;background:url(img/gear/card.webp) center/100% 100% no-repeat;border:none;cursor:pointer;padding:8px 6px 6px;
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;border-radius:3px;transition:transform .12s;}
.gx-mini:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.25);}
.gx-mini img{max-width:52px;max-height:58px;object-fit:contain;mix-blend-mode:multiply;}
.gx-mini span{font-size:8.5px;line-height:1.1;text-align:center;color:var(--sp-ink);font-weight:700;}
.gx-hint{font-size:11px;color:var(--k-muted2);font-style:italic;}
.gx-sec{margin:12px 0 4px;}
.gx-sechead{display:flex;align-items:center;gap:8px;}
.gx-sectog{flex:1 1 auto;display:flex;align-items:center;gap:10px;background:none;border:none;cursor:pointer;padding:2px 0;}
.gx-sectog::before,.gx-sectog::after{content:'';flex:1 1 20px;height:1.5px;background:var(--sp-red);}
.gx-sectog::before{flex:0 0 26px;}
.gx-h{font-family:var(--sp-head);color:var(--sp-red);font-size:22px;line-height:1.1;white-space:nowrap;}
.gx-sectog em{order:3;font-style:normal;font-size:11px;color:var(--k-muted2);}
.gx-sectog em.gx-over{color:var(--sp-red);font-weight:700;}
.gx-mini[data-poor]{opacity:.5;}
.gx-wphint{margin:-4px 2px 8px;font-style:italic;}
/* character creation (js/sheet.js: Starting values, Names, Distinctive Features, Lifepath) */
.cr-box .sp-info{max-height:min(70vh,640px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
.cr-h{display:flex;align-items:center;gap:8px;margin:12px 4px 4px;}
.cr-h>span{font-family:var(--sp-head);color:var(--sp-red);font-size:20px;line-height:1.1;flex:1;}
.cr-h .sh-page{margin:0;}
.cr-sub{font-size:12px;color:var(--k-muted3);margin:4px 4px 2px;text-transform:uppercase;letter-spacing:.04em;}
.cr-row{display:flex;flex-wrap:wrap;gap:6px;margin:2px 4px 8px;}
.cr-row.cr-end{justify-content:flex-end;}
.cr-chip{border:1px solid rgba(199,53,56,.5);border-radius:14px;background:var(--k-field);color:var(--sp-red);padding:4px 10px;font:inherit;font-size:13px;cursor:pointer;}
.cr-chip:hover{background:rgba(199,53,56,.08);}
.cr-chip.on{background:var(--sp-red);border-color:var(--sp-red);color:#fff;}
.cr-sel{font:inherit;font-size:13px;background:var(--k-field);color:var(--sp-ink);border:1px solid rgba(199,53,56,.5);border-radius:8px;padding:4px 6px;}
.cr-list{max-height:none;overflow:visible;}
.sp-infobox .sh-pick-item.on{background:rgba(199,53,56,.1);box-shadow:inset 3px 0 0 var(--sp-red);}
.cr-n{font-style:normal;color:var(--sp-red);font-weight:700;margin-right:4px;}
.cr-d{display:block;font-size:12.5px;color:var(--k-muted3);line-height:1.45;margin-top:2px;}
.cr-fx{color:var(--sp-ink);font-style:italic;}
.cr-ev.pend{background:rgba(199,53,56,.05);}
.cr-sp{flex:1;}
.sp-info-btns .cr-chip{align-self:center;}
.sh-pe{color:var(--sp-red);}
.sh-pe.over{text-decoration:underline;}
.sp-plus{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border-radius:50%;border:1px solid rgba(199,53,56,.55);background:var(--k-field);color:var(--sp-red);cursor:pointer;}
.sp-page .sp-plus{position:absolute;width:auto;height:auto;}
.sp-plus .ii{width:10px;height:10px;}
.sp-lpbtn{font:inherit;font-size:9px;line-height:1;padding:0 4px;border-radius:7px;border:1px solid rgba(199,53,56,.55);background:var(--k-field);color:var(--sp-red);cursor:pointer;}
.sp-page .sp-lpbtn{position:absolute;}
.ss-fl .sp-lpbtn{font-size:11px;padding:2px 8px;margin-left:8px;}
.ss-plusrow{display:flex;align-items:center;gap:6px;}
.ss-plusrow .sp-in{flex:1;min-width:0;}
@media (max-width:520px){.cr-h>span{font-size:17px;}.cr-box .sp-invhead b{font-size:22px;}}
.gx-sectog[aria-expanded="false"] .gx-h{opacity:.55;}
.gx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:12px;padding:10px 2px 4px;}
.gx-card{position:relative;aspect-ratio:300/418;}
.gx-face{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:url(img/gear/card.webp) center/100% 100% no-repeat;border:none;border-radius:4px;cursor:pointer;
  padding:15% 12% 9%;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--sp-ink);transition:transform .12s,box-shadow .12s;}
.gx-face:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.28);}
.gx-art{flex:1 1 auto;min-height:0;max-width:100%;object-fit:contain;mix-blend-mode:multiply;}
.gx-glyph{display:flex;align-items:center;justify-content:center;color:rgba(199,53,56,.35);}
.gx-glyph .ii{width:44px;height:44px;}
.gx-name{font-family:var(--sp-head);color:var(--sp-red);font-size:15px;line-height:1.05;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.gx-sub{font-size:10.5px;color:var(--k-muted3);font-style:italic;text-align:center;line-height:1.2;}
.gx-qty{font-weight:700;color:var(--sp-red);font-size:12px;}
.gx-carry,.gx-star{position:absolute;top:7%;width:24px;height:24px;border-radius:50%;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;
  background:var(--k-field);border:1px solid rgba(199,53,56,.55);color:var(--sp-red);}
.gx-carry{left:9%;}
.gx-star{right:9%;border-color:rgba(199,53,56,.45);}
.gx-carry .ii{width:13px;height:13px;}
.gx-carry.on{background:var(--sp-red);color:#fff;}
.gx-card.famous .gx-face{box-shadow:0 0 0 2px #d9a441,0 4px 14px rgba(217,164,65,.45);}
.gx-cursemark{position:absolute;bottom:8%;right:11%;color:#6d4a8f;}
.gx-cursemark .ii{width:15px;height:15px;}
.gx-card.cursed .gx-face{box-shadow:0 0 0 2px #8e67b3;}
.gx-empty{border:1.5px dashed rgba(199,53,56,.45);border-radius:6px;background:none;color:var(--sp-red);font-style:italic;cursor:pointer;aspect-ratio:300/418;font-size:13px;}
.gx-empty:hover{background:rgba(199,53,56,.06);}
.gx-none{font-style:italic;color:var(--k-muted2);margin:10px 4px;}
.gx-sub{font-weight:normal;}
.gx>.gx-sub{font-family:var(--sp-head);color:var(--sp-red);font-size:18px;margin:14px 2px 4px;font-style:normal;text-align:left;}
.gx textarea#gearNotes{width:100%;min-height:70px;background:var(--k-field);border:1px solid rgba(199,53,56,.35);border-radius:3px;padding:8px;font:inherit;font-size:13.5px;color:var(--sp-ink);resize:vertical;}
/* card back */
.gx-backwrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding:18px 10px;overflow:auto;}
.gx-back{position:relative;width:min(400px,100%);background:url(img/gear/card.webp) center/100% 100% no-repeat,var(--k-paper);border-radius:6px;
  padding:34px 34px 30px;color:var(--sp-ink);box-shadow:0 12px 36px rgba(0,0,0,.6);display:flex;flex-direction:column;gap:8px;}
.gx-close{position:absolute;top:14px;right:14px;}
.gx-backart{display:block;max-height:150px;max-width:70%;margin:0 auto -4px;object-fit:contain;mix-blend-mode:multiply;}
.gx-backname{font-family:var(--sp-head);color:var(--sp-red);font-size:26px;text-align:center;background:transparent;border:none;border-bottom:1px dashed transparent;outline:none;padding:0 6px;}
.gx-backname:hover,.gx-backname:focus{border-bottom-color:rgba(199,53,56,.5);}
.gx-desc{font-size:12.5px;line-height:1.5;font-style:italic;text-align:center;color:#4a3d35;margin:0 4px;}
.gx-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;border-top:1px solid rgba(199,53,56,.35);border-bottom:1px solid rgba(199,53,56,.35);padding:6px 0;}
.gx-fld{display:flex;flex-direction:column;gap:2px;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#4a3d35;}
.gx-fld.sm{align-items:center;flex:0 0 auto;}
.gx-fld input,.gx-fld select,.gx-fld textarea{font:inherit;font-weight:normal;letter-spacing:0;text-transform:none;font-size:14px;color:var(--sp-ink);
  background:var(--k-field-a);border:none;border-bottom:1px solid rgba(199,53,56,.5);outline:none;padding:4px 3px;border-radius:0;}
.gx-fld.sm input{width:70px;text-align:center;font-size:17px;font-weight:700;}
.gx-fld textarea{resize:vertical;border:1px solid rgba(199,53,56,.35);border-radius:2px;}
.gx-step{display:inline-flex;align-items:center;gap:6px;}
.gx-step b{font-size:17px;min-width:22px;text-align:center;letter-spacing:0;}
.gx-step button{width:26px;height:26px;border-radius:50%;border:1px solid rgba(199,53,56,.55);background:var(--k-field);color:var(--sp-red);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;}
.gx-step .ii{width:13px;height:13px;}
.gx-facts{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:12.5px;margin:2px 4px;}
.gx-facts dt{font-weight:700;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--sp-red);padding-top:2px;}
.gx-facts dd{margin:0;}
.gx-toggles{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;}
.gx-tog{display:inline-flex;align-items:center;gap:5px;background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--k-muted3);border-radius:14px;padding:5px 11px;font-size:13px;cursor:pointer;}
.gx-tog .ii.inl{width:13px;height:13px;}
.gx-tog.on{background:var(--sp-red);border-color:var(--sp-red);color:#fff;}
.gx-tog.gx-tcurse.on{background:#6d4a8f;border-color:#6d4a8f;}
.gx-backbtns{display:flex;justify-content:space-between;gap:8px;margin-top:4px;}
@media (max-width:520px){.gx-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px;}.gx-name{font-size:13px;}.gx-h{font-size:19px;}.gx-back{padding:30px 24px 26px;}}
/* beat the dark #gear* id rules above; keep the art from pushing the name off the card */
.gx #gearSearch,.gx #gearNewName,.gx #gearNewCat{background:var(--k-field);color:var(--sp-ink);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;padding:6px 4px;font-size:14px;font-family:inherit;}
.gx #gearTre{background:transparent;color:var(--sp-ink);border:none;padding:0;width:40px;height:auto;font-size:16px;font-weight:700;border-radius:0;}
.gx #gearNotes{background:var(--k-field);color:var(--sp-ink);}
.gx-bar{gap:18px;}
.gx-stat.gx-tre{flex-direction:row;align-items:center;gap:8px;}
.gx-stat.gx-tre .gx-tcol{display:flex;flex-direction:column;align-items:center;gap:4px;}
.gx-trebtns{position:static;display:flex;flex-direction:column;gap:4px;}
.gx-trebtns .gx-row2{display:flex;gap:4px;}
.gx-face{justify-content:flex-start;}
.gx-art{flex:0 0 auto;height:56%;width:auto;max-width:92%;}
.gx-glyph{height:50%;}
.gx-name{margin-top:auto;}
.gx-art,.gx-mini img,.gx-backart{mix-blend-mode:normal;}
.sp-invhead b,.gx-h,.gx-name,.gx-backname,.gx-deckh,.gx>.gx-sub,.sp-invbtn{text-transform:lowercase;}

/* the card back's description is editable (item.desc; blank = the book's text) */
.gx-descwrap{display:flex;flex-direction:column;align-items:center;gap:3px;margin:0 2px;}
textarea.gx-desc{width:100%;min-height:58px;resize:vertical;background:transparent;border:1px dashed transparent;border-radius:2px;outline:none;padding:3px 5px;
  font:italic 12.5px/1.5 'SheetBask','Libre Baskerville',Georgia,serif;text-align:center;color:#4a3d35;}
textarea.gx-desc:hover{border-color:rgba(199,53,56,.35);}
textarea.gx-desc:focus{border-color:rgba(199,53,56,.6);background:var(--k-field-a);text-align:left;}
.gx-reset{background:none;border:none;color:var(--sp-red);font:italic 11px 'SheetBask',Georgia,serif;cursor:pointer;padding:0;text-decoration:underline;}

/* ---- square rounded tiles (drag to arrange, js/tiles.js) that open to rounded cards ---- */
.gx-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px;}
.gx-tile{aspect-ratio:1/1;}
.gx-tile .gx-face{background:var(--k-field);border-radius:14px;padding:12% 10% 9%;justify-content:center;gap:5px;
  box-shadow:inset 0 0 0 1.5px var(--sp-red),inset 0 0 0 4px var(--k-field),inset 0 0 0 5px rgba(199,53,56,.45),0 1px 3px rgba(0,0,0,.12);touch-action:manipulation;}
.gx-tile .gx-face:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1.5px var(--sp-red),inset 0 0 0 4px var(--k-field),inset 0 0 0 5px rgba(199,53,56,.45),0 6px 14px rgba(0,0,0,.2);}
.gx-tile .gx-art{height:52%;flex:0 0 auto;}
.gx-tile .gx-glyph{height:48%;}
.gx-tile .gx-glyph .ii{width:40%;height:auto;aspect-ratio:1;min-width:34px;}
.gx-tile .gx-name{margin-top:0;font-size:14px;-webkit-line-clamp:2;}
.gx-tile .gx-qty{position:absolute;bottom:8%;right:10%;font-size:12px;}
.gx-tile .gx-vig{position:absolute;top:7%;right:9%;font-size:11px;font-weight:700;color:var(--sp-red);}
.gx-tile .gx-cursemark{bottom:8%;left:10%;right:auto;}
.gx-tile .gx-carry,.gx-tile .gx-star{top:7%;width:22px;height:22px;}
.gx-tile .gx-carry{left:7%;}
.gx-tile .gx-star{right:7%;}
.gx-tile.famous .gx-face{box-shadow:inset 0 0 0 1.5px #b08a2e,inset 0 0 0 4px var(--k-field),inset 0 0 0 5px rgba(217,164,65,.8),0 0 0 2px #d9a441,0 4px 12px rgba(217,164,65,.4);}
.gx-tile.cursed .gx-face{box-shadow:inset 0 0 0 1.5px #6d4a8f,inset 0 0 0 4px var(--k-field),inset 0 0 0 5px rgba(109,74,143,.5),0 0 0 2px #8e67b3;}
.gx-tile.stowed .gx-face>*{opacity:.45;}
.gx-grid .gx-empty{aspect-ratio:1/1;border-radius:14px;}
.gx-hint{margin:8px 4px 0;}
/* drag */
.gx-tile,.sp-mt{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.tl-lifted{opacity:.25;}
.tl-ph{border:2px dashed var(--sp-red);border-radius:14px;background:rgba(199,53,56,.07);box-sizing:border-box;}
.sp-tiles .tl-ph{border-width:1px;border-radius:5px;width:auto!important;height:auto!important;}
.gx-grid .tl-ph{width:auto!important;height:auto!important;aspect-ratio:1/1;}
.tl-ghost{position:fixed;z-index:9999;pointer-events:none;margin:0;transform:rotate(-3deg) scale(1.06);opacity:.95;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35));
  font-family:'SheetBask','Libre Baskerville',Georgia,serif;--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.tl-ghost .gx-face{position:absolute;top:0;right:0;bottom:0;left:0;}
body.tl-dragging,body.tl-dragging *{cursor:grabbing!important;}
/* the card a tile opens to: rounded parchment, double red rule */
.gx-back{background:var(--k-paper);border-radius:20px;padding:30px 28px 24px;animation:gxOpen .16s ease-out;
  box-shadow:inset 0 0 0 2px var(--sp-red),inset 0 0 0 6px var(--k-paper),inset 0 0 0 7px rgba(199,53,56,.5),0 14px 40px rgba(0,0,0,.6);}
@keyframes gxOpen{from{transform:scale(.9);opacity:0;}to{transform:none;opacity:1;}}
.gx-close{top:12px;right:12px;}
.gx-backtag{text-align:center;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--k-muted2);margin-top:-4px;}
.gx-mini{border-radius:10px;background:var(--k-field);box-shadow:inset 0 0 0 1px var(--sp-red),inset 0 0 0 3px var(--k-field),inset 0 0 0 3.6px rgba(199,53,56,.4);height:auto;aspect-ratio:1/1;width:80px;padding:6px;}
/* virtue / reward cards on the sheet (pickEl) */
.sh-picker .gx-back.sp-paper{width:min(380px,100%);margin-top:6vh;font-family:'SheetBask','Libre Baskerville',Georgia,serif;color:var(--sp-ink);--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.sp-paper .gx-backname{text-transform:lowercase;}
.sp-paper .sp-cardic{display:flex;justify-content:center;color:rgba(199,53,56,.55);}
.sp-paper .sp-cardic .ii{width:52px;height:52px;}
.sp-paper p.gx-desc{font-style:italic;text-align:center;font-size:13.5px;line-height:1.55;}
.sp-paper .sh-page{align-self:center;background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--sp-red);}
/* mini tiles in the sheet's Rewards / Virtues boxes */
.sp-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.sp-mt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:1px;border:none;border-radius:5px;background:var(--k-field);
  box-shadow:inset 0 0 0 .8px var(--sp-red);color:var(--sp-red);font:inherit;overflow:hidden;min-width:0;}
.sp-mt .ii{width:9px;height:9px;flex:0 0 auto;opacity:.7;}
.sp-mt span{font-size:4.6px;line-height:1.08;color:var(--sp-ink);text-align:center;max-width:100%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.sp-mt:hover{background:rgba(199,53,56,.08);}
.sp-mt-add{box-shadow:inset 0 0 0 .8px rgba(199,53,56,.5);background:transparent;border:.6px dashed transparent;}
.sp-mt-add b{font-size:10px;line-height:1;font-weight:700;}
.sp-mt-add span{color:var(--sp-red);font-style:italic;}
@media print{body.print-sheet .sp-mt-add{display:none!important;}}
.sp-page .sp-more{font-style:italic;font-size:7px;line-height:10px;white-space:nowrap;}
@media (max-width:520px){.gx-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:9px;}.gx-tile .gx-name{font-size:12.5px;}.gx-tile .gx-carry,.gx-tile .gx-star{width:20px;height:20px;}}

/* Aniron (the sheet's own header font) — Bold, as the printed headers are */
.sp-invbtn,.sp-invhead b,.gx-h,.gx-name,.gx-backname,.gx-deckh,.gx>.gx-sub{font-weight:700;letter-spacing:0;}
.sp-invbtn{font-size:16px;}
/* a ticked "carried" circle is charcoal, not red */
.gx-carry.on,.gx-tile .gx-carry.on{background:#33302d;border-color:#33302d;color:#fff;}
/* the red symbols (img/symbols/) replace the line icons on tiles and cards */
.gx-sym{object-fit:contain;max-width:70%!important;height:44%!important;}
.sp-mt .sp-sym{width:auto;height:11px;max-width:80%;object-fit:contain;flex:0 0 auto;}
.sp-paper .sp-cardsym{height:64px;max-width:120px;object-fit:contain;}
/* a ticked favoured-skill box on the sheet is filled black, like a pen mark */
.sp-box[data-act="fav"].on::before{background:#1f1c1a;}
.sp-box[data-act="fav"].on:hover::before{background:#45403c;}
.gx-tile .gx-name{font-size:12px;letter-spacing:-.01em;overflow-wrap:anywhere;}
/* every pencil mark on the sheet is black — rank diamonds, favoured boxes, condition ticks */
.sp-pip.on::before,.sp-box.on::before{background:#1f1c1a;}
.sp-pip:hover::before,.sp-box:hover::before{background:rgba(31,28,26,.3);}
.sp-pip.on:hover::before,.sp-box.on:hover::before{background:#45403c;}
.sp-pip.nx::before{background:rgba(217,164,65,.55);}
.sp-rules{border-top:1px solid rgba(199,53,56,.35);padding-top:6px;margin-top:2px;}.sp-rules p{font-size:12.5px;line-height:1.45;margin:4px 2px;}.sp-rules p b{color:var(--sp-red);}

/* ---- Council walkthrough (js/council.js) — reuses the Fellowship Phase .fp-* modal ---- */
.cc-chips{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 8px;}
.cc-chip{font-size:11.5px;color:#8a7a5c;border:1px solid #3a2f1f;border-radius:12px;padding:3px 9px;}
.cc-chip b{color:#e0b865;margin-left:3px;}
.cc-chip.ok{border-color:#5f7f4a;}.cc-chip.ok b{color:#9fd18b;}
.cc-act{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:8px 0 4px;}
.cc-act .eye-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;font-size:13px;}
.cc-act .cc-hand{width:auto;flex:1 1 150px;margin:0;}
.cc-or{font-size:11.5px;color:#8a7a5c;}
.cc-result{font-size:13px;color:#d8c9a8;border:1px solid #2a2115;border-radius:8px;padding:7px 10px;margin:8px 0;background:rgba(255,255,255,.02);}
.cc-result.ok{border-color:#3f5a30;}.cc-result.no{border-color:#5a3a2a;}
.cc-result em{color:#8a7a5c;font-style:normal;font-size:11.5px;}
.cc-list{margin:4px 0 6px;padding-left:22px;font-size:13px;color:#d8c9a8;}
.cc-list li{padding:3px 0;}
.cc-list li>span{margin-right:6px;}
.cc-list li em{font-style:normal;font-size:11px;color:#8a7a5c;}
.cc-list li.ok b{color:#9fd18b;}.cc-list li.no b{color:#c98a6a;}
.cc-x{background:none;border:none;color:#8a7a5c;cursor:pointer;padding:0 4px;vertical-align:middle;}
.cc-x:hover{color:#f0e2c4;}
.cc-left{font-size:11px;color:#8a7a5c;font-weight:normal;margin-left:6px;letter-spacing:0;text-transform:none;}
.cc-out{font-size:20px;text-align:center;padding:10px;border:1px solid #3a2f1f;border-radius:10px;margin:4px 0 8px;color:#f0e2c4;}
.cc-out.cc-success{border-color:#5f7f4a;color:#b9e0a6;}
.cc-out.cc-disaster{border-color:#7a3a2a;color:#e3a18a;}
.cc-out.cc-short{border-color:#7a6030;color:#e0b865;}
#councilModal .fp-lbl .fp-other{margin:3px 0 0;}
/* Journey walkthrough (js/journey.js) */
#journeyModal .fp-lbl .fp-other{margin:3px 0 0;}
.jy-nums{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 14px;}
.jy-nums .fp-lbl{flex:0 0 auto;}
.jy-num{width:84px;}
.jy-nums .eye-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;font-size:12.5px;margin-bottom:2px;}
#journeyModal .cc-result b{font-weight:700;}

/* ---- Combat guide (js/combat-guide.js, Battle Map only) ---- */
#initGuideBtn{flex:0 0 auto;border:1px solid #4a3d2b;background:rgba(255,255,255,.04);color:#d8c9a8;border-radius:6px;cursor:pointer;
  font-size:13px;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;display:flex;align-items:center;gap:5px;padding:0 10px;height:30px;}
#initGuideBtn[hidden]{display:none;}
#initGuideBtn.on{border-color:#a68b55;color:#f0e2c4;}
#initGuideBtn .icon{width:14px;height:14px;}
@media (max-width:560px){#initGuideBtn span{display:none;}}
.cg{position:fixed;top:96px;left:calc(40px + env(safe-area-inset-left,0px));z-index:36;width:min(360px,calc(100vw - 56px));max-height:calc(100vh - 120px);overflow:auto;display:none;
  background:rgba(20,16,11,.97);border:1px solid #4a3d2b;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.5);color:#d8c9a8;
  font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:13px;}
.cg.show{display:block;}
.cg-head{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #3a2f1f;position:sticky;top:0;background:rgba(20,16,11,.98);}
.cg-head span{color:#f0e2c4;font-size:14px;}
.cg-head em{font-style:normal;color:#a68b55;font-size:11.5px;flex:1;}
.cg-x{background:none;border:none;color:#8a7a5c;cursor:pointer;padding:2px;}
.cg-x .icon{width:14px;height:14px;}
.cg-body{padding:6px 10px 10px;}
.cg h4{margin:10px 0 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#a68b55;font-weight:normal;}
.cg-p{margin:4px 0;font-size:12px;line-height:1.45;color:#b8a882;}
.cg-em{color:#9fd18b;}.cg-warn{color:#e0a060;}
.cg-res{color:#e8dcc0;}
.cg-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:5px 0;}
.cg-line>span:first-child{min-width:70px;}
.cg-row{display:flex;align-items:center;gap:6px;margin:3px 0;font-size:12.5px;cursor:pointer;}
.cg select{background:#15110c;color:#f0e2c4;border:1px solid #3a2f1f;border-radius:6px;padding:4px 6px;font-size:12.5px;font-family:inherit;max-width:100%;}
.cg-b{border:1px solid #4a3d2b;background:rgba(255,255,255,.04);color:#d8c9a8;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;padding:4px 9px;}
.cg-b.on{border-color:#e0b865;color:#f0e2c4;background:rgba(224,184,101,.14);}
.cg-b.cg-go{border-color:#a68b55;background:#5a4a2e;color:#f0e2c4;}
.cg-b:disabled{opacity:.5;cursor:default;}
.cg-box{border:1px solid #2e2519;border-radius:8px;padding:4px 8px 6px;margin:8px 0;background:rgba(255,255,255,.02);}
.cg-hero{border-bottom:1px solid #2a2115;padding:2px 0 6px;}
.cg-tag{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:#a68b55;}
.cg-det summary{cursor:pointer;color:#a68b55;font-size:12px;margin-top:8px;}

/* ---- Virtue / Reward picker in the paper style (js/sheet.js renderPicker) ---- */
.sh-picker .sp-pickbox{position:relative;max-height:100%;overflow:auto;--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.sp-pickbox .sp-invhead b{font-size:26px;}
.sp-pickq{width:100%;background:var(--k-field);color:var(--sp-ink);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;padding:6px 4px;font-size:15px;font-family:inherit;margin:2px 0 6px;}
.sp-pickq:focus{outline:none;border-bottom-color:var(--sp-red);}
.sp-pickall{display:flex;align-items:center;gap:8px;font-size:13.5px;font-style:italic;color:var(--k-muted3);margin:4px 2px 4px;cursor:pointer;}
.sp-pickall input{width:18px;height:18px;accent-color:#1f1c1a;margin:0;}
.sh-picker{position:absolute;}
.sp-pickcard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:flex-start;justify-content:center;background:rgba(20,15,10,.45);padding:14px 10px;overflow:auto;}
.sp-pickcard .gx-back.sp-paper{width:min(380px,100%);margin-top:6vh;font-family:'SheetBask','Libre Baskerville',Georgia,serif;color:var(--sp-ink);--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.sp-pickbox .gx-tile .gx-name{-webkit-line-clamp:3;overflow-wrap:normal;word-break:normal;hyphens:none;font-size:11.5px;line-height:1.08;}
.sp-pickbox .gx-tile .gx-sym{max-height:38%;}
.sp-pickbox .gx-tile .gx-name.gx-long{font-size:9.5px;}
.sp-pickbox .gx-tile .gx-name.gx-longer{font-size:8.3px;}

/* ---- Combat windows as paper cards (like the printed adversary cards; js/combat.js) ---- */
.cwp.cwcard{width:300px;max-width:calc(100vw - 16px);max-height:calc(100vh - 110px);overflow:auto;overscroll-behavior:contain;
  --cr:var(--k-red);--ci:var(--k-ink);--cb:#6b4a2e;
  background:var(--k-field);color:var(--ci);border:none;border-radius:12px;padding:6px 6px 8px;
  box-shadow:0 10px 30px rgba(0,0,0,.55),inset 0 0 0 3px var(--k-field),inset 0 0 0 4.5px var(--cr),inset 0 0 0 7px var(--k-field),inset 0 0 0 7.8px rgba(199,53,56,.5);
  font-family:'SheetBask','Libre Baskerville',Georgia,serif;}
.cwp.cwcard .cw-info{display:none;}
.cwcard .cw-header{padding:8px 8px 2px 10px;gap:5px;}
.cwcard .cw-grip{color:rgba(199,53,56,.55);}
.cwcard .cw-name{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  font-size:14px;color:var(--cb);border-bottom:1px dashed rgba(199,53,56,.35);padding:1px 0;}
.cwcard .cw-name:focus{border-bottom-color:var(--cr);}
.cwcard .cw-header button{border:1px solid rgba(199,53,56,.5);background:var(--k-field);color:var(--cr);width:22px;height:22px;}
.cwcard .cw-header button:hover{background:var(--cr);color:#fff;}
.cwcard .cw-cardtop{display:flex;align-items:flex-start;gap:8px;padding:0 10px 4px;}
.cwcard .cw-cardtxt{flex:1 1 auto;min-width:0;}
.cwcard .cw-feat{font-size:12px;color:var(--ci);margin-top:3px;}
.cwcard .cw-subtype{padding:2px 0 0;font-size:10.5px;color:var(--k-muted2);font-style:italic;letter-spacing:0;}
.cwcard .cw-heroline{padding:2px 10px 6px;}
.cwcard .cw-herotype{color:var(--k-muted2);font-style:italic;}
.cwcard .cw-photo-btn{background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--cr);border-radius:12px;}
.cwcard .cw-conditions{padding:2px 10px 6px;}
.cwcard .cw-cond{background:var(--k-field);border:1px solid rgba(199,53,56,.45);color:#8a5a50;border-radius:14px;font-family:inherit;font-size:11.5px;}
.cwcard .cw-cond[data-cond="wound"].active{background:var(--cr);border-color:var(--cr);color:#fff;}
.cwcard .cw-cond[data-cond="weary"].active{background:#1f1c1a;border-color:#1f1c1a;color:#fff;}
.cwcard .cw-cond[data-cond="miserable"].active{background:#5b4a7a;border-color:#5b4a7a;color:#fff;}
/* widget tokens (js/combat.js kind 'lmw'): Foe switch — on, the token fights the Company; off, an NPC ally */
.cw-foe{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:#8a5a50;cursor:pointer;user-select:none;-webkit-user-select:none;padding:0 2px;}
.cw-foe input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.cw-foe-sw{position:relative;width:28px;height:16px;border-radius:8px;background:var(--k-field);border:1px solid rgba(199,53,56,.55);box-sizing:border-box;transition:background .15s;}
.cw-foe-sw::after{content:'';position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:rgba(199,53,56,.6);transition:left .15s,background .15s;}
.cw-foe input:checked+.cw-foe-sw{background:var(--cr);border-color:var(--cr);}
.cw-foe input:checked+.cw-foe-sw::after{left:14px;background:#fff;}
.cw-foe input:focus-visible+.cw-foe-sw{outline:2px solid var(--cr);outline-offset:1px;}
.cg-feat{font-size:.92em;color:var(--k-muted2);}
/* diamonds */
.cwcard .cw-dias{display:grid;grid-template-columns:repeat(5,1fr);gap:4px 2px;padding:2px 6px 8px;}
.cwcard .cw-dias .cw-stat{align-items:center;gap:1px;min-width:0;}
.cwcard .cw-stat label{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:8.5px;letter-spacing:.02em;color:var(--cr);
  text-transform:uppercase;white-space:nowrap;text-align:center;}
.cwcard .cw-dia{position:relative;width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:2px 0;}
.cwcard .cw-dia::before{content:'';position:absolute;left:7px;top:7px;width:30px;height:30px;transform:rotate(45deg);
  border:1.6px solid var(--cr);background:var(--k-field);box-shadow:0 0 0 2px var(--k-field),0 0 0 2.8px rgba(199,53,56,.35);}
.cwcard .cw-dia>*{position:relative;z-index:1;}
.cwcard .cw-val{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:16px;color:var(--ci);min-width:0;}
.cwcard .cw-val:hover{background:rgba(199,53,56,.08);}
.cwcard .cw-dia .cw-num{width:34px;text-align:center;background:transparent;border:none;padding:0;font-family:'Libre Baskerville',Georgia,serif;
  font-weight:700;font-size:15px;color:var(--ci);-moz-appearance:textfield;}
.cwcard .cw-dia .cw-num::-webkit-inner-spin-button,.cwcard .cw-dia .cw-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.cwcard .cw-dia .cw-num:focus{outline:1px dashed var(--cr);}
.cwcard .cw-val-edit{width:34px;background:var(--k-field);border:1px solid var(--cr);color:var(--ci);text-align:center;}
.cwcard .cw-counter{gap:2px;justify-content:center;}
.cwcard .cw-counter button{width:17px;height:17px;border-radius:50%;border:1px solid rgba(199,53,56,.5);background:var(--k-field);color:var(--cr);
  font-size:12px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;}
.cwcard .cw-counter button:hover{background:var(--cr);color:#fff;}
.cwcard .cw-max{font-size:9.5px;color:var(--k-muted2);white-space:nowrap;}
.cwcard .cw-nomax{width:2px;}
.cwcard .cw-al{flex:0 0 auto;align-items:center;gap:0;}
.cwcard .cw-al label{font-size:7.5px;}
/* lower half: proficiencies and Fell Abilities */
.cwcard .cw-cardbody{padding:0 12px 4px;}
.cwcard .cw-info-sec h4{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.04em;color:var(--cr);margin:4px 0 3px;}
.cwcard .cw-prof{font-size:12.5px;line-height:1.4;color:var(--ci);}
.cwcard .cw-fell{font-size:12.5px;line-height:1.42;color:var(--ci);text-indent:.9em;margin-bottom:3px;}
.cwcard .cw-fell-name{color:var(--ci);font-style:italic;font-weight:700;}
.cwcard .cw-fell-empty{color:var(--k-muted2);}
.cwcard .cw-fell.cw-fell-fold{text-indent:0;margin-bottom:2px;border-bottom:1px solid rgba(184,67,63,.18);}
.cwcard .cw-fell-fold summary{cursor:pointer;list-style:none;padding:4px 0;display:flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent;}
.cwcard .cw-fell-fold summary::-webkit-details-marker{display:none;}
.cwcard .cw-fell-fold summary::before{content:'\25B8';font-style:normal;font-size:10px;color:var(--cr);transition:transform .15s;}
.cwcard .cw-fell-fold[open] summary::before{transform:rotate(90deg);}
.cwcard .cw-fell-text{padding:0 0 5px 16px;font-style:normal;font-weight:400;}
.cwcard .cw-cardfoot{display:flex;justify-content:space-between;align-items:baseline;padding:6px 12px 2px;}
.cwcard .cw-cardfoot span{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cb);}
.cwcard .cw-cardfoot em{font-size:10px;color:var(--k-muted2);}
.cwp.cwcard.active-turn{box-shadow:0 0 0 3px #e0b865,0 10px 30px rgba(0,0,0,.55),inset 0 0 0 3px var(--k-field),inset 0 0 0 4.5px var(--cr),inset 0 0 0 7px var(--k-field),inset 0 0 0 7.8px rgba(199,53,56,.5);}
.cwcard .cw-fell,.cwcard .cw-prof{font-size:11.5px;}
.cwp.cwcard.hero .cw-counter{flex-wrap:wrap;row-gap:1px;}
.cwp.cwcard.hero .cw-max{order:-1;flex:1 1 100%;text-align:center;line-height:1.1;}
.cwp.cwcard.hero .cw-nomax{display:none;}
.cwp.cwcard.hero .cw-counter button{margin:0 1px;}

/* ---- Characters compendium in the paper style; a character opens as a book-style card (js/characters.js) ---- */
.charcomp-panel{--cr:#b8433f;--ci:var(--k-ink2);--cg:var(--k-grey);background:var(--k-paper);color:var(--ci);border:none;border-radius:6px;
  box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--cr),inset 0 0 0 7px var(--k-paper),inset 0 0 0 7.8px rgba(184,67,63,.45);
  font-family:'SheetBask','Libre Baskerville',Georgia,serif;padding:6px;}
.charcomp-head{border-bottom:1px solid rgba(184,67,63,.35);padding:10px 10px 8px 12px;}
.charcomp-title{font-family:'Aniron','SheetUncial',serif;font-weight:700;font-size:24px;color:var(--cr);text-transform:lowercase;line-height:1.1;}
.charcomp-close{border:1px solid rgba(184,67,63,.5);color:var(--cr);background:var(--k-field);border-radius:50%;}
.charcomp-close:hover{background:var(--cr);color:#fff;}
.charcomp-filters{border-bottom:1px solid rgba(184,67,63,.35);}
.charcomp-search,.charcomp-selects select{background:var(--k-field);color:var(--ci);border:none;border-bottom:1px solid rgba(184,67,63,.5);border-radius:0;}
.charcomp-search:focus,.charcomp-selects select:focus{outline:none;border-bottom-color:var(--cr);}
.charcomp-newbtn{background:var(--k-field);border:1px dashed rgba(184,67,63,.6);color:var(--cr);font-style:italic;}
.charcomp-newbtn:active{background:rgba(184,67,63,.08);}
.charcomp-scope{background:var(--cg);border-bottom:1px solid rgba(184,67,63,.3);color:var(--ci);}
.charcomp-clear{color:var(--cr);}
.charcomp-empty{color:var(--k-muted2);font-style:italic;}
.charcomp-row{border-bottom:1px solid rgba(184,67,63,.18);}
.charcomp-row.hl{background:rgba(184,67,63,.08);}
.charcomp-rowhead:hover .charcomp-name{color:var(--cr);}
.charcomp-name{color:var(--ci);font-style:italic;font-size:14.5px;}
.charcomp-loc{color:var(--k-muted2);}
.charcomp-tag{border-color:rgba(184,67,63,.35);color:#8a5a50;background:var(--k-field);}
.charcomp-tag.role-ally{border-color:#6f8f5e;color:#4f6f3e;}
.charcomp-tag.role-antagonist{border-color:var(--cr);color:var(--cr);}
.charcomp-tag.role-wildcard{border-color:#7a5a9a;color:#5f3f80;}
.charcomp-tag.charcomp-patron{border-color:#a8883a;color:#6b5320;background:#f7efd9;}
.charcomp-tag.charcomp-tag-custom{border-color:#5c8a47;color:#3f6b30;background:#eef6e9;}
.charcomp-panel .ct-builder{border-color:rgba(184,67,63,.35);background:var(--cg);}
.charcomp-panel .ct-brow{color:var(--cr);}
.charcomp-panel .ct-brow input[type="text"],.charcomp-panel .ct-brow select,.charcomp-panel .ct-brow textarea{background:var(--k-field);color:var(--ci);border:none;border-bottom:1px solid rgba(184,67,63,.5);border-radius:0;}
.charcomp-panel .ct-btn{background:var(--k-field);border:1px solid rgba(184,67,63,.5);color:var(--cr);}
.charcomp-panel .ct-btn.ct-primary{background:var(--cr);color:#fff;border-color:var(--cr);}
.charcomp-panel .ct-err{color:var(--cr);}
/* the card */
.charcomp-cardwrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:flex-start;justify-content:center;padding:10px;
  background:rgba(59,51,46,.35);border-radius:6px;overflow:auto;}
.charcomp-card{position:relative;width:100%;background:var(--k-paper);border-radius:6px;padding:16px 16px 12px;margin:auto 0;
  box-shadow:0 10px 30px rgba(0,0,0,.45),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--cr),inset 0 0 0 7px var(--k-paper),inset 0 0 0 7.8px rgba(184,67,63,.45);
  animation:gxOpen .18s ease;}
.charcomp-card::before{content:'';display:block;height:2px;margin:-2px 0 10px;background:linear-gradient(90deg,transparent,var(--cr) 8%,var(--cr) 92%,transparent);opacity:.7;}
.charcomp-cardx{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:1px solid rgba(184,67,63,.5);background:var(--k-field);
  color:var(--cr);font-size:18px;line-height:1;cursor:pointer;padding:0;}
.charcomp-cardx:hover{background:var(--cr);color:#fff;}
.charcomp-cname{font-style:italic;font-size:22px;line-height:1.2;color:var(--cr);padding-right:34px;margin-bottom:3px;}
.charcomp-cloc{font-size:12px;color:var(--k-muted2);margin-bottom:4px;}
.charcomp-cdesc{font-size:14px;line-height:1.6;color:var(--ci);margin:10px 0 0;}
.charcomp-card .charcomp-secret{color:#8a3a36;font-style:italic;}
.charcomp-cbox{background:var(--cg);margin:14px -4px 0;padding:8px 12px;font-size:14px;color:var(--ci);}
.charcomp-cbox>div{padding:5px 0;}
.charcomp-cbox>div+div{border-top:1px solid rgba(59,51,46,.18);}
.charcomp-cbox b{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--cr);margin-right:4px;}
.charcomp-card::after{content:'';display:block;height:2px;margin:12px 0 0;background:linear-gradient(90deg,transparent,var(--cr) 8%,var(--cr) 92%,transparent);opacity:.7;}
.charcomp-card .charcomp-actions{margin-top:12px;}
.charcomp-card .tip-link{background:var(--k-field);border:1px solid rgba(184,67,63,.5);color:var(--cr);}
.charcomp-card .ct-icon{background:var(--k-field);border:1px solid rgba(184,67,63,.5);color:var(--cr);border-radius:12px;padding:3px 10px;}
.charcomp-panel{position:fixed;}
.charcomp-card .ct-icon{width:auto;height:auto;min-width:32px;min-height:28px;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:4px;}

/* ---- older iPhones (iOS 14 and below) ----
   Never use "inset:" (Safari < 14.1 ignores it); use top/right/bottom/left. aspect-ratio needs Safari 15: without
   it cards collapse, so core.js adds html.no-ar there. */
html.no-ar .gx-card::before{content:'';display:block;padding-top:139.33%;}
html.no-ar .gx-tile::before{padding-top:100%;}
html.no-ar .gx-empty{min-height:150px;}
html.no-ar .gx-grid .gx-empty{min-height:0;height:100px;}
html.no-ar .gx-grid .tl-ph{height:100px!important;}
html.no-ar .gx-mini{height:80px;}
html.no-ar .gx-tile .gx-glyph .ii{height:34px;}

/* ---- layering: anything opened on purpose sits above the floating combat cards (#combatLayer, z 35), else menus
   under a card can't be tapped on a phone. ---- */
#tip{z-index:37;}
#loreBackdrop{z-index:37;}
#loreTab,#loreTabRight,.offmap-btn,.charcomp-btn{z-index:37;}
#lorePanel,#lorePanelRight,.offmap-panel,.charcomp-panel,#talePanel{z-index:38;}
#overflowMenu,#layers,#mapMenu,#musicPanel,#palette{z-index:39;}
#journalPanel{z-index:36;} /* its buttons (Clear, End session) were unreachable under a combat card */
#sheetPanel{z-index:39;} /* above the drawers, side tabs and corner buttons */
#overflowMenu,#layers,#mapMenu,#musicPanel,#palette{z-index:41;} /* toolbar menus open over the sheet too */

/* ---- Character Sheet pop-out (js/sheet.js applyPop) ---- */
.sh-grip,.sh-dockgrip{display:none;}
#sheetPanel.pop{z-index:36;border:1px solid #6b5a3a;border-radius:10px;box-shadow:0 14px 44px rgba(0,0,0,.65);overflow:hidden;
  resize:both;min-width:300px;min-height:220px;}
/* header: row 1 = grip, hero tabs, zoom, pop-in, close; row 2 = the sheet's tools (scrolls sideways if narrow) */
#sheetPanel.pop .sh-head{flex-wrap:wrap;cursor:move;touch-action:none;row-gap:4px;}
#sheetPanel.pop .sh-grip{order:0;}
#sheetPanel.pop .inv-tabs{order:1;flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
#sheetPanel.pop .inv-tabs::-webkit-scrollbar,#sheetPanel.pop .sh-tools::-webkit-scrollbar{display:none;}
#sheetPanel.pop .sh-popbtn{order:3;flex:0 0 auto;}
#sheetPanel.pop #shClose{order:4;flex:0 0 auto;}
#sheetPanel.pop .sh-tools{order:5;flex:1 1 100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;cursor:default;}
#sheetPanel.pop .sh-tools .hp-chips{flex:0 0 auto;flex-wrap:nowrap;} /* one scrolling row: the chips mustn't wrap into a column */
#sheetPanel.pop .sh-tools .hp-chip{white-space:nowrap;}
#sheetPanel.pop .sh-grip{display:flex;align-items:center;flex:0 0 auto;color:#8a7a5c;cursor:move;padding:0 2px;}
#sheetPanel.pop .sh-grip .ii{width:16px;height:16px;}
.sh-popbtn .ii{width:15px;height:15px;}
/* phone width: docked to the bottom, full width, handle on top */
#sheetPanel.pop.dock{z-index:37;resize:none;border-radius:12px 12px 0 0;border-bottom:none;min-width:0;}
#sheetPanel.pop.dock .sh-head{cursor:default;touch-action:pan-x;}
#sheetPanel.pop.dock .sh-grip{display:none;}
#sheetPanel.pop.dock .sh-dockgrip{display:flex;justify-content:center;align-items:center;flex:0 0 auto;height:18px;cursor:ns-resize;touch-action:none;}
#sheetPanel.pop.dock .sh-dockgrip span{width:44px;height:5px;border-radius:3px;background:#6b5a3a;}
body.sheet-dock .offmap-btn,body.sheet-dock .charcomp-btn{display:none;}
@media print{body.print-sheet #sheetPanel{width:auto!important;height:auto!important;left:auto!important;top:auto!important;resize:none!important;box-shadow:none!important;border-radius:0!important;}}

/* ---- Fellowship Phase, Council and the combat guide in the paper + red ink style (class .pp) ---- */
.pp{--pr:var(--k-red);--pi:var(--k-ink);--pm:var(--k-muted);--pbg:var(--k-paper);--pf:var(--k-field);--pg:var(--k-grey);--pok:#3f6b30;--pwarn:#a3521f;}
.modal-box.pp,.cg.pp{background:var(--pbg);color:var(--pi);border:none;border-radius:6px;
  box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--pbg),inset 0 0 0 4.5px var(--pr),inset 0 0 0 7px var(--pbg),inset 0 0 0 7.8px rgba(199,53,56,.5);
  font-family:'SheetBask','Libre Baskerville',Georgia,serif;}
.modal-box.pp{padding:22px 24px;}
.modal-box.pp h2{font-family:'Aniron','SheetUncial',serif;font-weight:700;font-size:26px;color:var(--pr);text-transform:lowercase;letter-spacing:0;line-height:1.1;margin-bottom:8px;}
.pp .modal-close{top:14px;right:14px;width:30px;height:30px;border:1px solid rgba(199,53,56,.5);border-radius:50%;background:var(--pf);color:var(--pr);}
.pp .modal-close:hover{background:var(--pr);color:#fff;}
.pp .modal-close .icon{width:15px;height:15px;}
.pp .modal-sub,.pp .st-hint,.pp .cg-p{color:var(--pm);}
.pp .modal-sub{font-style:italic;font-size:12.5px;}
.pp .st-hint{font-size:12px;}
.pp .st-h3,.pp.cg h4,.pp .cg h4{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pr);}
.pp .fp-title{margin-top:6px!important;}
/* step pills */
.pp .fp-step{border:1px solid rgba(199,53,56,.4);color:var(--pm);background:var(--pf);font-family:inherit;}
.pp .fp-step.done{color:var(--pr);border-color:rgba(199,53,56,.6);}
.pp .fp-step.on{background:var(--pr);border-color:var(--pr);color:#fff;}
/* rows, fields, buttons */
.pp .es-row,.pp .cg-row{color:var(--pi);border-bottom-color:rgba(199,53,56,.18);}
.pp .es-row input,.pp .cg-row input{accent-color:#1f1c1a;}
.pp .es-row em,.pp .es-n{color:var(--pm);}
.pp .fp-lbl{color:var(--pm);font-style:italic;font-size:12px;}
.pp .fp-lbl select,.pp .fp-other,.pp .fp-und,.pp.cg select,.pp .cc-hand{background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;font-family:inherit;}
.pp .fp-lbl select:focus,.pp .fp-other:focus,.pp .fp-und:focus,.pp.cg select:focus{outline:none;border-bottom-color:var(--pr);}
.pp .eye-btn,.pp .cg-b{background:var(--pf);border:1px solid rgba(199,53,56,.55);color:var(--pr);border-radius:14px;font-family:inherit;}
.pp .eye-btn:hover,.pp .cg-b:hover{background:rgba(199,53,56,.08);}
.pp .eye-btn:active,.pp .cg-b:active{background:rgba(199,53,56,.16);}
.pp .fp-primary,.pp .cg-b.cg-go{background:var(--pr)!important;border-color:var(--pr)!important;color:#fff!important;}
.pp .fp-primary:hover,.pp .cg-b.cg-go:hover{background:#a92b2e!important;}
.pp .cg-b.on{background:rgba(199,53,56,.12);border-color:var(--pr);color:var(--pr);}
.pp .cg-b:disabled{opacity:.45;}
.pp .fp-nav{border-top:1px solid rgba(199,53,56,.25);padding-top:12px;}
/* boxes */
.pp .fp-hero,.pp .cg-box,.pp .fp-summary,.pp .cc-result{background:var(--pg);border:none;border-radius:4px;color:var(--pi);}
.pp .fp-hname{color:var(--pi);font-weight:700;}
.pp .fp-hname em{color:var(--pr);}
.pp .fp-pts{color:var(--pm);}.pp .fp-pts b{color:var(--pr);}
.pp .fp-und-d{color:var(--pm);font-style:italic;}
.pp .fp-auto{color:var(--pok);}.pp .fp-auto.no{color:var(--pwarn);}
/* council */
.pp .cc-chip{border-color:rgba(199,53,56,.35);color:var(--pm);background:var(--pf);}
.pp .cc-chip b{color:var(--pi);}
.pp .cc-chip.ok{border-color:var(--pok);}.pp .cc-chip.ok b{color:var(--pok);}
.pp .cc-or,.pp .cc-left{color:var(--pm);}
.pp .cc-result.ok{box-shadow:inset 3px 0 0 var(--pok);}.pp .cc-result.no{box-shadow:inset 3px 0 0 var(--pr);}
.pp .cc-result em{color:var(--pm);}
.pp .cc-list{color:var(--pi);}
.pp .cc-list li em{color:var(--pm);}
.pp .cc-list li.ok b{color:var(--pok);}.pp .cc-list li.no b{color:var(--pr);}
.pp .cc-x{color:var(--pm);}.pp .cc-x:hover{color:var(--pr);}
.pp .cc-out{font-family:'Aniron','SheetUncial',serif;font-weight:700;text-transform:lowercase;font-size:24px;background:var(--pf);color:var(--pi);border:1px solid rgba(199,53,56,.4);border-radius:4px;}
.pp .cc-out.cc-success{border-color:var(--pok);color:var(--pok);}
.pp .cc-out.cc-disaster{border-color:var(--pr);color:var(--pr);}
.pp .cc-out.cc-short{border-color:var(--pwarn);color:var(--pwarn);}
/* combat guide */
.cg.pp .cg-head{background:var(--pbg);border-bottom:1px solid rgba(199,53,56,.35);padding:10px 12px 8px;}
.cg.pp .cg-head span{font-family:'Aniron','SheetUncial',serif;font-weight:700;font-size:18px;color:var(--pr);text-transform:lowercase;}
.cg.pp .cg-head em{color:var(--pm);font-style:italic;}
.cg.pp .cg-x{width:26px;height:26px;border:1px solid rgba(199,53,56,.5);border-radius:50%;background:var(--pf);color:var(--pr);display:flex;align-items:center;justify-content:center;}
.cg.pp .cg-x:hover{background:var(--pr);color:#fff;}
.cg.pp .cg-body{padding:6px 12px 12px;}
.pp .cg-em{color:var(--pok);}.pp .cg-warn{color:var(--pwarn);}.pp .cg-res{color:var(--pi);}
.pp .cg-tag{color:var(--pr);}
.pp .cg-hero{border-bottom-color:rgba(199,53,56,.2);}
.pp .cg-det summary{color:var(--pr);}
.pp .cg-line b{color:var(--pi);}
.cg.pp{padding:8px;} /* keep the sticky header inside the double red border */
.cg.pp .cg-head{top:0;}
.pp .cc-out{font-size:20px;line-height:1.2;}

/* ---- paper + red ink (.pp): drawers, roll popup, Journal, Tale of Years panel, Off the map, the modals, sheet's
   Starting values / Portrait box, sheet header / pop-out frame. Map chrome stays dark for contrast: toolbar, strips,
   side tabs, corner buttons, menus, tooltips. ---- */
.pp .lore-section-heading,.pp .oracle-heading,.pp .recent-rolls .rr-title,.pp .gen-opts-row-label{
  font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--pr);}
/* drawers: paper, a double red rule down the inner edge */
#lorePanel.pp,#lorePanelRight.pp{background:var(--pbg);color:var(--pi);font-family:'SheetBask','Libre Baskerville',Georgia,serif;border:none;}
#lorePanel.pp{padding-right:9px;box-shadow:6px 0 24px rgba(0,0,0,.45),inset -3px 0 0 var(--pbg),inset -4.5px 0 0 var(--pr),inset -7px 0 0 var(--pbg),inset -7.8px 0 0 rgba(199,53,56,.5);}
#lorePanelRight.pp{padding-left:9px;box-shadow:-6px 0 24px rgba(0,0,0,.45),inset 3px 0 0 var(--pbg),inset 4.5px 0 0 var(--pr),inset 7px 0 0 var(--pbg),inset 7.8px 0 0 rgba(199,53,56,.5);}
.pp .lore-group,.pp .recent-rolls,.pp .lore-group-solo,.pp .table-btn{border-color:rgba(199,53,56,.2);}
.pp .oracle-heading{border-top-color:rgba(199,53,56,.2);}
.pp .lore-toggle,.pp .table-btn{color:var(--pi);font-family:inherit;font-size:14px;letter-spacing:0;}
.pp .lore-toggle.expanded{color:var(--pr);}
.pp .lore-toggle .chev,.pp .recent-rolls .rr-header .chev{color:var(--pr);}
.pp .table-btn:active,.pp .lore-toggle:active{background:rgba(199,53,56,.07);}
.pp .lore-item{background:var(--pf);border:1px solid rgba(199,53,56,.3);color:var(--pi);font-family:inherit;border-radius:3px;}
.pp .lore-item:hover{border-color:rgba(199,53,56,.65);}
.pp .lore-item:active{background:rgba(199,53,56,.1);}
.pp .oracle-select-row select{background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;font-family:inherit;}
.pp .oracle-select-row select:focus{outline:none;border-bottom-color:var(--pr);}
.pp .fortune-row .table-btn{background:var(--pf);border:1px solid rgba(199,53,56,.5);color:var(--pr);border-radius:14px;font-size:12px;}
.pp .fortune-row .table-btn:active{background:rgba(199,53,56,.14);}
.pp .fortune-set .set-label,#lorePanel.pp.show-all .lore-toggle .set-suffix{color:var(--pm);font-style:italic;}
.pp .show-all-btn{background:var(--pf);border-color:rgba(199,53,56,.45);color:var(--pm);font-family:inherit;}
.pp .show-all-btn[aria-pressed="true"]{background:var(--pr);border-color:var(--pr);color:#fff;}
.pp .recent-rolls .rr-empty{color:var(--pm);font-family:inherit;}
.pp .recent-rolls .rr-item,.pp .recent-rolls .rr-peek{color:var(--pi);font-family:inherit;}
.pp .recent-rolls .rr-item .rr-cat,.pp .recent-rolls .rr-peek .rr-cat{color:var(--pr);font-style:italic;}
.pp .lore-gear-btn{color:var(--pm);}
.pp .lore-gear-btn:active{background:rgba(199,53,56,.08);}
.pp .lore-gear-btn.custom{color:#3f6b30;}
.pp .lore-gear-dot{background:var(--pr);}
.pp .gen-opts-menu{background:var(--pbg);border:1px solid rgba(199,53,56,.5);border-radius:4px;box-shadow:0 10px 26px rgba(42,33,28,.35);}
/* Custom Tables keep blue ink, so your own tables still read apart from the book's */
.pp .lore-group-custom{border-bottom-color:rgba(63,107,48,.25);}
.pp .lore-group-custom>.lore-toggle{color:var(--pi);}
.pp .lore-group-custom>.lore-toggle.expanded{color:#3f6b30;}
.pp .lore-group-custom>.lore-toggle .chev{color:#5c8a47;}
.pp .lore-group-custom .lore-item.ct-roll{background:#f2f7ee;border:1px solid #a5c295;color:#3f6b30;}
.pp .lore-group-custom .lore-item.ct-roll:active{background:#e0ecd8;}
.pp .ct-newbtn{background:#f2f7ee;border:1px dashed #5c8a47;color:#3f6b30;font-style:italic;}
.pp .ct-newbtn:active{background:#e0ecd8;}
.pp .ct-empty{color:var(--pm);font-style:italic;}
.pp .ct-icon,.pp .ct-edel{background:var(--pf);border:1px solid #a5c295;color:#3f6b30;}
.pp .ct-icon.ct-confirm{border-color:var(--pr);color:var(--pr);}
.pp .ct-builder{border-color:#a5c295;background:#f3f8ef;border-radius:4px;}
.pp .ct-brow,.pp .ct-addrow{color:#3f6b30;}
.pp .ct-brow input[type="text"],.pp .ct-brow select,.pp .ct-brow textarea,.pp .ct-einput{background:var(--k-field);color:var(--pi);border:none;border-bottom:1px solid #a5c295;border-radius:0;}
.pp .ct-brow input[type="text"]:focus,.pp .ct-brow select:focus,.pp .ct-brow textarea:focus,.pp .ct-einput:focus{outline:none;border-bottom-color:#3f6b30;}
.pp .ct-eface{color:#5c8a47;}
.pp select.ct-eto{background:var(--k-field);border:none;border-bottom:1px solid #a5c295;border-radius:0;}
.pp .ct-addrow{border-color:#a5c295;}
.pp .ct-err{color:var(--pr);}
.pp .ct-btn{background:var(--pf);border:1px solid #a5c295;color:#3f6b30;border-radius:6px;}
.pp .ct-btn.ct-primary{background:#3f6b30;border-color:#3f6b30;color:#fff;}
/* roll result popup */
#loreToast.pp{background:var(--pbg);color:var(--pi);border:none;border-radius:6px;font-family:'SheetBask','Libre Baskerville',Georgia,serif;
  box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--pbg),inset 0 0 0 4.5px var(--pr),inset 0 0 0 7px var(--pbg),inset 0 0 0 7.8px rgba(199,53,56,.5);}
#loreToast.pp .cat{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:10.5px;letter-spacing:.1em;color:var(--pr);}
#loreToast.pp .txt{color:var(--pi);}
/* Journal and Tale of Years panels: paper with a double red rule along the top */
#talePanel.pp .tale-chip{background:var(--pf);border-color:rgba(199,53,56,.55);color:var(--pi);}
#talePanel.pp .tale-chip.off{background:transparent;border-color:rgba(125,110,100,.4);color:var(--pm);}
#talePanel.pp .tdot{box-shadow:0 0 0 1px rgba(42,33,28,.45);}
#talePanel.pp .tale-card{background:var(--pf);border:1px solid rgba(199,53,56,.25);border-radius:4px;}
#talePanel.pp .tale-card.hl{border-color:var(--pr);box-shadow:inset 3px 0 0 var(--pr);}
#talePanel.pp .tc-f,#talePanel.pp .tc-loc,#talePanel.pp .tl-pg{color:var(--pm);font-style:italic;letter-spacing:0;}
#talePanel.pp .tc-t{color:var(--pi);font-size:15px;font-weight:700;}
#talePanel.pp .tc-b{color:var(--pi);font-family:inherit;}
#talePanel.pp .tc-meta{color:var(--pm);}
#talePanel.pp .ti-pin::before{color:var(--pr);}
#talePanel.pp .tc-st{background:var(--pf);border-color:rgba(125,110,100,.45);color:var(--pm);}
#talePanel.pp .tc-st[data-st="1"]{border-color:var(--pr);color:var(--pr);}
#talePanel.pp .tc-st[data-st="2"]{border-color:var(--pr);background:var(--pr);color:#fff;}
#talePanel.pp .tl-open,#talePanel.pp #taleAdjust,#talePanel.pp #taleScope{background:var(--pf);border:1px solid rgba(199,53,56,.5);color:var(--pr);border-radius:12px;}
#talePanel.pp .tl-open:active{background:rgba(199,53,56,.12);}
#talePanel.pp #taleAdjust.on,#talePanel.pp #taleScope.on{background:var(--pr);border-color:var(--pr);color:#fff;}
#talePanel.pp .tale-empty,#talePanel.pp #taleNote{color:var(--pm);}
/* Off the map */
.offmap-panel.pp{background:var(--pbg);color:var(--pi);border:none;border-radius:6px;padding:6px;font-family:'SheetBask','Libre Baskerville',Georgia,serif;
  box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--pbg),inset 0 0 0 4.5px var(--pr),inset 0 0 0 7px var(--pbg),inset 0 0 0 7.8px rgba(199,53,56,.5);}
.pp .offmap-head{border-bottom:1px solid rgba(199,53,56,.35);padding:10px 10px 8px 12px;}
.pp .offmap-title{font-family:'Aniron','SheetUncial',serif;font-weight:700;font-size:22px;color:var(--pr);text-transform:lowercase;line-height:1.1;}
.pp .offmap-close{border:1px solid rgba(199,53,56,.5);color:var(--pr);background:var(--pf);border-radius:50%;}
.pp .offmap-close:hover{background:var(--pr);color:#fff;}
.pp .offmap-group{border-bottom-color:rgba(199,53,56,.2);}
.pp .offmap-gtoggle{color:var(--pi);}
.pp .offmap-gtoggle.open{color:var(--pr);}
.pp .offmap-gcount{color:var(--pm);}
.pp .offmap-gtoggle .chev{color:var(--pr);}
.pp .offmap-item{background:var(--pf);border-left-color:rgba(125,110,100,.55);}
.pp .offmap-item.s-heard{border-left-color:var(--pr);}
.pp .offmap-item.s-found{border-left-color:#a8883a;}
.pp .offmap-item.s-reclaimed{border-left-color:var(--pok);}
.pp .offmap-name{color:var(--pi);font-style:italic;font-size:15px;}
.pp .offmap-status{background:var(--pf);border-color:rgba(125,110,100,.55);color:var(--pm);}
.pp .offmap-status.s-heard{border-color:var(--pr);color:var(--pr);}
.pp .offmap-status.s-found{border-color:#a8883a;color:#6b5320;background:#f7efd9;}
.pp .offmap-status.s-reclaimed{border-color:var(--pok);color:#fff;background:var(--pok);}
.pp .offmap-tag{color:var(--pr);}
.pp .offmap-hint{color:var(--pi);}
.pp .offmap-notebtn{color:var(--pr);}
.pp .offmap-note{background:var(--k-field);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;}
.pp .offmap-note:focus{outline:none;border-bottom-color:var(--pr);}
.offmap-panel.pp .tip-link{background:var(--pf);border:1px solid rgba(199,53,56,.5);color:var(--pr);}
.offmap-panel.pp .tip-link:active{background:rgba(199,53,56,.12);}
/* Reference Books and Backups */
.pp .book-row,.pp .backup-row{border-bottom-color:rgba(199,53,56,.18);}
.pp .book-row.pending{background:rgba(199,53,56,.08);border-radius:3px;}
.pp .book-dot{background:var(--pok);}
.pp .book-dot.off{background:transparent;border:1px solid rgba(125,110,100,.7);box-sizing:border-box;}
.pp .book-name,.pp .backup-meta{color:var(--pi);}
.pp .book-load,.pp .backup-restore{background:var(--pf);border:1px solid rgba(199,53,56,.5);color:var(--pr);border-radius:14px;font-family:inherit;}
.pp .book-load:hover,.pp .backup-restore:hover{background:rgba(199,53,56,.08);}
.pp .backup-meta .backup-reason,.pp .backups-empty{color:var(--pm);font-style:italic;}
/* Adversaries picker */
.pp .adv-search,.pp #heroName{background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;font-family:inherit;}
.pp .adv-search::placeholder,.pp #heroName::placeholder{color:var(--pm);font-style:italic;}
.pp .adv-search:focus,.pp #heroName:focus{outline:none;background:var(--k-focus);border-bottom-color:var(--pr);}
.pp .adv-cat{border-bottom-color:rgba(199,53,56,.2);}
.pp .adv-cat-toggle{color:var(--pi);font-family:inherit;}
.pp .adv-cat-toggle.expanded{color:var(--pr);}
.pp .adv-cat-toggle .chev,.pp .adv-cat-icon{color:var(--pr);}
.pp .adv-cat-photo{box-shadow:0 0 0 1px rgba(199,53,56,.5);}
.pp .adv-leaf{background:var(--pf);border:1px solid rgba(199,53,56,.3);border-radius:3px;font-family:inherit;}
.pp .adv-leaf:hover{border-color:rgba(199,53,56,.65);}
.pp .adv-leaf:active{background:rgba(199,53,56,.1);}
.pp .adv-leaf-name{color:var(--pi);}
.pp .adv-leaf-meta{color:var(--pm);font-family:inherit;}
.pp .adv-count{background:var(--pr);color:#fff;}
.pp .adv-empty{color:var(--pm);}
.pp .adv-leaf.spawned{animation:adv-spawned-pp .5s ease-out;}
@keyframes adv-spawned-pp{0%{background:rgba(199,53,56,.22);border-color:var(--pr);}100%{}}
/* Player Characters & NPCs */
.pp #heroName[readonly]{color:var(--pm);border-bottom-style:dashed;}
.pp #heroKind{border:1px solid rgba(199,53,56,.55);border-radius:14px;}
.pp .hero-kind-btn{color:var(--pr);}
.pp .hero-kind-btn.active{background:var(--pr);color:#fff;}
.pp .hero-btn{background:var(--pf);border:1px solid rgba(199,53,56,.5);color:var(--pr);border-radius:14px;}
.pp .hero-btn:active{background:rgba(199,53,56,.14);}
.pp .hero-primary{background:var(--pr);border-color:var(--pr);color:#fff;}
.pp .hero-primary:active{background:#a92b2e;}
.pp .hero-del{color:var(--pm);border-color:rgba(125,110,100,.55);}
/* Storage and End session */
.pp .st-meter{background:var(--pg);border:1px solid rgba(199,53,56,.3);}
.pp .st-fill{background:var(--pok);}
.pp .st-fill.warn{background:var(--pwarn);}
.pp .st-total,.pp .st-dev,.pp .es-scope{color:var(--pi);}
.pp .st-row{color:var(--pi);border-bottom-color:rgba(199,53,56,.18);}
.pp .st-row span:last-child{color:var(--pm);}
.pp .st-alert{color:var(--pwarn);background:#fbeee4;border-color:rgba(163,82,31,.45);}
.pp .es-scope input{accent-color:#1f1c1a;}
.pp .es-btn{background:var(--pf);border:1px solid rgba(199,53,56,.55);color:var(--pr);border-radius:14px;font-family:inherit;}
.pp .es-btn:hover{background:rgba(199,53,56,.08);}
.pp .es-btn.es-primary{background:var(--pr);border-color:var(--pr);color:#fff;}
.pp .es-btn:disabled{opacity:.4;cursor:default;}
.rs-list{margin:6px 0 10px 18px;padding:0;font-size:13px;line-height:1.55;}
.rs-input{display:block;width:100%;box-sizing:border-box;margin:12px 0;padding:8px 10px;font:inherit;font-size:16px;letter-spacing:.08em;background:var(--k-field);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.55);border-radius:0;}
.rs-input:focus{outline:none;border-bottom-color:var(--pr);}
.pp .es-btn.es-primary:hover{background:#a92b2e;}
/* the sheet's Starting values / Portrait box (js/sheet.js openInfo) */
.sh-picker .sp-infobox{width:min(560px,100%);position:relative;max-height:100%;overflow:auto;}
.sp-infobox .sp-invhead b{font-size:26px;}
.sp-infobox .sp-info p,.sp-infobox .sh-hint{color:var(--k-muted3);font-size:13px;font-style:italic;line-height:1.5;margin:2px 4px 10px;}
.sp-infobox .sp-info p b{color:var(--sp-red);}
.sp-infobox .sh-pick-list{margin:0 4px;}
.sp-infobox .sh-pick-item{border-bottom:1px solid rgba(199,53,56,.2);padding:9px 6px;}
.sp-infobox .sh-pick-item:hover,.sp-infobox .sh-pick-item:focus{background:rgba(199,53,56,.07);}
.sp-infobox .sh-pick-n{display:block;color:var(--sp-ink);font-size:15px;}
.sp-infobox .sh-pick-n b{color:var(--sp-red);font-size:16px;}
.sp-infobox .inv-btn{background:var(--k-field);border:1px solid rgba(199,53,56,.55);color:var(--sp-red);border-radius:14px;}
.sp-infobox .inv-btn:hover{background:rgba(199,53,56,.08);}
.sp-infobox .inv-btn.inv-danger{border-color:var(--k-muted2);color:var(--k-muted3);}
/* the sheet header (both modes) and the pop-out frame */
#sheetPanel .sh-head{background:var(--k-paper);border-bottom:none;padding-bottom:12px;font-family:'SheetBask','Libre Baskerville',Georgia,serif;
  box-shadow:inset 0 -3px 0 var(--k-paper),inset 0 -4.5px 0 var(--sp-red),inset 0 -7px 0 var(--k-paper),inset 0 -7.8px 0 rgba(199,53,56,.5);}
#sheetPanel .sh-head .inv-tab{background:var(--k-field);border:1px solid rgba(199,53,56,.45);color:var(--sp-red);}
#sheetPanel .sh-head .inv-tab.on{background:var(--sp-red);border-color:var(--sp-red);color:#fff;}
#sheetPanel .sh-head .inv-btn{background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--sp-red);border-radius:14px;}
#sheetPanel .sh-head .sh-tnrule input{accent-color:#1f1c1a;}
#sheetPanel .sh-head .inv-btn:hover,#sheetPanel .sh-head .inv-tab:not(.on):hover{background:rgba(199,53,56,.08);}
#sheetPanel .sh-head .inv-btn:active{background:rgba(199,53,56,.16);}
#sheetPanel .sh-head .inv-btn.inv-danger{border-color:var(--k-muted2);color:var(--k-muted3);}
/* Spend Hope / Inspired / ±d / Favoured in the sheet header: red ink like the other header buttons (lit states keep their fill) */
#sheetPanel .sh-head .hp-chip:not(.on){background:var(--k-field);border-color:rgba(199,53,56,.5);color:var(--sp-red);border-radius:14px;}
#sheetPanel .sh-head .hp-modv:not(.on){color:var(--sp-red);}
#sheetPanel .sh-head .inv-close{background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--sp-red);border-radius:50%;}
#sheetPanel .sh-head .inv-close:hover{background:var(--sp-red);color:#fff;}
#sheetPanel.pop .sh-head .sh-menu{z-index:60;}
#sheetPanel .sh-head .sh-menu{background:var(--k-paper);border:1px solid rgba(199,53,56,.5);border-radius:4px;box-shadow:0 8px 24px rgba(42,33,28,.35);}
#sheetPanel .sh-head .sh-tnrule{color:var(--sp-ink);}
#sheetPanel.pop .sh-grip{color:var(--k-muted2);}
#sheetPanel.pop{background:var(--k-paper);border:none;border-radius:6px;padding:6px;
  box-shadow:0 14px 44px rgba(0,0,0,.65),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--sp-red),inset 0 0 0 7px var(--k-paper),inset 0 0 0 7.8px rgba(199,53,56,.5);}
#sheetPanel.pop .sp-body{background:#ece6dc;}
#sheetPanel.pop.dock{border-radius:10px 10px 0 0;padding-bottom:0;}
#sheetPanel.pop.dock .sh-dockgrip span{background:rgba(199,53,56,.45);}
#lorePanelRight.pp{padding-right:max(8px,env(safe-area-inset-right,0px));}
.pp .fortune-set{padding-right:6px;}
.pp .fortune-row{gap:4px;}
.pp .fortune-row .table-btn{flex:1 1 auto;font-size:11px;padding:7px 2px;}
@media (max-width:480px){.modal-box.pp h2{font-size:23px;}}
.modal-box.pp h2{padding-right:36px;}

/* Journal: the bar (what shows when collapsed) stays dark like the side tabs; the page inside is paper,
   with the double red rule along its top edge, like the drawers' inner edge */
#journalPanel.pp #journalBody{background:var(--pbg);padding:12px 12px 12px;font-family:'SheetBask','Libre Baskerville',Georgia,serif;
  box-shadow:inset 0 3px 0 var(--pbg),inset 0 4.5px 0 var(--pr),inset 0 7px 0 var(--pbg),inset 0 7.8px 0 rgba(199,53,56,.5);}
#journalPanel.pp #journalText{background:var(--pf);color:var(--pi);border:1px solid rgba(199,53,56,.3);border-radius:3px;font-family:inherit;font-size:13.5px;line-height:1.55;}
#journalPanel.pp #journalText:focus{border-color:var(--pr);}
#journalPanel.pp #journalText::placeholder{color:var(--pm);font-style:italic;}

/* Tale of Years panel: the bar (grab + summary line, what shows when collapsed) stays dark; opened, the chips,
   event cards and buttons sit on a paper page with the double red rule along its top (#taleBody wraps them) */
#taleBody{display:none;}
#talePanel.open #taleBody{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;margin:0 -10px -8px;padding:12px 10px 8px;
  background:var(--pbg);color:var(--pi);font-family:'SheetBask','Libre Baskerville',Georgia,serif;
  box-shadow:inset 0 3px 0 var(--pbg),inset 0 4.5px 0 var(--pr),inset 0 7px 0 var(--pbg),inset 0 7.8px 0 rgba(199,53,56,.5);}

/* ---- PDF viewer: wide pages scroll fully left/right (centred flex items overflow out of reach); on phones the
   viewer fills the screen with a wrapping bar ---- */
#pdfCanvasWrap{align-items:flex-start;}
#pdfCanvasWrap .pdf-page{margin-left:auto;margin-right:auto;}
#pdfViewer.full{top:0!important;left:0!important;right:0!important;bottom:0!important;width:auto!important;height:auto!important;
  max-width:none;max-height:none;min-width:0;min-height:0;border-radius:0;border:none;resize:none;
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);}
#pdfViewer.full #pdfViewerBar{flex-wrap:wrap;row-gap:6px;gap:6px;padding:8px 10px;cursor:default;
  padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px));}
#pdfViewer.full #pdfViewerTitle{flex:1 1 calc(100% - 60px);order:0;}
#pdfViewer.full.has-toc #pdfViewerTitle{flex-basis:calc(100% - 110px);}
#pdfViewer.full #pdfToc{width:min(340px,88%);}
#pdfViewer.full #pdfViewerClose{order:1;width:40px;height:34px;}
#pdfViewer.full #pdfPageLabel,#pdfViewer.full #pdfJump,#pdfViewer.full #pdfViewerBar button:not(#pdfViewerClose){order:2;}
#pdfViewer.full #pdfViewerBar button{padding:6px 9px;min-height:34px;}
#pdfViewer.full #pdfCanvasWrap{padding:8px;}
#pdfViewer.full #pdfJump{width:48px;order:2;}
#pdfViewer.full #pdfPageLabel{order:3;margin-right:2px;}
#pdfViewer.full #pdfViewerBar button:not(#pdfViewerClose){order:4;padding:6px 8px;min-width:36px;}
#pdfViewer.full #pdfZoomReset{min-width:50px;}
#pdfViewer.full #pdfZoomIn,#pdfViewer.full #pdfZoomOut{display:none;} /* phones pinch instead; the % still resets to page width */
/* Contents button: top row, beside Close (after the order:4 rule above, so it wins) */
#pdfViewer.full #pdfViewerBar button#pdfTocBtn:not(#pdfViewerClose){order:1;width:42px;height:34px;min-width:0;padding:0;}

/* ---- combat guide: step bar (jump to Onset / Stance / Actions), Back / Next, Exit ---- */
.cg-head{flex-direction:column;align-items:stretch;gap:6px;}
.cg-headrow{display:flex;align-items:center;gap:8px;}
.cg-nav{display:flex;align-items:center;gap:6px;}
.cg-steps{flex:1 1 auto;display:flex;justify-content:center;gap:3px;}
.cg-step{border:1px solid rgba(199,53,56,.35);background:var(--pf,var(--k-field));color:var(--pm,var(--k-muted));border-radius:12px;padding:3px 8px;font-size:12px;font-family:inherit;cursor:pointer;}
.cg-step.on{background:var(--pr,var(--k-red));border-color:var(--pr,var(--k-red));color:#fff;}
.cg-step:disabled{opacity:.4;cursor:default;}
.cg-step:not(.on):not(:disabled):hover{border-color:var(--pr,var(--k-red));color:var(--pr,var(--k-red));}
.cg-navb{flex:0 0 auto;padding:3px 9px;}
.cg-exit{margin-top:12px;padding-top:8px;border-top:1px solid rgba(199,53,56,.2);text-align:center;}
.cg-exitb{background:none;border:none;color:var(--pm,var(--k-muted));font-family:inherit;font-size:12px;font-style:italic;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.cg-exitb:hover{color:var(--pr,var(--k-red));}
/* ---- token names: light text on a small dark rounded tag, so they read on any part of the map ---- */
.cw-mini-name{margin-top:4px;padding:1px 7px 2px;border-radius:9px;background:rgba(14,11,8,.86);color:#f4ead2;
  font-size:11.5px;font-weight:700;letter-spacing:.02em;line-height:15px;text-shadow:none;
  box-shadow:0 1px 4px rgba(0,0,0,.55),inset 0 0 0 1px rgba(224,184,101,.35);max-width:150px;}
.cw-mini-name:empty{display:none;}
/* ---- hero token window: four counters on one row; who the hero is (from the Character Sheet) with a
   quick-reference fold for the Blessing, Virtues and Rewards; paper-sheet heroes and NPCs fold scars & points away ---- */
.cwp.cwcard.hero .cw-stats-hero{grid-template-columns:repeat(4,1fr);}
.cwcard .cw-heroinfo{margin:4px 10px 8px;padding:6px 8px;background:var(--cg,var(--k-grey));font-size:12px;line-height:1.4;color:var(--ci,var(--k-ink2));}
.cwcard .cw-hi-row{padding:2px 0;}
.cwcard .cw-hi-row+.cw-hi-row{border-top:1px solid rgba(59,51,46,.15);}
.cwcard .cw-hi-row b,.cwcard .cw-ref-sec>b{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--cr,#b8433f);margin-right:3px;}
.cwcard .cw-ref-btn{display:block;margin:6px auto 0;background:var(--k-field);border:1px solid rgba(184,67,63,.5);color:var(--cr,#b8433f);border-radius:12px;padding:3px 10px;font-size:11.5px;font-family:inherit;cursor:pointer;}
.cwcard .cw-ref-btn[aria-expanded="true"]{background:var(--cr,#b8433f);color:#fff;}
.cwcard .cw-ref{margin-top:6px;max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.cwcard .cw-ref-sec{margin-top:6px;}
.cwcard .cw-ref-sec>b{display:block;margin-bottom:2px;}
.cwcard .cw-ref-it{font-size:11.5px;margin-bottom:4px;}
.cwcard .cw-ref-n{font-weight:700;font-style:italic;}
/* ---- Advancement: a rank raised this session can be lowered back (top filled diamond / − beside Valour, Wisdom) ---- */
.sp-pip.lw{cursor:pointer;}
.sp-pip.lw::after{content:'';position:absolute;top:1px;right:1px;bottom:1px;left:1px;transform:rotate(45deg);box-shadow:0 0 0 1.2px rgba(199,53,56,.75);pointer-events:none;}
.sp-advbtn.sp-advdown{background:var(--k-field);color:var(--k-red);box-shadow:0 0 0 1px rgba(199,53,56,.7);}
@media print{body.print-sheet .sp-pip.lw::after{display:none;}}
/* Patron: picker + advantage button share the Patron line */
.sp-patadv{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;}
/* Elf-lord reminder on the hero token */
.cwcard .cw-hi-elf{font-size:11.5px;font-style:italic;}
/* ---- Fellowship Phase: rules toggle (core / Moria solo), days, Shadow picker ---- */
.fp-rules{display:flex;margin:8px 0 6px;border:1px solid rgba(199,53,56,.55);border-radius:14px;overflow:hidden;width:max-content;max-width:100%;}
.fp-rule{background:var(--pf,var(--k-field));border:none;color:var(--pr,var(--k-red));font-family:inherit;font-size:12.5px;padding:5px 12px;cursor:pointer;}
.fp-rule.on{background:var(--pr,var(--k-red));color:#fff;}
.fp-num{width:80px;}
.fp-inline{flex-direction:row;align-items:center;gap:8px;}
.fp-inline select{width:auto;}
.fp-pts i{font-style:italic;color:var(--pok,#3f6b30);font-size:11.5px;}

/* Hope / Inspired chips (sheet header + guides) */
.hp-chips{display:inline-flex;gap:6px;flex-wrap:wrap;vertical-align:middle;}
.hp-chip{font:inherit;font-size:12.5px;color:inherit;background:transparent;border:1px solid currentColor;border-radius:8px;padding:4px 10px;cursor:pointer;min-height:30px;}
.hp-chip.on{background:#d9a441;color:#1b150e;border-color:#b98524;font-weight:600;}
.hp-chip:disabled{opacity:.45;cursor:default;}

/* 3D dice (beta), js/dice3d.js */
#dice3d{position:fixed;inset:0;z-index:9000;pointer-events:none;display:none;opacity:0;transition:opacity .45s;--ink:#a8433f;--paper:#e6dcc9;}
#dice3d.show{display:block;}
.d3-slot{position:absolute;width:104px;height:104px;margin:-52px 0 0 -52px;perspective:460px;display:flex;align-items:center;justify-content:center;}
.d3-shadow{position:absolute;bottom:12px;left:50%;width:56px;height:12px;margin-left:-28px;border-radius:50%;background:rgba(0,0,0,.5);filter:blur(5px);}
.d3-toss{position:relative;width:0;height:0;transform-style:preserve-3d;}
.d3-die{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d;will-change:transform;}
.d3-face{position:absolute;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:radial-gradient(circle at 42% 38%,#f1e8d6,var(--paper) 62%,#d6c8ad);}
.d3-face svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.d3-face::after{content:"";position:absolute;inset:0;background:#2b1a10;opacity:var(--sh,0);pointer-events:none;}
.d3-suc .d3-face{border-radius:7px;box-shadow:inset 0 0 0 1px rgba(120,95,60,.35);}

/* chooser for adding rolled gear to a hero's inventory */
.gp-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:flex;align-items:center;justify-content:center;background:rgba(20,15,10,.55);padding:14px;}
.gp-box{width:min(320px,100%);background:var(--k-field);color:var(--k-ink);border:1px solid rgba(199,53,56,.5);border-radius:10px;padding:14px;font-family:'Libre Baskerville',Georgia,serif;display:flex;flex-direction:column;gap:8px;}
.gp-h{font-weight:700;color:var(--k-red);text-align:center;margin-bottom:2px;}
.gp-b{background:none;border:1px solid rgba(199,53,56,.5);border-radius:8px;padding:10px;font:inherit;font-size:15px;color:inherit;cursor:pointer;}
.gp-b:active,.gp-b:focus{background:rgba(199,53,56,.08);}
.gp-x{border-color:transparent;font-size:13px;opacity:.7;}

/* Moria Solo Play switch (js/moria-mode.js) */
.eye-rule,.fp-rule{cursor:default;}
body:not(.moria-solo) .lore-group-solo{display:none !important;}

/* ---- Allies (Moria solo play): roster tiles and Ally Card, in the paper style ---- */
.al-box{max-width:560px;width:calc(100vw - 24px);max-height:88vh;overflow:auto;}
.al-bar{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 4px;}
.al-bar input[type=search]{flex:1 1 100%;background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(var(--prr),.55);font:inherit;font-size:14px;padding:6px 2px;}
.al-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;}
.al-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 9px;background:var(--pg);border:1px solid rgba(var(--prr),.25);border-radius:6px;color:var(--pi);font:inherit;cursor:pointer;text-align:center;}
.al-tile.mis{border-color:var(--pr);}
.al-tile.out{opacity:.6;}
.al-pic{width:64px;height:64px;border-radius:50%;overflow:hidden;background:var(--pf);border:1px solid rgba(var(--prr),.35);display:flex;align-items:center;justify-content:center;color:var(--pm);}
.al-pic img{width:100%;height:100%;object-fit:cover;}
.al-pic .ii{width:34px;height:34px;}
.al-nm{font-weight:700;font-size:13px;line-height:1.2;}
.al-tt{font-size:11px;color:var(--pr);font-style:italic;}
.al-gf{font-size:11px;color:var(--pm);}
.al-star{position:absolute;top:5px;left:6px;color:var(--pr);}
.al-pips{display:flex;gap:3px;margin-top:2px;}
.al-pip{font-size:10px;font-weight:700;min-width:16px;height:16px;line-height:16px;border-radius:8px;background:var(--pf);border:1px solid var(--pm);color:var(--pm);padding:0 3px;}
.al-pip.ser{background:var(--pr);border-color:var(--pr);color:#fff;}
.al-outl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--pr);}
.al-weary{font-size:10px;font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:#fff;background:var(--pr);border-radius:8px;padding:1px 7px;margin-left:6px;}
.al-card{display:flex;flex-direction:column;gap:9px;}
.al-top{display:flex;gap:12px;align-items:flex-start;}
.al-portrait{flex:0 0 96px;width:96px;height:96px;border-radius:8px;overflow:hidden;background:var(--pg);border:1px dashed rgba(var(--prr),.55);color:var(--pm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:inherit;font-size:11px;cursor:pointer;padding:0;}
.al-portrait img{width:100%;height:100%;object-fit:cover;}
.al-portrait .ii{width:32px;height:32px;}
.al-id{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0;}
.al-in,.al-fld select,.al-fld textarea{width:100%;box-sizing:border-box;background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(var(--prr),.55);border-radius:0;font:inherit;font-size:14px;padding:6px 2px;}
.al-fld textarea{border:1px solid rgba(var(--prr),.35);border-radius:4px;padding:6px;resize:vertical;}
.al-name{font-size:17px;font-weight:700;}
.al-fld{display:flex;flex-direction:column;gap:2px;}
.al-fld>span{font-size:12px;font-style:italic;color:var(--pm);}
.al-desc{margin:-4px 0 0;font-size:12px;font-style:italic;color:var(--pm);line-height:1.4;}
.al-tags{display:flex;flex-wrap:wrap;gap:6px;}
.al-tog,.al-link{font:inherit;cursor:pointer;}
.al-tog{background:var(--pf);border:1px solid rgba(var(--prr),.55);color:var(--pr);border-radius:14px;padding:5px 11px;font-size:12px;}
.al-tog .ii{width:12px;height:12px;margin-right:4px;vertical-align:-1px;}
.al-tog.on{background:var(--pr);border-color:var(--pr);color:#fff;}
.al-link{background:none;border:none;color:var(--pm);text-decoration:underline;font-size:11px;padding:0;text-align:left;}
.al-lad{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
.al-ladh{flex:0 0 100%;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--pr);}
.al-box1{display:flex;align-items:center;gap:5px;background:none;border:none;color:var(--pi);font:inherit;font-size:12px;padding:3px 4px;cursor:pointer;}
.al-chk{width:18px;height:18px;border:1.5px solid var(--pi);border-radius:3px;display:flex;align-items:center;justify-content:center;background:var(--pf);}
.al-chk .ii{width:13px;height:13px;color:var(--pr);}
.al-box1.on .al-chk{border-color:var(--pr);}
.al-box1 i{font-style:normal;}
.al-btns{display:flex;justify-content:space-between;gap:8px;margin-top:6px;}
.al-green{color:#3f6b30!important;border-bottom-color:#3f6b30!important;}
.al-card .al-in.al-green::placeholder{color:#6f9660;}
/* ---- Mission Worksheet (Moria solo play) ---- */
#alliesModal{z-index:55;}
.cl-body details>summary{cursor:pointer;}
.cl-body .cl-add>summary{font-size:12.5px;font-style:italic;color:var(--pm);margin:4px 0;}
.cl-body .cl-aspect input{width:100%;}
.cl-body .mw-chip .al-link{padding:0 2px;margin-left:2px;}
.cl-body .cg-b.on{background:var(--pr);border-color:var(--pr);color:#fff;}
.mw-box{max-width:600px;width:calc(100vw - 24px);max-height:90vh;overflow:auto;}
.mw-body .st-h3 em{font-style:italic;text-transform:none;letter-spacing:0;font-weight:400;color:var(--pm);margin-left:4px;}
.mw-body .fp-lbl{display:flex;flex-direction:column;gap:2px;margin:6px 0;}
.mw-body .fp-und{width:100%;box-sizing:border-box;font-size:14px;padding:6px 2px;}
.mw-body textarea.fp-und{border:1px solid rgba(var(--prr),.35);border-radius:4px;padding:6px;}
.mw-line{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin:6px 0;}
.mw-stp{display:inline-flex;align-items:center;gap:6px;font-size:12px;}
.mw-stp em{font-style:italic;color:var(--pm);margin-right:2px;}
.mw-stp b{min-width:22px;text-align:center;font-size:15px;}
.mw-stp button{width:26px;height:26px;border-radius:50%;border:1px solid rgba(var(--prr),.55);background:var(--pf);color:var(--pr);font:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0;}
.mw-stp button:disabled{opacity:.35;}
.mw-chip{font-size:11.5px;border:1px solid rgba(var(--prr),.35);border-radius:12px;padding:3px 9px;color:var(--pm);background:var(--pf);}
.mw-chip.bad{background:var(--pr);border-color:var(--pr);color:#fff;}
.mw-chip em{font-style:italic;opacity:.85;margin-left:3px;}
.mw-sel{display:flex;flex-direction:column;gap:1px;font-size:11px;font-style:italic;color:var(--pm);}
.mw-sel select,.mw-sel input{background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(var(--prr),.55);font:inherit;font-size:13px;padding:4px 2px;max-width:140px;}
.mw-sel input{width:70px;}
.mw-rolls{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;}
.mw-pend{background:var(--pg);border-radius:4px;padding:10px;margin:10px 0;display:flex;flex-direction:column;gap:8px;}
.pg-btn{margin-left:4px;font-size:11px;padding:1px 8px;}
.mw-body .pp .pg-btn,.pp .pg-btn{background:var(--pf);border:1px solid rgba(var(--prr),.5);color:var(--pr);border-radius:12px;font-family:inherit;cursor:pointer;}
#mwPrint{display:none;}
@media print{
  body.print-mw,body.print-mw html{height:auto;overflow:visible;background:#fff;}
  body.print-mw>*{display:none!important;}
  body.print-mw>#mwPrint{display:block!important;}
}
.pg-row{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 8px;}
.pg-row .pg-btn{margin-left:0;}

/* ---- colours: Moria-only features are blue, homebrew is green (a created gear / inventory item is neither) ---- */
.pp{--prr:199,53,56;}
.pp.moria-blue{--pr:#2c5f94;--prr:44,95,148;--pg:#edf2f8;--pm:#5f6f80;}
.modal-box.pp.moria-blue{box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--pbg),inset 0 0 0 4.5px var(--pr),inset 0 0 0 7px var(--pbg),inset 0 0 0 7.8px rgba(44,95,148,.5);}
.moria-blue .modal-close{border-color:rgba(44,95,148,.5);}
.moria-blue .eye-btn,.moria-blue .cg-b{border-color:rgba(44,95,148,.55);}
.moria-blue .eye-btn:hover,.moria-blue .cg-b:hover{background:rgba(44,95,148,.08);}
.moria-blue .fp-primary,.moria-blue .cg-b.cg-go{background:var(--pr)!important;border-color:var(--pr)!important;}
.moria-blue .fp-primary:hover,.moria-blue .cg-b.cg-go:hover{background:#244f7d!important;}
.moria-blue .fp-step{border-color:rgba(44,95,148,.4);}
.moria-blue .fp-step.done{border-color:rgba(44,95,148,.6);}
.moria-blue .fp-nav{border-top-color:rgba(44,95,148,.25);}
.moria-blue .fp-lbl select,.moria-blue .fp-other,.moria-blue .fp-und{border-bottom-color:rgba(44,95,148,.55);}
.moria-blue .es-row{border-bottom-color:rgba(44,95,148,.18);}
.moria-blue .pg-btn{border-color:rgba(44,95,148,.5);color:var(--pr);}
.moria-blue .cc-result.no{box-shadow:inset 3px 0 0 var(--pr);}
.moria-blue .st-hint,.moria-blue .modal-sub{color:var(--pm);}
.moria-blue .hp-chip{color:var(--pi);}
/* menu entries and the Moria groups in the Tables drawer */
#overflowMenu #moriaSoloBtn,#overflowMenu #moriaWorksheetBtn,#overflowMenu #moriaAlliesBtn,#overflowMenu #clashGuideBtn,#overflowMenu #clashGuideBtn span,#overflowMenu #clashGuideBtn .icon,
#overflowMenu #moriaSoloBtn span,#overflowMenu #moriaWorksheetBtn span,#overflowMenu #moriaAlliesBtn span,
#overflowMenu #moriaSoloBtn .icon,#overflowMenu #moriaWorksheetBtn .icon,#overflowMenu #moriaAlliesBtn .icon{color:#8fbde8;}
.lore-group[data-set="moria"]>.lore-toggle{color:#a9cdee;}
.lore-group[data-set="moria"]>.lore-toggle .chev{color:#5f8fbd;}
.lore-group[data-set="moria"] .set-suffix{color:#7fb0dc;}
.lore-group[data-set="moria"] .lore-item,.lore-group[data-set="moria"] .table-btn{border-left:2px solid #3f6a96;}
.fortune-set[data-set="moria"] .set-label{color:#8fbde8;}
.fortune-set[data-set="moria"] .table-btn{border-left:2px solid #3f6a96;}
.fortune-set[data-set="moria"] .set-suffix{color:#7fb0dc;}
.eye-mode-tag.moria,body.moria-solo .eye-mode-tag{color:#8fbde8;}
body.moria-solo .eye-rule.on{color:#8fbde8;}
.pp .lore-group[data-set="moria"]>.lore-toggle{color:#2c5f94;}
.pp .lore-group[data-set="moria"]>.lore-toggle .chev{color:#4a7fb0;}
.pp .lore-group[data-set="moria"] .lore-item,.pp .lore-group[data-set="moria"] .table-btn,.pp .fortune-set[data-set="moria"] .table-btn{border-color:rgba(44,95,148,.45);border-left:3px solid #2c5f94;color:#2c5f94;}
.pp .fortune-set[data-set="moria"] .set-label{color:#2c5f94;}
.pp .lore-group[data-set="moria"] .set-suffix,.pp .fortune-set[data-set="moria"] .set-suffix{color:#4a7fb0;}
.pp .lore-group[data-set="moria"] h4{color:#2c5f94;}
.lore-group[data-set="moria"] .oracle-heading{color:#7fb0dc;}
.pp .lore-group[data-set="moria"] .oracle-heading{color:#2c5f94;}

/* ---- Custom landmarks (js/custom-landmarks.js): homebrew green ---- */
#overflowMenu #customLandmarkBtn,#overflowMenu #customLandmarkBtn .icon{color:#a9d18e;}
.hot-pin-custom{background:#3f6b30;border-color:#eef6e9;}
#tip .cl-name{color:#a9d18e;}
#tip .cl-notes{white-space:pre-wrap;}
.tip-inside.cl-btn{background:rgba(110,180,90,.12);border-color:#5e8f4a;color:#d6ecc9;}
.tip-inside.cl-btn:active{background:rgba(110,180,90,.28);}
.cl-acts{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px;}
#stage.cl-placing,#stage.cl-placing *{cursor:crosshair!important;}
.cl-cancel{position:fixed;left:50%;transform:translateX(-50%);top:calc(56px + env(safe-area-inset-top,0px));z-index:25;
  padding:7px 16px;border-radius:999px;cursor:pointer;background:rgba(21,17,12,.92);border:1px solid #5e8f4a;color:#d6ecc9;
  font-family:Georgia,'Iowan Old Style',serif;font-size:13.5px;box-shadow:0 4px 16px rgba(0,0,0,.45);}
.pp.cl-green{--pr:#3f6b30;}
.modal-box.pp.cl-green{box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--pbg),inset 0 0 0 4.5px var(--pr),inset 0 0 0 7px var(--pbg),inset 0 0 0 7.8px rgba(63,107,48,.5);}
.cl-green .modal-close{border-color:rgba(63,107,48,.5);}
.cl-green .hero-btn{border-color:rgba(63,107,48,.5);}
.cl-green .hero-primary,.cl-green .hero-primary:active{background:var(--pr)!important;border-color:var(--pr)!important;color:#fff;}
.cl-notes-in{display:block;width:100%;box-sizing:border-box;min-height:96px;resize:vertical;margin:4px 0 12px;padding:8px 10px;
  font:15px/1.4 'Libre Baskerville',Georgia,serif;color:var(--pi);background:var(--pf);border:1px solid rgba(63,107,48,.4);border-radius:4px;}
.cl-name-in{display:block;width:100%;box-sizing:border-box;margin:4px 0 8px;padding:8px 10px;
  font:16px/1.3 'Libre Baskerville',Georgia,serif;color:var(--pi);background:var(--pf);border:1px solid rgba(63,107,48,.4);border-radius:4px;}
/* a named custom landmark: its number as a small green badge before the name (editor title, tooltip) */
.cl-num{display:inline-block;min-width:1.5em;margin-right:.4em;padding:0 .3em;border-radius:4px;background:#3f6b30;color:#fff;
  font-size:.8em;line-height:1.5;text-align:center;vertical-align:.1em;}
#tip .cl-name .cl-num{background:#4f8a3c;}
.cl-imgrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cl-thumb{width:56px;height:42px;border:1px solid rgba(63,107,48,.4);border-radius:3px;background:var(--pg) center/cover no-repeat;}
.cl-thumb.empty{background-image:none;}
.cl-foot{display:flex;justify-content:flex-end;margin-top:14px;}
/* custom landmark editor: linked characters (js/custom-landmarks.js) */
.cl-chars{margin:0 0 14px;}
.cl-sub{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pr);margin:0 0 6px;}
.cl-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;}
.cl-chip{display:inline-flex;align-items:center;gap:2px;padding:3px 4px 3px 10px;border-radius:999px;font-size:14px;
  background:var(--pf);border:1px solid rgba(63,107,48,.45);color:var(--pi);}
.cl-chip-custom{border-style:dashed;}
.cl-chip-x{background:none;border:0;color:var(--pr);font-size:17px;line-height:1;width:26px;height:24px;cursor:pointer;padding:0;}
.cl-pick{margin-top:8px;border:1px solid rgba(63,107,48,.4);border-radius:4px;background:var(--pf);}
.cl-pick input{display:block;width:100%;box-sizing:border-box;border:0;border-bottom:1px solid rgba(63,107,48,.3);background:none;
  padding:8px 10px;font:16px/1.3 'Libre Baskerville',Georgia,serif;color:var(--pi);}
.cl-picklist{max-height:min(240px,34vh);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;}
.cl-pickrow{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;background:none;border:0;
  border-bottom:1px solid rgba(63,107,48,.12);padding:8px 10px;cursor:pointer;color:var(--pi);font:inherit;font-size:14px;}
.cl-pickrow:active,.cl-pickrow:hover{background:rgba(63,107,48,.08);}
.cl-pickname{flex:1 1 auto;min-width:0;}
.cl-picktag{flex:0 0 auto;font-size:11px;color:var(--pm,#7a6a50);font-style:italic;}
.cl-picktag-custom{color:var(--pr);}
.cl-pickmore{padding:8px 10px;font-size:12.5px;font-style:italic;color:var(--pm,#7a6a50);}
.charcomp-cat{font-size:12.5px;color:var(--k-muted2,#8a7a5c);margin:4px 0 8px;line-height:1.45;}

/* ---- next-roll dice and Favoured chips (js/sheet.js hopeChips), Shadow at maximum Hope ---- */
.hp-mod{display:inline-flex;align-items:center;gap:2px;}
.hp-chip.hp-step{min-width:30px;padding:4px 0;text-align:center;}
.hp-modv{min-width:34px;text-align:center;font-size:12.5px;font-variant-numeric:tabular-nums;opacity:.75;}
.hp-modv.on{opacity:1;font-weight:700;}
.hp-chip.on.ill{background:#8a2323;border-color:#6e1b1b;color:#fff;}
.sh-illtag{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border-radius:8px;background:#8a2323;color:#fff;font-size:12.5px;font-weight:600;}
/* ---- Skill Endeavour (js/endeavour.js), reuses the Council classes ---- */
.ep-plenty{width:58px;margin-left:auto;font:inherit;font-size:13px;padding:3px 6px;border:1px solid rgba(199,53,56,.4);border-radius:4px;background:var(--pf,#fff);color:inherit;}
.ep-abandon{margin-top:10px;}
.ep-band{border-left:3px solid #2c5f94;padding-left:8px;margin:6px 0;}

/* ---- Treasure Index (js/treasure-index.js): the Inventory's paper box and tiles, belonging to no hero ---- */
.ti-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:none;align-items:flex-start;justify-content:center;background:rgba(0,0,0,.6);
  padding:14px 10px;overflow:auto;--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.ti-layer.show{display:flex;}
.ti-box{max-height:none;}
.ti-box .sp-invhead .inv-btn{background:none;border:1px solid rgba(199,53,56,.5);color:var(--sp-red);border-radius:14px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;}
.ti-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 4px 8px;}
.ti-pick{font:inherit;font-size:14px;padding:5px 8px;border:1px solid rgba(199,53,56,.45);border-radius:6px;background:var(--k-field);color:var(--sp-ink);max-width:100%;}
.ti-meta{display:grid;grid-template-columns:1fr 2fr;gap:8px;margin:0 4px 10px;}
@media (max-width:560px){.ti-meta{grid-template-columns:1fr;}}
.ti-sechead{cursor:default;}
.ti-tile .ti-for{display:block;font-size:11px;font-style:italic;color:var(--k-muted3);margin-top:2px;}
.ti-tile.ti-found .gx-art{opacity:.45;}
.ti-banes{display:flex;flex-wrap:wrap;gap:6px 12px;}
.ti-chk{display:inline-flex;align-items:center;gap:5px;font-size:14px;}
.ti-quals{margin:4px 0 6px 20px;padding:0;}
.ti-quals li{display:flex;align-items:center;gap:6px;margin:3px 0;}
.ti-quals li span{flex:1 1 auto;}
.ti-quals button{background:none;border:1px solid rgba(199,53,56,.35);border-radius:6px;width:28px;height:26px;color:var(--sp-red);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.ti-quals button:disabled{opacity:.3;cursor:default;}
.ti-back select[data-ti-addq]{font:inherit;font-size:14px;padding:5px 6px;max-width:100%;}
.ti-warn{color:var(--sp-red);font-size:12.5px;font-style:italic;margin-top:4px;}
.gx-quals{margin:8px 0;}
.gx-quals .gx-qh{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;}
.gx-quals ol{margin:4px 0 6px 20px;padding:0;}
.gx-quals .gx-dormant{color:#9a8a7c;font-style:italic;}
#tiPrint{display:none;}
@media print{
  body.print-ti,body.print-ti html{height:auto;overflow:visible;background:#fff;}
  body.print-ti>*{display:none!important;}
  body.print-ti>#tiPrint{display:block!important;}
  @page{size:landscape;margin:10mm;}
  .tp-page{page-break-after:always;break-after:page;font:11px/1.35 Georgia,serif;color:#111;}
  .tp-page:last-child{page-break-after:auto;break-after:auto;}
  .tp-page h1{text-align:center;font-size:18px;color:#a82a2d;margin:0 0 6px;font-variant:small-caps;}
  .tp-page h2{text-align:center;font-size:14px;color:#a82a2d;margin:8px 0 4px;font-variant:small-caps;}
  .tp-meta{display:flex;gap:20px;border-bottom:1px solid #a82a2d;padding-bottom:4px;}
  .tp-meta b,.tp-r b{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;margin-right:4px;}
  .tp-t{width:100%;border-collapse:collapse;}
  .tp-t th{font-size:9px;text-align:left;font-weight:400;}
  .tp-t td{border-bottom:1px solid #999;padding:3px 4px;height:14px;}
  .tp-t td:last-child,.tp-t th:last-child{width:40px;text-align:center;}
  .tp-sq{display:inline-block;width:10px;height:10px;border:1px solid #a82a2d;text-align:center;line-height:9px;font-size:9px;font-style:normal;}
  .tp-fam{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:5mm;height:175mm;}
  .tp-card{border-left:1.5px solid #a82a2d;padding:2mm 3mm;overflow:hidden;}
  .tp-r{border-bottom:1px solid #aaa;padding:2px 0;min-height:14px;}
  .tp-r ol{margin:2px 0 0 16px;padding:0;}
}
.ti-box .gx-sechead{flex-wrap:nowrap;}
.ti-box .ti-sechead{min-width:0;flex:1 1 auto;}
.ti-box .ti-sechead .gx-h{white-space:normal;line-height:1.05;}
@media (max-width:560px){.ti-box .sp-invhead span{display:none;}.ti-box .sp-invhead b{font-size:24px;}.ti-box .ti-sechead .gx-h{font-size:18px;}}
.ti-tile.ti-found .gx-art{opacity:.6;}

/* ---- Homebrew patrons (js/homebrew-patrons*.js): green = homebrew, as for Custom Tables / Custom Landmark ---- */
#overflowMenu #hbPatronsBtn,#overflowMenu #hbPatronsBtn .icon{color:#a9d18e;}
.hb-incl{display:flex;align-items:center;gap:8px;margin:2px 0 4px;font-size:13px;color:#a9d18e;cursor:pointer;}
.hb-incl[hidden]{display:none;}
.hb-incl input{margin:0;accent-color:#5c8a47;}
.oracle-select-row select.hb-sel{color:#a9d18e;}
.oracle-select-row optgroup.hb-opt,.oracle-select-row option.hb-opt{color:#5c8a47;}
.pp .hb-incl{color:#3f6b30;}
.pp .oracle-select-row select.hb-sel{color:#3f6b30;}
/* Character Sheet (paper): the Patron picker and its advantage button turn green for a homebrew patron */
.sp-sel.sp-hb,button.sp-patadv.sp-hb{color:#3f6b30;}
#spPatron optgroup.hb-opt,#spPatron option.hb-opt{color:#3f6b30;}
.hb-card{border-left:3px solid #5c8a47;padding-left:8px;}
.gx-back:has(.hb-card) .gx-backtag{color:#3f6b30;}
#loreToast.hb{border-color:#5c8a47;}
#loreToast.hb .cat{color:#3f6b30;}
/* #overflowMenu button{display:flex} beats the hidden attribute, so restore it */
#overflowMenu button[hidden]{display:none;}

/* long toolbar menus scroll when the screen is short (landscape) */
#overflowMenu,#layers{max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;}

.tip-desc .tip-rule{display:block;margin:.8em 0;font-style:italic;color:#8f8369;}
.tip-desc .tip-rule-end{margin-bottom:0;}
.tip-desc .tip-rule-in{display:inline;margin:0;}
.tip-extras{flex-direction:column;align-items:center;}

/* one-off: Earnur's Edge's printed quote (maps-data.js <<...>>): red text, a line space underneath. Not a rules convention. */
.tip-desc .tip-red{display:block;font-style:normal;color:#e0605c;margin-bottom:.8em;}

/* cfg.landmarks.pinStyle:'dot' (battle map): a small red outline circle (no fill); size set inline in tooltips.js. */
.hot-pin-dot{box-sizing:border-box;padding:0;border-radius:50%;background:none;border:4px solid #b8403a;box-shadow:none;}

/* multi-line descs (see tooltips.js descHtml): paragraphs and hanging-indent bullets / numbered steps */
.tip-desc .tip-p{display:block;margin-top:.55em;}
.tip-desc .tip-p:first-child{margin-top:0;}
.tip-desc .tip-li{display:block;position:relative;padding-left:1.15em;margin-top:.3em;}
.tip-desc .tip-bu{position:absolute;left:.25em;top:0;}

/* music panel: volume row */
#musicVolRow{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid #2a2115;margin-top:4px;color:#d8c9a8;}
#musicVolRow .icon{flex:0 0 auto;}
#musicVol{flex:1 1 auto;min-width:110px;accent-color:#c4503e;}

/* ---- Dark theme (••• menu → Dark Theme): the paper-and-red-ink surfaces go charcoal; red stays. js/theme.js sets html.dark-ui ---- */
html.dark-ui{color-scheme:dark;--k-paper:#262422;--k-field:#302d2a;--k-grey:#1c1a19;--k-ink:#ece5da;--k-ink2:#ddd5c9;--k-muted:#c4b9ad;--k-muted2:#b6aba0;--k-muted3:#cec4b8;--k-red:#e2504a;--k-focus:#383430;--k-field-a:rgba(48,45,42,.85);}
html.dark-ui select option{background:#302d2a;color:#e9e1d5;}
/* printing always uses the light paper palette */
body.print-sheet,body.print-mw,body.print-ti,.sp-page{--sp-ink:#2a211c;--sp-red:#c73538;--k-paper:#fbf8f1;--k-field:#fffdf8;--k-grey:#f1ede6;--k-ink:#2a211c;--k-ink2:#3b332e;--k-muted:#7d6e64;--k-muted2:#8a7a70;--k-muted3:#6b5b50;--k-red:#c73538;--k-focus:#fff;--k-field-a:rgba(255,253,248,.85);}
/* ••• menu: Dark Theme switch */
#darkThemeBtn .dot{margin-left:auto;}
/* Dark theme: the Character Sheet page in plain dark colours (no filters): a ready-made dark copy of the artwork
   (img/sheet-bg-dark.webp) and dark versions of the sheet's ink. Printing uses the paper artwork and colours.  Screen only, and not while the Print button is printing. */
@media screen{
html.dark-ui body:not(.print-sheet) .sp-page{--sp-ink:#c9c2be;--sp-red:#f28385;--k-paper:#2b2824;--k-field:#24221e;--k-grey:#35312c;--k-ink:#c9c2be;--k-ink2:#bab4b0;--k-muted:#aa9e95;--k-muted2:#a0948b;--k-muted3:#b8aca3;--k-red:#f28385;--k-focus:#131313;--k-field-a:rgba(22,21,17,.85);}
html.dark-ui body:not(.print-sheet) .sp-page{background:#242321;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-in::placeholder{color:rgba(201,194,190,.35);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-in:focus{background:rgba(242,131,133,.07);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-portrait{color:rgba(242,131,133,.5);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-invbtn{background:rgba(40,37,33,.7);box-shadow:inset 0 0 0 2px #282521,inset 0 0 0 2.8px rgba(242,131,133,.55);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-invbtn:hover{color:#1d1811;box-shadow:inset 0 0 0 2px var(--sp-red),inset 0 0 0 2.8px rgba(29,24,17,.7);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-inv-l{border-bottom:.5px solid rgba(242,131,133,.25);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-dim{color:#796c64;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-num:not(.ro):hover{background:rgba(242,131,133,.09);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-numedit{background:#2a2723;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip:hover::before,html.dark-ui body:not(.print-sheet) .sp-page .sp-box:hover::before{background:rgba(242,131,133,.35);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.on:hover::before,html.dark-ui body:not(.print-sheet) .sp-page .sp-box.on:hover::before{background:#f29597;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.nx::before{background:rgba(128,85,6,.55);box-shadow:0 0 0 1.2px #805506;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.nx.no::before{box-shadow:0 0 0 1px rgba(111,111,111,.6);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-auto{color:#796c64;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-roll:hover{background:rgba(242,131,133,.12);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-advbtn{background:#805506;color:#d5cfc7;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-advbtn.no{background:#48433b;color:#808080;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-num.advnum{box-shadow:0 0 0 1.5px #805506;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-num.advnum.no{box-shadow:0 0 0 1px #48433b;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-mt:hover{background:rgba(242,131,133,.08);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-mt-add{box-shadow:inset 0 0 0 .8px rgba(242,131,133,.5);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-box[data-act="fav"].on::before{background:#cac8c6;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-box[data-act="fav"].on:hover::before{background:#afaba7;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.on::before,html.dark-ui body:not(.print-sheet) .sp-page .sp-box.on::before{background:#cac8c6;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip:hover::before,html.dark-ui body:not(.print-sheet) .sp-page .sp-box:hover::before{background:rgba(202,200,198,.3);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.on:hover::before,html.dark-ui body:not(.print-sheet) .sp-page .sp-box.on:hover::before{background:#afaba7;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.nx::before{background:rgba(128,85,6,.55);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-pip.lw::after{box-shadow:0 0 0 1.2px rgba(242,131,133,.75);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-advbtn.sp-advdown{box-shadow:0 0 0 1px rgba(242,131,133,.7);}
html.dark-ui body:not(.print-sheet) .sp-page .sp-sel.sp-hb,html.dark-ui body:not(.print-sheet) .sp-page button.sp-patadv.sp-hb{color:#7c9f70;}
html.dark-ui body:not(.print-sheet) .sp-page .sp-bg{content:url(img/sheet-bg-dark.webp);filter:brightness(1.9) contrast(.85);}
}
/* ---- Home Screen Icon picker (js/home-icon.js) ---- */
.hi-group{margin:10px 0 4px;}
.hi-row{display:flex;gap:12px;}
.hi-opt{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;background:var(--k-field);border:1px solid rgba(199,53,56,.35);border-radius:10px;color:var(--k-ink);font-family:inherit;font-size:12px;cursor:pointer;}
.hi-opt img{width:90px;height:90px;border-radius:20px;display:block;}
.hi-opt.on{border-color:var(--k-red);box-shadow:0 0 0 2px var(--k-red);}
.hi-opt:active{background:rgba(199,53,56,.12);}

/* ==== phone layout (js/phone-layout.js) ====
   Everything here is scoped to html.phone, so tablets and computers are untouched. --phone-bot = the bottom tab bar's
   height (portrait), --rail-w = the left rail's width (landscape); both 0 otherwise. */
html:not(.phone) #phoneTabs,html:not(.phone) #journalMenuBtn{display:none!important;}
#phoneTabs{position:fixed;z-index:42;display:flex;background:rgba(14,11,8,.98);touch-action:manipulation;user-select:none;-webkit-user-select:none;}
#phoneTabs button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  background:none;border:none;color:#a8997c;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:11px;
  letter-spacing:.02em;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;}
#phoneTabs button .icon{width:22px;height:22px;color:#a68b55;}
#phoneTabs button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
#phoneTabs button.on{color:#f0e2c4;}
#phoneTabs button.on .icon{color:#f0e2c4;}
html.phone-port #phoneTabs{left:0;right:0;bottom:0;padding:4px max(4px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(4px,env(safe-area-inset-left,0px));
  border-top:1px solid #3a2f1f;}
html.phone-port #phoneTabs button{min-height:52px;}
html.phone-port #phoneTabs button.on{background:rgba(166,139,85,.16);}
html.phone-land #phoneTabs{top:0;bottom:0;left:0;flex-direction:column;justify-content:center;gap:2px;
  width:calc(62px + env(safe-area-inset-left,0px));padding:4px 4px env(safe-area-inset-bottom,0px) calc(4px + env(safe-area-inset-left,0px));
  border-right:1px solid #3a2f1f;}
html.phone-land #phoneTabs button{flex:0 0 auto;min-height:56px;width:100%;}
html.phone-land #phoneTabs button.on{background:rgba(166,139,85,.16);}

/* top bar: map picker, Draw, Text, Undo and the Eye score; the rest live in the tabs or the ••• menu */
html.phone #sheetBtn,html.phone #menuBtn,html.phone #topbar .sep{display:none!important;}
html.phone #topbar button{width:42px;height:40px;}
html.phone #topbar .navbtn{width:auto;font-size:14px;padding:0 12px;}
/* the map name shortens (…) so Layers and Eye Awareness always fit beside it */
html.phone #topbar .navbtn{flex:0 1 auto;min-width:0;display:flex;align-items:center;}
html.phone #topbar .map-btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
html.phone #topbar .navbtn .icon{flex:0 0 auto;}
html.phone #eyeBtn{width:auto;min-width:42px;padding:0 10px;}
html.phone #eyeBtn::after{content:attr(data-val);font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;font-size:16px;line-height:1;}
html.phone-land #topbar{left:var(--rail-w,0px);padding-left:8px;}

/* side drawer tabs go; the drawers open full width between the bars */
html.phone #loreTab,html.phone #loreTabRight{display:none!important;}
html.phone #lorePanel,html.phone #lorePanelRight{width:auto;max-width:none;left:var(--rail-w,0px);right:0;}
html.phone #loreBackdrop{left:var(--rail-w,0px);bottom:var(--phone-bot,0px);}

/* the map and everything pinned to the left edge make room for the bars */
html.phone #stage{left:var(--rail-w,0px);bottom:var(--phone-bot,0px);}
html.phone-land #initiativeStrip,html.phone-land #taleStrip,html.phone-land #eyeStrip,html.phone-land #sheetPanel:not(.pop),html.phone-land #talePanel{left:var(--rail-w,0px);}
html.phone-land .offmap-btn,html.phone-land .offmap-panel{left:calc(var(--rail-w,0px) + 12px);}

/* Journal: in the ••• menu; shown only while open, above the tab bar */
html.phone #journalPanel.collapsed{display:none;}
html.phone #journalPanel{bottom:var(--phone-bot,0px);left:var(--rail-w,0px);max-height:calc(100% - 48px - var(--phone-bot,0px));}
html.phone-port #journalPanel{padding-bottom:0;}

/* ••• menu: a full-height list between the bars */
html.phone #overflowMenu{background:#0e0b08;top:48px;left:var(--rail-w,0px);right:0;bottom:var(--phone-bot,0px);min-width:0;border-radius:0;border-width:1px 0 0;
  overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:6px 10px calc(10px + env(safe-area-inset-bottom,0px));}
html.phone-land #overflowMenu{padding-right:max(10px,env(safe-area-inset-right,0px));}
html.phone #overflowMenu button{font-size:16px;padding:12px 10px;min-height:46px;flex:0 0 auto;}
html.phone #overflowMenu button.ov-head{font-size:13px;min-height:44px;}
html.phone #overflowMenu .ov-body button{padding-left:18px;}
#overflowMenu .ov-val{margin-left:auto;color:#a8997c;font-size:.9em;}

/* phone: landmark tooltip as a panel along the bottom (js/tooltips.js phonePanel / keepInView) */
html.phone #tip{left:var(--rail-w,0px)!important;right:0;top:auto!important;bottom:var(--journal-h,0px);transform:none!important;
  margin:0!important;max-width:none!important;white-space:normal;border-radius:12px 12px 0 0;border-width:1px 0 0;
  padding:12px max(16px,env(safe-area-inset-right,0px)) 14px 16px;font-size:15px;box-shadow:0 -8px 24px rgba(0,0,0,.5);}
html.phone #tip:after{display:none;}
/* windows (Moria Worksheet, Allies, Clash guide, Books, …) sit between the bars: the backdrop still covers them, the box doesn't */
html.phone .modal-overlay{padding-bottom:calc(12px + var(--phone-bot,0px));padding-left:calc(12px + var(--rail-w,0px));padding-top:12px;padding-right:12px;}
html.phone .modal-overlay>.modal-box{max-height:100%!important;max-width:100%;}
html.phone #tip{z-index:40;} /* over the corner buttons (Off the map, Back to …) */
html.phone #tip .tip-desc{max-width:none;font-size:14px;line-height:1.45;}

/* Character Sheet: hide / show the header's tools (js/sheet.js paintMin); the −/Fit/+ zoom buttons are gone (pinch) */
#sheetPanel.sh-min .sh-tools{display:none!important;}
.sh-minbtn .ii{width:16px;height:16px;}
#sheetPanel.pop .sh-minbtn{order:2;flex:0 0 auto;}
@media (max-width:700px){.sh-head .sh-minbtn{order:2;}}

/* ==== Character Sheet, phone layout (js/sheet.js stackHtml): the paper's controls in one scrolling column ==== */
.sp-body.ss-on{padding:0;background:var(--k-paper);touch-action:pan-y;}
.sp-stack{position:relative;max-width:560px;margin:0 auto;padding:0 0 calc(28px + env(safe-area-inset-bottom,0px));background:var(--k-paper);color:var(--sp-ink);
  font-family:'SheetBask','Baskerville','Libre Baskerville',Georgia,serif;font-size:16px;-webkit-user-select:none;user-select:none;}
.sp-stack .sp-in{position:static;box-sizing:border-box;width:100%;min-width:0;font-size:16px;line-height:1.3;padding:5px 3px;border-bottom:1px solid rgba(199,53,56,.32);}
.sp-stack .sp-sel{padding-right:16px;background-size:9px 6px;background-position:right 3px center;}
.sp-stack .sp-ro{text-align:left;cursor:pointer;min-height:31px;}
.sp-stack .sp-ro:disabled{cursor:default;}
.sp-stack .sp-area{min-height:88px;font-size:15px;line-height:1.45;border:1px solid rgba(199,53,56,.32);border-radius:3px;padding:6px 8px;background:var(--k-field);}
.sp-stack .sp-inj{min-height:48px;}
/* pinned header */
.ss-top{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--k-paper);
  box-shadow:0 2px 0 var(--sp-red),0 6px 14px rgba(0,0,0,.08);}
.sp-stack .ss-port{position:static;flex:0 0 64px;width:64px;height:64px;border:1.6px solid var(--sp-red);border-radius:2px;font-size:11px;background:var(--k-field);}
.sp-stack .sp-name{flex:1 1 auto;font-size:22px;line-height:1.2;text-align:left;border-bottom:none;padding:4px 2px;}
/* sections */
.ss-sec{padding:0 16px;}
.ss-h{position:relative;display:flex;align-items:center;gap:12px;width:100%;background:none;border:none;margin:0;padding:20px 26px 10px 0;
  font-family:var(--sp-head);font-size:22px;line-height:1.1;color:var(--sp-red);cursor:pointer;-webkit-tap-highlight-color:transparent;text-align:center;}
.ss-h::before,.ss-h::after{content:'';flex:1 1 0;min-width:8px;height:1.6px;background:var(--sp-red);}
.ss-h span{flex:0 1 auto;white-space:nowrap;}
.ss-h .ss-chev{position:absolute;right:0;top:50%;margin-top:-1px;width:18px;height:18px;color:var(--sp-red);opacity:.75;transition:transform .15s ease;}
.ss-sec.closed .ss-chev{transform:rotate(-90deg);}
.ss-sec.closed .ss-b{display:none;}
.ss-b{padding:2px 0 6px;}
.ss-sub{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--sp-ink);margin:16px 0 4px;text-align:center;}
/* label + control rows */
.ss-f{display:grid;grid-template-columns:8.6em minmax(0,1fr);align-items:center;gap:10px;padding:3px 0;}
.ss-fl{font-size:14px;color:var(--sp-ink);}
.ss-fc{min-width:0;}
.ss-f.ss-two .ss-fc{display:flex;gap:8px;}
.ss-f.ss-two .ss-fc>*{flex:1 1 0;}
.ss-f.ss-col{grid-template-columns:minmax(0,1fr);gap:4px;margin-top:6px;}
/* number diamonds */
.ss-cells{display:flex;justify-content:space-around;align-items:flex-start;gap:4px;}
.ss-c{display:flex;flex-direction:column;align-items:center;flex:1 1 0;min-width:0;}
.ss-l{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;text-align:center;margin-top:6px;line-height:1.25;}
.sp-stack .sp-num{position:relative;isolation:isolate;width:46px;height:46px;font-size:18px;margin-top:6px;}
.sp-stack .sp-num::before{content:'';position:absolute;inset:7px;z-index:-1;border:1.6px solid var(--sp-red);background:var(--k-field);transform:rotate(45deg);}
.sp-stack .sp-num.big{width:58px;height:58px;font-size:22px;}
.sp-stack .sp-num.xl{width:72px;height:72px;font-size:28px;}
.sp-stack .sp-num.big::before{border-width:2px;}
.sp-stack .sp-num.xl::before{border-width:2px;box-shadow:0 0 0 4px var(--k-paper),0 0 0 5.4px var(--sp-red);}
.sp-stack .sp-num:not(.ro):hover{background:none;}
.sp-stack .sp-numedit{position:relative;z-index:1;font-size:18px;}
.ss-attr{margin-top:4px;}
/* rank pips, boxes, skill rows */
.sp-stack .sp-pip{position:relative;display:inline-block;width:25px;height:25px;flex:0 0 25px;}
.sp-stack .sp-pip::before{inset:6px;border:1.4px solid var(--sp-red);}
.sp-stack .sp-box{position:relative;width:22px;height:22px;flex:0 0 22px;}
.sp-stack .sp-box::before{inset:3px;border:1.4px solid var(--sp-red);}
.ss-row{display:flex;align-items:center;gap:10px;min-height:44px;border-bottom:1px solid rgba(199,53,56,.22);}
.sp-stack .ss-name{position:static;flex:1 1 auto;min-width:0;text-align:left;font-family:inherit;font-size:17px;color:var(--sp-ink);padding:8px 0;}
.ss-pips{display:flex;flex:0 0 auto;}
/* conditions */
.ss-conds{display:flex;justify-content:space-around;gap:8px;flex-wrap:wrap;}
.ss-cond{display:flex;align-items:center;gap:8px;min-height:40px;font-size:16px;}
.sp-stack .sp-auto{position:static;font-size:9.5px;line-height:1;}
.ss-pp{margin-top:6px;}
.ss-ppg{flex:1 1 0;min-width:140px;}
/* inventory */
.ss-invrow{display:flex;gap:12px;align-items:flex-start;}
.sp-stack .ss-inv{position:static;flex:1 1 auto;min-width:0;font-size:15px;line-height:1.5;cursor:pointer;}
.sp-stack .sp-inv-l{border-bottom:1px solid rgba(199,53,56,.22);padding:3px 0;}
.sp-stack .ss-invbtn{position:static;display:block;margin:12px auto 2px;padding:6px 22px;font-size:22px;}
/* valour / wisdom + tiles */
.ss-vw{display:flex;align-items:center;justify-content:center;gap:12px;margin:2px 0 10px;}
.sp-stack .ss-vw .sp-roll{position:static;font-family:inherit;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--sp-ink);padding:8px 4px;}
.sp-stack .sp-advbtn{position:static;width:24px;height:24px;font-size:14px;line-height:24px;}
.sp-stack .sp-tiles{position:static;grid-auto-rows:minmax(74px,auto)!important;gap:8px;}
.sp-stack .sp-mt{gap:4px;padding:6px 4px;box-shadow:inset 0 0 0 1.2px var(--sp-red);}
.sp-stack .sp-mt .sp-sym{width:26px;height:26px;}
.sp-stack .sp-mt span{font-size:12.5px;line-height:1.2;}
.sp-stack .sp-mt-add b{font-size:22px;}
/* war gear */
.ss-gt{margin-top:10px;}
.ss-gh,.ss-gr{display:grid;gap:6px;align-items:end;}
.ss-gt-weapon .ss-gh,.ss-gt-weapon .ss-gr{grid-template-columns:minmax(0,1fr) 62px 54px 44px;}
.ss-gt-armour .ss-gh,.ss-gt-armour .ss-gr,.ss-gt-shield .ss-gh,.ss-gt-shield .ss-gr{grid-template-columns:minmax(0,1fr) 84px 44px;}
.ss-gh{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;border-bottom:1.6px solid var(--sp-red);padding-bottom:3px;}
.ss-gh span:not(:first-child){text-align:center;font-weight:400;letter-spacing:0;text-transform:none;font-size:12.5px;}
.ss-gr{padding:2px 0;}
.ss-h.ss-h1{font-size:min(18px,5vw);}
.ss-h.ss-h2{font-size:min(16px,4.2vw);}
/* phone: the sheet's ⋯ menu opens under the whole tools row, kept on screen wherever ⋯ wraps to */
html.phone .sh-head .sh-tools{position:relative;}
html.phone .sh-head .sh-menuwrap{position:static;}
html.phone .sh-head .sh-menu{right:0;left:auto;min-width:0;max-width:calc(100vw - 24px);}

/* homebrew Lifepath backstories (Expanded Lifepaths): green text */
.cr-hb,.cr-hb-src,.cr-hb-list .sh-pick-item .sh-pick-n,.cr-hb-list .sh-pick-item .sh-pick-n b,.cr-hb-list .sh-pick-item .cr-d,.cr-hb-list .sh-pick-item .cr-fx,.cr-hb-list .sh-pick-item .cr-n{color:#2f7d3a !important;}
.cr-hb-src{font-size:12px;font-style:italic;}
.cr-hb{margin:0 0 6px;font-style:italic;}
.cr-sug.on{opacity:.7;}
.cr-hb-list .cr-sug{color:#2f7d3a;border-color:#2f7d3a;}

/* ---- Creation Wizard (js/creation-wizard.js): a paper layer over the Character Sheet ---- */
.cwz-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:none;align-items:flex-start;justify-content:center;background:rgba(0,0,0,.55);padding:14px 10px;overflow:auto;--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
.cwz-layer.show{display:flex;}
/* Character Creation step 7 (Previous Experience): the guide becomes a bar at the bottom and the sheet above stays usable */
.cwz-layer.cwz-barmode{background:none;pointer-events:none;align-items:flex-end;padding:8px 10px;}
.cwz-layer.cwz-barmode .cwz-box{pointer-events:auto;max-height:36%;box-shadow:0 -6px 26px rgba(0,0,0,.45),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--sp-red),inset 0 0 0 7px var(--k-paper),inset 0 0 0 8px rgba(199,53,56,.55);}
.cwz-layer.cwz-barmode .cwz-box .sp-invhead b{font-size:19px;}
.cwz-layer.cwz-barmode .cwz-intro{font-size:13px!important;}
.cwz-layer.cwz-barmode .cwz-opts,.cwz-layer.cwz-barmode .guide-rules{display:none;}
#sheetPanel.sh-pebar #shBody{padding-bottom:40vh;}
.cwz-box{width:min(620px,100%);position:relative;max-height:100%;display:flex;flex-direction:column;}
.cwz-box .cwz-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:none;padding-bottom:6px;}
.cwz-box .sp-invhead{flex:0 0 auto;}
.cwz-box .sp-invhead b{font-size:22px;}
.cwz-back{font-size:22px;line-height:1;padding:0;}
.cwz-foot{flex:0 0 auto;align-items:center;flex-wrap:wrap;}
.cwz-intro{font-style:normal !important;color:var(--k-ink) !important;font-size:14px !important;}
.cwz-status{display:inline-block;margin:0 4px 8px;padding:2px 10px;border:1px solid rgba(199,53,56,.5);border-radius:12px;color:var(--sp-red);font-size:12.5px;}
.cwz-step.done .cr-n{color:var(--k-muted3);}
.cwz-step.done .cr-d{color:var(--k-muted3);}
.cwz-lbl{display:flex;flex-direction:column;gap:3px;margin:4px 4px 8px;font-size:12px;color:var(--k-muted3);text-transform:uppercase;letter-spacing:.04em;}
.cwz-lbl input{background:var(--k-field);color:var(--sp-ink);border:1px solid rgba(199,53,56,.5);border-radius:8px;padding:7px 9px;font:inherit;font-size:15px;text-transform:none;letter-spacing:0;}
.cwz-det{margin:2px 4px 6px;}
.cwz-det summary{cursor:pointer;color:var(--sp-red);font-size:13px;padding:4px 0;}
.cwz-pts{display:flex;align-items:center;gap:8px;margin:2px 4px 6px;font-size:15px;flex-wrap:wrap;}
.cwz-pts b{color:var(--sp-red);font-size:18px;}
.cwz-pts .cr-chip{margin-left:auto;}
@media (max-width:520px){.cwz-layer{padding:8px 6px;}.cwz-box .sp-invhead b{font-size:19px;}}

.cwz-opts{display:flex;gap:16px;flex-wrap:wrap;margin:0 4px 8px;padding-bottom:6px;border-bottom:1px solid rgba(199,53,56,.25);font-size:14px;color:var(--sp-ink);}
.cwz-opts label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.cwz-opts label.off{opacity:.45;cursor:default;}
.sh-tools .inv-btn.on{border-color:#a68b55;background:#5a4a2e;}
#sheetPanel .sh-head .sh-tools .inv-btn.on{background:rgba(199,53,56,.12);border-color:var(--k-red);}
.sh-menu-rolls{min-width:0;}
.sh-menu-rolls .hp-chips{display:flex;flex-wrap:wrap;gap:6px;}
.sh-menu.sh-menu-rolls,html.phone .sh-head .sh-menu.sh-menu-rolls{left:0;right:auto;width:max-content;max-width:calc(100vw - 24px);}
.sh-menu-rolls .hp-chips{flex-wrap:wrap;}
html.phone .sh-head .sh-menu{left:0;right:auto;min-width:min(260px,calc(100vw - 24px));}
@media (max-width:700px){
  #sheetPanel .sh-head .sh-tools{position:relative;}
  #sheetPanel .sh-head .sh-menuwrap{position:static;}
  #sheetPanel .sh-head .sh-menu{left:0;right:auto;min-width:min(260px,calc(100vw - 24px));max-width:calc(100vw - 24px);}
}

/* dark theme: filled pips and boxes in the stacked (phone) layout stay light enough to see */
html.dark-ui body:not(.print-sheet) #sheetPanel .sp-pip.on::before,html.dark-ui body:not(.print-sheet) #sheetPanel .sp-box.on::before{background:#d6d2cd;}
html.dark-ui body:not(.print-sheet) #sheetPanel .sp-pip.on:hover::before,html.dark-ui body:not(.print-sheet) #sheetPanel .sp-box.on:hover::before{background:#b9b5b0;}
html.dark-ui body:not(.print-sheet) #sheetPanel .sp-pip:hover::before,html.dark-ui body:not(.print-sheet) #sheetPanel .sp-box:hover::before{background:rgba(214,210,205,.3);}

/* ---- Nameless Things: Notes button (card + list), the Adversaries window's tabs and list (js/combat.js) ---- */
.nt-notes-btn{background:var(--k-field);border:1px solid rgba(199,53,56,.45);color:var(--k-red);border-radius:14px;
  font-family:inherit;font-size:11.5px;padding:3px 12px;cursor:pointer;}
.nt-notes-btn:active{background:rgba(199,53,56,.12);}
.cwcard .cw-cardtxt .nt-notes-btn{margin-top:6px;}
.nt-tabs{display:flex;width:max-content;max-width:100%;margin:0 0 8px;border:1px solid rgba(199,53,56,.55);border-radius:14px;overflow:hidden;}
.nt-tabs .hero-kind-btn{color:var(--pr);}
.nt-tabs .hero-kind-btn.active{background:var(--pr);color:#fff;}
#ntList[hidden],#adversariesList[hidden],.nt-row[hidden]{display:none;}
.nt-row{display:flex;align-items:stretch;gap:6px;margin:0 0 6px;}
.nt-row .nt-leaf{flex:1 1 auto;width:auto;margin:0;min-width:0;}
.nt-row .nt-notes-btn{flex:0 0 auto;align-self:center;}
.nt-del{flex:0 0 auto;align-self:center;background:none;border:none;color:var(--pm);font-size:20px;line-height:1;padding:4px 6px;cursor:pointer;}
.nt-notes p{margin:0 0 10px;line-height:1.45;color:var(--pi);}
.nt-notes .cw-info-sec h4{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--pr);margin:4px 0 3px;}

/* ---- created characters (js/characters.js): green text like other homebrew; picture; Patron block ---- */
.charcomp-row.cc-custom .charcomp-name,.charcomp-card.cc-custom .charcomp-cname{color:#3f6b30;}
html.dark-ui .charcomp-row.cc-custom .charcomp-name,html.dark-ui .charcomp-card.cc-custom .charcomp-cname{color:#7c9f70;}
.charcomp-card .cc-photo{float:right;width:64px;height:64px;border-radius:50%;object-fit:cover;margin:0 30px 6px 10px;border:1px solid rgba(63,107,48,.5);}
.cc-imgrow{display:flex;align-items:center;gap:8px;}
.cc-thumb{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid rgba(63,107,48,.5);}
.cc-questrows{display:flex;flex-direction:column;gap:5px;}
.cc-qrow{display:flex;align-items:center;gap:8px;}
.cc-qrow span{flex:0 0 14px;text-align:right;color:var(--k-muted);font-size:13px;}
.cc-qrow input{flex:1 1 auto;min-width:0;}
.cc-quests{margin:2px 0 0 20px;padding:0;}
.cc-quests li{margin:0 0 3px;}
.sh-pick-item.cw-hb b{color:#3f6b30;}
html.dark-ui .sh-pick-item.cw-hb b{color:#7c9f70;}
/* Custom Tables (green = homebrew) in Dark Theme: the .pp rules above use light green paper */
html.dark-ui .pp .lore-group-custom{border-bottom-color:rgba(124,159,112,.25);}
html.dark-ui .pp .lore-group-custom>.lore-toggle.expanded,html.dark-ui .pp .lore-group-custom>.lore-toggle .chev{color:#7c9f70;}
html.dark-ui .pp .lore-group-custom .lore-item.ct-roll,html.dark-ui .pp .ct-newbtn{background:rgba(124,159,112,.08);border-color:rgba(124,159,112,.45);color:#9dbb91;}
html.dark-ui .pp .lore-group-custom .lore-item.ct-roll:active,html.dark-ui .pp .ct-newbtn:active{background:rgba(124,159,112,.18);}
html.dark-ui .pp .ct-builder{background:rgba(124,159,112,.05);border-color:rgba(124,159,112,.4);}
html.dark-ui .pp .ct-brow,html.dark-ui .pp .ct-addrow,html.dark-ui .pp .ct-eface,html.dark-ui .pp .ct-btn,html.dark-ui .pp .ct-icon,html.dark-ui .pp .ct-edel{color:#7c9f70;}
html.dark-ui .pp .ct-btn,html.dark-ui .pp .ct-icon,html.dark-ui .pp .ct-edel,html.dark-ui .pp .ct-addrow{border-color:rgba(124,159,112,.45);}
html.dark-ui .pp .ct-brow input[type="text"],html.dark-ui .pp .ct-brow select,html.dark-ui .pp .ct-brow textarea,html.dark-ui .pp .ct-einput,html.dark-ui .pp select.ct-eto{border-bottom-color:rgba(124,159,112,.45);}
html.dark-ui .pp .ct-brow input[type="text"]:focus,html.dark-ui .pp .ct-brow select:focus,html.dark-ui .pp .ct-brow textarea:focus,html.dark-ui .pp .ct-einput:focus{border-bottom-color:#7c9f70;}
html.dark-ui .pp .ct-brow textarea::placeholder,html.dark-ui .pp .ct-einput::placeholder,html.dark-ui .pp .ct-brow input::placeholder{color:rgba(236,229,218,.35);}
html.dark-ui .pp .ct-btn.ct-primary{background:#4d7340;border-color:#4d7340;color:#ece5da;}

/* a long roll result never runs off the screen (the full text is in the journal) */
#loreToast .txt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:9;line-clamp:9;overflow:hidden;}

/* ---- Treasure Hoard window (js/hoard.js) ---- */
.hd-box{max-height:calc(100dvh - 40px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
.hd-sec h3{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pr);margin:12px 0 6px;}
.hd-dice{font-size:15px;color:var(--pi);margin-bottom:8px;}
.hd-dice b{font-size:18px;}
.hd-split{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;}
.hd-share{display:flex;align-items:center;gap:10px;color:var(--pi);}
.hd-share span{flex:1 1 auto;min-width:0;}
.hd-share input{flex:0 0 64px;width:64px;text-align:center;background:var(--pf);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.55);padding:6px;font:inherit;}
.hd-card{background:var(--pf);border:1px solid rgba(199,53,56,.3);border-radius:4px;padding:10px 12px;margin:0 0 10px;}
.hd-kind{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--pm);display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:4px;}
.hd-eye{color:#fff;background:var(--pr);border-radius:10px;padding:1px 8px;letter-spacing:.04em;text-transform:none;font-size:11px;}
.hd-name{font-style:italic;font-size:17px;color:var(--pr);margin:2px 0 3px;}
.hd-l{font-size:13.5px;line-height:1.4;color:var(--pi);margin:0 0 3px;}
.hd-q{font-size:13px;line-height:1.4;color:var(--pi);margin:0 0 3px;padding-left:14px;text-indent:-14px;}
.hd-bl{font-size:13.5px;font-weight:700;color:var(--pi);}
.hd-dim{color:var(--pm);}
.hd-ti{width:100%;margin:2px 0 6px;background:var(--pbg);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.45);padding:5px 2px;font:inherit;font-size:13px;}
.hd-curse{border-top:1px dashed rgba(199,53,56,.35);margin-top:8px;padding-top:8px;}
.hd-curse:not(.on) .hd-ctext{opacity:.6;}
.hd-crow{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:5px;}
.hd-ctext{font-size:12.5px;}
.hd-btn,.hd-step{background:var(--pbg);border:1px solid rgba(199,53,56,.5);color:var(--pr);border-radius:14px;padding:5px 12px;font:inherit;font-size:12.5px;cursor:pointer;}
.hd-btn:disabled{opacity:.5;cursor:default;}
.hd-primary{background:var(--pr);border-color:var(--pr);color:#fff;}
.hd-step{padding:3px 10px;}
.hd-keep{display:flex;gap:8px;align-items:center;margin-top:8px;}
.hd-keep select{flex:1 1 auto;min-width:0;background:var(--pbg);color:var(--pi);border:none;border-bottom:1px solid rgba(199,53,56,.45);padding:5px 2px;font:inherit;font-size:14px;}
.hd-kept{margin-top:8px;font-size:13.5px;color:var(--pi);}
.hd-greed{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px;font-size:13.5px;color:var(--pi);}
.hd-greed b{min-width:16px;text-align:center;}
.hd-foot{display:flex;justify-content:flex-end;margin-top:6px;}
.hd-cbox{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--pi);cursor:pointer;flex:1 1 100%;}
.hd-cbox input{width:18px;height:18px;accent-color:var(--pr);margin:0;}

/* ---- Fellowship guide: undertakings as a tap list (js/fellowship.js) ---- */
.fp-picks{margin:4px 0;}
.fp-pick{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(199,53,56,.2);padding:9px 6px;cursor:pointer;font-family:inherit;color:var(--pi,#f0e2c4);}
.fp-pick:hover,.fp-pick:focus{background:rgba(199,53,56,.07);}
.fp-pick.on{background:rgba(199,53,56,.1);box-shadow:inset 3px 0 0 var(--pr,#c73538);}
.fp-pick:disabled{opacity:.45;cursor:default;}
.fp-pick-n{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.fp-pick-n b{color:var(--pr,#c73538);font-size:15px;}
.fp-pick-n em{font-style:normal;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--pm,#8a7a5c);text-align:right;}
.fp-pick-d{display:block;font-size:12.5px;line-height:1.45;color:var(--pm,#a99873);margin-top:2px;}
.fp-change{background:none;border:1px solid rgba(199,53,56,.5);color:var(--pr,#c73538);border-radius:14px;padding:4px 12px;font:inherit;font-size:12.5px;cursor:pointer;margin:2px 0 6px;}

/* fixed rules-page row under every guide's title (ctx.guideRules, js/core.js) */
.guide-rules{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 8px;}
.guide-rules .guide-pg{font-size:12px;}
.cg-head .guide-rules{margin:4px 0 2px;}

/* ---- Journey guide: book terms, working, tables, procedure strip (js/journey.js) ---- */
.jy-term{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline dotted;text-decoration-color:var(--pr,#c73538);text-underline-offset:3px;}
.jy-term.on{color:var(--pr,#c73538);}
.jy-termbox{background:var(--pf,rgba(255,255,255,.05));border-left:3px solid var(--pr,#c73538);padding:8px 10px;margin:4px 0 10px;font-size:13px;line-height:1.45;color:var(--pi,#f0e2c4);}
.jy-termbox p{margin:0 0 6px;}
.jy-work{font-size:13px;color:var(--pm,#a99873);margin:4px 0 8px;font-variant-numeric:tabular-nums;}
.jy-w{font-style:normal;color:var(--pm,#a99873);font-size:12px;}
.jy-tbl{margin:10px 0;border:1px solid rgba(199,53,56,.25);border-radius:4px;}
.jy-tbl summary{cursor:pointer;padding:7px 10px;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--pr,#c73538);}
.jy-row{padding:6px 10px;border-top:1px solid rgba(199,53,56,.15);}
.jy-row.hit{background:rgba(199,53,56,.12);box-shadow:inset 3px 0 0 var(--pr,#c73538);}
.jy-rh{display:flex;gap:8px;align-items:baseline;font-size:13.5px;color:var(--pi,#f0e2c4);}
.jy-rh b{flex:1 1 auto;}
.jy-rh em{font-style:normal;font-size:11px;color:var(--pm,#a99873);white-space:nowrap;}
.jy-fd{flex:0 0 auto;min-width:42px;font-weight:700;color:var(--pr,#c73538);font-size:12.5px;}
.jy-rt{font-size:12.5px;line-height:1.4;color:var(--pm,#a99873);margin-top:2px;padding-left:50px;}
.jy-proc{display:flex;flex-wrap:wrap;gap:4px;list-style:none;padding:0;margin:4px 0 10px;}
.jy-proc li{font-size:11.5px;padding:3px 9px;border-radius:12px;border:1px solid rgba(199,53,56,.35);color:var(--pm,#a99873);}
.jy-proc li.done{color:var(--pi,#f0e2c4);border-color:rgba(199,53,56,.6);}
.jy-proc li.done::before{content:'✓ ';color:var(--pr,#c73538);}
.jy-proc li.on{background:var(--pr,#c73538);border-color:var(--pr,#c73538);color:#fff;}
.jy-term{text-transform:inherit;letter-spacing:inherit;}
.jy-rt0{padding-left:0;}
.jy-pick{cursor:pointer;}
.jy-pick:hover{background:rgba(199,53,56,.06);}
.es-book{display:block;font-size:12.5px;line-height:1.4;color:var(--pm,#a99873);margin:-2px 0 6px 30px;}

/* the Success icon in roll results (ctx.iconize, js/core.js) */
.succ-ic{height:1.05em;width:auto;vertical-align:-0.15em;margin:0 1px 0 2px;}

/* roll popup: the verdict on its own line, larger and bold, readable past the 3D dice */
#loreToast .txt{font-size:20px;}
#loreToast .lt-verdict{display:block;font-size:1.45em;font-weight:700;line-height:1.2;margin-bottom:6px;}

/* a roll's result inside the guide windows (Journey, Council, Skill Endeavour, Battle, Clash, Mission Worksheet, Hoard): larger and bold */
b.rv{font-size:1.3em;font-weight:700;line-height:1.25;}

/* teaching kit in Moria blue (Clash Guide, Mission Worksheet) */
.moria-blue .jy-tbl{border-color:rgba(44,95,148,.3);}
.moria-blue .jy-row{border-top-color:rgba(44,95,148,.15);}
.moria-blue .jy-row.hit{background:rgba(44,95,148,.12);}
.moria-blue .jy-pick:hover{background:rgba(44,95,148,.06);}
.moria-blue .jy-proc li{border-color:rgba(44,95,148,.35);}
.moria-blue .jy-proc li.done{border-color:rgba(44,95,148,.6);}

/* teaching kit inside the Character Creation guide (#shWizard is not a .pp box: map its colours to the sheet's) */
#shWizard{--pi:var(--k-ink);--pm:var(--k-muted3);--pr:var(--k-red);--pf:rgba(0,0,0,.035);}
#shWizard .jy-termbox p{font-style:normal;color:var(--k-ink);font-size:13px;margin:0 0 6px;}
#shWizard .jy-tbl{border-color:rgba(127,127,127,.3);}
#shWizard .jy-row{border-top-color:rgba(127,127,127,.18);}
#shWizard .pg-btn{background:transparent;border:1px solid var(--k-red);color:var(--k-red);border-radius:12px;font-family:inherit;cursor:pointer;opacity:1;}

/* Battle Guide: collapsible sections (h4 headings, combatant name lines, boxes, Stance hero rows) */
summary.cg-sec-h{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-tap-highlight-color:transparent;}
summary.cg-sec-h::-webkit-details-marker{display:none;}
summary.cg-sec-h::before{content:'\25B8';font-size:11px;color:var(--pr,#a68b55);transition:transform .15s;flex:0 0 auto;}
details[open]>summary.cg-sec-h::before{transform:rotate(90deg);}
summary.cg-sec-h>h4{margin:10px 0 4px;}
summary.cg-sec-h>.cg-line{flex:1 1 auto;min-width:0;}
details.cg-fold:not([open])>summary.cg-sec-h>.cg-line{margin:3px 0;}

/* Combat proficiencies on the cards: tap one to roll it (js/combat.js rollFromCard); looks like the plain line it was */
.cw-roll{display:block;width:100%;text-align:left;background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.cw-roll:active{opacity:.6;}
.cw-heroprof{padding:0 12px 4px;}
.cw-heroprof h4{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.04em;color:var(--cr,#a68b55);margin:4px 0 3px;text-transform:uppercase;}
.cwcard .cw-roll.cw-prof{font-size:12.5px;line-height:1.4;color:var(--ci);}

/* Adversaries picker: Standard / Named headers inside a type (js/combat.js renderPicker) */
.adv-grp[hidden]{display:none;}
.adv-grp-toggle{display:flex;align-items:center;gap:8px;width:calc(100% - 40px);margin:4px 0 6px 40px;padding:4px 2px;background:none;border:none;
  border-bottom:1px solid rgba(199,53,56,.25);cursor:pointer;text-align:left;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--pr,#a68b55);-webkit-tap-highlight-color:transparent;}
.adv-grp-toggle .chev{margin-left:auto;font-size:10px;transition:transform .15s ease;}
.adv-grp-toggle.expanded .chev{transform:rotate(90deg);}
.adv-grp-list{display:none;}
.adv-grp-list.show{display:block;}
#adversariesList.searching .adv-grp-list{display:block;}
#adversariesList.searching .adv-grp-toggle .chev{visibility:hidden;}

/* a question over the Character Sheet (Reset this hero; Character Creation's "not finished") — js/sheet.js ask() */
.sh-asklayer{z-index:6;align-items:center;}
.sh-askbox{width:min(460px,100%);}
.sh-askbox .sp-invhead b{font-size:20px;}
.sh-askbox .sp-info p{margin:0 0 8px;}
.sh-asklist{margin:0 0 10px 18px;padding:0;}
.sh-asklist li{margin:2px 0;}
.sh-asklist em{opacity:.7;}
.sh-askbtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;}
.sh-askbtns .gx-btn{white-space:normal;text-align:center;font-family:inherit;}

/* "Leave the … guide?" (js/core.js ctx.askLeave) — above every guide window */
.leave-ov{position:fixed;inset:0;z-index:9600;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.45);padding:16px;}
.leave-ov.show{display:flex;}
.leave-box{background:var(--pbg,var(--k-paper,#f8f4ea));color:var(--pi,var(--k-ink,#2a2118));border-radius:6px;padding:18px 18px 14px;width:min(360px,100%);
  box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 3px var(--pbg,var(--k-paper,#f8f4ea)),inset 0 0 0 4.5px var(--pr,var(--k-red,#c73538));}
.leave-box h3{margin:0 0 14px;font-family:'Aniron','SheetUncial',serif;font-weight:700;font-size:20px;color:var(--pr,var(--k-red,#c73538));text-transform:lowercase;line-height:1.2;}
.leave-btns{display:flex;gap:8px;justify-content:flex-end;}
.leave-btns button{font:inherit;font-size:14px;padding:7px 16px;border-radius:4px;cursor:pointer;border:1px solid var(--pr,var(--k-red,#c73538));}
.leave-stay{background:var(--pr,var(--k-red,#c73538));color:#fff;}
.leave-go{background:transparent;color:var(--pr,var(--k-red,#c73538));}

/* ---- Mission Worksheet (js/moria-worksheet.js, js/mission-guide.js): the Character Sheet's panel, paper controls, boxes and guide
   layer in Moria blue. The first block is generated from the Character Sheet's own rules (red swapped for blue); the rest is the Worksheet's. ---- */
#mwPanel{position:fixed;left:0;right:0;top:48px;bottom:var(--journal-h,0px);z-index:27;display:none;flex-direction:column;
  background:rgba(12,10,7,.985);border-top:1px solid #3a2f1f;font-family:'Iowan Old Style','Palatino Linotype',Georgia,serif;color:#d8c9a8;}
#mwPanel.show{display:flex;}
#mwPanel{--sp-red:var(--k-red);--sp-ink:var(--k-ink);--sp-head:'Aniron','SheetUncial',serif;}
#mwPanel{z-index:39;}
#mwPanel.pop{z-index:36;border:1px solid #6b5a3a;border-radius:10px;box-shadow:0 14px 44px rgba(0,0,0,.65);overflow:hidden;
  resize:both;min-width:300px;min-height:220px;}
#mwPanel.pop .sh-head{flex-wrap:wrap;cursor:move;touch-action:none;row-gap:4px;}
#mwPanel.pop .sh-grip{order:0;}
#mwPanel.pop .inv-tabs{order:1;flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
#mwPanel.pop .inv-tabs::-webkit-scrollbar, #mwPanel.pop .sh-tools::-webkit-scrollbar{display:none;}
#mwPanel.pop .sh-popbtn{order:3;flex:0 0 auto;}
#mwPanel.pop #mwClose{order:4;flex:0 0 auto;}
#mwPanel.pop .sh-tools{order:5;flex:1 1 100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;cursor:default;}
#mwPanel.pop .sh-tools .hp-chips{flex:0 0 auto;flex-wrap:nowrap;}
#mwPanel.pop .sh-tools .hp-chip{white-space:nowrap;}
#mwPanel.pop .sh-grip{display:flex;align-items:center;flex:0 0 auto;color:#8a7a5c;cursor:move;padding:0 2px;}
#mwPanel.pop .sh-grip .ii{width:16px;height:16px;}
#mwPanel.pop.dock{z-index:37;resize:none;border-radius:12px 12px 0 0;border-bottom:none;min-width:0;}
#mwPanel.pop.dock .sh-head{cursor:default;touch-action:pan-x;}
#mwPanel.pop.dock .sh-grip{display:none;}
#mwPanel.pop.dock .sh-dockgrip{display:flex;justify-content:center;align-items:center;flex:0 0 auto;height:18px;cursor:ns-resize;touch-action:none;}
#mwPanel.pop.dock .sh-dockgrip span{width:44px;height:5px;border-radius:3px;background:#6b5a3a;}
#mwPanel .sh-head{background:var(--k-paper);border-bottom:none;padding-bottom:12px;font-family:'SheetBask','Libre Baskerville',Georgia,serif;
  box-shadow:inset 0 -3px 0 var(--k-paper),inset 0 -4.5px 0 var(--sp-red),inset 0 -7px 0 var(--k-paper),inset 0 -7.8px 0 rgba(44,95,148,.5);}
#mwPanel .sh-head .inv-tab{background:var(--k-field);border:1px solid rgba(44,95,148,.45);color:var(--sp-red);}
#mwPanel .sh-head .inv-tab.on{background:var(--sp-red);border-color:var(--sp-red);color:#fff;}
#mwPanel .sh-head .inv-btn{background:var(--k-field);border:1px solid rgba(44,95,148,.5);color:var(--sp-red);border-radius:14px;}
#mwPanel .sh-head .sh-tnrule input{accent-color:#1f1c1a;}
#mwPanel .sh-head .inv-btn:hover, #mwPanel .sh-head .inv-tab:not(.on):hover{background:rgba(44,95,148,.08);}
#mwPanel .sh-head .inv-btn:active{background:rgba(44,95,148,.16);}
#mwPanel .sh-head .inv-btn.inv-danger{border-color:var(--k-muted2);color:var(--k-muted3);}
#mwPanel .sh-head .hp-chip:not(.on){background:var(--k-field);border-color:rgba(44,95,148,.5);color:var(--sp-red);border-radius:14px;}
#mwPanel .sh-head .hp-modv:not(.on){color:var(--sp-red);}
#mwPanel .sh-head .inv-close{background:var(--k-field);border:1px solid rgba(44,95,148,.5);color:var(--sp-red);border-radius:50%;}
#mwPanel .sh-head .inv-close:hover{background:var(--sp-red);color:#fff;}
#mwPanel .sh-head .sh-menu{background:var(--k-paper);border:1px solid rgba(44,95,148,.5);border-radius:4px;box-shadow:0 8px 24px rgba(42,33,28,.35);}
#mwPanel .sh-head .sh-tnrule{color:var(--sp-ink);}
#mwPanel.pop .sh-grip{color:var(--k-muted2);}
#mwPanel.pop{background:var(--k-paper);border:none;border-radius:6px;padding:6px;
  box-shadow:0 14px 44px rgba(0,0,0,.65),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--sp-red),inset 0 0 0 7px var(--k-paper),inset 0 0 0 7.8px rgba(44,95,148,.5);}
#mwPanel.pop .sp-body{background:#ece6dc;}
#mwPanel.pop.dock{border-radius:10px 10px 0 0;padding-bottom:0;}
#mwPanel.pop.dock .sh-dockgrip span{background:rgba(44,95,148,.45);}
html.phone-land #mwPanel:not(.pop){left:var(--rail-w,0px);}
#mwPanel.sh-min .sh-tools{display:none!important;}
#mwPanel.pop .sh-minbtn{order:2;flex:0 0 auto;}
#mwPanel .sh-head .sh-tools .inv-btn.on{background:rgba(44,95,148,.12);border-color:var(--k-red);}
@media (max-width:700px){
#mwPanel .sh-head .sh-tools{position:relative;}
#mwPanel .sh-head .sh-menuwrap{position:static;}
#mwPanel .sh-head .sh-menu{left:0;right:auto;min-width:min(260px,calc(100vw - 24px));max-width:calc(100vw - 24px);}
}
html.dark-ui body:not(.print-mw) #mwPanel .sp-pip.on::before, html.dark-ui body:not(.print-mw) #mwPanel .sp-box.on::before{background:#d6d2cd;}
html.dark-ui body:not(.print-mw) #mwPanel .sp-pip.on:hover::before, html.dark-ui body:not(.print-mw) #mwPanel .sp-box.on:hover::before{background:#b9b5b0;}
html.dark-ui body:not(.print-mw) #mwPanel .sp-pip:hover::before, html.dark-ui body:not(.print-mw) #mwPanel .sp-box:hover::before{background:rgba(214,210,205,.3);}
.mw-scope .sp-in:focus{background:rgba(44,95,148,.07);}
.mw-scope .sp-portrait{border:none;background:transparent;cursor:pointer;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center;color:rgba(44,95,148,.5);font-family:inherit;font-size:9px;font-style:italic;}
.mw-scope .sp-invbtn{font-family:var(--sp-head);font-size:19px;color:var(--sp-red);background:rgba(255,253,249,.7);border:1.4px solid var(--sp-red);border-radius:3px;
  box-shadow:inset 0 0 0 2px #fffdf9,inset 0 0 0 2.8px rgba(44,95,148,.55);cursor:pointer;letter-spacing:.03em;line-height:1;padding:0 0 2px;}
.mw-scope .sp-inv-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:.5px solid rgba(44,95,148,.25);}
.mw-scope .sp-num:not(.ro):hover{background:rgba(44,95,148,.09);}
.mw-scope .sp-pip:hover::before, .mw-scope .sp-box:hover::before{background:rgba(44,95,148,.35);}
.mw-scope .sp-pip.on:hover::before, .mw-scope .sp-box.on:hover::before{background:#244f7d;}
.mw-scope .sp-roll:hover{background:rgba(44,95,148,.12);}
.mw-scope .sp-invbox{width:min(900px,100%);background:var(--k-paper);border:none;border-radius:4px;padding:14px 16px 16px;color:var(--sp-ink);
  box-shadow:0 10px 34px rgba(0,0,0,.7),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--sp-red),inset 0 0 0 7px var(--k-paper),inset 0 0 0 8px rgba(44,95,148,.55);
  font-family:'SheetBask','Libre Baskerville',Georgia,serif;}
.mw-scope .sp-invhead .inv-close{background:none;border:1px solid rgba(44,95,148,.5);color:var(--sp-red);border-radius:50%;width:34px;height:34px;}
.mw-scope .gx-close{width:26px;height:26px;border-radius:50%;border:1px solid rgba(44,95,148,.55);background:var(--k-field);color:var(--sp-red);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.mw-scope .gx-btn:hover, .mw-scope .gx-btn.on{background:rgba(44,95,148,.1);}
.mw-scope .gx-btn.gx-primary:hover{background:#244f7d;}
.mw-scope .cr-chip{border:1px solid rgba(44,95,148,.5);border-radius:14px;background:var(--k-field);color:var(--sp-red);padding:4px 10px;font:inherit;font-size:13px;cursor:pointer;}
.mw-scope .cr-chip:hover{background:rgba(44,95,148,.08);}
.mw-scope .cr-sel{font:inherit;font-size:13px;background:var(--k-field);color:var(--sp-ink);border:1px solid rgba(44,95,148,.5);border-radius:8px;padding:4px 6px;}
.mw-scope .sp-infobox .sh-pick-item.on{background:rgba(44,95,148,.1);box-shadow:inset 3px 0 0 var(--sp-red);}
.mw-scope .cr-ev.pend{background:rgba(44,95,148,.05);}
.mw-scope .sp-plus{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border-radius:50%;border:1px solid rgba(44,95,148,.55);background:var(--k-field);color:var(--sp-red);cursor:pointer;}
.mw-scope .sp-lpbtn{font:inherit;font-size:9px;line-height:1;padding:0 4px;border-radius:7px;border:1px solid rgba(44,95,148,.55);background:var(--k-field);color:var(--sp-red);cursor:pointer;}
.mw-scope .gx-backname:hover, .mw-scope .gx-backname:focus{border-bottom-color:rgba(44,95,148,.5);}
.mw-scope .gx-back{background:var(--k-paper);border-radius:20px;padding:30px 28px 24px;animation:gxOpen .16s ease-out;
  box-shadow:inset 0 0 0 2px var(--sp-red),inset 0 0 0 6px var(--k-paper),inset 0 0 0 7px rgba(44,95,148,.5),0 14px 40px rgba(0,0,0,.6);}
.mw-scope .sp-paper .sp-cardic{display:flex;justify-content:center;color:rgba(44,95,148,.55);}
.mw-scope .sp-paper .sh-page{align-self:center;background:var(--k-field);border:1px solid rgba(44,95,148,.5);color:var(--sp-red);}
.mw-scope .sp-mt:hover{background:rgba(44,95,148,.08);}
.mw-scope .sp-mt-add{box-shadow:inset 0 0 0 .8px rgba(44,95,148,.5);background:transparent;border:.6px dashed transparent;}
.mw-scope .sp-rules{border-top:1px solid rgba(44,95,148,.35);padding-top:6px;margin-top:2px;}
.mw-scope .sp-pickq{width:100%;background:var(--k-field);color:var(--sp-ink);border:none;border-bottom:1px solid rgba(44,95,148,.55);border-radius:0;padding:6px 4px;font-size:15px;font-family:inherit;margin:2px 0 6px;}
.mw-scope .sp-infobox .sh-pick-item{border-bottom:1px solid rgba(44,95,148,.2);padding:9px 6px;}
.mw-scope .sp-infobox .sh-pick-item:hover, .mw-scope .sp-infobox .sh-pick-item:focus{background:rgba(44,95,148,.07);}
.mw-scope .sp-infobox .inv-btn{background:var(--k-field);border:1px solid rgba(44,95,148,.55);color:var(--sp-red);border-radius:14px;}
.mw-scope .sp-infobox .inv-btn:hover{background:rgba(44,95,148,.08);}
.mw-scope .sp-pip.lw::after{content:'';position:absolute;top:1px;right:1px;bottom:1px;left:1px;transform:rotate(45deg);box-shadow:0 0 0 1.2px rgba(44,95,148,.75);pointer-events:none;}
.mw-scope .sp-advbtn.sp-advdown{background:var(--k-field);color:var(--k-red);box-shadow:0 0 0 1px rgba(44,95,148,.7);}
.ti-box .mw-scope .sp-invhead .inv-btn{background:none;border:1px solid rgba(44,95,148,.5);color:var(--sp-red);border-radius:14px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;}
.mw-scope .sp-page{--sp-ink:#2a211c;--sp-red:#2c5f94;--k-paper:#fbf8f1;--k-field:#fffdf8;--k-grey:#f1ede6;--k-ink:#2a211c;--k-ink2:#3b332e;--k-muted:#7d6e64;--k-muted2:#8a7a70;--k-muted3:#6b5b50;--k-red:#2c5f94;--k-focus:#fff;--k-field-a:rgba(255,253,248,.85);}
@media screen{
html.dark-ui body:not(.print-mw) .mw-scope .sp-page{--sp-ink:#c9c2be;--sp-red:#8db6e3;--k-paper:#2b2824;--k-field:#24221e;--k-grey:#35312c;--k-ink:#c9c2be;--k-ink2:#bab4b0;--k-muted:#aa9e95;--k-muted2:#a0948b;--k-muted3:#b8aca3;--k-red:#8db6e3;--k-focus:#131313;--k-field-a:rgba(22,21,17,.85);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-in:focus{background:rgba(141,182,227,.07);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-portrait{color:rgba(141,182,227,.5);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-invbtn{background:rgba(40,37,33,.7);box-shadow:inset 0 0 0 2px #282521,inset 0 0 0 2.8px rgba(141,182,227,.55);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-inv-l{border-bottom:.5px solid rgba(141,182,227,.25);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-num:not(.ro):hover{background:rgba(141,182,227,.09);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-pip:hover::before, html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-box:hover::before{background:rgba(141,182,227,.35);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-pip.on:hover::before, html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-box.on:hover::before{background:#a5c6ea;}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-roll:hover{background:rgba(141,182,227,.12);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-mt:hover{background:rgba(141,182,227,.08);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-mt-add{box-shadow:inset 0 0 0 .8px rgba(141,182,227,.5);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-pip.lw::after{box-shadow:0 0 0 1.2px rgba(141,182,227,.75);}
html.dark-ui body:not(.print-mw) .mw-scope .sp-page .sp-advbtn.sp-advdown{box-shadow:0 0 0 1px rgba(141,182,227,.7);}
}
.mw-scope .sp-stack .sp-in{position:static;box-sizing:border-box;width:100%;min-width:0;font-size:16px;line-height:1.3;padding:5px 3px;border-bottom:1px solid rgba(44,95,148,.32);}
.mw-scope .sp-stack .sp-area{min-height:88px;font-size:15px;line-height:1.45;border:1px solid rgba(44,95,148,.32);border-radius:3px;padding:6px 8px;background:var(--k-field);}
.mw-scope .ss-row{display:flex;align-items:center;gap:10px;min-height:44px;border-bottom:1px solid rgba(44,95,148,.22);}
.mw-scope .sp-stack .sp-inv-l{border-bottom:1px solid rgba(44,95,148,.22);padding:3px 0;}
.mw-scope .cwz-status{display:inline-block;margin:0 4px 8px;padding:2px 10px;border:1px solid rgba(44,95,148,.5);border-radius:12px;color:var(--sp-red);font-size:12.5px;}
.mw-scope .cwz-lbl input{background:var(--k-field);color:var(--sp-ink);border:1px solid rgba(44,95,148,.5);border-radius:8px;padding:7px 9px;font:inherit;font-size:15px;text-transform:none;letter-spacing:0;}
.mw-scope .cwz-opts{display:flex;gap:16px;flex-wrap:wrap;margin:0 4px 8px;padding-bottom:6px;border-bottom:1px solid rgba(44,95,148,.25);font-size:14px;color:var(--sp-ink);}
.mw-scope .jy-term{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline dotted;text-decoration-color:var(--pr,#2c5f94);text-underline-offset:3px;}
.mw-scope .jy-term.on{color:var(--pr,#2c5f94);}
.mw-scope .jy-termbox{background:var(--pf,rgba(255,255,255,.05));border-left:3px solid var(--pr,#2c5f94);padding:8px 10px;margin:4px 0 10px;font-size:13px;line-height:1.45;color:var(--pi,#f0e2c4);}
.mw-scope .jy-tbl{margin:10px 0;border:1px solid rgba(44,95,148,.25);border-radius:4px;}
.mw-scope .jy-tbl summary{cursor:pointer;padding:7px 10px;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--pr,#2c5f94);}
.mw-scope .jy-row{padding:6px 10px;border-top:1px solid rgba(44,95,148,.15);}
.mw-scope .jy-row.hit{background:rgba(44,95,148,.12);box-shadow:inset 3px 0 0 var(--pr,#2c5f94);}
.mw-scope .jy-fd{flex:0 0 auto;min-width:42px;font-weight:700;color:var(--pr,#2c5f94);font-size:12.5px;}
.mw-scope .jy-proc li{font-size:11.5px;padding:3px 9px;border-radius:12px;border:1px solid rgba(44,95,148,.35);color:var(--pm,#a99873);}
.mw-scope .jy-proc li.done{color:var(--pi,#f0e2c4);border-color:rgba(44,95,148,.6);}
.mw-scope .jy-proc li.done::before{content:'✓ ';color:var(--pr,#2c5f94);}
.mw-scope .jy-proc li.on{background:var(--pr,#2c5f94);border-color:var(--pr,#2c5f94);color:#fff;}
.mw-scope .jy-pick:hover{background:rgba(44,95,148,.06);}
/* blue ink for the Worksheet: its panel, page, boxes and guide layer (#mwPrint for printing) */
.mw-scope{--sp-red:#2c5f94;--k-red:#2c5f94;--pr:#2c5f94;--prr:44,95,148;}
html.dark-ui .mw-scope{--sp-red:#5b8fc7;--k-red:#5b8fc7;--pr:#5b8fc7;--prr:91,143,199;}
.mw-scope .cr-chip.on{background:var(--sp-red);border-color:var(--sp-red);color:var(--k-paper);}
#mwPanel.mw-top{z-index:52;} /* opened by the Clash guide (a modal) to apply an Endurance test */
body.mw-open #combatLayer{visibility:hidden;}
#mwGuide,#mwBox{--pi:var(--k-ink);--pm:var(--k-muted3);--pr:var(--k-red);--pf:rgba(0,0,0,.035);}
#mwGuide .jy-termbox p,#mwBox .jy-termbox p{font-style:normal;color:var(--k-ink);font-size:13px;margin:0 0 6px;}
#mwGuide .jy-tbl,#mwBox .jy-tbl{border-color:rgba(127,127,127,.3);}
#mwGuide .jy-row,#mwBox .jy-row{border-top-color:rgba(127,127,127,.18);}
#mwGuide .pg-btn,#mwBox .pg-btn{background:transparent;border:1px solid var(--k-red);color:var(--k-red);border-radius:12px;font-family:inherit;cursor:pointer;opacity:1;}
#mwGuide .fp-summary{color:var(--k-ink);border-color:rgba(var(--prr),.35);background:var(--k-field);margin:4px 4px 10px;}
.mw-head .mw-title{font-family:var(--sp-head);font-weight:normal;color:var(--sp-red);font-size:24px;line-height:1;white-space:nowrap;margin:0 6px 0 2px;text-transform:lowercase;}
#mwPanel.pop .mw-title{order:1;flex:1 1 auto;font-size:20px;}
/* the paper page */
.mw-page .mw-bg{left:0;top:0;width:792px;height:612px;pointer-events:none;}
html.dark-ui body:not(.print-mw) .mw-page .mw-bg{content:url(img/mission-bg-dark.webp);}
.mw-page .sp-num{font-size:12px;}
.mw-page .sp-num.big{font-size:15px;}
.mw-page .sp-num.xl{font-size:19px;}
.mw-page .sp-num.mw-foc{text-decoration:underline;text-decoration-color:var(--sp-red);text-underline-offset:2px;}
.mw-scope .mw-tick.ro{cursor:default;}
.mw-scope .mw-tick.ro:not(.on):hover::before{background:none;}
.mw-page .mw-dl{cursor:pointer;}
.mw-dice{position:absolute;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0;border:.8px solid rgba(var(--prr),.65);border-radius:50%;background:var(--k-field);color:var(--sp-red);cursor:pointer;line-height:1;}
.mw-dice .ii{width:74%;height:74%;}
.mw-dice:hover{background:var(--sp-red);color:var(--k-field);}
.mw-name{background:none;border:none;padding:0 2px;text-align:left;font:inherit;font-size:9.5px;color:var(--sp-ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:18px;border-radius:2px;}
.mw-name em{font-size:7.5px;color:var(--k-muted3);}
.mw-name i{font-size:7.5px;color:var(--k-muted3);}
.mw-name.out b{text-decoration:line-through;}
.mw-name:hover{background:rgba(var(--prr),.08);}
.mw-fl{font-size:5.4px;letter-spacing:.06em;text-transform:uppercase;line-height:12px;color:var(--sp-red);white-space:nowrap;overflow:hidden;}
.mw-page .mw-in,.mw-page .mw-psel{font-size:8.5px;line-height:12px;border-bottom:.5px solid rgba(var(--prr),.35);}
.mw-page .mw-notes{font-size:8.5px;line-height:11px;resize:none;border:none;padding:2px 1px;white-space:pre-wrap;overflow:auto;background:transparent;}
.mw-page .mw-notes:focus{background:rgba(var(--prr),.05);}
/* the phone column */
.mw-stack .mw-dcells{flex-wrap:wrap;row-gap:8px;}
.mw-stack .mw-dcells .ss-c{flex:0 0 33%;}
.mw-stack .mw-dlf{position:static;font-family:inherit;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--sp-ink);padding:6px 2px;}
.mw-flatbtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0 4px;}
.mw-stack .mw-dice{position:static;border-radius:16px;padding:6px 14px;font:inherit;font-size:14px;width:auto;height:auto;}
.mw-stack .mw-dice .ii{width:16px;height:16px;}
.mw-stack .ss-fc .mw-dice{margin-top:6px;}
.mw-srow{border-bottom:1px solid rgba(var(--prr),.22);padding:6px 0 8px;}
.mw-srow.out .mw-sname b{text-decoration:line-through;}
.mw-shead{display:flex;align-items:center;gap:10px;}
.mw-snum{flex:0 0 26px;text-align:center;font-size:15px;color:var(--sp-ink);}
.mw-glyph{width:20px;height:20px;vertical-align:middle;color:var(--sp-red);}
.mw-sname{flex:1 1 auto;min-width:0;text-align:left;background:none;border:none;font:inherit;font-size:16px;color:var(--sp-ink);padding:6px 0;cursor:pointer;}
.mw-sname em{font-size:13px;color:var(--k-muted3);}
.mw-sname i{font-size:13px;color:var(--k-muted3);}
.mw-sadd{color:var(--sp-red);font-style:italic;}
.mw-sticks{display:flex;align-items:flex-start;gap:2px;margin:4px 0 0 36px;}
.mw-sk{flex:0 0 62px;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sp-red);padding-top:5px;}
.mw-st{flex:1 1 0;display:flex;flex-direction:column;align-items:center;min-width:0;font-size:9px;color:var(--k-muted3);}
.mw-st span{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
/* boxes over the sheet (tests, injuries, an Ally's row) */
.mw-tbox .mw-line{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:6px 4px;}
.mw-sel2{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--k-muted3);text-transform:uppercase;letter-spacing:.04em;}
.mw-sel2 select,.mw-sel2 input{font:inherit;font-size:14px;text-transform:none;letter-spacing:0;background:var(--k-field);color:var(--sp-ink);border:1px solid rgba(var(--prr),.5);border-radius:8px;padding:5px 7px;min-width:120px;}
.mw-sel2 input[type=number]{min-width:0;width:80px;}
.mw-tbox .mw-pend{background:rgba(var(--prr),.07);border-left:3px solid var(--sp-red);border-radius:3px;padding:10px;margin:10px 4px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;color:var(--sp-ink);}
.mw-tbox .mw-tabs{margin:0 4px 8px;}
.mw-tbox .cc-result{margin:8px 4px;color:var(--sp-ink);border-color:rgba(var(--prr),.4);background:var(--k-field);}
.mw-tbox .jy-work,.cwz-box .jy-work{margin:4px;}
.mw-tbox .al-link{color:var(--sp-red);}
.mw-scope .sp-sel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4'%3E%3Cpath d='M0 0h6L3 4z' fill='%232c5f94' fill-opacity='.6'/%3E%3C/svg%3E");}
html.dark-ui body:not(.print-mw) .mw-scope .sp-sel{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='4'%3E%3Cpath d='M0 0h6L3 4z' fill='%238db6e3' fill-opacity='.7'/%3E%3C/svg%3E");}
@media (max-width:700px){
  #mwPanel:not(.pop) .mw-title{order:1;flex:1 1 auto;min-width:0;font-size:18px;overflow:hidden;text-overflow:ellipsis;}
  #mwPanel:not(.pop) #mwMin,#mwPanel:not(.pop) #mwPop,#mwPanel:not(.pop) #mwClose{order:2;}
  #mwPanel:not(.pop) .sh-tools{order:3;flex:1 1 100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
  #mwPanel .sh-tools::-webkit-scrollbar{display:none;}
  #mwPanel .sh-tools .hp-chips{flex:0 0 auto;flex-wrap:nowrap;}
  #mwPanel .sh-tools .hp-chip,#mwPanel .sh-tools .inv-btn{white-space:nowrap;flex:0 0 auto;}
}
@media print{
  body.print-mw #mwPrint .mw-page{position:relative;transform:none!important;zoom:1.2;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  body.print-mw .mw-dice,body.print-mw .mw-name.empty{display:none!important;}
  body.print-mw .sp-in::placeholder{color:transparent;}
  body.print-mw .sp-sel{background-image:none;}
}

/* ---- Useful Items: the Skill on the tile and the Skill picker that opens when one is added (js/inventory.js);
   weapons outside the hero's Combat Proficiencies greyed while Character Creation's Starting Gear is showing ---- */
.gx-tile .gx-sk{font-size:11px;font-style:italic;color:var(--k-muted3);line-height:1.1;text-align:center;}
.gx-mini.gx-offprof{opacity:.42;filter:grayscale(.7);}
.gx-skpick .gx-backname{margin-bottom:2px;}
.gx-skgrp{display:flex;flex-direction:column;gap:5px;margin:2px 0 4px;}
.gx-skh{font-size:10px;letter-spacing:.1em;color:var(--sp-red);font-weight:700;}
.gx-skrow{display:flex;flex-wrap:wrap;gap:6px;}
.gx-skbtn{background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--sp-ink);border-radius:14px;padding:6px 11px;font:13px inherit;font-family:inherit;cursor:pointer;}
.gx-skbtn:hover{border-color:var(--sp-red);}
.gx-skbtn:active{background:var(--sp-red);color:#fff;}
/* ---- a Reward's item: "Apply to item" opens the hero's matching war gear cards (js/sheet.js rewardCards) ---- */
.rw-apply{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:6px 2px;}
.rw-on{font-size:13.5px;}
.rw-pick{margin:4px 0 8px;}
.rw-pick .gx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:9px;}
.rw-pick .gx-tile{position:relative;}
.rw-pick .gx-tile .gx-name{font-size:12.5px;}
.rw-pick .rw-sel .gx-face{box-shadow:inset 0 0 0 3px var(--sp-red),inset 0 0 0 5px var(--k-field),0 2px 8px rgba(199,53,56,.35);}
.rw-pick .rw-tick{position:absolute;top:7%;right:8%;color:var(--sp-red);}
.rw-pick .rw-tick .ii{width:18px;height:18px;}
.rw-pick .gx-tog{margin-top:8px;}
/* ---- Character Creation step 8 (8a / 8b / 8c): the bar sits above the Inventory, which keeps clear of it ---- */
.cwz-layer.cwz-gearbar{z-index:5;}
.cwz-prof{display:inline-block;margin-left:6px;padding:1px 8px;border:1px solid rgba(199,53,56,.45);border-radius:10px;font-size:12px;color:var(--k-muted3);}
.cwz-prof.on{background:var(--k-red);border-color:var(--k-red);color:#fff;}
.cwz-rw{margin:-2px 0 8px 10px;padding:2px 0 4px 10px;border-left:2px solid rgba(199,53,56,.35);}
/* a card turned over (inventory, Reward / Virtue) scrolls clear of the phone tab bar */
html.phone-port .gx-backwrap{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px));}
html.phone-land .gx-backwrap{padding-left:calc(72px + env(safe-area-inset-left,0px));}
/* ---- Famous Weapon / Armour quality picker (js/tables.js qualPicker): every quality with the book's requirements and
   text; ones that don't fit this item are dimmed with the reason, still pickable ---- */
.qp-open{margin-top:4px;}
.qp-list{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px;max-height:52vh;overflow:auto;padding-right:2px;}
.qp-h{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--sp-red);font-weight:700;margin:6px 0 0;}
.qp-row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;width:100%;background:var(--k-field);border:1px solid rgba(199,53,56,.35);
  border-radius:8px;padding:7px 10px;color:var(--sp-ink);font:inherit;cursor:pointer;}
.qp-row:hover{border-color:var(--sp-red);}
.qp-n{font-weight:700;color:var(--sp-red);font-size:14px;}
.qp-n em{font-weight:400;font-size:12px;color:var(--k-muted3);margin-left:4px;}
.qp-req{font-size:11.5px;color:var(--k-muted3);}
.qp-why{font-size:11.5px;font-style:italic;color:var(--sp-red);}
.qp-t{font-size:12.5px;line-height:1.4;}
.qp-row.qp-off{opacity:.55;}
.qp-row.qp-off .qp-n{color:var(--k-muted3);}
/* Character Creation step 10: each Patron row with its Pg. button beside it */
.cwz-patrow{display:flex;align-items:center;gap:6px;}
.cwz-patrow>.sh-pick-item{flex:1 1 auto;min-width:0;}
.cwz-patrow>.pg-btn{flex:0 0 auto;}
/* ---- Wondrous Items / Marvellous Artefacts: Blessing rows (Skill, Revealed / Dormant) and the book's rule line;
   Precious Objects' Treasure (js/inventory.js) ---- */
.gx-blrow{display:flex;align-items:center;gap:8px;margin:4px 0;}
.gx-blrow select{flex:1 1 auto;min-width:0;}
.gx-blrow .gx-tog{flex:0 0 auto;}
.gx-bldorm select{opacity:.55;}
.gx-rule{font-size:12.5px;font-style:italic;color:var(--k-muted3);margin:4px 2px;line-height:1.45;}
.gx-rule .pg-btn{font-style:normal;margin-left:4px;}
.gx-rule .pg-btn{background:transparent;border:1px solid var(--sp-red);color:var(--sp-red);border-radius:12px;opacity:1;font-family:inherit;font-size:11.5px;padding:1px 8px;cursor:pointer;}
/* ---- Protection roll (js/sheet.js protRoll): the sheet's button and its window; kept "where you are" chips ---- */
.sp-protbtn{position:absolute;font-family:inherit;font-size:6.5px;font-weight:600;line-height:8px;color:var(--sp-red);background:transparent;border:.6px solid var(--sp-red);border-radius:5px;cursor:pointer;padding:0 3px;white-space:nowrap;box-sizing:border-box;}
.sp-protbtn:hover{background:rgba(199,53,56,.08);}
.sp-protbtn.ss-protbtn{position:static;display:block;margin:8px auto 2px;font-size:14px;padding:7px 14px;border-radius:14px;}
.sh-protchips{margin:6px 0;}
.sh-protchips .hp-chips{display:flex;flex-wrap:wrap;gap:6px;}
.sh-protres{font-weight:600;color:var(--k-ink);margin:8px 2px 2px;}
.sh-protres.bad{color:var(--sp-red);}
.hp-chip.hp-env{border-style:dashed;}
/* ---- War Gear rows as slim card strips (js/sheet.js gearRowsHtml / ssGear): tap = the item's card ---- */
.sp-gstrip{position:absolute;display:block;padding:0;margin:0;background:var(--k-field);border:.6px solid rgba(199,53,56,.55);border-radius:3px;cursor:pointer;font:inherit;color:var(--sp-ink);overflow:hidden;box-shadow:0 .5px 1.5px rgba(0,0,0,.12);}
.sp-gstrip:hover{border-color:var(--sp-red);}
.sp-gstrip.famous{border-color:#b08a2e;box-shadow:0 0 0 .6px rgba(217,164,65,.7);}
.sp-gstrip.sp-gempty{background:transparent;border:.6px dashed rgba(199,53,56,.28);box-shadow:none;}
.sp-gc{position:absolute;top:0;height:100%;font-size:8.2px;line-height:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:1.5px;}
.sp-gc.sm{justify-content:center;}
.sp-gart{height:9px;width:auto;max-width:9px;object-fit:contain;flex:0 0 auto;}
.sp-gmark{height:7px;width:auto;flex:0 0 auto;}
.ss-gstrip{width:100%;font:inherit;color:var(--sp-ink);text-align:left;background:var(--k-field);border:1px solid rgba(199,53,56,.5);border-radius:10px;padding:8px 10px;margin:6px 0 0;cursor:pointer;align-items:center;
  box-shadow:inset 0 0 0 3px var(--k-field),inset 0 0 0 4px rgba(199,53,56,.25),0 1px 3px rgba(0,0,0,.1);}
.ss-gstrip.famous{border-color:#b08a2e;}
.ss-gstrip .ss-gc{font-size:16px;text-align:center;}
.ss-gstrip .ss-gname{text-align:left;display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ss-gstrip .ss-gnote{grid-column:1/-1;font-size:14px;font-style:italic;text-align:left;color:var(--k-muted3);}
.ss-gstrip .sp-gart{height:28px;max-width:26px;}
.ss-gstrip .sp-gmark{height:16px;}
.ss-gstrip.ss-gempty{display:block;text-align:center;background:transparent;border:1px dashed rgba(199,53,56,.35);box-shadow:none;color:var(--k-muted3);font-style:italic;font-size:14px;}
/* a card opened from a strip shows on its own over the sheet */
.sp-invlayer.sp-invcard{background:none;}
.sp-invlayer.sp-invcard .sp-invbox{visibility:hidden;}
.sp-invlayer.sp-invcard .gx-backwrap{visibility:visible;}
@media print{
  body.print-sheet .sp-gstrip{background:none!important;border:none!important;box-shadow:none!important;}
  body.print-sheet .sp-gart,body.print-sheet .sp-gmark,body.print-sheet .sp-gempty{display:none!important;}
}
.sp-gartw{position:relative;flex:0 0 auto;width:16px;height:9px;overflow:visible;}
.sp-gart-r{position:absolute;left:50%;top:50%;height:16px;width:auto;max-width:none;transform:translate(-50%,-50%) rotate(-90deg);}
.ss-gstrip .sp-gartw{width:46px;height:26px;}
.ss-gstrip .sp-gart-r{height:46px;}
@media print{body.print-sheet .sp-gartw{display:none!important;}}
/* ---- tap a quality / Reward / Blessing / Curse / Banes name on an item card for its rules text (js/inventory.js) ---- */
.gx-iname,.ti-quals button.gx-iname{all:unset;cursor:pointer;color:inherit;font:inherit;border-bottom:1px dotted currentColor;line-height:1.3;}
.gx-iname:hover,.gx-iname.on{color:var(--sp-red);}
.gx-iname:focus-visible{outline:2px solid var(--sp-red);outline-offset:2px;}
.ti-quals li{flex-wrap:wrap;}
.gx-info{flex:1 0 100%;font-size:13px;font-style:normal;line-height:1.45;color:var(--sp-ink);background:rgba(199,53,56,.06);border-left:2px solid rgba(199,53,56,.45);border-radius:0 6px 6px 0;padding:6px 8px;margin:4px 0 6px;text-transform:none;letter-spacing:normal;font-weight:400;}
.gx-dormant .gx-info{color:var(--sp-ink);}
.ti-quals li>span{flex:1 1 0;min-width:0;}
.gx-info .pg-btn,.ti-quals .gx-info button.pg-btn{display:inline-block;width:auto;height:auto;background:transparent;border:1px solid var(--sp-red);color:var(--sp-red);border-radius:12px;opacity:1;font-family:inherit;font-style:normal;font-size:11.5px;line-height:1.4;padding:1px 8px;margin-left:4px;cursor:pointer;}

/* ---- Loremaster Screen (js/lm-screen.js): paper window, header like the Character Sheet's, cards on a 12-column board
   or (.col) one column. .arr = Arrange. Card colours: red, .moria blue, .custom green (homebrew), via --lc / --lcr. ---- */
#lmsPanel{position:fixed;left:0;right:0;top:48px;bottom:var(--journal-h,0px);z-index:39;display:none;flex-direction:column;
  background:var(--k-grey);font-family:'SheetBask','Libre Baskerville',Georgia,serif;color:var(--k-ink);}
#lmsPanel.show{display:flex;}
html.phone #lmsTabBtn{display:none!important;} /* phone: the Screen opens from the ••• menu */
html.phone-land #lmsPanel:not(.pop){left:var(--rail-w,0px);}
#lmsPanel.pop{z-index:36;border-radius:6px;padding:6px;overflow:hidden;min-width:300px;min-height:220px;background:var(--k-paper);
  box-shadow:0 14px 44px rgba(0,0,0,.65),inset 0 0 0 3px var(--k-paper),inset 0 0 0 4.5px var(--k-red),inset 0 0 0 7px var(--k-paper),inset 0 0 0 7.8px rgba(199,53,56,.5);}
#lmsPanel.pop.dock{z-index:37;resize:none;border-radius:10px 10px 0 0;padding-bottom:0;}
#lmsPanel .sh-dockgrip{display:none;}
#lmsPanel.pop.dock .sh-dockgrip{display:flex;justify-content:center;align-items:center;flex:0 0 auto;height:18px;cursor:ns-resize;touch-action:none;}
#lmsPanel.pop.dock .sh-dockgrip span{width:44px;height:5px;border-radius:3px;background:rgba(199,53,56,.45);}
.lms-head{flex:0 0 auto;background:var(--k-paper);padding:4px 6px 11px;display:flex;align-items:center;gap:6px;
  box-shadow:inset 0 -3px 0 var(--k-paper),inset 0 -4.5px 0 var(--k-red),inset 0 -7px 0 var(--k-paper),inset 0 -7.8px 0 rgba(199,53,56,.5);}
#lmsPanel.pop:not(.dock) .lms-head{cursor:move;touch-action:none;}
.lms-wgrip{display:none;align-items:center;color:var(--k-muted2);}
#lmsPanel.pop:not(.dock) .lms-wgrip{display:flex;}
.lms-wgrip .ii{width:16px;height:16px;}
.lms-title{flex:0 1 auto;min-width:0;margin-right:4px;font-family:'Aniron','SheetUncial',serif;font-weight:normal;color:var(--k-red);font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.lms-ic{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--k-red);
  display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.lms-ic:hover{background:var(--k-red);color:#fff;}
.lms-ic .ii{width:16px;height:16px;}
.lms-tabs{display:flex;gap:6px;flex:1 1 0;min-width:0;overflow-x:auto;scrollbar-width:none;touch-action:pan-x;}
.lms-tabs::-webkit-scrollbar{display:none;}
.lms-tab,.lms-btn{flex:0 0 auto;background:var(--k-field);border:1px solid rgba(199,53,56,.5);color:var(--k-red);border-radius:14px;padding:5px 12px;
  font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;}
.lms-tab{max-width:170px;overflow:hidden;text-overflow:ellipsis;}
.lms-tab:not(.on):hover,.lms-btn:not(.on):hover{background:rgba(199,53,56,.08);}
.lms-tab.on,.lms-btn.on{background:var(--k-red);border-color:var(--k-red);color:#fff;}
.lms-tools{display:flex;gap:6px;margin-left:auto;flex:0 0 auto;}
#lmsPanel.narrow .lms-title{display:none;}
#lmsPanel.tiny .lms-head{gap:4px;}
#lmsPanel.tiny .lms-tools{gap:4px;}
#lmsPanel.tiny .lms-btn,#lmsPanel.tiny .lms-tab{padding:5px 8px;font-size:12.5px;}
#lmsPanel.tiny .lms-ic{width:30px;height:30px;}
/* the window's resize corner (touch and mouse; CSS resize is mouse-only) */
.lms-wrs{display:none;}
#lmsPanel.pop:not(.dock) .lms-wrs{display:block;position:absolute;right:0;bottom:0;width:30px;height:30px;z-index:13;cursor:nwse-resize;touch-action:none;
  background:linear-gradient(135deg,transparent 55%,rgba(199,53,56,.55) 55%,rgba(199,53,56,.55) 61%,transparent 61%,transparent 72%,rgba(199,53,56,.55) 72%,rgba(199,53,56,.55) 78%,transparent 78%);}
#lmsPanel.wsizing .lms-card{transition:none!important;}
.lms-ddwrap{position:relative;}
.lms-dd{display:none;position:absolute;right:0;top:calc(100% + 4px);z-index:12;background:var(--k-paper);border:1px solid rgba(199,53,56,.5);border-radius:4px;
  box-shadow:0 8px 24px rgba(42,33,28,.35);padding:8px;flex-direction:column;gap:2px;min-width:210px;}
.lms-dd.show{display:flex;}
.lms-dd button{text-align:left;background:none;border:none;color:var(--k-ink);font:inherit;font-size:14px;padding:7px 8px;border-radius:4px;cursor:pointer;}
.lms-dd button:hover:not(:disabled){background:rgba(199,53,56,.08);}
.lms-dd button:disabled{opacity:.4;cursor:default;}
.lms-dd .lms-danger{color:var(--k-red);}
.lms-ddname{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--k-muted);padding:0 4px 8px;border-bottom:1px solid rgba(199,53,56,.2);margin-bottom:4px;}
.lms-ddname input{font:inherit;font-size:14px;color:var(--k-ink);background:var(--k-field);border:1px solid rgba(199,53,56,.4);border-radius:4px;padding:5px 7px;}
.lms-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:10px;background:var(--k-grey);}
.lms-board{position:relative;}
#lmsPanel.col .lms-board{display:flex;flex-direction:column;gap:10px;}
.lms-card{position:absolute;display:flex;flex-direction:column;background:var(--k-paper);border:1px solid rgba(var(--lcr),.35);border-radius:6px;overflow:hidden;
  box-shadow:0 1px 3px rgba(42,33,28,.12);--lc:var(--k-red);--lcr:199,53,56;}
html.dark-ui .lms-card{--lcr:226,80,74;}
.lms-card.moria{--lc:#2c5f94;--lcr:44,95,148;}
.lms-card.custom{--lc:#3f6b30;--lcr:63,107,48;}
html.dark-ui .lms-card.moria{--lc:#8db6e3;--lcr:141,182,227;}
html.dark-ui .lms-card.custom{--lc:#9dbb91;--lcr:157,187,145;}
#lmsPanel.col .lms-card{position:relative;flex:0 0 auto;}
#lmsPanel:not(.col) .lms-card{transition:left .15s,top .15s,width .15s,height .15s;}
#lmsPanel.col .lms-card{transition:transform .15s;}
#lmsPanel .lms-card.drag{transition:none;z-index:5;box-shadow:0 10px 28px rgba(0,0,0,.35);}
.lms-ghost{position:absolute;border:2px dashed rgba(199,53,56,.45);border-radius:6px;background:rgba(199,53,56,.05);pointer-events:none;}
#lmsPanel.dragging,#lmsPanel.dragging *{user-select:none;-webkit-user-select:none;}
.lms-chead{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid rgba(var(--lcr),.25);-webkit-touch-callout:none;}
.lms-ct{flex:1 1 auto;min-width:0;font-family:'Aniron','SheetUncial',serif;font-weight:normal;font-size:14px;color:var(--lc);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lms-cgrip,.lms-x,.lms-rs,.lms-chev{display:none;}
.lms-cgrip{align-items:center;color:var(--k-muted2);touch-action:none;cursor:grab;padding:2px;}
.lms-cgrip .ii,.lms-chev .ii{width:15px;height:15px;}
.lms-x{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--k-field);border:1px solid rgba(var(--lcr),.45);color:var(--lc);align-items:center;justify-content:center;padding:0;cursor:pointer;}
.lms-x .ii{width:12px;height:12px;}
#lmsPanel.arr .lms-x{display:flex;}
#lmsPanel.arr.col .lms-cgrip{display:flex;}
#lmsPanel.col:not(.arr) .lms-chev{display:flex;align-items:center;color:var(--k-muted2);}
#lmsPanel.col:not(.arr) .lms-chead{cursor:pointer;}
#lmsPanel.arr:not(.col) .lms-chead{cursor:move;touch-action:none;}
#lmsPanel.arr:not(.col) .lms-rs{display:block;position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;touch-action:none;
  background:linear-gradient(135deg,transparent 50%,rgba(var(--lcr),.5) 50%,rgba(var(--lcr),.5) 58%,transparent 58%,transparent 70%,rgba(var(--lcr),.5) 70%,rgba(var(--lcr),.5) 78%,transparent 78%);}
@media (pointer:coarse){
  #lmsPanel.arr:not(.col) .lms-rs{width:32px;height:32px;}
  #lmsPanel .lms-x{width:30px;height:30px;}
  #lmsPanel .lms-fit{padding:5px 12px;font-size:13px;}
  .lms-cgrip{padding:6px;}
}
#lmsPanel.arr:not(.col) .lms-board{background-image:linear-gradient(to right,rgba(199,53,56,.16) 1px,transparent 1px),linear-gradient(to bottom,rgba(199,53,56,.16) 1px,transparent 1px);
  background-size:calc((100% + 8px)/12) 28px;} /* faint grid lines at the snap points (columns of the 12-column board, 28px rows) */
.lms-card.shut .lms-cbody{display:none;}
.lms-card.shut .lms-chead{border-bottom:none;}
.lms-cwrap{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;}
/* cut-off content: a paper fade at the cut edge, and a ▾ at the bottom (js/lm-screen.js moreOf) */
.lms-fade{display:none;position:absolute;left:0;right:0;height:26px;pointer-events:none;z-index:2;}
.lms-fade.up{top:0;background:linear-gradient(var(--k-paper),rgba(0,0,0,0));background:linear-gradient(var(--k-paper),color-mix(in srgb,var(--k-paper) 0%,transparent));}
.lms-fade.dn{bottom:0;height:30px;background:linear-gradient(rgba(0,0,0,0),var(--k-paper));background:linear-gradient(color-mix(in srgb,var(--k-paper) 0%,transparent),var(--k-paper) 85%);
  align-items:flex-end;justify-content:center;color:var(--lc);}
.lms-fade.dn .ii{width:16px;height:16px;margin-bottom:1px;}
.lms-card.more-up .lms-fade.up{display:block;}
.lms-card.more-dn .lms-fade.dn{display:flex;}
.lms-fit{display:none;flex:0 0 auto;align-self:center;background:var(--k-field);border:1px solid rgba(var(--lcr),.45);color:var(--lc);border-radius:12px;
  padding:2px 9px;font:inherit;font-size:12px;line-height:1.3;cursor:pointer;}
.lms-fit:hover{background:rgba(var(--lcr),.08);}
#lmsPanel.arr:not(.col) .lms-fit{display:block;}
.lms-cbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px 10px 10px;font-size:13px;line-height:1.4;}
#lmsPanel.col .lms-cbody{overflow:visible;}
.lms-cap{font-size:12px;color:var(--k-muted);font-style:italic;margin-bottom:3px;}
.lms-h{font-size:11.5px;color:var(--k-muted);text-transform:uppercase;letter-spacing:.05em;margin:8px 0 4px;}
.lms-h:first-child{margin-top:2px;}
.lms-btns{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:4px;}
.lms-roll{background:var(--k-field);border:1px solid rgba(var(--lcr),.5);color:var(--lc);border-radius:14px;padding:5px 10px;font:inherit;font-size:13px;cursor:pointer;text-align:left;}
.lms-roll:hover{background:rgba(var(--lcr),.08);}
.lms-roll:active{background:rgba(var(--lcr),.18);}
.lms-sel{display:block;font:inherit;font-size:13px;color:var(--k-ink);background:var(--k-field);border:1px solid rgba(var(--lcr),.4);border-radius:4px;padding:4px 6px;margin:0 0 6px;max-width:100%;}
.lms-chk{display:flex;gap:6px;align-items:center;font-size:13px;margin:0 0 6px;color:var(--k-ink2);}
.lms-empty{color:var(--k-muted);font-style:italic;}
.lms-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.lms-big b{font-size:30px;line-height:1.1;color:var(--lc);}
.lms-big span{color:var(--k-muted);}
.lms-alert{color:var(--k-red);font-weight:bold;margin-top:2px;}
.lms-hero,.lms-rr{padding:5px 0;border-bottom:1px solid rgba(var(--lcr),.14);}
.lms-hero:last-child,.lms-rr:last-child{border-bottom:none;}
.lms-hero>b,.lms-rr>b{color:var(--lc);}
.lms-rr>b{font-size:12px;}
.lms-rr .succ-ic{height:1em;vertical-align:-.12em;}
.lms-stats{display:flex;flex-wrap:wrap;gap:0 12px;color:var(--k-muted3);font-size:12.5px;}
.lms-stats b{color:var(--k-ink);}
.lms-conds{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px;}
.lms-cond{font-size:11px;border:1px solid rgba(var(--lcr),.3);color:var(--k-muted2);border-radius:10px;padding:1px 7px;}
.lms-cond.on{background:var(--lc);border-color:var(--lc);color:#fff;}
html.dark-ui .lms-cond.on{color:#1c1a19;}
.lms-kv{display:flex;justify-content:space-between;gap:8px;padding:3px 0;}
.lms-kv b{color:var(--lc);}
.lms-fp{margin-top:4px;padding-top:4px;border-top:2px solid rgba(var(--lcr),.35);}
.lms-fp .lms-kv{justify-content:flex-start;}
.lms-fp .lms-kv b{font-size:16px;}
.lms-fph{color:var(--k-muted);font-size:12.5px;margin-bottom:1px;}
.lms-none{display:flex;justify-content:center;padding:30px 0;}
.lms-picker{display:none;position:absolute;inset:0;z-index:14;background:var(--k-paper);flex-direction:column;border-radius:inherit;}
.lms-picker.show{display:flex;}
.lms-phead{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px;border-bottom:1px solid rgba(199,53,56,.25);}
.lms-phead b{font-family:'Aniron','SheetUncial',serif;font-weight:normal;color:var(--k-red);font-size:17px;}
.lms-pbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 14px 18px;}
.lms-pi{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid rgba(199,53,56,.12);
  padding:8px 2px;font:inherit;font-size:14px;color:var(--k-ink);cursor:pointer;--lc:var(--k-red);}
.lms-pi.moria{--lc:#2c5f94;color:#2c5f94;}
.lms-pi.custom{--lc:#3f6b30;color:#3f6b30;}
html.dark-ui .lms-pi.moria{--lc:#8db6e3;color:#8db6e3;}
html.dark-ui .lms-pi.custom{--lc:#9dbb91;color:#9dbb91;}
.lms-pchk{width:18px;height:18px;border:1px solid var(--lc);border-radius:4px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff;}
.lms-pi.on .lms-pchk{background:var(--lc);}
.lms-pchk .ii{width:13px;height:13px;}
.lms-card .pg-btn{flex:0 0 auto;background:var(--k-field);border:1px solid rgba(var(--lcr),.5);color:var(--lc);border-radius:10px;padding:2px 8px;font:inherit;font-size:11.5px;line-height:1.3;cursor:pointer;}
.lms-card .pg-btn:hover{background:rgba(var(--lcr),.1);}
.lms-card.note .lms-cbody{display:flex;padding:0;}
.lms-nin{flex:1 1 auto;display:flex;min-height:0;}
.lms-note{flex:1 1 auto;width:100%;min-height:60px;box-sizing:border-box;resize:none;border:none;outline:none;background:transparent;color:var(--k-ink);
  font:inherit;font-size:13.5px;line-height:1.45;padding:8px 10px;}
#lmsPanel.col .lms-note{overflow:hidden;}
.lms-ntitle{flex:1 1 auto;min-width:0;font-family:'Aniron','SheetUncial',serif;font-size:14px;color:var(--lc);background:var(--k-field);border:1px solid rgba(var(--lcr),.4);border-radius:4px;padding:2px 6px;}
.lms-pi[data-pk="note"] .lms-pchk{color:var(--lc);}
.lms-mo{color:#2c5f94;font-style:italic;}
html.dark-ui .lms-mo{color:#8db6e3;}
.lms-vr{color:var(--k-muted3);font-style:italic;}
.lms-sec+.lms-sec{margin-top:6px;}
.lms-sech{display:flex;align-items:center;gap:6px;padding:5px 0 4px;border-bottom:1px solid rgba(var(--lcr),.3);cursor:pointer;-webkit-touch-callout:none;}
.lms-sech b{font-family:'Aniron','SheetUncial',serif;font-weight:normal;font-size:13px;color:var(--lc);}
.lms-secv{display:flex;color:var(--k-muted2);}
.lms-secv .ii{width:13px;height:13px;}
.lms-sec.shut .lms-secb{display:none;}
.lms-secb{padding-top:2px;}
.lms-vr.lms-mo{color:#2c5f94;}
html.dark-ui .lms-vr.lms-mo{color:#8db6e3;}
/* ---- Loremaster Screen: the printed screen's look — one paper sheet, no boxes; red titles with "(page N)";
   tables with small-caps heads over a red rule and shaded rows; ♦ rule text; numbered steps ---- */
#lmsPanel .lms-body{background:var(--k-paper);padding:12px 14px;}
#lmsPanel .lms-card{background:transparent;border:none;border-radius:0;box-shadow:none;}
#lmsPanel.arr .lms-card{outline:1px dashed rgba(var(--lcr),.45);outline-offset:2px;border-radius:2px;}
#lmsPanel.col .lms-board{gap:18px;}
#lmsPanel .lms-chead{border-bottom:none;padding:2px 2px 5px;align-items:flex-start;}
.lms-ctw{flex:1 1 auto;min-width:0;line-height:1.25;}
#lmsPanel .lms-ct{display:inline;white-space:normal;font-family:'Aniron','SheetUncial',serif;font-weight:normal;font-size:18px;letter-spacing:0;text-transform:none;color:var(--lc);}
/* Screens ▾ → Widget borders (this device): a thin border round each widget */
.lms-ddchk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--k-ink);padding:7px 8px;border-bottom:1px solid rgba(199,53,56,.2);margin-bottom:4px;cursor:pointer;}
.lms-ddchk input{accent-color:var(--k-red);width:16px;height:16px;margin:0;}
#lmsPanel.bord .lms-card{border:1px solid rgba(var(--lcr),.55);border-radius:4px;}
#lmsPanel.bord .lms-chead{padding:6px 8px 5px;}
#lmsPanel.bord .lms-card:not(.note) .lms-cbody{padding:0 8px 8px;}
#lmsPanel.bord.arr .lms-card{outline-offset:3px;}
.lms-pgt{font-family:'SheetBask','Libre Baskerville',Georgia,serif;font-size:12px;color:var(--k-ink2);white-space:nowrap;}
#lmsPanel .lms-pgt .pg-btn{background:none;border:none;border-radius:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;line-height:inherit;}
#lmsPanel .lms-pgt .pg-btn:hover{color:var(--lc);text-decoration:underline dotted;background:none;}
#lmsPanel .lms-cbody{padding:0 2px 6px;}
#lmsPanel .lms-chev,#lmsPanel .lms-x{align-self:center;}
/* tables */
.lms-t{width:100%;border-collapse:collapse;font-family:'Gill Sans','Gill Sans MT','Seravek','Avenir Next','Segoe UI',system-ui,sans-serif;font-size:13px;line-height:1.35;color:var(--k-ink);}
.lms-t th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--k-ink);padding:3px 8px 4px;vertical-align:bottom;border-bottom:2px solid var(--lc);}
.lms-t.nohead{border-top:2px solid var(--lc);}
.lms-t td{padding:6px 8px;vertical-align:top;border-bottom:1px solid rgba(var(--lcr),.28);}
.lms-t tbody tr:nth-child(odd) td{background:rgba(120,92,60,.10);}
html.dark-ui .lms-t tbody tr:nth-child(odd) td{background:rgba(255,255,255,.05);}
.lms-t td.c-d{text-align:center;white-space:nowrap;font-weight:700;}
.lms-t td.c-n{white-space:normal;min-width:6em;}
.lms-t td.c-n b{font-weight:normal;}
.lms-t td.c-m{font-style:italic;}
.lms-tag{color:var(--k-muted);font-size:.85em;}
.lms-vr{color:var(--k-muted3);font-style:italic;margin-top:3px;}
.lms-ul{margin:3px 0 0;padding-left:16px;}
.lms-ul li{margin:1px 0;}
.lms-t.stack thead{display:none;}
.lms-t.stack,.lms-t.stack tbody,.lms-t.stack tr,.lms-t.stack td{display:block;width:auto;}
.lms-t.stack tr{padding:6px 8px;border-bottom:1px solid rgba(var(--lcr),.28);}
.lms-t.stack tbody tr:nth-child(odd){background:rgba(120,92,60,.10);}
html.dark-ui .lms-t.stack tbody tr:nth-child(odd){background:rgba(255,255,255,.05);}
.lms-t.stack td{padding:0;border:none;background:none!important;text-align:left;}
.lms-t.stack td.c-d,.lms-t.stack td.c-n,.lms-t.stack td.c-m{display:inline;margin-right:8px;}
.lms-t.stack td.c-n b{font-weight:700;color:var(--lc);}
.lms-t.stack td.c-d{border:1px solid rgba(var(--lcr),.35);border-radius:3px;padding:0 4px;font-size:11.5px;}
.lms-t.stack td.c-x,.lms-t.stack td.c-l{margin-top:2px;}
/* ♦ rule text and numbered steps (book serif) */
.lms-pr{margin:0 0 7px;padding-left:15px;position:relative;font-size:13.5px;line-height:1.45;color:var(--k-ink);}
.lms-dia{position:absolute;left:0;top:0;color:var(--lc);font-size:11px;line-height:1.75;}
.lms-lead{font-weight:700;color:var(--lc);text-transform:uppercase;font-size:.8em;letter-spacing:.05em;}
.lms-steps{list-style:none;margin:0;padding:0;}
.lms-steps>li{display:flex;gap:7px;margin:0 0 8px;font-size:13.5px;line-height:1.45;color:var(--k-ink);}
.lms-num{flex:0 0 auto;min-width:14px;color:var(--lc);font-weight:700;}
.lms-steps .lms-pgt{font-size:11.5px;}
/* merged-card sections: a small-caps head like a table title */
#lmsPanel .lms-sech{border-bottom:none;padding:8px 0 4px;}
#lmsPanel .lms-sech b{font-family:'Gill Sans','Gill Sans MT','Seravek','Avenir Next','Segoe UI',system-ui,sans-serif;font-weight:700;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;}
#lmsPanel .lms-sec+.lms-sec{margin-top:4px;}
.lms-t.stack{border-top:2px solid var(--lc);}
.lms-steps .lms-ul{list-style:disc;}
.lms-steps .lms-ul li{display:list-item;margin:1px 0;}
/* page numbers as small buttons that open the book */
.lms-pgt{display:inline-flex;flex-wrap:wrap;gap:4px;vertical-align:1px;margin-left:4px;}
#lmsPanel .lms-pgt .pg-btn{font-family:'SheetBask','Libre Baskerville',Georgia,serif;font-size:11px;line-height:1.3;color:var(--lc);background:var(--k-field);
  border:1px solid rgba(var(--lcr),.5);border-radius:10px;padding:1px 7px;text-decoration:none;}
#lmsPanel .lms-pgt .pg-btn:hover{background:rgba(var(--lcr),.12);text-decoration:none;}
/* picker categories */
.lms-pcat{border-bottom:1px solid rgba(199,53,56,.15);}
.lms-pch{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:11px 2px;font:inherit;color:var(--k-ink);cursor:pointer;text-align:left;}
.lms-pch b{font-family:'Aniron','SheetUncial',serif;font-weight:normal;font-size:17px;letter-spacing:0;text-transform:none;color:var(--k-red);}
.lms-pch em{margin-left:auto;font-style:normal;font-size:12px;color:var(--k-muted);}
.lms-pcb{padding:0 0 8px 22px;}
.lms-pch.moria b{color:#2c5f94;}
html.dark-ui .lms-pch.moria b{color:#8db6e3;}
.lms-psubs{padding-bottom:4px;}
.lms-psub{border-bottom:1px solid rgba(44,95,148,.15);}
.lms-psub:last-child{border-bottom:none;}
.lms-psub .lms-pch{padding:9px 2px;}
.lms-psub .lms-pch b{font-size:15px;}
/* Living Widgets (live app state): their own colour, --live-c / --live-cr, in the picker and on the cards */
:root{--live-c:#8a6a1f;--live-cr:138,106,31;}
html.dark-ui{--live-c:#d9b45e;--live-cr:217,180,94;}
.lms-pch.live b{color:var(--live-c);}
.lms-pi.live{--lc:var(--live-c);color:var(--live-c);}
.lms-card.live,html.dark-ui .lms-card.live{--lc:var(--live-c);--lcr:var(--live-cr);}
/* gold shine (static, no animation): titles, the big numbers and the Living Widgets heading; small text stays flat gold */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  #lmsPanel .lms-card.live .lms-ct,#lmsPanel .lms-card.live .lms-big b,.lms-pch.live b{
    background:linear-gradient(100deg,#73561a 0%,#86661f 30%,#ad8b3d 50%,#86661f 70%,#73561a 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;}
  html.dark-ui #lmsPanel .lms-card.live .lms-ct,html.dark-ui #lmsPanel .lms-card.live .lms-big b,html.dark-ui .lms-pch.live b{
    background-image:linear-gradient(100deg,#bb9442 0%,#d2ad58 30%,#eacb86 50%,#d2ad58 70%,#bb9442 100%);}
}
.lms-pi.live.on .lms-pchk{background:linear-gradient(135deg,#76581a,#b28f44 50%,#76581a);border-color:#8a6a1f;}
html.dark-ui .lms-pi.live.on .lms-pchk{background:linear-gradient(135deg,#bb9442,#eccd8a 50%,#bb9442);border-color:#d9b45e;}
.lms-pch.custom b{color:#3f6b30;}
html.dark-ui .lms-pch.custom b{color:#9dbb91;}
.lms-pn{margin-left:auto;font-style:normal;font-size:12px;color:var(--k-muted);}
.lms-t tr.lms-th td{background:none!important;border-bottom:1px solid rgba(var(--lcr),.45);padding-top:9px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}

/* ---- Full screen (js/fullscreen.js): a full-screen window covers the toolbar and Journal too (not on the phone layout) ---- */
#lmsPanel.fs,#mwPanel.fs{top:0;bottom:0;left:0;right:0;padding-top:env(safe-area-inset-top,0px);}
#mwPanel.fs:not(.mw-top){z-index:39;}

/* ---- Loremaster Screen: NPC (beta) widget (js/lm-screen.js); stat block drawn like the adversary cards' diamonds ---- */
.lms-beta{font-family:'Libre Baskerville',Georgia,serif;font-size:11px;font-style:italic;color:var(--k-muted2);white-space:nowrap;}
.lms-pi[data-pk="npc"] .lms-pchk,.lms-pi[data-npcblank] .lms-pchk{color:var(--lc);}
.lms-pi[data-npcc] .lms-pchk{border-color:transparent;overflow:hidden;border-radius:50%;}
.lms-pi[data-npcc] .lms-pchk img{width:100%;height:100%;object-fit:cover;}
.lms-npq{display:block;width:calc(100% - 28px);margin:10px 14px 4px;box-sizing:border-box;font:inherit;font-size:14px;color:var(--k-ink);background:var(--k-field);
  border:none;border-bottom:1px solid rgba(199,53,56,.5);padding:6px 4px;outline:none;}
.lms-npc{font-family:'SheetBask','Libre Baskerville',Georgia,serif;color:var(--k-ink);}
.lms-npc input,.lms-npc textarea,.lms-npc select{font:inherit;color:var(--k-ink);background:transparent;border:none;border-bottom:1px dashed transparent;border-radius:0;outline:none;box-sizing:border-box;}
.lms-npc input:focus,.lms-npc textarea:focus{border-bottom-color:rgba(var(--lcr),.6);background:rgba(var(--lcr),.05);}
.lms-npc input::placeholder,.lms-npc textarea::placeholder{color:var(--k-muted2);opacity:.7;font-style:italic;}
.lms-npta{display:block;width:100%;resize:none;overflow:hidden;font-size:13.5px;line-height:1.45;padding:2px 0;min-height:24px;}
.lms-npc .lms-npta:not(.lms-npfeat):not(.lms-npft),.lms-npc .lms-npi{border-bottom:1px dotted rgba(var(--lcr),.28);}
.lms-npback{display:flex;align-items:center;padding:4px 8px;}
.lms-npback .ii{width:14px;height:14px;}
.lms-npi{width:100%;font-size:13.5px;padding:3px 0;}
.lms-nptop{display:flex;align-items:flex-start;gap:10px;margin:0 0 4px;}
.lms-npph{position:relative;flex:0 0 auto;width:56px;height:56px;}
.lms-npph img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:1.6px solid rgba(var(--lcr),.6);box-sizing:border-box;}
.lms-npimgx,.lms-npimg{display:flex;align-items:center;justify-content:center;gap:3px;background:var(--k-field);border:1px solid rgba(var(--lcr),.5);color:var(--lc);cursor:pointer;font:inherit;}
.lms-npimgx{position:absolute;top:-4px;right:-4px;width:20px;height:20px;border-radius:50%;padding:0;}
.lms-npimg{flex:0 0 auto;border-radius:12px;padding:3px 9px;font-size:12px;}
.lms-npimgx .ii,.lms-npimg .ii,.lms-npadd .ii,.lms-nprm .ii{width:12px;height:12px;}
.lms-npfeat{flex:1 1 auto;font-size:13px;font-style:italic;}
/* diamonds: the adversary cards' layout (js/combat.js .cw-dia), in the widget's own colour */
.lms-npdias{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px 2px;padding:4px 0 6px;max-width:480px;}
.lms-npdias.n3{grid-template-columns:repeat(3,minmax(0,1fr));max-width:260px;}
.lms-npstat{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:1px;min-width:0;}
.lms-npstat label,.lms-npc .lms-nphrl{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:8.5px;line-height:1.15;letter-spacing:.02em;color:var(--lc);text-transform:uppercase;text-align:center;}
.lms-npstat label{white-space:normal;max-width:58px;}
.lms-npc .lms-nphrl{appearance:none;-webkit-appearance:none;padding:0 2px;height:auto;cursor:pointer;text-align-last:center;border-bottom:1px dotted rgba(var(--lcr),.5);}
.lms-npdia{position:relative;width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:2px 0;}
.lms-npdia::before{content:'';position:absolute;left:7px;top:7px;width:30px;height:30px;transform:rotate(45deg);box-sizing:border-box;
  border:1.6px solid var(--lc);background:var(--k-field);box-shadow:0 0 0 2px var(--k-field),0 0 0 2.8px rgba(var(--lcr),.35);}
.lms-npdia>*{position:relative;z-index:1;}
.lms-npc .lms-npnum{width:34px;text-align:center;padding:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:15px;border:none;}
.lms-npc .lms-npnum:focus{outline:1px dashed var(--lc);background:transparent;}
.lms-nph,.lms-npl{display:flex;align-items:center;gap:6px;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.04em;color:var(--lc);margin:8px 0 2px;}
.lms-npl{text-transform:uppercase;font-size:10px;letter-spacing:.07em;}
.lms-npadd,.lms-nprm{display:inline-flex;align-items:center;justify-content:center;gap:3px;flex:0 0 auto;width:20px;height:20px;padding:0;border-radius:50%;
  background:var(--k-field);border:1px solid rgba(var(--lcr),.5);color:var(--lc);cursor:pointer;}
.lms-npadd:hover,.lms-nprm:hover{background:rgba(var(--lcr),.12);}
.lms-nprm{border-color:transparent;background:transparent;color:var(--k-muted2);opacity:.7;}
.lms-nprow{display:flex;align-items:flex-start;gap:4px;}
.lms-nprow>input,.lms-nprow>textarea{flex:1 1 auto;min-width:0;}
.lms-npprof{font-size:12.5px;}
.lms-npfell{border-bottom:1px solid rgba(var(--lcr),.18);padding:0 0 3px;margin:0 0 3px;}
.lms-npfn{font-style:italic;font-weight:700;font-size:12.5px;}
.lms-npft{font-size:12.5px;line-height:1.42;padding-left:16px;}
.lms-npia{border-bottom:1px solid rgba(var(--lcr),.12);}
.lms-npc .lms-npy{flex:0 0 46px!important;width:46px;font-size:12px;font-weight:700;color:var(--lc);padding-top:4px;}
.lms-npnotes{min-height:48px;}
/* NPC / Adversary widget: Token button and the token's live readout; the Adversary widget's type and book line */
.lms-tok{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin:2px 0 6px;}
.lms-tokb{padding:3px 12px;font-size:12px;}
.lms-tokro{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;}
.lms-tokro .lms-conds{margin-top:0;}
.lms-advfoot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:2px 10px;margin:8px 0 2px;padding-top:4px;border-top:1px solid rgba(var(--lcr),.25);font-size:11px;color:var(--k-muted2);}
.lms-advfoot em{font-style:italic;}
.lms-advh{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--lc);margin:8px 2px 2px;}

/* The Company: each hero's Calling, Features & Flaws section (js/lm-screen.js) */
.lms-tr{margin-top:4px;}
#lmsPanel .lms-tr .lms-sech{padding:4px 0 2px;}
#lmsPanel .lms-tr .lms-sech b{font-size:10.5px;}
.lms-trl{font-size:12.5px;line-height:1.4;color:var(--k-ink);margin:1px 0;}
.lms-trl b{color:var(--lc);font-weight:700;}
.lms-trl i{color:var(--k-muted2);}
.lms-who{font-size:12px;color:var(--k-muted2);}

/* Loremaster Screen: Tale of Years widget (js/lm-screen.js) */
.lms-pi[data-pk="tale"] .lms-pchk{color:var(--lc);}
.lms-tbar{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px;}
.lms-tsel{font:inherit;font-size:12.5px;color:var(--lc);background:var(--k-field);border:1px solid rgba(var(--lcr),.45);border-radius:10px;padding:2px 6px;max-width:100%;}
.lms-tyear{display:flex;align-items:center;gap:8px;margin:2px 0 4px;}
.lms-tyear b{font-family:'Libre Baskerville',Georgia,serif;font-size:17px;color:var(--lc);}
.lms-tstep{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border-radius:50%;background:var(--k-field);border:1px solid rgba(var(--lcr),.5);color:var(--lc);cursor:pointer;}
.lms-tstep .ii{width:13px;height:13px;}
.lms-tsum{font-size:13px;font-style:italic;color:var(--k-ink2);margin:0 0 6px;line-height:1.4;}
.lms-tyh{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--lc);margin:8px 0 2px;}
.lms-tyh.now::after{content:' ◂';}
.lms-tev{display:flex;align-items:flex-start;gap:7px;padding:4px 0;border-bottom:1px solid rgba(var(--lcr),.15);}
.lms-tev>.tdot{margin-top:6px;box-shadow:none;}
.lms-tdet{flex:1 1 auto;min-width:0;font-size:13px;line-height:1.4;color:var(--k-ink);}
.lms-tdet summary{cursor:pointer;list-style:none;}
.lms-tdet summary::-webkit-details-marker{display:none;}
.lms-tdet summary i{color:var(--k-muted2);font-size:11.5px;}
.lms-tb{font-size:12.5px;color:var(--k-ink2);padding:3px 0 2px;}
.lms-tact{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;flex:0 0 auto;max-width:48%;}
.lms-tst{font:inherit;font-size:11px;line-height:1.3;padding:2px 8px;border-radius:10px;border:1px solid rgba(125,110,100,.45);background:var(--k-field);color:var(--k-muted2);cursor:pointer;white-space:nowrap;}
.lms-tst[data-st="1"]{border-color:var(--lc);color:var(--lc);}
.lms-tst[data-st="2"]{border-color:var(--lc);background:var(--lc);color:#fff;}
html.dark-ui .lms-tst[data-st="2"]{color:#1c1a19;}
.lms-tfacs{display:flex;flex-wrap:wrap;gap:6px 12px;}
.lms-tfc{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--k-ink);}
.lms-tfc .tdot{box-shadow:none;}
.lms-tfc b{color:var(--lc);}

/* Loremaster Screen: Counter widget (js/lm-screen.js) — the stat blocks' diamond, larger */
.lms-pi[data-pk="counter"] .lms-pchk{color:var(--lc);}
.lms-cnt{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 0 4px;}
.lms-cdia{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center;}
.lms-cdia::before{content:'';position:absolute;left:12px;top:12px;width:48px;height:48px;transform:rotate(45deg);box-sizing:border-box;
  border:2px solid var(--lc);background:var(--k-field);box-shadow:0 0 0 3px var(--k-field),0 0 0 4.2px rgba(var(--lcr),.35);}
.lms-cdia>*{position:relative;z-index:1;}
.lms-cnum{width:52px;text-align:center;background:transparent;border:none;outline:none;padding:0;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:22px;color:var(--k-ink);}
.lms-cnum:focus{outline:1px dashed var(--lc);}
.lms-cbtns{display:flex;gap:10px;}
.lms-cstep{width:28px;height:28px;border-radius:50%;border:1px solid rgba(var(--lcr),.5);background:var(--k-field);color:var(--lc);font-size:17px;line-height:1;padding:0;
  display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;}
.lms-cstep:hover{background:rgba(var(--lcr),.12);}

/* Loremaster Screen: Flowchart (beta) widget (js/lm-screen.js) */
.lms-pi[data-pk="flow"] .lms-pchk,.lms-pi[data-flownew] .lms-pchk{color:var(--lc);}
.lms-flow{position:relative;}
.lms-flow.arr,.lms-flow.play{overflow-x:auto;overflow-y:hidden;}
.lms-fsvg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;}
.lms-fsvg path{fill:none;stroke:rgba(var(--lcr),.55);stroke-width:1.4;}
.lms-fbox{position:absolute;width:170px;box-sizing:border-box;background:var(--k-field);border:1.4px solid rgba(var(--lcr),.55);border-radius:6px;padding:7px 10px;font-size:12.5px;line-height:1.38;color:var(--k-ink);}
.lms-ftx{white-space:pre-wrap;overflow-wrap:anywhere;}
.lms-fbox.root{border-color:rgba(var(--lcr),.75);}
.lms-fbox.pin{border:2.4px solid var(--lc);box-shadow:0 0 0 2px rgba(var(--lcr),.12);z-index:2;}
.lms-fbox.sib{opacity:.4;}
.lms-fl{display:flex;width:fit-content;align-items:center;gap:5px;font:inherit;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--lc);
  border:1.2px solid rgba(var(--lcr),.55);border-radius:10px;padding:2px 9px;background:var(--k-paper);margin:0 0 5px;}
button.lms-fl{cursor:pointer;touch-action:manipulation;}
button.lms-fl:hover{background:rgba(var(--lcr),.1);}
.lms-fl.on{background:var(--lc);color:#fff;border-color:var(--lc);}
html.dark-ui .lms-fl.on{color:#1c1a19;}
.lms-fl.on::after{content:'\2713';}
.lms-fl.locked{opacity:.75;cursor:default;}
.lms-fview{position:relative;user-select:none;-webkit-user-select:none;cursor:grab;}
.lms-fview.v{touch-action:pan-y;}
.lms-fview.h{touch-action:pan-x;overflow:hidden;}
.lms-fview.grab{cursor:grabbing;}
.lms-fslide{position:absolute;left:0;top:0;will-change:transform;}
/* Arrange: the whole tree, editable */
.lms-fbar{display:flex;justify-content:flex-end;margin:0 0 4px;}
.lms-fscroll{overflow:auto;max-width:100%;}
.lms-fstage{position:relative;}
.lms-fbox.ed{padding:6px 8px;}
.lms-flab{display:block;width:fit-content;min-width:80px;max-width:100%;box-sizing:border-box;font:inherit;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--lc);
  background:var(--k-field);border:1.2px dashed rgba(var(--lcr),.55);border-radius:10px;padding:2px 9px;margin:0 0 5px;outline:none;}
.lms-flab:focus{border-style:solid;}
.lms-fta{display:block;width:100%;box-sizing:border-box;resize:none;overflow:hidden;font:inherit;font-size:12.5px;line-height:1.38;color:var(--k-ink);background:transparent;border:none;
  border-bottom:1px dotted rgba(var(--lcr),.28);outline:none;padding:1px 0;min-height:22px;}
.lms-fta:focus{border-bottom-color:rgba(var(--lcr),.6);}
.lms-fpa{position:absolute;width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--lc);opacity:.65;font:inherit;font-weight:700;font-size:16px;line-height:22px;text-align:center;cursor:pointer;z-index:3;touch-action:manipulation;}
.lms-fpa:hover{opacity:1;}
.lms-fpa.px{font-size:13px;}
/* Narrow: accordion */
.lms-flow.acc .lms-fbox{position:relative;width:auto;}
.lms-fsub{margin-left:6px;}
.lms-fch{position:relative;margin:8px 0 0 16px;}
.lms-fch::before{content:'';position:absolute;left:-12px;top:-8px;bottom:-8px;border-left:1.4px solid rgba(var(--lcr),.5);}
.lms-fch:last-child::before{bottom:auto;height:24px;}
.lms-fch::after{content:'';position:absolute;left:-12px;top:16px;width:10px;border-top:1.4px solid rgba(var(--lcr),.5);}
.lms-fsub>.lms-fch:not(:last-child)>.lms-fsub{}
.lms-fhd{display:flex;align-items:center;gap:8px;background:var(--k-field);border:1.4px solid rgba(var(--lcr),.45);border-radius:6px;padding:4px 5px 4px 8px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.lms-fhd.taken{border:2.2px solid var(--lc);}
.lms-fhd b{flex:1;min-width:0;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--lc);}
.lms-fv{display:flex;color:var(--k-muted2);}
.lms-fv .ii{width:12px;height:12px;}
.lms-fck{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1.4px solid rgba(var(--lcr),.55);background:var(--k-field);color:transparent;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;}
.lms-fck .ii{width:14px;height:14px;}
.lms-fck.on{background:var(--lc);border-color:var(--lc);color:#fff;}
html.dark-ui .lms-fck.on{color:#1c1a19;}
.lms-fck.locked{opacity:.7;cursor:default;}
.lms-fatx{font-size:13px;line-height:1.4;padding:6px 8px 2px 22px;color:var(--k-ink);white-space:pre-wrap;}
.lms-fck.sm{width:22px;height:22px;margin:0 0 5px;}
.lms-fck.sm .ii{width:12px;height:12px;}
.lms-fhd b.lms-fnol{text-transform:none;letter-spacing:0;font-weight:400;font-size:12.5px;color:var(--k-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ---- Character Sheet header: Rolls / Sheet / Token sit right after the + (new hero) tab; no hide-the-controls button ---- */
#sheetPanel .sh-minbtn{display:none!important;}
#sheetPanel .sh-head #shTabs{flex:0 1 auto;order:1;min-width:0;}
#sheetPanel .sh-head .sh-tools,#sheetPanel.pop .sh-head .sh-tools{order:2;flex:0 0 auto;margin-left:0;flex-wrap:nowrap;overflow:visible;gap:5px;}
#sheetPanel .sh-head .sh-popbtn{order:4;margin-left:auto;}
#sheetPanel .sh-head #shClose{order:5;}

/* ---- keeping windows, menus and chips on screen and out from under the toolbar, Journal and phone tab bar ---- */
/* docked windows (phone): never taller than the room between the toolbar and the Journal / tab bar */
#sheetPanel.pop.dock,#mwPanel.pop.dock,#lmsPanel.pop.dock{min-height:0;max-height:calc(100% - 48px - var(--journal-h,0px));}
/* sideways phone: menus and panels that start at the left edge sit beside the tab rail, not under it */
html.phone-land #mapMenu{left:calc(var(--rail-w,0px) + 8px);}
html.phone-land #palette{left:var(--rail-w,0px);}
html.phone-land .cg{left:calc(var(--rail-w,0px) + 8px);width:min(360px,calc(100vw - var(--rail-w,0px) - 16px));}
/* Battle guide: its step row wraps instead of pushing Next off the panel's edge */
.cg-steps{min-width:0;flex-wrap:wrap;}
/* the undo / notice toast sits above the Journal bar and the phone tab bar instead of over them */
.undo-toast{bottom:calc(var(--journal-h,0px) + 18px + env(safe-area-inset-bottom,0px));}
html.phone .undo-toast{bottom:calc(var(--journal-h,0px) + 12px);}
/* Character Creation: Name / Age fields in the paper style (the sheet's dark field style was winning) */
.cwz-lbl input[type=text]{background:var(--k-field);color:var(--sp-ink);border:1px solid rgba(199,53,56,.5);border-radius:8px;padding:7px 9px;font:inherit;font-size:15px;text-transform:none;letter-spacing:0;}
.mw-scope .cwz-lbl input[type=text]{border-color:rgba(44,95,148,.5);}
/* Character Creation on a short screen (sideways phone): the bar under the sheet gets enough room to read its step */
@media (max-height:520px){.cwz-layer.cwz-barmode .cwz-box{max-height:58%;}}
/* iPhone Safari: 100vh is taller than the visible page while its toolbar shows; dvh is the visible height */
#eyeStrip.open .eye-more{max-height:calc(100dvh - 210px);}
.offmap-panel,.charcomp-panel{max-height:calc(100dvh - var(--journal-h,0px) - 130px);}
.cg{max-height:calc(100dvh - 120px);}
.cwp.cwcard{max-height:calc(100dvh - 110px);}

/* ---- Print Workshop (beta) (js/print-workshop.js): sources on the left, the job on the right; stacked on a phone ---- */
.pw-layer{font-family:'SheetBask','Libre Baskerville',Georgia,serif;}
.pw-layer .gx-fld,.pw-sech,.pw-align>span{color:var(--k-muted3);}
.pw-box{width:min(1040px,100%);}
.pw-box .sp-invhead span{flex:1 1 auto;}
.pw-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:start;}
.pw-left{max-height:calc(100vh - 120px);max-height:calc(100dvh - 120px);overflow:auto;padding-right:4px;}
.pw-grp{border-top:1px solid rgba(199,53,56,.3);padding:4px 0;}
.pw-grph{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pw-grpt{flex:1 1 auto;display:flex;align-items:center;gap:6px;background:none;border:none;padding:6px 2px;font:inherit;font-size:15px;color:var(--sp-ink);cursor:pointer;text-align:left;}
.pw-grpt .ii{width:14px;height:14px;margin:0;color:var(--sp-red);}
.pw-grpt em{font-style:normal;font-size:11px;background:var(--sp-red);color:#fff;border-radius:9px;padding:1px 7px;}
.pw-chk{display:flex;align-items:center;gap:7px;font-size:14px;padding:3px 2px;cursor:pointer;}
.pw-chk input{width:16px;height:16px;accent-color:var(--sp-red);flex:0 0 auto;}
.pw-all{font-size:12.5px;color:var(--k-muted3);}
.pw-sec{margin:2px 0 6px 18px;}
.pw-sech{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;}
.pw-item{margin-left:16px;}
.pw-item span{flex:0 1 auto;}
.pw-item i{font-size:12px;color:var(--k-muted2);}
.pw-sheet{cursor:default;margin-left:22px;}
.pw-sheet .gx-btn{margin-left:auto;padding:3px 12px;}
.pw-none{font-size:13px;font-style:italic;color:var(--k-muted2);margin:2px 0 6px 22px;}
.pw-soon .pw-grpt{cursor:default;color:var(--k-muted2);}
.pw-off{cursor:default;opacity:.55;margin-left:22px;}
.pw-right{display:flex;flex-direction:column;gap:10px;}
.pw-opts{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;}
.pw-opts .gx-fld select{min-width:150px;}
.pw-qauto{font-size:13px;}
.pw-count{font-size:13px;font-style:italic;color:var(--k-muted3);border-top:1px solid rgba(199,53,56,.3);padding-top:6px;}
.pw-list{display:flex;flex-direction:column;gap:4px;max-height:42vh;overflow:auto;}
.pw-row{display:flex;align-items:center;gap:8px;padding:3px 4px;border-radius:4px;background:var(--k-field);}
.pw-row.pw-auto{opacity:.8;}
.pw-thumb{width:46px;height:auto;aspect-ratio:180/252;flex:0 0 auto;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.25);background:#fdfaf3;}
.pw-rowname{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;background:none;border:none;font:inherit;color:var(--sp-ink);cursor:pointer;text-align:left;padding:2px;}
.pw-rowname b{font-size:14px;font-weight:700;}
.pw-rowname i{font-size:12px;color:var(--k-muted2);}
.pw-warn{color:var(--sp-red);display:inline-flex;}
.pw-warn .ii{width:16px;height:16px;}
.pw-copies{display:inline-flex;align-items:center;gap:4px;}
.pw-copies b{min-width:16px;text-align:center;font-size:14px;}
.pw-copies button,.pw-rm{width:24px;height:24px;border-radius:50%;border:1px solid rgba(199,53,56,.5);background:none;color:var(--sp-red);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;}
.pw-copies .ii,.pw-rm .ii{width:12px;height:12px;}
.pw-per .gx-fld select{max-width:100%;}
.pw-align{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;}
.pw-align>span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;}
.pw-align input{width:58px;font:inherit;font-size:14px;padding:3px 4px;border:none;border-bottom:1px solid rgba(199,53,56,.5);background:var(--k-field-a);color:var(--sp-ink);}
.pw-go{display:flex;gap:8px;flex-wrap:wrap;}
.pw-go .gx-btn[disabled]{opacity:.45;cursor:default;}
.pw-out{display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.pw-dl{display:inline-flex;align-items:center;gap:6px;text-decoration:none;}
.pw-dl .ii{margin:0;}
.pw-busy{font-size:13px;font-style:italic;color:var(--k-muted3);}
.pw-err{font-size:13px;color:var(--sp-red);}
/* the beta notice */
.pw-dlg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);padding:16px;}
.pw-dlgbox{width:min(360px,100%);background:var(--k-paper);color:var(--sp-ink);border-radius:8px;padding:18px 20px 14px;
  box-shadow:inset 0 0 0 2px var(--sp-red),inset 0 0 0 5px var(--k-paper),inset 0 0 0 6px rgba(199,53,56,.5),0 14px 40px rgba(0,0,0,.6);}
.pw-dlgh{display:flex;align-items:center;gap:8px;}
.pw-dlgh b{font-family:var(--sp-head);font-weight:normal;color:var(--sp-red);font-size:22px;text-transform:lowercase;}
.pw-alert{width:20px;height:20px;margin:0;color:var(--sp-red);}
.pw-dlgbox p{font-size:14.5px;margin:10px 0 14px;}
.pw-dlgbtns{display:flex;justify-content:flex-end;gap:8px;}
/* the card editor */
.pw-edwrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding:14px 10px;overflow:auto;}
.pw-ed{position:relative;width:min(760px,100%);background:var(--k-paper);color:var(--sp-ink);border-radius:14px;padding:22px 20px 16px;display:flex;flex-direction:column;gap:8px;
  box-shadow:inset 0 0 0 2px var(--sp-red),inset 0 0 0 6px var(--k-paper),inset 0 0 0 7px rgba(199,53,56,.5),0 14px 40px rgba(0,0,0,.6);}
.pw-ed .gx-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(199,53,56,.5);background:var(--k-paper);color:var(--sp-red);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;z-index:1;}
.pw-prev{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.pw-prev>div{display:flex;flex-direction:column;align-items:center;gap:3px;}
.pw-prev canvas{width:min(250px,38vw);height:auto;border-radius:6px;box-shadow:0 2px 10px rgba(0,0,0,.3);background:#fdfaf3;}
.pw-prev span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--k-muted2);}
.pw-size{text-align:center;font-size:13px;color:var(--k-muted3);display:flex;align-items:center;justify-content:center;gap:5px;}
.pw-size.warn{color:var(--sp-red);font-weight:700;}
.pw-size .ii{width:15px;height:15px;margin:0;}
.pw-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;}
.pw-form>.gx-row{grid-column:1/-1;}
.pw-form .gx-row{justify-content:flex-start;align-items:flex-end;}
.pw-pic select{max-width:220px;}
@media (max-width:760px){
  .pw-cols{grid-template-columns:1fr;}
  .pw-left{max-height:none;overflow:visible;}
  .pw-list{max-height:none;}
  .pw-form{grid-template-columns:1fr;}
}
/* Print Workshop editor: Bold / Italic / Underline buttons and the styled text boxes */
.pw-fmt{grid-column:1/-1;display:flex;gap:6px;position:sticky;top:-14px;z-index:2;background:var(--k-paper);padding:4px 0;}
.pw-fmt button{width:36px;height:32px;border:1px solid rgba(199,53,56,.5);border-radius:4px;background:var(--k-field);color:var(--sp-red);font:inherit;font-size:16px;cursor:pointer;padding:0;}
/* Print Workshop page prints (Loremaster Screens, Landmark maps): preview dialog and the printed pages */
.pw-pv{width:min(1100px,100%);}
.pw-pvh{font-family:Aniron,'SheetUncial',serif;color:var(--sp-red);font-size:18px;padding-right:40px;}
.pw-pvcols{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:14px;align-items:start;}
.pw-pvside{display:flex;flex-direction:column;gap:6px;}
.pw-pvside .moria{color:#2c5f94;}.pw-pvside .custom{color:#3f6b30;}
.pw-pvinfo{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;font-style:italic;color:var(--k-muted3);}
.pw-pvinfo .warn{color:var(--sp-red);font-style:normal;}
.pw-pvadd{margin-left:22px;}.pw-pvadd i{font-size:12px;color:var(--k-muted2);}.pw-pvadd .pw-rm{margin-left:auto;}
.pw-pvpages{display:flex;flex-direction:column;gap:12px;min-width:0;max-height:calc(100dvh - 190px);overflow:auto;}
.pw-pvp{position:relative;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.3);background:#fff;flex:0 0 auto;}
.pw-pvp>.pw-page{position:absolute;left:0;top:0;}
@media (max-width:700px){.pw-pvcols{grid-template-columns:1fr;}}
.pw-page{position:relative;background:#fff;overflow:hidden;color:#2a211c;}
.pw-page .lms-card{position:absolute;}
.lms-ptxt{display:block;white-space:pre-wrap;}
span.lms-ptxt{display:inline;}
.pw-mapbox{position:absolute;}
.pw-mapbox img{display:block;width:100%;height:100%;}
.pw-pin{position:absolute;transform:translate(-50%,-50%);font-family:Arial,Helvetica,sans-serif;font-weight:800;line-height:1;color:#fcfcfc;-webkit-text-stroke:1px #1a0e04;paint-order:stroke fill;white-space:nowrap;}
.pw-pbadge{-webkit-text-stroke:0;color:#fff;font-weight:700;background:#c4503e;border:1px solid #fff4e4;border-radius:2px;padding:.16em .3em;}
.pw-pdot{border-radius:50%;border:4px solid #b8403a;box-sizing:border-box;}
.pw-keypage{height:auto!important;overflow:visible;padding:0;font-family:'SheetBask','Libre Baskerville',Georgia,serif;font-size:10.5pt;line-height:1.35;}
.pw-keypage h2{font-family:Aniron,'SheetUncial',serif;color:#b3282d;font-weight:normal;font-size:20pt;margin:0 0 8px;}
.pw-keycols{column-count:2;column-gap:24px;}
.pw-kent{break-inside:avoid;margin:0 0 6px;}
.pw-kent b{color:#b3282d;}
.pw-krule{color:#6b5d52;}.pw-kred{color:#b3282d;font-style:normal;}
/* the printed pages are always paper, also in Dark Theme (preview included) */
html.dark-ui .pw-page{color-scheme:light;--k-paper:#fbf8f1;--k-field:#fffdf8;--k-grey:#f1ede6;--k-ink:#2a211c;--k-ink2:#3b332e;--k-muted:#7d6e64;--k-muted2:#8a7a70;--k-muted3:#6b5b50;--k-red:#c73538;--k-focus:#fff;--k-field-a:rgba(255,253,248,.85);--live-c:#8a6a1f;--live-cr:138,106,31;color:#2a211c;}
html.dark-ui .pw-page .lms-card{--lcr:199,53,56;}
html.dark-ui .pw-page .lms-card.moria{--lc:#2c5f94;--lcr:44,95,148;}
html.dark-ui .pw-page .lms-card.custom{--lc:#3f6b30;--lcr:63,107,48;}
html.dark-ui .pw-page .lms-mo,html.dark-ui .pw-page .lms-vr.lms-mo,html.dark-ui .pw-page .lms-pch.moria b{color:#2c5f94;}
html.dark-ui .pw-page .lms-t tbody tr:nth-child(odd) td,html.dark-ui .pw-page .lms-t.stack tbody tr:nth-child(odd){background:rgba(120,92,60,.10);}
#pwPrint{display:none;}
@media print{
  body.pw-printing,body.pw-printing html{height:auto;overflow:visible;background:#fff;}
  body.pw-printing>*{display:none!important;}
  body.pw-printing>#pwPrint{display:block!important;}
  body.pw-printing .pw-page{break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  body.pw-printing .pw-page:last-child{break-after:auto;}
  body.pw-printing .pw-keypage{break-before:page;}
}
.pw-rich h4{margin:4px 0 0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sp-red);}
.pw-fmt button.on{background:var(--sp-red);color:#fff;}
.pw-rf{grid-column:1/-1;}
.pw-rich{min-height:2.6em;font:inherit;font-weight:normal;letter-spacing:0;text-transform:none;font-size:14px;line-height:1.45;color:var(--sp-ink);
  background:var(--k-field-a);border:1px solid rgba(199,53,56,.35);border-radius:2px;padding:4px 6px;outline:none;white-space:pre-wrap;word-break:break-word;}
.pw-rich:focus{border-color:var(--sp-red);}
/* red symbols as marks: Famous = star medallion, Hardened ally = anvil */
.sym-ic{display:block;width:15px;height:15px;object-fit:contain;flex:0 0 auto;pointer-events:none;margin:auto;}
.sym-ic.inl{display:inline-block;width:14px;height:14px;margin:0 3px 0 0;vertical-align:-2px;}
.gx-star .sym-ic{width:15px;height:15px;}
.gx-star:not(.on) .sym-ic{filter:grayscale(1);opacity:.45;}
.gx-star.on{background:var(--k-field);border-color:var(--sp-red,#c73538);}
.gx-tog:not(.on) .sym-ic,.al-tog:not(.on) .sym-ic{filter:grayscale(1);opacity:.55;}
.gx-tog.on .sym-ic,.al-tog.on .sym-ic{filter:brightness(0) invert(1);}
.sp-gfam .sym-ic{width:8px;height:8px;display:block;}
.ss-gstrip .sp-gfam .sym-ic{width:13px;height:13px;}
.al-star .sym-ic{width:15px;height:15px;}
img.mw-hard{display:inline-block;width:9px;height:9px;margin:0 0 0 3px;vertical-align:-1px;}
.mw-sname img.mw-hard{width:13px;height:13px;}
/* Print Workshop: the Moria Ally sheet (four cards to a landscape page; points as measured from the paper sheet) */
.alp-sheet{position:absolute;}
.alp-c{position:absolute;}
.alp-svg{position:absolute;left:0;top:0;display:block;overflow:visible;}
.alp-f{position:absolute;box-sizing:border-box;overflow:hidden;padding:0 1px;outline:none;white-space:pre-wrap;overflow-wrap:anywhere;
  font:8.2px/1.25 'SheetBask','Libre Baskerville',Georgia,serif;color:#2a211c;}
.alp-f-name{font-size:9.6px;font-weight:700;}
.alp-box .alp-tk{display:none;}
.alp-box.on .alp-tk{display:inline;}
.alp-box.alp-ed{cursor:pointer;}
.pw-pv .alp-f[contenteditable]{cursor:text;}
.pw-pv .alp-f[contenteditable]:hover{background:rgba(199,53,56,.07);}
.pw-pv .alp-f[contenteditable]:focus{background:rgba(199,53,56,.12);}
.pw-pv .alp-f.alp-over{box-shadow:inset 0 -1.5px 0 #c73538;}
.pw-layer.pw-top{z-index:60;} /* opened from the Allies window (z 55): closing the preview returns there */
