:root{--bg: #0A0A0A;--panel: #121212;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--frame-fill: color-mix(in srgb, var(--border) 60%, transparent);--text: #f0f0f0;--muted: #b9b9b9;--border: #404040;--diceIconColor: #b9b9b9;--surface-2: #141414;--surface-3: #151515;--surface-3-hover: #222;--ring: #ffffff22;--hairline: #ffffff14;--shadow-inset: #00000055;--shadow-drop: #00000066;--map-empty: #0f0f0f;--spell-toggle-bg: var(--surface-3);--spell-toggle-on-border: var(--ring);--divider: var(--hairline);--divider-inset: var(--shadow-inset);--warn: #FF8C00;--warn-border: #ff8c0059;--warn-hover: #ff8c001f;--danger: #ff5a5a;--danger-border: #ff5a5a59;--danger-hover: #ff5a5a60;--swatch-color-preview: #ffffff55;--swatch-color-active-border: #ffffff33;--color-swatch-border: #ffffff2e;--color-swatch-hover: #ffffff59;--spell-toggle-warn-on-border: #ff8c0099;--skill-prof-dot: #3aa6ff;--calculatorBg: linear-gradient(to bottom, color-mix(in srgb, var(--bg) 100%, transparent), color-mix(in srgb, var(--bg) 70%, transparent));--update-banner: linear-gradient(to bottom, color-mix(in srgb, var(--bg) 100%, transparent), color-mix(in srgb, var(--bg) 80%, transparent));--diceDivText: var(--diceIconColor);--dicePresetIconColor: var(--diceIconColor);--portrait-ratio: 3 / 4;--tracker-list-max: 720px;--card-min-width: 174px;--sb-track: color-mix(in srgb, var(--panel) 70%, transparent);--sb-thumb: color-mix(in srgb, var(--border) 70%, transparent);--sb-thumb-hover: color-mix(in srgb, var(--border) 92%, transparent);--search-mark-color: #ffffff33;--search-mark-bg: color-mix(in srgb, var(--search-mark-color) 90%, transparent);--search-mark-radius: 3px;--search-mark-pad-x: 1px}:root .num-xs{width:54px}:root .num-sum{width:64px}:root .num-md{width:72px}:root .num-lg{width:88px}:root .ringInset{outline:none;box-shadow:0 0 0 2px var(--ring) inset}:root[data-theme=light]{--bg: #f5f5f7;--panel: #ffffff;--card: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--collapsedCard: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .02));--spell-level-header: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--spell-card: linear-gradient(to bottom, rgba(0, 0, 0, .1), rgba(0, 0, 0, .15));--text: #1a1a1a;--muted: #555;--border: #d0d0d6;--diceIconColor: #555;--dicePresetIconColor: #555;--surface-2: #f0f0f3;--surface-3: #e8e8ee;--surface-3-hover: #dadbe3;--ring: #0000001f;--hairline: #00000052;--shadow-inset: #0000000f;--shadow-drop: #0000001f;--map-empty: #e9e9ee}:root[data-theme=beige]{--bg: var(--page-bg-leather);--page-bg-leather: linear-gradient(135deg, #2f2721 0%, #40362d 22%, #584b3f 50%, #40362d 78%, #2f2721 100%);--panel: #d6c7a9;--card: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--collapsedCard: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .02));--spell-level-header: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--spell-card: linear-gradient(to bottom, rgba(0, 0, 0, .1), rgba(0, 0, 0, .15));--frame-fill: color-mix(in srgb, var(--border) 60%, transparent);--text: #221a11;--muted: #4b4030;--border: #7e7157;--calcBg: #b4a47f;--calculatorBg: linear-gradient(to bottom, color-mix(in srgb, var(--calcBg) 90%, transparent), color-mix(in srgb, var(--calcBg) 70%, transparent));--diceIconColor: #4b4030;--dicePresetIconColor: #4b4030;--surface-2: #ccbda0;--surface-3: #c0b191;--surface-3-hover: #b4a47f;--ring: rgba(96, 67, 28, .38);--hairline: rgba(96, 67, 28, .26);--shadow-inset: rgba(0, 0, 0, .18);--shadow-drop: rgba(0, 0, 0, .38);--map-empty: #b3a483;--warn: #ce5402;--warn-border: #a84300;--warn-hover: #ff7b001f;--spell-toggle-warn-on-border: #a84300}:root[data-theme=rose]{--bg: #f2d6df;--panel: #f8e6ec;--card: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--collapsedCard: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .02));--spell-level-header: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--spell-card: linear-gradient(to bottom, rgba(0, 0, 0, .1), rgba(0, 0, 0, .15));--text: #3a1f2b;--muted: #7a4a5a;--border: #d4a3b4;--diceIconColor: #7a4a5a;--dicePresetIconColor: #7a4a5a;--surface-2: #f1d7df;--surface-3: #e8c6d0;--surface-3-hover: #ddb5c2;--danger-hover: #ff5a5a91;--ring: rgba(180, 90, 120, .32);--hairline: rgba(180, 90, 120, .2);--shadow-inset: rgba(0, 0, 0, .1);--shadow-drop: rgba(0, 0, 0, .28);--map-empty: #e6bcc9;--warn: #ce5402;--warn-border: #a84300;--warn-hover: #ff7b001f;--spell-toggle-warn-on-border: #a84300}:root[data-theme=teal]{--bg: #377771;--panel: #4ce0b3;--card: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .2));--collapsedCard: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .04));--spell-level-header: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .2));--spell-card: linear-gradient(to bottom, rgba(0, 0, 0, .2), rgba(0, 0, 0, .3));--text: #0a2421;--muted: #355b56;--border: #f05446;--diceIconColor: #ca3b2e;--dicePresetIconColor: #992b21;--surface-2: #43be99;--surface-3: #39b48f;--surface-3-hover: #09b984;--danger-hover: #ff5a5a91;--ring: rgba(222, 76, 13, .687);--hairline: rgba(213, 98, 41, .558);--shadow-inset: rgba(0, 0, 0, .18);--shadow-drop: rgba(0, 0, 0, .38);--map-empty: #7ea8a1;--warn: #ce5402;--warn-border: #a84300;--warn-hover: #ff7b001f;--spell-toggle-warn-on-border: #a84300}:root[data-theme=blue]{--bg: var(--page-bg-metallic-blue);--page-bg-metallic-blue: linear-gradient(135deg, #8596a2 0%, #b3c0ca 24%, #eef3f7 50%, #b3c0ca 76%, #8596a2 100%);--page-vignette: linear-gradient(135deg, rgba(255, 255, 255, .25), rgba(255, 255, 255, 0));--panel: #aaf5fa;--card: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--collapsedCard: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .02));--spell-level-header: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, .1));--spell-card: linear-gradient(to bottom, rgba(0, 0, 0, .1), rgba(0, 0, 0, .15));--text: #081e22;--muted: #4f6f75;--border: #c3ccd2;--diceIconColor: #c3ccd2;--dicePresetIconColor: #4f6f75;--diceDivText: #2f4547;--calcBg: #74aaaf;--calculatorBg: linear-gradient(to bottom, color-mix(in srgb, var(--calcBg) 90%, transparent), color-mix(in srgb, var(--calcBg) 70%, transparent));--surface-2: #b3e4ec;--surface-3: #b0e3ec;--surface-3-hover: #94cbd4;--ring: rgba(30, 130, 157, .54);--hairline: rgba(120, 130, 138, .3);--shadow-inset: rgba(0, 0, 0, .1);--shadow-drop: rgba(0, 0, 0, .26);--map-empty: #b8dde3;--warn: #ce5402;--warn-border: #a84300;--warn-hover: #ff7b001f;--spell-toggle-warn-on-border: #a84300}:root[data-theme=purple]{--bg: #391E54;--panel: #4A3062;--card: linear-gradient(to bottom, rgba(255, 255, 255, .14), rgba(255, 255, 255, .0356));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .29), rgba(255, 255, 255, .0354));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .12), rgba(255, 255, 255, .0356));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0356), rgba(255, 255, 255, 0));--text: #f3efff;--muted: #c3b6dd;--border: #332146;--diceIconColor: #c3b6dd;--dicePresetIconColor: #c3b6dd;--surface-2: #402758;--surface-3: #3B2450;--surface-3-hover: #352148;--ring: #e6d4ff38;--hairline: #e6d4ff1f;--shadow-inset: #0000008c;--shadow-drop: #000000a8;--map-empty: #100a18}:root[data-theme=red]{--bg: #2a0f12;--panel: #3a1519;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--text: #ffecec;--muted: #e0b3b3;--border: #6a2a2f;--diceIconColor: #e0b3b3;--dicePresetIconColor: #e0b3b3;--surface-2: #451a1f;--surface-3: #4f2026;--surface-3-hover: #612a31;--ring: rgba(255, 120, 120, .22);--hairline: rgba(255, 120, 120, .14);--shadow-inset: rgba(0, 0, 0, .45);--shadow-drop: rgba(0, 0, 0, .7);--map-empty: #160708}:root[data-theme=red-gold]{--bg: #2a0f12;--panel: #3a1519;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--text: #ffecec;--muted: #e0b3b3;--border: #7a6738;--surface-2: #451a1f;--surface-3: #4f2026;--surface-3-hover: #612a31;--diceIconColor: #7a6738;--dicePresetIconColor: #7a6738;--ring: rgba(255, 205, 120, .55);--hairline: rgba(255, 200, 95, .3);--shadow-inset: rgba(0, 0, 0, .45);--shadow-drop: rgba(0, 0, 0, .7);--map-empty: #160708}:root[data-theme=arcane]{--bg: #14112a;--panel: #1d1a3a;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--text: #f0ecff;--muted: #b7b0e0;--border: #3c3670;--diceIconColor: #b7b0e0;--dicePresetIconColor: #b7b0e0;--surface-2: #24204a;--surface-3: #2b2660;--surface-3-hover: #362f78;--ring: rgba(155, 140, 255, .32);--hairline: rgba(155, 140, 255, .2);--shadow-inset: rgba(0, 0, 0, .55);--shadow-drop: rgba(0, 0, 0, .75);--map-empty: #0b0a1a}:root[data-theme=arcane-gold]{--bg: #120f24;--panel: #1b1634;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--text: #f6f2ff;--muted: #cfc6ee;--border: #7a6738;--surface-2: #231e44;--surface-3: #2b2554;--surface-3-hover: #382f6a;--diceIconColor: #7a6738;--dicePresetIconColor: #7a6738;--ring: rgba(255, 205, 120, .55);--hairline: rgba(255, 200, 95, .35);--shadow-inset: rgba(0, 0, 0, .6);--shadow-drop: rgba(0, 0, 0, .8);--map-empty: #0a0916}:root[data-theme=green]{--bg: #091a07;--panel: #0e2b0a;--card: linear-gradient(to bottom, rgba(255, 255, 255, .14), rgba(255, 255, 255, .0356));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .29), rgba(255, 255, 255, .0354));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .12), rgba(255, 255, 255, .0356));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0356), rgba(255, 255, 255, 0));--text: #e9ffe3;--muted: #97cf8d;--border: #1c5315;--diceIconColor: #46C83C;--dicePresetIconColor: #46C83C;--surface-2: #123c0f;--surface-3: #174e13;--surface-3-hover: #1e6618;--ring: rgba(70, 200, 60, .38);--hairline: rgba(70, 200, 60, .24);--shadow-inset: rgba(0, 0, 0, .65);--shadow-drop: rgba(0, 0, 0, .82);--map-empty: #050f04}:root[data-theme=slate]{--bg: #1c1f22;--panel: #24282c;--card: linear-gradient(to bottom, rgba(255, 255, 255, .14), rgba(255, 255, 255, .0356));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .29), rgba(255, 255, 255, .0354));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .12), rgba(255, 255, 255, .0356));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0356), rgba(255, 255, 255, 0));--text: #e6e8ea;--muted: #a6abb0;--border: #3a4046;--surface-2: #2a2f34;--surface-3: #30363c;--surface-3-hover: #3a4148;--diceIconColor: #a6abb0;--dicePresetIconColor: #a6abb0;--ring: rgba(180, 190, 200, .2);--hairline: rgba(180, 190, 200, .12);--shadow-inset: rgba(0, 0, 0, .45);--shadow-drop: rgba(0, 0, 0, .65);--map-empty: #16191c}:root[data-theme=forest]{--bg: #0f1a13;--panel: #16241b;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--text: #e9f3ec;--muted: #a9c2b2;--border: #2d4637;--surface-2: #1c3024;--surface-3: #223a2b;--surface-3-hover: #2a4a36;--diceIconColor: #a9c2b2;--dicePresetIconColor: #a9c2b2;--ring: rgba(110, 170, 130, .22);--hairline: rgba(110, 170, 130, .14);--shadow-inset: rgba(0, 0, 0, .55);--shadow-drop: rgba(0, 0, 0, .75);--map-empty: #0a120d}:root[data-theme=ember]{--bg: var(--page-bg-metallic-copper);--page-bg-metallic-copper: linear-gradient(135deg, #1a0d08 0%, #2b140c 20%, #402214 50%, #2b140c 80%, #1a0d08 100% );--panel: #2a1912;--card: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .13), rgba(255, 255, 255, .0177));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .06), rgba(255, 255, 255, .0178));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0177), rgba(255, 255, 255, 0));--text: #fff0e6;--muted: #d0a88e;--border: #6a3a22;--calcBg: #4a2f23;--calculatorBg: linear-gradient(to bottom, color-mix(in srgb, var(--calcBg) 90%, transparent), color-mix(in srgb, var(--calcBg) 70%, transparent));--surface-2: #332017;--surface-3: #3d261c;--surface-3-hover: #4a2f23;--diceIconColor: #d0a88e;--dicePresetIconColor: #d0a88e;--ring: rgba(255, 140, 80, .28);--hairline: rgba(255, 140, 80, .18);--shadow-inset: rgba(0, 0, 0, .55);--shadow-drop: rgba(0, 0, 0, .75);--map-empty: #120805}:root[data-theme=sepia]{--bg: #2a231b;--panel: #342c22;--card: linear-gradient(to bottom, rgba(255, 255, 255, .14), rgba(255, 255, 255, .0356));--collapsedCard: linear-gradient(to bottom, rgba(255, 255, 255, .29), rgba(255, 255, 255, .0354));--spell-level-header: linear-gradient(to bottom, rgba(255, 255, 255, .12), rgba(255, 255, 255, .0356));--spell-card: linear-gradient(to bottom, rgba(255, 255, 255, .0356), rgba(255, 255, 255, 0));--text: #f3eadc;--muted: #c2b19a;--border: #5c4d3b;--surface-2: #3d3328;--surface-3: #463b2e;--surface-3-hover: #524536;--diceIconColor: #c2b19a;--dicePresetIconColor: #c2b19a;--ring: rgba(190, 160, 110, .26);--hairline: rgba(190, 160, 110, .16);--shadow-inset: rgba(0, 0, 0, .55);--shadow-drop: rgba(0, 0, 0, .75);--map-empty: #1b160f}html,body{min-height:100%;background-color:var(--bg)}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);background-repeat:no-repeat;background-size:cover;background-attachment:fixed}body[data-shell-mode=hub]{--hub-atmosphere-image: url(/assets/hub/hub-atmosphere-desktop-v2.webp);--hub-atmosphere-position: center 74%;--hub-atmosphere-filter: saturate(1.16) brightness(1.14) contrast(1.02);--hub-atmosphere-wash-opacity: .24;color-scheme:dark;background:#090705}html[data-shell-mode=hub],body[data-shell-mode=hub]{background-color:#090705}[hidden]{display:none!important}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:var(--page-vignette, none);z-index:-1}@media (max-width: 600px){body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}}@media (display-mode: standalone) and (max-width: 600px){body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);z-index:9999;pointer-events:auto;background:#1113;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.safe-area-top-fade{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;height:20px;z-index:9998;pointer-events:none;background:linear-gradient(to bottom,#11111138,#1110);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--sb-thumb) var(--sb-track)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--sb-track);border-radius:999px}*::-webkit-scrollbar-thumb{background:var(--sb-thumb);border-radius:999px;border:2px solid var(--sb-track)}*::-webkit-scrollbar-thumb:hover{background:var(--sb-thumb-hover)}.hlWrap{position:relative;width:100%}.hlOverlay{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;color:transparent;border-radius:inherit}.searchMark{background:var(--search-mark-bg);color:inherit;border-radius:var(--search-mark-radius);padding:0 var(--search-mark-pad-x)}.hlOverlay .searchMark{color:transparent;-webkit-text-fill-color:transparent}.hlField{position:relative;z-index:1;background:transparent}input[type=range]::-webkit-slider-thumb{-webkit-appearance:auto}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--border);border-radius:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--ring);border:2px solid var(--surface-1);margin-top:-5px}input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}input[type=range]::-moz-range-track{height:4px;background:var(--border);border-radius:2px}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--ring);border:2px solid var(--surface-1)}button,input{-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=range].uiRange{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:18px;background:transparent}input[type=range].uiRange::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--border) 75%,transparent);box-shadow:0 0 0 1px var(--shadow-inset) inset}input[type=range].uiRange::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);box-shadow:0 0 0 1px var(--ring) inset;margin-top:-5px}input[type=range].uiRange::-moz-range-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--border) 75%,transparent);box-shadow:0 0 0 1px var(--shadow-inset) inset}input[type=range].uiRange::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);box-shadow:0 0 0 2px var(--ring) inset}.numWrap{position:relative;display:inline-block;vertical-align:middle;align-self:flex-start;width:max-content}:root{--numWrapPadRight: 15px}.numWrap>input[type=number]{padding:5px;padding-right:var(--numWrapPadRight);text-align:center}.numStepper{position:absolute;right:1px;top:50%;transform:translateY(-60%);width:16px;height:21px;display:grid;grid-template-rows:1fr 1fr;gap:2px;border:0;background:transparent;opacity:0;pointer-events:none;transition:opacity .12s ease}.numWrap:hover .numStepper,.numWrap:focus-within .numStepper{opacity:1;pointer-events:auto}.numStepBtn{border:0;background:transparent;padding:0;margin:0;display:grid;place-items:center;color:var(--border);opacity:.95;cursor:pointer;line-height:1;font-size:12px;-webkit-user-select:none;user-select:none;outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent}.numStepBtn:hover{color:var(--text);opacity:1}.numStepBtn:active{transform:translateY(1px);opacity:.85}.numWrap:hover .numStepBtn,.numWrap:focus-within .numStepBtn{opacity:1}.numStepBtn:focus,.numStepBtn:focus-visible{outline:none;box-shadow:none}.topbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--panel)}.titlewrap{min-width:0}#campaignTitle{margin:0;font-size:20px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#campaignTitle[contenteditable=true]{cursor:text}#campaignTitle[contenteditable=false]{cursor:default}.clockChip{display:flex;flex-wrap:wrap;gap:6px;border:2px solid color-mix(in srgb,var(--border) 75%,transparent);opacity:.95;background:color-mix(in srgb,var(--panel) 85%,black);color:var(--text);border-radius:10px;padding:5px;font-size:14px;font-weight:500;line-height:1;font-variant-numeric:tabular-nums;box-shadow:inset 0 2px 3px #00000080,inset 0 -1px #ffffff08}@media (max-width: 420px){.clockChip{display:none}}.topbarCenter{flex:1 1 auto;display:flex;justify-content:flex-start}.muted{color:var(--muted)}.small{font-size:12px}.tabs{display:flex;gap:4px;flex-wrap:wrap}.topbarRight>.tabs{flex:1 1 auto;min-width:0;flex-wrap:nowrap;white-space:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.topbarRight>.tabs::-webkit-scrollbar{display:none}.topbarRight>.tabs>.tab{flex:0 0 auto;white-space:nowrap}.tab{border:1px solid var(--border);background:var(--surface-3);color:var(--text);padding:6px 8px;border-radius:10px}.tab.active{outline:none;background:var(--surface-3-hover);box-shadow:0 0 0 2px var(--ring) inset}.tab.disabled,.tab:disabled{opacity:.5;cursor:not-allowed}button[aria-expanded=true]{box-shadow:0 0 0 2px var(--ring) inset}main{padding:10px}body[data-shell-mode=hub] main{position:relative;z-index:2;isolation:isolate;min-height:100dvh;--hub-page-gutter: clamp(18px, 3vw, 34px);--hub-safe-area-top: 0px;--hub-safe-area-right: 0px;--hub-safe-area-bottom: 0px;--hub-safe-area-left: 0px;background:transparent;padding:0;overflow-x:clip}.page{display:none}.page.active{display:block}#page-hub{--hub-shell-max: 1120px;position:relative;min-height:100vh;min-height:100dvh;isolation:isolate;color:#f3e8d2;background:radial-gradient(circle at 16% 10%,rgba(175,112,56,.18) 0%,transparent 28%),radial-gradient(circle at 84% 16%,rgba(88,53,29,.28) 0%,transparent 30%),radial-gradient(circle at 50% 100%,rgba(33,21,14,.82) 0%,transparent 50%),linear-gradient(180deg,#19120e,#0f0b08 55%,#090705);padding-top:calc(var(--hub-page-gutter, clamp(18px, 3vw, 34px)) + var(--hub-safe-area-top, 0px));padding-right:max(var(--hub-page-gutter, clamp(18px, 3vw, 34px)),var(--hub-safe-area-right, 0px));padding-bottom:calc(var(--hub-page-gutter, clamp(18px, 3vw, 34px)) + var(--hub-safe-area-bottom, 0px));padding-left:max(var(--hub-page-gutter, clamp(18px, 3vw, 34px)),var(--hub-safe-area-left, 0px));overflow-x:clip}#page-hub:before,#page-hub:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#page-hub:before{z-index:0;background-image:var(--hub-atmosphere-image);background-repeat:no-repeat;background-position:var(--hub-atmosphere-position);background-size:cover;filter:var(--hub-atmosphere-filter);transform:translateZ(0)}#page-hub:after{z-index:1;opacity:var(--hub-atmosphere-wash-opacity);background:radial-gradient(circle at 18% 0%,rgba(235,175,96,.14) 0%,transparent 34%),radial-gradient(circle at 82% 12%,rgba(87,52,29,.2) 0%,transparent 30%),linear-gradient(180deg,#0000000f,#00000038),radial-gradient(circle at 16% 14%,rgba(239,180,98,.14) 0%,transparent 24%),radial-gradient(circle at 22% 84%,rgba(128,77,38,.16) 0%,transparent 28%),radial-gradient(circle at 84% 14%,rgba(95,57,32,.16) 0%,transparent 28%),radial-gradient(circle at 50% 100%,rgba(18,12,9,.38) 0%,transparent 42%),linear-gradient(180deg,#080605d6,#0806059e 18%,#08060557,#08060542 62%,#0806055c 78%,#08060594),linear-gradient(90deg,#0806054d,#08060514 18%,#08060514 82%,#08060552)}.hubScroll{position:relative;z-index:2;min-height:calc(100vh - ((2 * var(--hub-page-gutter, clamp(18px, 3vw, 34px))) + var(--hub-safe-area-top, 0px) + var(--hub-safe-area-bottom, 0px)));min-height:calc(100dvh - ((2 * var(--hub-page-gutter, clamp(18px, 3vw, 34px))) + var(--hub-safe-area-top, 0px) + var(--hub-safe-area-bottom, 0px)));overflow-x:clip}.hubShell{--hub-ink: #f3e8d2;--hub-ink-soft: #dfcfb2;--hub-muted: #b9a180;--hub-muted-strong: #cfb28a;--hub-accent: #c89250;--hub-accent-strong: #e1ab69;--hub-bronze: #7c5430;--hub-border: rgba(190, 138, 82, .34);--hub-border-strong: rgba(218, 171, 111, .42);--hub-panel: rgba(27, 19, 14, .9);--hub-panel-strong: rgba(18, 13, 10, .96);--hub-panel-soft: rgba(43, 31, 22, .88);--hub-input: rgba(39, 28, 21, .96);--hub-input-hover: rgba(50, 36, 26, .98);--hub-row: rgba(40, 29, 21, .88);--hub-row-strong: rgba(28, 20, 15, .96);--hub-danger: #f0c2a2;--hub-danger-border: rgba(197, 106, 72, .52);--hub-danger-hover: rgba(111, 40, 28, .58);--hub-ring: rgba(230, 171, 98, .34);--hub-shadow: rgba(0, 0, 0, .46);width:min(var(--hub-shell-max),100%);max-width:100%;margin:0 auto;display:grid;gap:16px;position:relative;z-index:1;isolation:isolate;min-width:0}.hubHero{position:relative;display:grid;grid-template-columns:minmax(0,1.45fr) auto;gap:clamp(18px,3vw,30px);align-items:center;padding:clamp(24px,4vw,42px);border:1px solid var(--hub-border);border-radius:30px;background:linear-gradient(135deg,#fff3dc08,#fff3dc00 42%),linear-gradient(180deg,#271c15f5,#140f0bfa);box-shadow:inset 0 1px #fff3e00f,0 24px 60px #0000006b;overflow:hidden}.hubHero:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid rgba(215,177,124,.26);border-radius:22px;opacity:.85;pointer-events:none}.hubHero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(110deg,#fff4dc0a,#fff4dc00 46%);pointer-events:none;opacity:.7}.hubLowerArea{position:relative;isolation:isolate;padding-top:clamp(8px,1.5vw,14px);padding-bottom:clamp(22px,5vw,56px)}.hubHeroCopy{position:relative;z-index:1;display:grid;gap:10px}.hubHeroEyebrow,.hubSectionEyebrow{letter-spacing:.24em;text-transform:uppercase;font-size:11px;color:var(--hub-muted-strong)}.hubHeroEyebrow{margin:0}.hubHeroTitle{margin:0;font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,URW Palladio L,Georgia,serif;font-size:clamp(3rem,7vw,5rem);line-height:.94;letter-spacing:.04em;text-transform:uppercase;text-wrap:balance;color:var(--hub-ink);text-shadow:0 10px 24px rgba(0,0,0,.3)}.hubHeroTagline{margin:0;font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,URW Palladio L,Georgia,serif;font-size:clamp(1.05rem,2vw,1.4rem);letter-spacing:.12em;text-transform:uppercase;color:var(--hub-ink-soft)}.hubHeroDivider{display:flex;align-items:center;gap:12px;max-width:360px}.hubHeroDivider:before,.hubHeroDivider:after{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(218,179,124,.65),transparent)}.hubHeroDividerMark{width:12px;height:12px;transform:rotate(45deg);border:1px solid rgba(218,180,127,.78);background:linear-gradient(180deg,#dfac67f5,#946135fa);box-shadow:0 0 0 3px #120d0aeb}.hubHeroFeatureLine{margin:0;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--hub-muted)}.hubWelcomeCopy{margin:0;max-width:36ch;font-size:clamp(1rem,1.8vw,1.08rem);line-height:1.6;color:var(--hub-ink-soft)}.hubHeroVisual{position:relative;z-index:1;width:min(30vw,236px);aspect-ratio:1;justify-self:end;display:grid;place-items:center}.hubHeroVisual:before,.hubHeroVisual:after{content:"";position:absolute;pointer-events:none}.hubHeroVisual:before{top:12%;right:2%;bottom:12%;left:2%;border-radius:999px;background:radial-gradient(circle,rgba(232,175,98,.2) 0%,rgba(144,87,45,.08) 32%,transparent 74%);filter:blur(6px)}.hubHeroVisual:after{top:4%;right:4%;bottom:4%;left:4%;border-radius:30px;border:1px solid rgba(216,174,115,.18);background:linear-gradient(180deg,#110c0929,#110c0900)}.hubHeroIconFrame{position:absolute;inset:clamp(16px,3vw,24px);border-radius:28px;border:1px solid var(--hub-border-strong);background:radial-gradient(circle at 32% 28%,rgba(255,235,205,.12) 0%,transparent 26%),linear-gradient(180deg,#35271df5,#18110dfa);box-shadow:inset 0 1px #fff8ed0f,0 22px 34px #00000057;display:grid;place-items:center}.hubHeroIconFrame:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:22px;border:1px solid rgba(219,181,128,.16)}.hubHeroIconImage{position:relative;z-index:1;width:72%;height:auto;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.4)) drop-shadow(0 0 18px rgba(226,165,88,.08))}.hubLayout{display:grid;grid-template-columns:minmax(250px,340px) minmax(0,1fr);align-items:start;gap:14px;position:relative;z-index:1;min-width:0}.panel.hubPanel{position:relative;padding:18px;border-radius:24px;border-color:var(--hub-border);background:linear-gradient(180deg,#1f1610d1,#120d0ae6);box-shadow:inset 0 1px #fff4e10a,0 16px 40px #00000042}.panel.hubPanel:before{content:"";position:absolute;inset:0 auto auto 18px;width:78px;height:1px;background:linear-gradient(90deg,transparent,rgba(218,176,118,.66),transparent)}.hubCreatePanel,.hubListPanel{display:grid;gap:12px}.hubSectionHeader{display:grid;gap:4px}.hubCreateForm{display:grid;gap:10px}.hubCreateForm button{justify-self:start}.hubCreateField input{min-height:40px}.hubCampaignCount{white-space:nowrap;padding:7px 10px;border:1px solid rgba(194,150,95,.34);border-radius:999px;background:#2c2018b3;color:var(--hub-muted-strong)}.hubListHeader{display:flex;gap:8px;align-items:start;justify-content:space-between}.hubCreateField{display:grid;gap:6px}.hubFieldLabel{font-size:12px;color:var(--hub-muted-strong)}.hubEmptyState{display:grid;gap:6px;padding:14px;border:1px dashed rgba(194,151,95,.34);border-radius:18px;background:#201812b8}.hubCampaignList{list-style:none;margin:0;padding:0;display:grid;gap:8px}.hubCampaignCard{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid rgba(189,141,83,.26);border-radius:18px;background:linear-gradient(180deg,#33261cd1,#1d1510e6);transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.hubCampaignCard:hover{transform:translateY(-1px);border-color:#d7a5686b;box-shadow:0 12px 26px #0000003d}.hubCampaignCard.active{border-color:#deae6f8f;box-shadow:0 0 0 1px #e1b67c38 inset,0 12px 28px #00000038}.hubCampaignSummary{min-width:0;display:grid;gap:4px}.hubCampaignTitleRow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hubCampaignTitle{margin:0;font-size:18px;line-height:1.2;color:var(--hub-ink)}.hubCampaignBadge{padding:4px 9px;border-radius:999px;border:1px solid rgba(221,173,108,.42);background:#412c1cc7;font-size:12px;color:var(--hub-ink-soft)}.hubCampaignMeta{margin:0;color:var(--hub-muted)}.hubCampaignActions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}#page-hub .muted,#page-hub .mutedSmall{color:var(--hub-muted)}#page-hub input,#page-hub button,#page-hub .panelBtn,#page-hub .panelBtnSm{border-color:#bf915a57}#page-hub input{background:linear-gradient(180deg,var(--hub-input) 0%,rgba(26,19,14,.98) 100%);color:var(--hub-ink);box-shadow:inset 0 1px #fff7ea08}#page-hub input::placeholder{color:#c2a987a8}#page-hub button,#page-hub .panelBtn,#page-hub .panelBtnSm{background:linear-gradient(180deg,#4d3828fa,#2d2118fa);color:var(--hub-ink);box-shadow:inset 0 1px #fff7ea0a}#page-hub button:hover,#page-hub .panelBtn:hover,#page-hub .panelBtnSm:hover{background:linear-gradient(180deg,#5e4430fa,#37281dfa)}#page-hub button:focus-visible,#page-hub .panelBtn:focus-visible,#page-hub .panelBtnSm:focus-visible,#page-hub input:focus-visible{outline:none;box-shadow:0 0 0 1px #090705f5,0 0 0 3px var(--hub-ring)}#page-hub button.danger,#page-hub .panelBtn.danger,#page-hub .panelBtnSm.danger{border-color:var(--hub-danger-border);color:var(--hub-danger);background:linear-gradient(180deg,#4a231afa,#2d1410fa)}#page-hub button.danger:hover,#page-hub .panelBtn.danger:hover,#page-hub .panelBtnSm.danger:hover{background:linear-gradient(180deg,#673022fa,#3d1b14fa);color:#f7e4d4}#page-hub #hubCreateBtn{min-width:160px;border-color:#e2b16f7a;background:linear-gradient(180deg,#996835fa,#613e1ffa);color:#fff0dc}#page-hub #hubCreateBtn:hover{background:linear-gradient(180deg,#ae773cfa,#6e4724fa)}@media (max-width: 700px){body[data-shell-mode=hub] main{--hub-page-gutter: 14px}body[data-shell-mode=hub]{--hub-atmosphere-image: url(/assets/hub/hub-atmosphere-mobile-v2.webp);--hub-atmosphere-position: 18% 76%}.hubHero{grid-template-columns:minmax(0,1fr) clamp(96px,28vw,130px);align-items:start;gap:12px 14px;padding:20px 18px 18px}.hubHeroCopy{gap:8px}.hubHeroTitle{font-size:clamp(2.45rem,13vw,3.5rem)}.hubHeroTagline{font-size:clamp(.92rem,3.8vw,1.04rem);letter-spacing:.1em}.hubHeroFeatureLine{font-size:12px;letter-spacing:.13em}.hubWelcomeCopy{max-width:28ch}.hubHeroVisual{align-self:start;justify-self:end;width:100%;max-width:130px;min-width:96px;margin-top:2px}.hubHeroIconFrame{top:10px;right:10px;bottom:10px;left:10px;border-radius:22px}.hubHeroIconFrame:before{top:8px;right:8px;bottom:8px;left:8px;border-radius:16px}.hubLowerArea{padding-top:8px}.hubLayout{grid-template-columns:1fr;min-width:0}.hubCreateForm{gap:8px}.hubCampaignCard{flex-direction:column;align-items:stretch}.hubCampaignActions{justify-content:flex-start}}@media (max-width: 600px),(display-mode: standalone){body[data-shell-mode=hub] main{--hub-safe-area-top: env(safe-area-inset-top, 0px);--hub-safe-area-right: env(safe-area-inset-right, 0px);--hub-safe-area-bottom: env(safe-area-inset-bottom, 0px);--hub-safe-area-left: env(safe-area-inset-left, 0px)}body[data-shell-mode=hub]{padding-right:0;padding-bottom:0;padding-left:0}}.panel,.combatPanel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:0 6px 16px var(--shadow-inset);min-width:0;overflow:hidden}.mapPanel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:10px;box-shadow:0 0 0 1px var(--shadow-inset) inset,0 6px 16px var(--shadow-drop)}.grid2{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.charEmptyState{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 20px;text-align:center;border:1px dashed var(--border);border-radius:12px;background:var(--surface-2);margin-bottom:12px}.charEmptyStateMsg{margin:0;font-size:1.05em;color:var(--text-muted, var(--text))}.charEmptyStateActions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.charSelectorBar{display:flex;align-items:center;gap:6px;margin-bottom:8px;min-width:0}.charSelectorSelect{flex:1 1 0;min-width:0;max-width:320px}.charSelectorSelect+.selectDropdown{flex:1 1 0;min-width:0;max-width:320px}button.charSelectorSelectBtn{width:100%;min-width:0}button.charSelectorSelectBtn [data-select-label]{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charActionMenu{flex:0 0 auto;position:relative}button.charActionMenuBtn{width:var(--panel-control-h);min-width:var(--panel-control-h);padding:0;display:inline-flex;align-items:center;justify-content:center;letter-spacing:0;font-weight:700}.charActionMenu .dropdownMenu{min-width:180px}.charActionMenuItem{white-space:nowrap}.charColumns{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.charCol{display:flex;flex-direction:column;gap:10px;min-width:0}.trackerColumns,.combatColumns{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.trackerCol,.combatCol{display:flex;flex-direction:column;gap:10px;min-width:0}#combatCardsPanel{flex:1 1 auto}@media (max-width: 600px){.charColumns,.grid2,.trackerColumns,.combatColumns{grid-template-columns:1fr}}.grid2>*{min-width:0}textarea{width:100%;min-height:140px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 8px;resize:vertical}input{width:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 8px}input,textarea{font:inherit}.row{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.items-center{align-items:center}.items-end{align-items:flex-end}.m0{margin:0}button,.filebtn{border:1px solid var(--border);background:var(--surface-3);color:var(--text);padding:6px 8px;border-radius:10px;cursor:pointer;font:inherit;font-size:.85rem;line-height:1.2}button:hover,.filebtn:hover{background:var(--surface-3-hover)}button.danger{border-color:var(--danger-border);color:var(--danger)}button.danger:hover{background:var(--danger-hover);color:var(--text)}button.warn{border-color:var(--warn-border);color:var(--warn)}button.warn:hover{background:var(--warn-hover)}.filebtn input{display:none}.mapbar{display:flex;justify-content:space-between;gap:4px;flex-wrap:wrap;margin-bottom:4px}.maptools{display:flex;gap:4px;flex-wrap:wrap;align-items:center;padding:0}.mapSelectLabel{display:flex;gap:4px;align-items:center}.mapSelect{min-width:160px;max-width:240px}.chip{padding:6px 8px;border-radius:999px}.chip.active{outline:none;background:var(--surface-3-hover);box-shadow:0 0 0 2px var(--ring) inset}.mutedSmall{padding-top:6px 8px;font-size:12px}.topbarRight{display:flex;gap:4px;align-items:center;min-width:0;max-width:100%}.topbarRight>.calcDropdown,.topbarRight>.diceDropdown,.topbarRight>.combatTab,.topbarRight>.settingsBtn{flex:0 0 auto}.settingsDropdown{position:relative}.settingsBtn,.combatTab{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.settingsBtnIcon{width:15px;height:15px;display:block;pointer-events:none}.settingsMenu{position:absolute;right:0;top:calc(100% + 8px);min-width:240px;z-index:999;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:6px 8px;box-shadow:0 0 0 1px var(--shadow-inset) inset,0 10px 22px var(--shadow-drop);max-width:calc(100vw - 16px);max-height:min(70vh,520px);overflow:auto}.settingsSection{display:grid;gap:4px;padding:6px 2px 8px}.settingsLabel{font-size:12px;color:var(--muted)}.settingsSelect{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 36px 6px 8px;border-radius:10px;font:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}button.settingsSelectBtn{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 36px 6px 8px;border-radius:10px;font:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat;text-align:left}button.settingsSelectBtn:hover{background:var(--surface-3-hover);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}button.settingsSelectBtn:focus-visible,button.settingsSelectBtn[aria-expanded=true]{outline:none;box-shadow:0 0 0 2px var(--ring) inset}.settingsSelect:focus{outline:none;box-shadow:0 0 0 2px var(--ring) inset}.settingsDivider{height:1px;background:var(--border);margin:4px 0}.settingsItem{width:100%;text-align:left;border:1px solid var(--border);background:var(--surface-3);color:var(--text);border-radius:10px;padding:6px 8px;margin:6px 0;cursor:pointer}button.settingsItem,label.settingsItem{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px}.settingsToggleItem{min-height:36px}.settingsToggleItem input[type=checkbox]{flex:0 0 auto}.settingsItem:hover{background:var(--surface-3-hover)}.settingsItem.danger{border-color:var(--danger);color:var(--danger)}.settingsFileItem{display:block}.settingsFileItem input[type=file]{display:none}.saveOptionsDropdown{position:relative;margin-left:auto}.saveOptionsMenu{position:absolute;right:0;top:calc(100% + 6px);width:min(320px,calc(100vw - 16px));z-index:999;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:6px 8px;box-shadow:0 0 0 1px var(--shadow-inset) inset,0 10px 22px var(--shadow-drop);max-width:calc(100vw - 16px);max-height:min(70vh,520px);overflow:auto}.saveOptionsTitle{font-size:12px;color:var(--muted);margin:2px 2px 4px}.saveOptionsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.saveOpt{text-align:center}.saveOptTop input{width:100%;text-align:center}.saveOptLabel{margin-top:4px;font-size:12px;color:var(--muted)}.saveOptionsRow{display:grid;gap:4px}.saveOptionsRowLabel{font-size:12px;color:var(--muted)}.abilitiesHeader{display:flex;align-items:center;justify-content:flex-start;gap:1px}.abilitiesHeader>h2{flex:1 1 auto;margin:0}.abilitiesHeader #saveOptionsDropdown{margin-left:auto}@media (max-width: 600px){.clockChip{flex-wrap:nowrap;white-space:nowrap;gap:0;padding:6px 8px;font-size:13px}.topbarCenter{flex:0 0 auto}}@media (max-width: 600px){.tabs{flex-wrap:nowrap;white-space:nowrap;gap:4px}.tab{padding:6px 8px;font-size:13px}}@media (max-width: 600px){.topbar{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:4px;align-items:center;padding-top:calc(8px + env(safe-area-inset-top,0px));padding-right:max(10px,env(safe-area-inset-right,0px));padding-bottom:8px;padding-left:max(10px,env(safe-area-inset-left,0px))}.titlewrap{grid-row:1;grid-column:1 / -1;min-width:0}.topbarCenter{grid-row:2;grid-column:1}.topbarRight{grid-row:2;grid-column:2;justify-content:flex-end;width:100%}#campaignTitle{font-size:18px}#statusText{white-space:normal;overflow-wrap:anywhere;word-break:break-word}}@media (display-mode: standalone){.topbar{padding-top:calc(8px + env(safe-area-inset-top,0px));padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}main{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}}:root{--panel-header-gap: 4px}:root{--panel-control-gap: 4px;--panel-control-h: 30px;--panel-control-radius: 10px;--panel-control-pad-x: 5px;--panel-control-pad-y: 8px;--panel-control-font: .85rem;--panel-control-min-search: 80px}.panelControls,.sessionControls,.npcControls,.partyControls,.locControls{display:flex;gap:var(--panel-control-gap);flex-wrap:wrap;align-items:center}.panelBtn{height:var(--panel-control-h);padding:var(--panel-control-pad-y) var(--panel-control-pad-x);border-radius:var(--panel-control-radius);line-height:1;font-size:var(--panel-control-font)}.panelBtnSm{height:var(--panel-control-h);padding:6px 8px;font-size:var(--panel-control-font)}.panelDelete{border-color:var(--danger-border);color:var(--danger);font-size:var(--panel-control-font)}.panelDelete:hover{background:var(--danger-hover)}.panelSearch,.sessionSearch,.npcSearch,.partySearch,.locSearch{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 8px;border-radius:10px;min-width:var(--panel-control-min-search);max-width:150px;width:auto;height:var(--panel-control-h);font-size:var(--panel-control-font)}.panelSelect,.locFilter,button.panelSelectBtn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 30px 6px 8px;border-radius:10px;height:var(--panel-control-h);font-size:var(--panel-control-font);appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat;text-align:left}.panelSelect:hover,.locFilter:hover,button.panelSelectBtn:hover{background:var(--surface-3-hover);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}.moveBtn,.panelMoveBtn{width:30px;height:var(--panel-control-h);display:grid;place-items:center;border:1px solid var(--border);background:var(--surface-3);color:var(--muted);border-radius:10px;cursor:pointer;padding:0;line-height:1;font-size:var(--panel-control-font)}.moveBtn:hover,.panelMoveBtn:hover{color:var(--text);background:var(--surface-3-hover)}.panel>.panelHeader,.panel>.sessionHeader,.panel>.trackerHeader,.panel>.npcHeader,.panel>.partyHeader,.panel>.locHeader,.panel>.row{margin-bottom:var(--panel-header-gap)}.combatPanel>.panelHeader{margin-bottom:var(--panel-header-gap)}.combatEmptyState{display:grid;gap:4px;min-height:120px;align-content:center;justify-items:center;text-align:center;border:1px dashed var(--border);border-radius:8px;background:var(--surface-1);padding:18px}.combatCardsShell{min-height:12px;display:grid;gap:8px}.combatCard{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:row;gap:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);padding:10px;min-width:0}.combatCard>*{position:relative;z-index:1}.combatCard.isActive{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 45%,transparent)}.combatRole-enemy,.combatRole-npc{border-color:color-mix(in srgb,var(--role-tint-color) 32%,var(--border))}.combatRole-enemy:before,.combatRole-npc:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:color-mix(in srgb,var(--role-tint-color) var(--role-tint-strength),transparent)}.combatRole-enemy{--role-tint-color: var(--danger);--role-tint-strength: 18%}.combatRole-npc{--role-tint-color: var(--muted);--role-tint-strength: 14%}.combatCardPortrait{flex:0 0 52px;width:52px;align-self:flex-start;border-radius:6px;overflow:hidden}.combatCardPortraitImg{display:block;width:52px;height:52px;object-fit:cover;border-radius:6px}.combatCardPortraitAvatar{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--surface-3);border-radius:6px;font-weight:800;font-size:1.2rem;color:var(--muted);-webkit-user-select:none;user-select:none}.combatCardContent{flex:1 1 0;min-width:0;display:grid;gap:7px}.combatCardHeader,.combatCardControls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}.combatCardHeader{justify-content:space-between}.combatCardTitleWrap{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 140px}.combatCardName{font-weight:700;min-width:0;overflow-wrap:anywhere}.combatActiveBadge,.combatStatusChip{border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:3px 6px;font-size:var(--small-font-size);line-height:1.2}.combatActiveBadge{border-color:var(--accent);color:var(--accent)}.combatRoleSelect,.combatCardHeader .selectDropdown{flex:0 0 auto}.combatHpBtn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:5px 8px;font:inherit;color:inherit;text-align:left;align-self:start;transition:border-color .12s,background .12s}.combatHpBtn:hover{border-color:var(--accent);background:var(--surface-3)}.combatHpLabel{color:var(--muted);font-size:var(--small-font-size)}.combatHpValue{font-weight:800}.combatHpBtn.hasTempHp .combatHpValue{color:var(--skill-prof-dot, #0b72d9)}.combatHpBtn.isZeroHp:not(.hasTempHp) .combatHpValue{color:var(--danger)}.combatTempHpBadge{border:1px solid color-mix(in srgb,var(--accent) 50%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));padding:2px 5px;font-size:var(--small-font-size);color:var(--accent);line-height:1.2}.combatStatusRow{display:grid;gap:5px;min-height:24px}.combatStatusCompactRow{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;align-items:center;gap:5px;min-width:0}.combatStatusCompactRow.isExpired .combatStatusNameBox,.combatStatusCompactRow.isExpired .combatStatusDurationBox{color:var(--muted);text-decoration:line-through}.combatStatusGearBtn{font-size:.85rem;padding:2px 5px;opacity:.6;flex-shrink:0}.combatStatusGearBtn:hover{opacity:1}.combatStatusNameBox{min-width:0;overflow-wrap:anywhere}.combatStatusDurationBox{border:1px solid var(--border);border-radius:8px;background:var(--surface-2);padding:3px 6px;font-size:var(--small-font-size);line-height:1.2;white-space:nowrap;color:var(--muted)}.combatStatusChip.isExpired{color:var(--muted);text-decoration:line-through}.combatStatusExpiredLabel{color:var(--danger);font-size:var(--small-font-size);font-weight:700}.combatNoStatus{color:var(--muted);font-size:var(--small-font-size)}.combatCardMoves{display:flex;gap:3px}.combatModalPanel{width:min(440px,100%)}.combatModalHeader{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--hairline)}.combatModalBody{padding:14px 16px;display:grid;gap:10px}.combatModalFooter{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 16px 14px;border-top:1px solid var(--hairline)}.combatHpModalInfo{color:var(--muted)}.combatHpModalInput,.combatTurnSecondsModalInput,.combatStatusModalLabelInput,.combatStatusModalDurationInput{min-height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);padding:6px 10px;font:inherit;width:100%;box-sizing:border-box}.combatStatusModalDuration{display:flex;gap:8px;align-items:center}.combatStatusModalModeSelect{flex:1 1 0;width:auto}.combatStatusModalDuration .selectDropdown{flex:1 1 0;min-width:0}.combatStatusModalDurationInput{flex:0 0 90px;width:90px}.combatTurnSecondsModalLabel{color:var(--muted);font-size:var(--small-font-size)}.combatRoundStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}.combatStatTile{border:1px solid var(--border);border-radius:8px;background:var(--surface-1);padding:10px;min-width:0}.combatTurnSecondsButton{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}.combatTurnSecondsButton:hover{background:var(--surface-2)}.combatTurnSecondsButton:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.combatTurnSecondsHint{color:var(--muted);font-size:var(--small-font-size);line-height:1.2;margin-top:4px}.combatStatLabel{color:var(--muted);font-size:var(--small-font-size);line-height:1.2}.combatStatValue{color:var(--text);font-size:1.15rem;font-weight:700;line-height:1.2;margin-top:4px}.combatControlRow{display:flex;flex-wrap:wrap;gap:6px}.combatControlRow button:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 600px){.combatRoundStats{grid-template-columns:1fr}}.combatPanelPicker{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 2px}.combatPanelPickerLabel{color:var(--muted);font-size:.85em}#combatEmbeddedPanels{display:grid;gap:10px;min-width:0}.combatEmbeddedPanel{margin-top:0;min-width:0}.combatEmbeddedMoves{display:flex;align-items:center;gap:6px}.combatEmbeddedPanelControls{margin-left:auto}.combatEmbeddedPanelControls>.headerAddBtn{margin-left:0}.combatEmbeddedPanelBody{display:block;min-width:0}.combatEmbeddedSourcePanel{margin-top:0}.combatEmbeddedEquipmentHost .sessionHeader{flex-wrap:wrap}.combatEmbedHpBlock{display:flex;align-items:baseline;gap:6px;margin-bottom:2px}.combatEmbedHpValue{font-weight:800;font-size:1.15em}.combatEmbedStatRow{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:.92em}.combatEmbedStatLabel{color:var(--muted)}.combatEmbedStatValue{font-weight:600}.combatEmbedSectionLabel{color:var(--muted);font-size:.82em;text-transform:uppercase;letter-spacing:.05em;margin-top:4px;margin-bottom:2px}.combatEmbedResources{display:grid;gap:3px;margin-top:4px}.combatEmbedResourceRow{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:.9em}.combatEmbedResourceName{color:var(--muted)}.combatEmbedResourceValue{font-weight:600}.combatEmbedSpellLevel{display:grid;gap:3px}.combatEmbedSpellLevelHeader{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:2px 0;border-bottom:1px solid var(--border);margin-bottom:2px}.combatEmbedSpellLevelLabel{font-weight:600;font-size:.9em}.combatEmbedSpellSlots{color:var(--muted);font-size:.85em}.combatEmbedSpellLevelBody{display:grid;gap:2px;padding-left:6px}.combatEmbedSpellRow{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:.9em;padding:1px 0}.combatEmbedSpellRow.isExpended{opacity:.55;text-decoration:line-through}.combatEmbedSpellName{flex:1 1 auto}.combatEmbedSpellFlags{color:var(--muted);font-size:.82em;white-space:nowrap}.combatEmbedWeaponRow{display:flex;flex-direction:column;gap:1px;padding:3px 0;border-bottom:1px solid var(--border);font-size:.9em}.combatEmbedWeaponRow:last-child{border-bottom:none}.combatEmbedWeaponName{font-weight:600}.combatEmbedWeaponStats{color:var(--muted);font-size:.88em}.cardSelect,button.cardSelectBtn{width:100%;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;color:var(--text);padding:4px 36px 4px 6px;margin-bottom:5px;font:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}.cardSelect:hover,button.cardSelectBtn:hover{background:var(--surface-3-hover);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}.cardSelect:focus,button.cardSelectBtn:focus-visible,button.cardSelectBtn[aria-expanded=true]{outline:none;box-shadow:0 0 0 2px var(--ring) inset}.cardSelect,button.npcSmallBtn{margin-bottom:5.5px}button.combatActionSuccess{border-color:var(--accent);color:var(--accent)}.cardSelect,div.mutedSmall{margin-bottom:5px;color:var(--muted)}.sectionMoves{display:flex;gap:4px;align-items:center}.abilityMoves{position:absolute;top:10px;right:10px;display:flex;gap:4px}#charAbilitiesPanel>.panelHeader,#combatEmbeddedAbilitiesSource>.panelHeader{justify-content:flex-start;gap:4px}#charAbilitiesPanel>.panelHeader .sectionMoves,#combatEmbeddedAbilitiesSource>.panelHeader .combatEmbeddedPanelControls{margin-left:auto}.charBasicsLayout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:4px;margin-top:4px;align-items:stretch}.charPortraitCard{display:flex;flex-direction:column;align-self:stretch}.charPortraitTop{flex:1 1 auto;min-height:320px;display:grid;place-items:center}.portraitPlaceholder{pointer-events:none;color:var(--muted);font-weight:700;letter-spacing:.02em;padding:10px;text-align:center;opacity:.95}#charPortraitImg:not([hidden])+#charPortraitPlaceholder{display:none}.charPortraitTop img{width:100%;height:100%;object-fit:cover;object-position:center-top;display:block}@media (max-width: 700px){.charBasicsLayout{grid-template-columns:1fr}.charPortraitTop{min-height:220px}}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;display:grid;place-items:center;padding:18px;background:#000000b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modalOverlay[hidden]{display:none!important}.modalPanel{width:min(720px,100%);background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:10px;box-shadow:0 0 0 1px var(--shadow-inset) inset,0 16px 40px var(--shadow-drop)}.modalTitle{font-weight:700}.cropWrap{position:relative;width:100%;aspect-ratio:var(--portrait-ratio);max-height:calc(100dvh - 240px);border-radius:12px;overflow:hidden;background:var(--map-empty);border:1px solid var(--hairline);margin-bottom:10px}.cropCanvas{width:100%;height:100%;display:block;object-fit:contain;touch-action:none}.cropFrame{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:0 0 0 2px var(--hairline) inset,0 0 0 999px #0000002e inset}.modalControls{display:flex;gap:4px;align-items:center;padding:4px}.modalLabel{color:var(--muted);font-size:12px}.modalRange{width:100%}.uiDialogPanel{width:min(420px,100%);padding:4px}.uiDialogHeader{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:2px 2px 6px;border-bottom:1px solid var(--hairline)}.uiDialogHeader .modalTitle{margin:0;padding:0;font-size:18px}.uiDialogBody{padding:8px 2px;color:var(--text);line-height:1.35}.uiDialogInput{width:calc(100% - 8px)}.uiDialogActions{justify-content:flex-end}#uiDialogMessage{margin:0 0 2px;white-space:pre-wrap}#uiDialogInput{margin:10px 0 0}.uiDialogFooter{display:flex;justify-content:flex-end;gap:4px;padding:6px 2px 2px;border-top:1px solid var(--hairline)}.modalBtnRow{display:flex;justify-content:flex-end}.modalBtn{border:1px solid var(--border);background:var(--surface-3);color:var(--text);padding:6px 8px;border-radius:10px;cursor:pointer}.modalBtn:hover{background:var(--surface-3-hover)}.modalBtnPrimary{background:var(--surface-3-hover);outline:none;box-shadow:0 0 0 2px var(--ring) inset}.sessionHeader{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:4px}.sessionTabsWrap{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:4px;margin-bottom:4px;overflow:auto;max-width:100%}.sessionTabs{display:flex;gap:4px;align-items:center;width:max-content}.sessionTab{border:1px solid var(--border);background:var(--surface-3);color:var(--text);padding:6px 8px;border-radius:999px;cursor:pointer;white-space:nowrap}.sessionTab.active{background:var(--surface-3-hover);outline:none;box-shadow:0 0 0 2px var(--ring) inset}.npcHeader{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:4px}.npcTabsWrap{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:12px}.npcTab{border:1px solid var(--border);background:var(--surface-3);color:var(--text);padding:6px 8px;border-radius:999px;cursor:pointer}.npcTab.active{background:var(--surface-3-hover);outline:none;box-shadow:0 0 0 2px var(--ring) inset}.trackerCardsGrid{--cards-grid-gap: 8px;display:grid;gap:var(--cards-grid-gap);grid-template-columns:repeat(2,minmax(var(--card-min-width),1fr));align-items:start}.trackerCardsGrid.masonryEnabled{display:block;position:relative}.trackerCardsGrid.masonryEnabled>.trackerCard{position:absolute;top:0;left:0;will-change:transform}.trackerCard,.npcCard{position:relative;border:2px solid var(--border);border-radius:17px;overflow:visible;background:var(--card);isolation:isolate;box-shadow:0 6px 16px var(--shadow-drop);overflow:hidden;overflow-anchor:none}.trackerCard.popoverRaised,.npcCard.popoverRaised{z-index:200}.trackerCard:before,.npcCard:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:15px;box-shadow:var(--npcFrameShadow, inset 0 0 0 5.5px var(--frame-fill));pointer-events:none;z-index:2}.trackerCard:after,.npcCard:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:10px;border:1px solid var(--hairline);pointer-events:none;z-index:3}.trackerCard.collapsed,.npcCard.collapsed{background:var(--collapsedCard)}.partyHeader,.locHeader{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:4px}#page-tracker :is(.sessionHeader,.npcHeader,.partyHeader,.locHeader)>h2{min-width:0}#page-tracker :is(.sessionControls,.npcControls,.partyControls,.locControls).panelControls{min-width:0;margin-left:auto}#page-tracker :is(.sessionControls,.npcControls,.partyControls,.locControls).panelControls>.sectionMoves{flex:0 0 auto;margin-left:auto}#sessionPanel,#npcPanel,#partyPanel,#locationsPanel{container-type:inline-size}@media (max-width: 600px){#page-tracker :is(.sessionHeader,.npcHeader,.partyHeader,.locHeader){display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:var(--panel-control-gap);row-gap:0}#page-tracker :is(.sessionHeader,.npcHeader,.partyHeader,.locHeader)>h2{grid-column:1;align-self:start}#page-tracker :is(.sessionControls,.npcControls,.partyControls,.locControls).panelControls{grid-column:2;min-width:0;margin-left:0;justify-content:flex-end;align-content:flex-start}#page-tracker :is(.sessionControls,.npcControls,.partyControls,.locControls).panelControls>.sectionMoves{margin-left:0}}@container (max-width: 31rem){#sessionPanel>.sessionHeader{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:var(--panel-control-gap);row-gap:0}#sessionPanel>.sessionHeader>h2{grid-column:1;align-self:start}#sessionPanel>.sessionHeader>.sessionControls.panelControls{grid-column:2;min-width:0;margin-left:0;justify-content:flex-end;align-content:flex-start}#sessionPanel>.sessionHeader>.sessionControls.panelControls>.sectionMoves{margin-left:0}}@container (max-width: 37rem){:is(#npcPanel>.npcHeader,#partyPanel>.partyHeader){display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:var(--panel-control-gap);row-gap:0}:is(#npcPanel>.npcHeader,#partyPanel>.partyHeader)>h2{grid-column:1;align-self:start}:is(#npcPanel>.npcHeader>.npcControls.panelControls,#partyPanel>.partyHeader>.partyControls.panelControls){grid-column:2;min-width:0;margin-left:0;justify-content:flex-end;align-content:flex-start}:is(#npcPanel>.npcHeader>.npcControls.panelControls,#partyPanel>.partyHeader>.partyControls.panelControls)>.sectionMoves{margin-left:0}}@container (max-width: 46rem){#locationsPanel>.locHeader{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:var(--panel-control-gap);row-gap:0}#locationsPanel>.locHeader>h2{grid-column:1;align-self:start}#locationsPanel>.locHeader>.locControls.panelControls{grid-column:2;min-width:0;margin-left:0;justify-content:flex-end;align-content:flex-start}#locationsPanel>.locHeader>.locControls.panelControls>.sectionMoves{margin-left:0}}.locCards{--cards-grid-gap: 4px}@container (max-width: 380px){.trackerCardsGrid{grid-template-columns:1fr}}@supports not (container-type: inline-size){@media (max-width: 600px){.trackerCardsGrid{grid-template-columns:1fr}}}select.npcField{width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 36px 6px 8px;border-radius:10px;font:inherit;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}select.npcField:focus{outline:none;box-shadow:0 0 0 2px var(--ring) inset}.npcHeaderRow .npcField.autosize{flex:0 0 auto;width:auto}.npcCardStack{display:flex;flex-direction:column}.npcPortraitTop{width:100%;height:160px;background:var(--map-empty);display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:14px 14px 0 0;cursor:pointer;position:relative}.npcPortraitBtn{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:transparent;border:0;color:var(--muted);font:inherit;font-weight:600;letter-spacing:.2px;cursor:pointer;z-index:1}.npcPortraitBtn:hover{color:var(--text);background:color-mix(in srgb,var(--surface-3-hover) 35%,transparent)}.npcPortraitBtn:focus{outline:none}.cardPortraitToggleBtn{margin:0;-webkit-tap-highlight-color:transparent}.cardPortraitToggleBtnOverlay{position:absolute;top:8px;right:8px;z-index:2;opacity:0;transition:opacity .15s ease;background:color-mix(in srgb,var(--surface-3) 88%,transparent)}.npcPortraitTop:hover .cardPortraitToggleBtnOverlay,.npcPortraitTop:focus-within .cardPortraitToggleBtnOverlay,.cardPortraitToggleBtnOverlay:focus-visible{opacity:1}.cardPortraitToggleBtnHeader{align-self:center}.cardPortraitToggleIcon{width:1.5em;height:1.5em;display:block;pointer-events:none;--iconColor: currentColor}.cardPortraitToggleBtn--portrait .iconMask{width:2em;height:2em}.npcPortraitTop img{width:100%;height:100%;object-fit:cover;object-position:center-top;display:block}.npcCardBodyStack{padding:10px;display:grid;gap:4px}.npcHeaderRow{display:flex;align-items:center;gap:4px}.npcHeaderRow .npcField{flex:1;min-width:0}.linkedCardBadge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 7px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));color:var(--muted);font-size:11px;font-weight:700;line-height:1;white-space:nowrap}.linkedCardBadge.isOrphaned{border-color:var(--danger-border);background:color-mix(in srgb,var(--danger) 10%,var(--surface-2));color:var(--danger)}.linkedCardWarning{grid-column:1 / -1;color:var(--danger);font-size:12px;line-height:1.25;overflow-wrap:anywhere}.npcCollapseToggle{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);background:var(--surface-3);color:var(--muted);border-radius:10px;cursor:pointer;padding:0;line-height:1}.npcCollapseToggle:hover{color:var(--text);background:var(--surface-3-hover)}.npcCollapsible{display:grid;gap:4px}.npcCollapsible[hidden],.npcCardFooter[hidden]{display:none!important}.npcNameBig{font-size:18px;font-weight:800;padding:6px 8px}.npcClass{opacity:.95}.npcMiniLabel{font-size:12px;color:var(--muted);margin:0 0 6px 2px}.npcHpRow{display:flex;align-items:center;justify-content:flex-start;gap:4px}.npcHpInput{width:auto;text-align:center;padding:5px;padding-right:var(--numWrapPadRight);flex:0 0 auto}.npcBlock{display:grid;gap:1px}.npcRowBlock{display:grid;grid-template-columns:var(--npc-label-w, 40px) 1fr;align-items:center;column-gap:10px;row-gap:1px}.npcCollapsible>.npcRowBlock:first-child{margin-top:17px}.npcRowBlock .npcMiniLabel{max-width:70px;white-space:normal;line-height:1.1}.npcRowBlock .npcField,.npcRowBlock .npcTextarea{width:100%;min-width:0}.npcNotesBox{min-height:110px;max-height:110px;overflow:auto;resize:none}.npcCardFooter{padding:4px 12px;margin-top:-6px;border-top:0;position:relative;display:flex;gap:6px;align-items:center;align-content:center;justify-content:space-between;flex-wrap:wrap}.npcFoeBtn{margin-left:4px}.npcCardFooter:before{content:"";position:absolute;left:5px;right:5px;top:0;height:1px;background:var(--border);pointer-events:none}.npcField{width:100%}.npcTextarea{width:100%;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 8px;resize:vertical}#npcCards,#partyCards,#locCards{max-height:var(--tracker-list-max);overflow-y:auto;overflow-x:hidden;padding:12px 12px 20px;align-content:start;grid-auto-rows:max-content}@media (max-width: 600px){:root{--tracker-list-max: 78vh}}.charBasicsGrid{display:grid;gap:4px;margin-top:4px;align-items:start;grid-auto-rows:max-content;overflow:hidden}.charTwo{display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr))}.charBasicsGrid input.autosize{width:auto;justify-self:start;text-align:left;padding:6px 8px;max-width:100%}.charBasicsGrid input[type=number].autosize{padding:5px;padding-right:var(--numWrapPadRight)}@media (max-width: 600px){.charTwo{grid-template-columns:1fr}}.charTiles{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.charTiles>.charTile{flex:0 0 auto}.charTiles>.charTileWide{flex:1 1 auto;min-width:160px;max-width:100%}@media (max-width: 600px){.charTiles{grid-template-columns:1fr}}.vitalHeader{display:flex;justify-content:space-between;align-items:center;gap:4px;flex-wrap:wrap}.vitalHeader .charTileLabel{margin-right:4px}.fieldLabel{font-size:16px;color:var(--muted);margin:4px 0 4px 2px;letter-spacing:.02em}.vitalMoves{display:flex;gap:4px;align-items:center}.charTile{border:2px solid var(--border);border-radius:16px;padding:6px 8px;background:var(--card);box-shadow:0 6px 16px var(--shadow-drop);display:flex;flex-direction:column;justify-content:flex-start;gap:4px}.charTileLabel{font-weight:700;font-size:15px;margin-left:2px}.charHpRow{display:flex;gap:4px;align-items:center;align-self:flex-start;flex-wrap:wrap}.saveOptTop .numWrap>input[type=number],.charHpRow .numWrap>input[type=number]{width:40px;text-align:left;padding:5px;padding-right:var(--numWrapPadRight);flex:0 0 auto;min-width:30px;max-width:60px}.resourceHeader{display:flex;justify-content:space-between;align-items:center;gap:4px;flex-wrap:wrap}.resourceTitle{margin-right:4px;font-weight:700;font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.resourceTitle:empty:before{content:attr(data-placeholder);color:var(--muted)}.iconBtn{padding:6px 8px;border-radius:10px;line-height:1;width:30px;height:var(--panel-control-h)}.resourceFooterRow{display:flex;align-items:center;width:100%;gap:4px}.resourceNums{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap}.resourceFooterRow .resourceDeleteBtn{margin-left:auto}.resourceNums input[type=number]{text-align:left;padding:5px;padding-right:var(--numWrapPadRight)}.charTile input[id=charStatus]{width:100%;box-sizing:border-box}.charTile input[id=charSpellDC],.charTile input[id=charSpellAtk],.charTile input[id=charProf],.charTile input[id=charSpeed],.charTile input[id=charInit],.charTile input[id=charAC]{text-align:left;padding:5px;padding-right:var(--numWrapPadRight)}.attackList{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;align-content:flex-start;align-items:flex-start}@media (max-width: 600px){.attackList{flex-direction:column}}.attackRow{border:2px solid var(--border);border-radius:16px;padding:6px 8px;background:var(--card);box-shadow:0 6px 16px var(--shadow-drop);display:grid;gap:4px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto;align-items:start;flex:0 0 auto;min-width:200px;max-width:100%}.attackTop,.attackMiddle,.attackBottom{grid-column:1 / -1;display:grid;gap:4px;grid-template-columns:1fr 1fr}.attackTop{grid-row:1}.attackMiddle{grid-row:2}.attackBottom{grid-row:3}.attackTop{grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-content:start}.attackHeaderActions{display:inline-flex;gap:4px;justify-self:end}.attackMiddle{grid-template-columns:max-content max-content;column-gap:4px;justify-content:start;overflow:hidden}.attackBottom{grid-template-columns:max-content max-content max-content;column-gap:4px;justify-content:start;overflow:hidden}.attackMiddle .attackBonus,.attackMiddle .attackDamage,.attackBottom .attackRange,.attackBottom .attackType{padding:5px 6px}.attackActions{display:inline-flex;align-items:center;gap:6px}.attackActions .danger{position:static;padding:4px 6px;width:30px;height:var(--panel-control-h)}.attackRow .attackBottom{display:flex;align-items:center;gap:4px;justify-content:flex-start}.attackRow .attackBottom .attackRange,.attackRow .attackBottom .attackType{flex:0 0 auto}.attackRow .attackBottom .attackActions{margin-left:auto;display:inline-flex;align-items:center}@media (max-width: 600px){.attackRow{grid-template-columns:1fr;grid-template-rows:auto;flex:1 1 100%;max-width:100%;min-width:0}.attackTop,.attackMiddle,.attackBottom{grid-column:1;grid-template-columns:1fr}.attackActions{grid-column:1;grid-row:auto;justify-content:flex-end}}.moneyRow{display:grid;gap:4px;grid-template-columns:repeat(5,minmax(0,1fr));margin-top:4px}.moneyRow>*{min-width:0}@media (max-width: 600px){.moneyRow{grid-template-columns:repeat(3,minmax(0,1fr))}}.moneyTile{border:2px solid var(--border);border-radius:16px;padding:6px 8px;background:var(--card);box-shadow:0 6px 16px var(--shadow-drop);display:grid;gap:4px;text-align:center;justify-items:center;align-items:center;align-content:center;overflow:hidden}.moneyLabel{font-weight:800;text-align:center;letter-spacing:.04em;color:var(--text)}.moneyTile input.autosize{text-align:left;padding:5px;padding-right:var(--numWrapPadRight)}.abilityGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,400px));gap:4px;align-items:start;justify-content:center}.moneyTile .numWrap{margin:0 auto}@media (max-width: 600px){.abilityGrid{grid-template-columns:1fr}}.abilityBlock{border:2px solid var(--border);border-radius:16px;box-shadow:0 6px 16px var(--shadow-drop);overflow:hidden;width:100%;max-width:400px}.abilityHeader{padding:6px 8px;border-bottom:1px solid var(--border);background:var(--spell-level-header);cursor:pointer;position:relative}.abilityTitle{font-weight:700;margin-bottom:6px}.abilityStats{display:flex;align-items:center;justify-content:flex-start;gap:50px}.abilityStats .abilityScore{text-align:left;padding:5px 8px;flex:0 0 auto;width:50px}.abilityStats .abilityStat{display:inline-flex;align-items:center;justify-content:center;gap:4px;text-align:center}.abilityStats input[type=checkbox]{margin:0;transform:translateY(-1px)}.abilityStats input{text-align:center}.abilityStat{font-size:13px;font-weight:600;text-align:center}.abilityStats .numWrap>input.abilityScore[type=number]{width:40px;text-align:left;padding:5px;padding-right:var(--numWrapPadRight);flex:0 0 auto;min-width:30px;max-width:60px}.abilitySkills{padding:6px 8px;background:var(--spell-card)}.skillRow span:last-child{font-weight:600}.skillsGrid{display:grid;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 600px){.skillsGrid{grid-template-columns:1fr}}.skillBlock{border:1px solid var(--border);border-radius:12px;padding:6px 8px;background:var(--surface-2)}.skillHeader{font-weight:700;margin-bottom:8px}.skillRow{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:4px}.skillRow span{font-size:14px}.skillRow input{width:70px;text-align:center}.skillRow input[type=checkbox],.abilityStat input[type=checkbox],.skillMenuRow input[type=checkbox],.settingsToggleItem input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);cursor:pointer}.skillRow input[type=checkbox]:checked,.abilityStat input[type=checkbox]:checked,.skillMenuRow input[type=checkbox]:checked,.settingsToggleItem input[type=checkbox]:checked{background:var(--skill-prof-dot);border-color:var(--skill-prof-dot)}.skillProfBtn{width:26px;height:26px;padding:0;border-radius:10px;display:grid;place-items:center;line-height:1;font-weight:700;flex:0 0 auto}.skillProfMenu{min-width:220px}.skillMenuRow{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:10px;cursor:pointer}.skillMenuRow:hover{background:var(--surface-3-hover)}.skillMenuRow input[type=checkbox]{width:14px;height:14px;margin:0}.skillProfMenu hr{border:0;border-top:1px solid var(--border);margin:8px 6px}.skillMenuMisc{display:grid;gap:4px;padding:6px 8px}.skillMenuLabel{font-size:12px;color:var(--muted)}.skillMiscInput{width:100%;text-align:center}.panelHeader{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:4px}.headerAddBtn{margin-left:auto}.spellLevels{display:flex;flex-direction:column;gap:4px;margin-top:4px}.spellLevel{border:2px solid var(--border);border-radius:16px;box-shadow:0 6px 16px var(--shadow-drop);overflow:hidden}.spellLevelHeader{display:flex;justify-content:flex-start;align-items:center;gap:4px;padding:6px 8px;position:relative;background:var(--spell-level-header)}.spellLevelLeft{display:flex;align-items:center;gap:4px;min-width:80px;max-width:350px}.spellLevelTitle{min-width:0;max-width:350px}.spellLevelTitle input{max-width:350px}.spellLevelRight{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:6px 0;flex:0 0 auto;margin-left:auto}.spellLevelRight .danger{margin-left:0;padding:6px 8px}.spellSlots{display:flex;align-items:center;gap:4px}.spellSlots input{width:55px;text-align:left;padding:5px 4px;flex:0 0 auto;min-width:30px;max-width:40px}.spellLevelActions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex:0 0 auto}.spellCollapseBtn,.spellSpellCollapseBtn{padding:6px;border-radius:12px;line-height:1;flex:0 0 auto}.spellBody{padding:0 8px 8px;position:relative;background:var(--spell-card)}.spellBody:before{content:"";display:block;height:2px;background:var(--divider);margin-bottom:6px}.spellBody[hidden]:before{display:none}.spellRow{border-top:2px solid var(--divider);padding-top:5px;margin-top:5px}.spellRow:first-child{border-top:none;padding-top:0;margin-top:0}.spellRowTop{display:flex;align-items:center;gap:4px;min-width:0}.spellName{flex:1 1 auto;min-width:0;max-width:240px}.spellToggles{display:flex;align-items:flex-end;gap:4px;flex:0 0 auto;margin-left:auto}.spellToggle{padding:6px;border-radius:999px;border:1px solid var(--border);background:var(--spell-toggle-bg);color:var(--text);line-height:1}.spellToggle.on{border:2px solid var(--spell-toggle-on-border);box-shadow:0 0 0 1px var(--shadow-inset) inset}.spellToggle.warn.on{border:2px solid var(--spell-toggle-warn-on-border)}.spellMiniBtns{display:flex;align-items:center;justify-content:flex-end;padding:6px 0;gap:4px;flex:0 0 auto}.spellMiniBtns .danger{padding:6px 8px}.spellMiniBtns .moveBtn{justify-self:flex-end}.spellMoveBtn{padding:4px;gap:4px;border-radius:12px;line-height:1}.spellNotes{margin-top:6px}.spellNotes textarea{width:100%}.spellToggle[aria-pressed=true]{box-shadow:0 0 0 2px var(--ring) inset}button.spellToggle.warn[aria-pressed=true]{box-shadow:0 0 0 2px var(--warn-border) inset}@media (max-width: 750px){.spellLevelHeader{flex-wrap:wrap;align-items:flex-start}.spellLevelRight{width:100%;justify-content:flex-end;flex-wrap:wrap}.spellRowTop,.spellToggles,.spellMiniBtns{flex-wrap:wrap}}@media (min-width: 751px){.spellRowTop{flex-wrap:nowrap}.spellName{width:auto}}input[type=range]{all:unset;-webkit-appearance:slider-horizontal;-moz-appearance:auto;appearance:auto;width:90%;accent-color:var(--bg);background:var(--surface-3-hover)}.brushSizeLabel{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.dropdown{position:relative;display:inline-block}.selectDropdown.selectDropdownBlock{display:block;min-width:50px;max-width:350px}#locCards .npcCollapsible select.cardSelect+.selectDropdown.selectDropdownBlock{max-width:100%}.selectDropdown.selectDropdownClamp{max-width:200px}.dropdownBtn{display:inline-flex;align-items:center;gap:4px}.dropdownBtn .caret{opacity:.85}.dropdownMenu{position:absolute;top:calc(100% + 6px);left:0;z-index:50;min-width:120px;padding:4px;border-radius:12px;border:1px solid var(--border);background:var(--panel);box-shadow:0 12px 28px var(--shadow-drop);max-width:calc(100vw - 16px);max-height:min(60vh,420px);overflow:auto}.dropdownMenu.dropdownMenuPortaled{z-index:250}.swatchOption{width:100%;display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;text-align:left}.swatchOption:hover{background:var(--surface-3-hover);border-color:var(--hairline)}.swatchOption.active{background:var(--surface-3-hover);outline:none;box-shadow:0 0 0 2px var(--ring) inset}.colorSwatch[data-color=teal]{--swatch-color: #35d0d6}.colorSwatch[data-color=red]{--swatch-color: #e04b4b}.colorSwatch[data-color=blue]{--swatch-color: #3aa6ff}.colorSwatch[data-color=green]{--swatch-color: #34c97b}.colorSwatch[data-color=black]{--swatch-color: #111111}.colorSwatch[data-color=white]{--swatch-color: #f0f0f0}.colorSwatch[data-color=yellow]{--swatch-color: #f2c94c}.colorSwatch[data-color=purple]{--swatch-color: #9b7bff}.colorSwatch[data-color=grey]{--swatch-color: #8c8c8c}.dropdown.disabled{opacity:.55}.dropdown.disabled .dropdownBtn{cursor:not-allowed}.dropdown.disabled .dropdownBtn:hover{background:var(--surface-3)}.colorGrid{display:grid;grid-template-columns:repeat(3,36px);gap:4px;padding:4px;justify-content:center;align-content:center}#colorDropdownMenu.colorGrid{place-content:center;place-items:center}.colorSwatch{width:26px;height:26px;border-radius:50%;cursor:pointer;border:1px solid var(--color-swatch-border);background:var(--swatch-color);box-sizing:border-box;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.colorSwatch:hover{transform:scale(1.08);border-color:var(--color-swatch-hover)}.colorSwatch.active{border-color:#fff;box-shadow:0 0 0 2px var(--swatch-color-active-border)}.colorPreview{width:16px;height:16px;border-radius:50%;background:var(--swatch-color);border:1px solid var(--swatch-color-preview)}.canvasWrap{width:100%;overflow:auto;border-radius:12px;border:1px solid var(--border);background:var(--card);box-shadow:0 0 0 1px var(--shadow-inset) inset,0 6px 16px var(--shadow-drop);touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.canvasWrap.drawingMode,.canvasWrap.gestureMode{touch-action:none}#mapCanvas{display:block;max-width:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.dropdownMenu[hidden]{display:none!important}select.nativeSelectHidden{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}.dropdownGroupLabel{padding:6px 8px 4px;font-size:.78rem;opacity:.85;color:var(--muted);-webkit-user-select:none;user-select:none}.settingsDropDownBtn{width:100%}select.mapSelect,button.mapSelectBtn{width:auto;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 36px 6px 8px;border-radius:10px;font:inherit;font-size:.85rem;line-height:1.2;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}select.mapSelect:hover,button.mapSelectBtn:hover{background:var(--surface-3-hover);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}select.mapSelect:focus,button.mapSelectBtn:focus-visible,button.mapSelectBtn[aria-expanded=true]{outline:none;box-shadow:0 0 0 2px var(--ring) inset}button.mapToolDropDown{width:auto;min-width:0;max-width:none;white-space:nowrap;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 36px 6px 8px;border-radius:10px;font:inherit;font-size:.85rem;line-height:1.2;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}button.mapToolDropDown:hover{background:var(--surface-3-hover);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}button#colorBtn.dropdownBtn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:6px 36px 6px 8px;border-radius:10px;font:inherit;font-size:.85rem;line-height:1.2;width:auto;min-width:44px;white-space:nowrap;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}button#colorBtn .caret{display:none}button#colorBtn:hover{background:var(--surface-3-hover);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%),linear-gradient(to right,transparent,transparent);background-position:calc(100% - 18px) 55%,calc(100% - 12px) 55%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat}button#colorBtn:focus-visible,button#colorBtn[aria-expanded=true]{outline:none;box-shadow:0 0 0 2px var(--ring) inset}.calcBtn{padding:6px 8px;min-width:35px;display:inline-flex;align-items:center;justify-content:center}.iconMask{background:var(--iconColor, currentColor);-webkit-mask:var(--icon) no-repeat center / contain;mask:var(--icon) no-repeat center / contain;display:inline-block}.icon-image{--icon: url(/icons/imageIcon.svg)}.icon-calc{--icon: url(/icons/calcIcon.svg)}.icon-combat{--icon: url(/icons/combatPageIcon.svg)}.icon-settings{--icon: url(/icons/settingsIcon.svg)}.icon-dice-d4{--icon: url(/icons/dice/d4.svg)}.icon-dice-d6{--icon: url(/icons/dice/d6.svg)}.icon-dice-d8{--icon: url(/icons/dice/d8.svg)}.icon-dice-d10{--icon: url(/icons/dice/d10.svg)}.icon-dice-d12{--icon: url(/icons/dice/d12.svg)}.icon-dice-d20{--icon: url(/icons/dice/d20.svg)}.icon-dice-d100{--icon: url(/icons/dice/d100.svg)}.diceMenu .iconMask{--iconColor: var(--diceIconColor)}.diceMenu .iconMask.dicePresetIcon{--iconColor: var(--dicePresetIconColor)}.btnIcon{width:16px;height:16px;display:block;pointer-events:none;transform:scale(1.15) translateY(-.5px)}.calcMenu{width:280px;padding:10px;border:2px solid var(--border);border-radius:16px;background:var(--calculatorBg);box-shadow:0 10px 24px var(--shadow-drop);z-index:50}.calcTop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.calcTitle{font-weight:700}.calcClose{border:2px solid var(--border);background:var(--card);border-radius:10px;padding:2px 8px;cursor:pointer}.calcDisplay{width:100%;box-sizing:border-box;margin-bottom:8px;text-align:right;font-size:18px}.calcKeys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}.calcKeys button{padding:8px 6px;min-height:34px;font-size:.9rem}.calcKeys button.wide{grid-column:span 2}.calcKeys button.equals{grid-column:span 2;font-weight:800}.calcHistoryWrap{border-top:1px solid var(--diceDivText);padding-top:8px}.calcHistoryTitle{font-size:12px;margin-bottom:6px;color:var(--diceDivText)}.calcHistory{max-height:120px;overflow:auto;display:flex;flex-direction:column;gap:4px}.calcHistory .mutedSmall{color:var(--diceDivText)}.calcHistItem{font-size:12px;padding:4px 6px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);cursor:pointer;opacity:.95}.calcHistItem:hover{background:var(--surface-3-hover)}.diceDropdown{position:relative}.diceBtn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.diceIcon{font-size:16px;line-height:1}.diceIconImg{width:16px;height:16px;display:block}.diceMenu{position:fixed;z-index:999;display:flex;flex-direction:column;width:280px;padding:10px;border:2px solid var(--border);border-radius:16px;background:var(--calculatorBg);box-shadow:0 10px 24px var(--shadow-drop);overflow:hidden;max-width:calc(100vw - 16px);max-height:min(70vh,520px)}.diceTop{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.diceTitle{font-weight:700}.diceClose{padding:6px 10px;border-radius:10px}.diceRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}@media (max-width: 600px){.diceRow{grid-template-columns:repeat(2,minmax(0,1fr))}}.diceField input,.diceSelect{width:100%}.diceActions{display:flex;gap:6px;margin-bottom:8px}.diceRollBtn{flex:1}.dicePresets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.dicePreset{padding:6px 10px;border-radius:999px}.diceHistoryWrap{border-top:1px solid var(--diceDivText);padding-top:8px}.diceHistoryTitle{font-size:12px;color:var(--diceDivText);margin:0 2px 6px}.diceHistory{max-height:120px;overflow:auto;display:flex;flex-direction:column;gap:6px;padding-right:2px}.diceHistory .mutedSmall{color:var(--diceDivText)}.diceHistRow{font-size:12px;padding:4px 6px;border-radius:10px;border:1px solid var(--border);background:var(--surface-3);cursor:pointer;opacity:.95}.diceHero{flex:0 0 70px;min-width:70px;max-width:70px;width:70px;height:70px;position:relative;margin-bottom:8px}.diceHero{transform-origin:50% 60%}@media (prefers-reduced-motion: reduce){.diceHero{transition:none}}.diceActiveIcon{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;opacity:.95}.dicePctDie{position:absolute;width:56px;height:56px;transform-origin:50% 55%;opacity:.95}.dicePctDie[hidden]{display:none}#dicePctA{left:-2px;top:7px;transform:rotate(-22deg) scaleY(1.1);z-index:1}#dicePctB{left:14px;top:10px;transform:rotate(16deg) scaleY(1.1);z-index:2}.dicePctDie>span{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.diceHero.pctRolling #diceActiveIcon{display:none}.diceHero.pctRolling .dicePctDie{display:block}.diceRollRow{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:6px;margin:6px 0 8px}.diceAltBtn{width:100%}.diceActions{display:flex;justify-content:center;margin-bottom:8px}.diceClearBtn{width:min(160px,60%)}.dicePresets{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}@media (max-width: 420px){.dicePresets{grid-template-columns:repeat(4,minmax(0,1fr))}}.dicePreset{padding:4px 3px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;margin-top:2px;gap:6px;margin-bottom:2px}.dicePresetIcon{width:30px;height:30px;display:block}.dicePresetPct{font-weight:800;font-size:18px;line-height:1}#diceMenu .diceTopRow .diceField .numWrap{width:auto}.diceTop,.diceTopRow,.diceRollRow,.diceActions,.dicePresets{flex:0 0 auto}.diceHistory::-webkit-scrollbar{width:8px}#diceMenu .diceTopRow{display:grid;grid-template-columns:1fr max-content 1fr;align-items:center;column-gap:10px;margin:0 0 8px;width:100%}#diceMenu .diceTopRow .diceCountField{justify-self:end}#diceMenu .diceTopRow .diceModField{justify-self:start}#diceMenu .diceTopRow .diceField{display:flex;flex-direction:column;align-items:center;min-width:56px}#diceMenu .diceTopRow .modWrap{width:auto;min-width:56px}#diceMenu .diceTopRow .diceField input{width:auto}#diceMenu .diceTopRow .diceCountField{justify-self:end;margin-right:-25px}.modWrap{position:relative;width:100%}.modWrap input{width:100%;text-align:right;padding-left:5px}.modWrap.showPlus input{padding-left:13px}.modPlus{position:absolute;left:5px;top:50%;transform:translateY(-50%);pointer-events:none;font-weight:300;opacity:0;transition:opacity .12s ease;z-index:2}.modWrap.showPlus .modPlus{opacity:.9}.modWrap .numWrap{flex:0 0 auto}.diceMenu[hidden]{display:none!important}.fieldLabelRow{display:flex;align-items:center;justify-content:space-between;gap:4px}.collapseMini{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;padding:4px;line-height:1;cursor:pointer}.collapseMini:active{transform:translateY(1px)}.numStepper .numStepBtn{border:0!important;background:transparent!important;padding:0!important;margin:0!important;border-radius:0!important;box-shadow:none!important;outline:none!important;-webkit-tap-highlight-color:transparent}.numStepper .numStepBtn:active,.numStepper .numStepBtn:focus,.numStepper .numStepBtn:focus-visible{background:transparent!important;box-shadow:none!important;outline:none!important}button:focus-visible,.filebtn:focus-visible,.modalBtn:focus-visible,.settingsItem:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ring) inset}#npcCards,#partyCards,#locCards,textarea{scrollbar-gutter:stable}#npcCards,#partyCards,#locCards{overflow-y:auto;overflow-x:hidden;overflow-anchor:none}body.modal-open{overflow:hidden;overscroll-behavior:none}#dataPanelOverlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow:hidden;box-sizing:border-box}@media (display-mode: standalone){#dataPanelOverlay{padding-top:calc(env(safe-area-inset-top,0px) + 16px);padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}.dataPanelPanel{height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px);max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px)}}.dataPanelPanel{width:min(300px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}.dataPanelHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}.dataPanelBody{overflow:auto;min-height:0;padding-right:8px;-webkit-overflow-scrolling:touch}.dataPanelSection{padding:6px 4px}.dataPanelLabel{font-weight:700;margin:2px 0 8px}.dataPanelActions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.settingsUpdateStatus{width:100%;margin-top:-2px;font-size:.82rem;color:var(--muted);min-height:1.2em}.dangerLabel{color:var(--danger)}#dataPanelPanel .selectDropdown.selectDropdownBlock{width:100%;max-width:none}:root{--collapse-card-size: 30px;--collapse-panel-size: 26px;--collapse-radius: 10px;--collapse-font-size: .85rem}.cardCollapseBtn,.npcCollapseToggle,.spellCollapseBtn,.spellSpellCollapseBtn,.panelCollapseBtn,.collapseMini{border:1px solid var(--border);color:var(--muted);cursor:pointer;padding:0;line-height:1;font-size:var(--collapse-font-size);-webkit-tap-highlight-color:transparent}.cardCollapseBtn,.npcCollapseToggle{width:var(--collapse-card-size);height:var(--collapse-card-size);display:grid;place-items:center;border-radius:var(--collapse-radius);background:var(--surface-3)}.cardCollapseBtn:hover,.npcCollapseToggle:hover{color:var(--text);background:var(--surface-3-hover)}.cardCollapseBtn:active,.npcCollapseToggle:active{transform:translateY(1px)}.panelCollapseBtn,.collapseMini,.spellCollapseBtn,.spellSpellCollapseBtn{width:var(--collapse-panel-size);height:var(--collapse-panel-size);display:grid;place-items:center;border-radius:var(--collapse-radius);background:var(--panel);color:var(--text)}.spellCollapseBtn:hover,.spellSpellCollapseBtn:hover,.panelCollapseBtn:hover,.collapseMini:hover{background:var(--surface-3-hover)}.spellCollapseBtn:active,.spellSpellCollapseBtn:active,.panelCollapseBtn:active,.collapseMini:active{transform:translateY(1px)}.panelHeaderClickable{cursor:pointer;-webkit-user-select:none;user-select:none}.panelHeaderClickable :is(button,input,select,textarea,label,a){cursor:default}section.panel[data-collapsed=true]>:not([data-panel-header]){display:none!important}section.combatPanel[data-collapsed=true]>:not([data-panel-header]){display:none!important}.hlWrap .hlField{background:transparent!important}.npcRowBlock.npcHpRow{grid-template-columns:var(--npc-label-w, 40px) minmax(0,1fr)}.npcHpWrap{display:flex;width:100%;align-items:center;gap:4px;flex-wrap:nowrap;min-width:0;justify-content:flex-start}.npcField.npcHpInput{background:transparent}.npcHpWrap .numWrap{flex:0 1 auto;min-width:0;width:auto;max-width:calc(50% - 10px)}.npcHpWrap .numWrap>input[type=number].npcHpInput{max-width:100%;min-width:0;box-sizing:border-box}.npcHpWrap>span.muted{flex:0 0 auto;white-space:nowrap}.statusInput{max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#diceMenu .diceTopRow .diceCountLabel,#diceMenu .diceTopRow .diceModLabel{width:100%;text-align:left;display:block;margin-left:8px}#diceMenu .diceTopRow .diceCountLabel{margin-left:25px}.updateBanner{position:fixed;top:calc(var(--topbarHeight, 64px) + 8px);left:50%;transform:translate(-50%);z-index:1200;width:min(92vw,420px);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--update-banner);color:var(--text);box-shadow:0 8px 24px var(--shadow-drop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.updateBanner.isHidden{display:none!important}.updateBanner__actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.updateBanner__btn{border:1px solid var(--border);border-radius:8px;background:var(--surface-3);color:var(--text);padding:6px 10px;font:inherit;cursor:pointer}.updateBanner__btn:hover{background:var(--surface-3-hover)}.updateBanner__btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ring) inset}.cardsRerenderMask{opacity:0;pointer-events:none}.saveBanner{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:var(--color-error, #c0392b);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.9rem;box-shadow:0 -2px 8px #0000004d}.saveBanner.isHidden{display:none}.saveBanner__actions{display:flex;gap:8px;flex-shrink:0}.saveBanner__btn{padding:6px 12px;border:1px solid rgba(255,255,255,.5);border-radius:4px;background:transparent;color:#fff;cursor:pointer;font-size:.85rem;white-space:nowrap}.saveBanner__btn:hover{background:#ffffff26}.saveBanner__btn--primary{background:#fff3;font-weight:600}.saveBanner__btn--primary:hover{background:#ffffff59}
