:root{--font-display: "Cinzel", serif;--font-body: "Crimson Text", serif;--gray: #374151;--red-dark: #7f1d1d}:root,[data-theme=dark]{--bg: #0a0816;--surface: #16132a;--surface-alt: #12101f;--text: #e8edf5;--text-muted: #9ca3af;--text-dim: #6b7280;--border: rgba(255,255,255,.07);--border-light: rgba(255,255,255,.11);--input-bg: rgba(255,255,255,.05);--hover-bg: rgba(255,255,255,.03);--accent: #a78bfa;--purple: #7c3aed;--purple-light: #a78bfa;--orange: #f97316;--orange-dark: #b45309;--blue: #38bdf8;--green: #22c55e;--yellow: #f59e0b;--red: #ef4444;--glow-purple: rgba(124,58,237,.35);--glow-orange: rgba(249,115,22,.3);--cr-trivial: #94a3b8;--cr-low: #22c55e;--cr-medium: #eab308;--cr-hard: #f97316;--cr-deadly: #ef4444;--cr-epic: #a855f7;--cr-legend: #ec4899;--spell-lvl-0: #94a3b8;--spell-lvl-1: #22c55e;--spell-lvl-2: #84cc16;--spell-lvl-3: #eab308;--spell-lvl-4: #f97316;--spell-lvl-5: #ef4444;--spell-lvl-6: #e11d48;--spell-lvl-7: #a855f7;--spell-lvl-8: #ec4899;--spell-lvl-9: #f0abfc;--rarity-common: #9ca3af;--rarity-uncommon: #4ade80;--rarity-rare: #60a5fa;--rarity-veryrare: #a78bfa;--rarity-legendary: #fbbf24;--rarity-artifact: #f97316;--pv-item-color: #0e7490;--monster-accent: #f97316;--monster-accent-bg: rgba(249,115,22,.1);--monster-accent-br: rgba(249,115,22,.25);--char-accent: #a78bfa;--char-accent-bg: rgba(124,58,237,.1);--char-accent-br: rgba(124,58,237,.25);--spell-accent: #14b8a6;--spell-accent-bg: rgba(20,184,166,.1);--spell-accent-br: rgba(20,184,166,.25);--item-accent: #fbbf24;--item-accent-bg: rgba(251,191,36,.1);--item-accent-br: rgba(251,191,36,.25);--tint-xs: rgba(255,255,255,.025);--tint-sm: rgba(255,255,255,.05);--tint-md: rgba(255,255,255,.08);--tint-lg: rgba(255,255,255,.12);--tint-xl: rgba(255,255,255,.15);--tint-2xl: rgba(255,255,255,.2);--tint-border-sm: rgba(255,255,255,.08);--tint-border-md: rgba(255,255,255,.15);--tint-border-lg: rgba(255,255,255,.25);--table-border: rgba(255,255,255,.18);--shadow-sm: rgba(0,0,0,.3);--shadow-md: rgba(0,0,0,.5);--shadow-lg: rgba(0,0,0,.6);--overlay-modal: rgba(0,0,0,.75)}[data-theme=light]{--bg: #c8bfa8;--surface: #ddd4be;--surface-alt: #c2b89f;--text: #0a0806;--text-muted: #1c1410;--text-dim: #3d1f01;--border: rgba(0,0,0,.18);--border-light: rgba(0,0,0,.25);--input-bg: rgba(0,0,0,.07);--hover-bg: rgba(0,0,0,.05);--accent: #6d28d9;--purple: #6d28d9;--purple-light: #3b0764;--orange: #c2410c;--orange-dark: #9a3412;--blue: #0369a1;--green: #15803d;--yellow: #b45309;--red: #b91c1c;--rarity-common: #016c5a;--rarity-uncommon: #15803d;--rarity-rare: #1d4ed8;--rarity-veryrare: #6d28d9;--rarity-legendary: #b45309;--rarity-artifact: #c2410c;--pv-item-color: #0e7490;--spell-lvl-0: #475569;--spell-lvl-1: #15803d;--spell-lvl-2: #4d7c0f;--spell-lvl-3: #a16207;--spell-lvl-4: #c2410c;--spell-lvl-5: #b91c1c;--spell-lvl-6: #9f1239;--spell-lvl-7: #7e22ce;--spell-lvl-8: #be185d;--spell-lvl-9: #a21caf;--cr-trivial: #475569;--cr-low: #15803d;--cr-medium: #a16107;--cr-hard: #c2410c;--cr-deadly: #b91c1c;--cr-epic: #7e22ce;--cr-legend: #be185d;--monster-accent: #c2410c;--monster-accent-bg: rgba(194,65,12,.1);--monster-accent-br: rgba(194,65,12,.25);--char-accent: #5b21b6;--char-accent-bg: rgba(91,33,182,.1);--char-accent-br: rgba(91,33,182,.25);--spell-accent: #0f766e;--spell-accent-bg: rgba(15,118,110,.1);--spell-accent-br: rgba(15,118,110,.25);--item-accent: #92400e;--item-accent-bg: rgba(146,64,14,.1);--item-accent-br: rgba(146,64,14,.25);--glow-purple: rgba(109,40,217,.15);--glow-orange: rgba(194,65,12,.15);--tint-xs: rgba(0,0,0,.04);--tint-sm: rgba(0,0,0,.08);--tint-md: rgba(0,0,0,.12);--tint-lg: rgba(0,0,0,.17);--tint-xl: rgba(0,0,0,.22);--tint-2xl: rgba(0,0,0,.28);--tint-border-sm: rgba(0,0,0,.14);--tint-border-md: rgba(0,0,0,.22);--tint-border-lg: rgba(0,0,0,.32);--table-border: rgba(0,0,0,.35);--shadow-sm: rgba(0,0,0,.2);--shadow-md: rgba(0,0,0,.3);--shadow-lg: rgba(0,0,0,.38);--overlay-modal: rgba(0,0,0,.65)}[data-theme=light] body{background-image:radial-gradient(ellipse at 15% 10%,rgba(124,58,237,.06) 0%,transparent 55%),radial-gradient(ellipse at 85% 85%,rgba(180,83,9,.05) 0%,transparent 55%),radial-gradient(circle at 50% 50%,rgba(240,235,224,.8) 0%,transparent 80%)}[data-theme=light] .panel-title--spell,[data-theme=light] .upload-status--spell .upload-status-text{color:var(--spell-accent)}[data-theme=light] .panel-title--item,[data-theme=light] .upload-status--item .upload-status-text{color:var(--item-accent)}[data-theme=light] .waffle-tile{background:var(--tint-xs);border-color:var(--tint-border-sm)}[data-theme=light] .waffle-tile:hover:not(.active){background:var(--tint-sm);border-color:var(--tint-border-md)}[data-theme=light] .waffle-btn:hover{background:var(--tint-sm);border-color:#6d28d959}[data-theme=light] .waffle-btn.open{background:#6d28d91f;border-color:#6d28d966}[data-theme=light] .desc-table th,[data-theme=light] .desc-table td{border:1px solid var(--table-border);color:var(--text)}[data-theme=light] .desc-table thead th{background:#b8a98a;color:#1a1208;border-color:var(--table-border)}[data-theme=light] .desc-table tbody tr:nth-child(odd) td{background:#e8dfc0}[data-theme=light] .desc-table tbody tr:nth-child(2n) td{background:#d0c4a8}[data-theme=light] .desc-table tbody td{color:#2a1f0e}[data-theme=light] .pv-detail-body .desc-table th,[data-theme=light] .pv-detail-body .desc-table td{border:1px solid var(--table-border)}[data-theme=light] .pv-detail-body .desc-table thead th{background:#b8a98a;color:#1a1208}[data-theme=light] .pv-detail-body .desc-table tbody tr:nth-child(odd) td{background:#e8dfc0}[data-theme=light] .pv-detail-body .desc-table tbody tr:nth-child(2n) td{background:#ceccc9}[data-theme=light] .pv-detail-body .desc-table tbody td{color:#2a1f0e}[data-theme=light] .item-table{background:#f5f0e4;border:1px solid var(--table-border)}[data-theme=light] .item-table th,[data-theme=light] .item-table td{border-bottom:1px solid var(--table-border)}[data-theme=light] .item-table th{background:#c8b896;color:#1a1208;border-bottom:2px solid rgba(0,0,0,.4)}[data-theme=light] .item-table td{color:#2a1f0e}[data-theme=light] .item-table td:first-child{color:var(--accent)}[data-theme=light] .item-table tr:nth-child(2n) td{background:#e8dfc0}[data-theme=light] .item-table tr:hover td{background:#d4af5a26}[data-theme=light] .trait-desc,[data-theme=light] .stat-field-val{color:var(--text-muted)}[data-theme=light] .chk{border-color:var(--tint-border-md);background:var(--tint-xs);color:var(--text)}[data-theme=light] .chk:hover{border-color:var(--tint-border-lg)}[data-theme=light] .stat-box .val,[data-theme=light] .ab-cell .mod,[data-theme=light] .ab-cell-mini-score,[data-theme=light] .sb-key-val,[data-theme=light] .numpad-key,[data-theme=light] .spell-expand-btn,[data-theme=light] .pv-card-level-badge{color:var(--text)}*{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip}body{width:100%;overflow-x:clip;min-height:100vh;background:var(--bg);background-image:radial-gradient(ellipse at 15% 10%,rgba(124,58,237,.1) 0%,transparent 55%),radial-gradient(ellipse at 85% 85%,rgba(249,115,22,.07) 0%,transparent 55%),radial-gradient(circle at 50% 50%,rgba(30,27,46,.3) 0%,transparent 80%);font-family:var(--font-body);color:var(--text);padding:16px;display:flex;flex-direction:column;gap:14px}input[type=number]::-webkit-inner-spin-button{opacity:.3}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-thumb{background:#7c3aed59;border-radius:3px}::-webkit-scrollbar-track{background:transparent}.page-header{display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(124,58,237,.18);padding-bottom:14px;position:relative}.page-header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(124,58,237,.35),rgba(249,115,22,.2),transparent)}.page-title{font-family:var(--font-display);font-size:24px;color:var(--purple-light);letter-spacing:3px;flex:1;text-shadow:0 0 30px rgba(167,139,250,.25)}.page-subtitle{color:var(--text-dim);font-size:13px;letter-spacing:3px;font-family:var(--font-display)}#key-warning{background:#ef444414;border:1px solid rgba(239,68,68,.3);border-radius:12px;padding:14px 18px;font-size:14px;color:#fca5a5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#key-warning strong{font-family:monospace;color:#f87171}.ipt{background:var(--input-bg);border:1px solid var(--border-light);border-radius:10px;color:var(--text);padding:10px 14px;font-size:15px;outline:none;font-family:inherit;width:100%;transition:border-color .2s,box-shadow .2s}.ipt:focus{border-color:#7c3aed80;box-shadow:0 0 0 3px #7c3aed1a}.row-input{background:var(--input-bg);border:1px solid var(--border-light);border-radius:8px;color:var(--text);text-align:center;outline:none;transition:border-color .2s}.row-input:focus{border-color:#7c3aed66}.row-input--init{color:var(--purple-light);width:48px;padding:4px;font-size:18px;font-weight:700}.row-input--ac{width:48px;padding:4px;font-size:16px}.row-input--hp{width:72px;padding:4px 8px;font-size:15px}.row-input::-webkit-outer-spin-button,.row-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.row-input{-moz-appearance:textfield}.btn{border:none;border-radius:10px;color:#fff;padding:10px 18px;font-size:14px;cursor:pointer;font-family:var(--font-display);letter-spacing:.5px;white-space:nowrap;touch-action:manipulation;transition:transform .12s,box-shadow .2s,opacity .15s}.btn:active{opacity:.85;transform:scale(.97)}.btn:hover{box-shadow:0 4px 16px #0000004d}.btn--purple{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.btn--orange{background:linear-gradient(135deg,#c2410c,#9a3412)}.btn--gray{background:var(--gray)}.btn--danger{background:linear-gradient(135deg,#991b1b,#7f1d1d)}.btn--full{width:100%}.btn--sm{padding:8px 14px}.btn--xs{padding:4px 12px;font-size:13px}.btn--icon{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:36px;padding:4px;line-height:1;transition:color .15s}.btn--icon:hover{color:var(--red)}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--border-light),transparent);margin:12px 0}.panel{background:var(--tint-xs);border:1px solid var(--tint-border-sm);border-radius:14px;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.panel-title{font-size:20px;font-family:var(--font-display);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px}.panel-title--monster{color:var(--monster-accent);text-shadow:0 0 20px var(--monster-accent-bg)}.panel-title--character{color:var(--purple-light);text-shadow:0 0 20px rgba(167,139,250,.2)}.tag{font-size:12px;padding:2px 8px;border-radius:99px}.cond-tag{font-size:13px;padding:3px 10px;border-radius:99px;cursor:pointer;transition:transform .1s}.cond-tag:hover{transform:scale(1.05)}.type-tag--monster{background:var(--monster-accent-bg);color:var(--monster-accent);margin-left:6px}.type-tag--npc{background:#38bdf821;color:var(--blue);margin-left:6px}.type-tag--pc{background:#a78bfa21;color:var(--purple-light);margin-left:6px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px}.stat-box{border-radius:8px;padding:5px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .15s}.stat-box:hover{transform:translateY(-1px)}.stat-box .lbl{font-size:11px;font-family:var(--font-display);margin-bottom:1px;letter-spacing:.5px}.stat-box .val{font-size:14px;color:#fff;font-weight:600}.ab-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:12px}.ab-cell{text-align:center;background:#ffffff0a;border-radius:8px;padding:6px 2px;border:1px solid rgba(255,255,255,.04);transition:border-color .15s}.ab-cell:hover{border-color:#7c3aed33}.ab-cell--rollable{cursor:pointer}.ab-cell--rollable:hover{border-color:#7c3aed80;background:#7c3aed14}.ab-cell .lbl{font-size:11px;color:var(--purple-light);font-family:var(--font-display);letter-spacing:.5px}.ab-cell .mod{font-size:17px;font-weight:700;color:#fff}.ab-cell .score{font-size:11px;color:var(--text-dim)}.entity-images{display:flex;gap:10px;margin-bottom:12px}.entity-images:empty{display:none}.entity-image-wrap{flex:1;min-width:0;position:relative}.entity-image{width:100%;max-height:240px;object-fit:contain;border-radius:10px;background:#0000004d;cursor:zoom-in;display:block;transition:transform .2s}.entity-image:hover{transform:scale(1.02)}.entity-img-del{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#000000b3;color:#fff;border:1px solid rgba(255,255,255,.2);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,background .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.entity-image-wrap:hover .entity-img-del{opacity:1}.entity-img-del:hover{background:#ef4444;border-color:#ef4444}.entity-name{font-family:var(--font-display);font-size:22px;margin-bottom:3px;letter-spacing:.5px}.entity-subtitle{color:var(--text-muted);font-size:14px;margin-bottom:12px;font-style:italic}.stat-field{margin-bottom:5px;font-size:14px;line-height:1.5}.stat-field-lbl{color:var(--purple-light);font-weight:600}.stat-field-val{color:#d1d5db}.trait-entry{margin-bottom:10px;font-size:14px;line-height:1.6}.trait-name{font-weight:700;font-style:italic}.trait-desc{color:#d1d5db}.section-heading{font-family:var(--font-display);font-size:16px;margin-bottom:8px;letter-spacing:.5px}.lore-text{color:var(--text-muted);font-size:14px;line-height:1.7;font-style:italic}.list-item{border-radius:12px;border:1px solid var(--border);overflow:hidden;margin-bottom:8px;transition:border-color .2s,box-shadow .2s,transform .15s;background:#ffffff04}.list-item:hover{border-color:#ffffff1f}.list-item.sel{border-color:var(--accent)}.list-item.checked{border-color:var(--accent);background:rgba(var(--accent-rgb),.06);box-shadow:0 0 16px rgba(var(--accent-rgb),.08)}.list-header{padding:12px 16px;cursor:pointer;background:var(--hover-bg);display:flex;justify-content:space-between;align-items:center;gap:12px;transition:background .15s}.list-header:hover{background:#ffffff0a}.list-header.sel{background:rgba(var(--accent-rgb),.1)}.list-body{padding:16px;border-top:1px solid rgba(255,255,255,.05);display:none}.list-body.open{display:block;animation:fadeIn .2s ease}.comb-row{background:var(--tint-xs);border:1px solid var(--border);border-radius:14px;padding:14px 16px;transition:border-color .2s,box-shadow .25s,background .2s}.comb-row:hover{border-color:var(--tint-lg)}.comb-row.active{background:#7c3aed1f;border-color:#7c3aed80;box-shadow:0 0 24px #7c3aed33,inset 0 0 40px #7c3aed0d}.comb-row.checked{border-color:var(--purple);background:#7c3aed14}.comb-row.friendly{border-color:#22c55e59;background:#22c55e0a}.comb-row.hostile{border-color:#ef444459;background:#ef44440a}.comb-row.friendly:hover{border-color:#22c55e8c}.comb-row.hostile:hover{border-color:#ef44448c}.faction-btn{background:none;border:none;padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:opacity .15s;opacity:.85}.faction-btn:hover{opacity:1}.comb-row-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.comb-row-init{text-align:center}.comb-row-init-row{display:flex;align-items:center;gap:6px}.comb-row-init-lbl{font-size:16px;color:var(--text-dim);margin-bottom:2px}.comb-row-ac{display:flex;align-items:center;gap:5px}.comb-row-ac-lbl{font-size:13px;color:var(--text-dim)}.comb-row-name{flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start}.comb-name{font-weight:600;font-size:17px;font-family:var(--font-display)}.comb-row-right{display:grid;grid-template-columns:auto auto auto;gap:5px 6px;align-items:center;justify-items:center}.comb-row-right-bot-cell{display:flex;align-items:center;justify-content:center}.comb-remove-btn{font-size:22px;padding:2px 4px}.comb-row-hp{display:flex;align-items:center;gap:8px;margin-bottom:6px}.comb-row-conds{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.hp-value{font-weight:700;font-size:16px;min-width:50px}.hp--high{color:var(--green)}.hp--mid{color:var(--yellow)}.hp--low{color:var(--red)}.type--monster{color:var(--monster-accent)}.type--npc{color:var(--blue)}.type--pc{color:var(--purple-light)}.hp-bar-bg{height:5px;border-radius:99px;background:var(--tint-sm)}.hp-bar-fill{height:100%;border-radius:99px;transition:width .4s ease,background .3s}.cond-picker{position:relative;display:inline-block}.cond-dropdown{position:absolute;bottom:100%;left:0;z-index:50;background:var(--surface);border:1px solid rgba(124,58,237,.2);border-radius:12px;padding:10px;display:flex;flex-wrap:wrap;gap:5px;width:270px;margin-bottom:6px;box-shadow:0 8px 32px #00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-modal);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal-box{background:var(--surface);border:1px solid rgba(124,58,237,.3);border-radius:18px;padding:22px;width:100%;max-width:380px;max-height:75vh;overflow-y:auto;box-shadow:0 24px 64px var(--shadow-lg),0 0 40px #7c3aed1a;animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-title{font-family:var(--font-display);color:var(--purple-light);margin-bottom:14px;font-size:17px;letter-spacing:1px}.confirm-inner{text-align:center;max-width:300px}.confirm-icon{font-size:50px;margin-bottom:12px}.confirm-title{font-family:var(--font-display);color:var(--monster-accent);font-size:18px;margin-bottom:10px;text-shadow:0 0 16px var(--monster-accent-bg)}.confirm-msg{color:var(--text-muted);font-size:15px;margin-bottom:22px;line-height:1.5}.confirm-actions{display:flex;gap:10px}.dice-roll-popup{position:fixed;top:64px;left:50%;transform:translate(-50%);z-index:200;background:var(--surface);border:1px solid rgba(124,58,237,.4);border-radius:16px;padding:16px 24px;min-width:200px;text-align:center;box-shadow:0 8px 32px #00000080,0 0 24px #7c3aed26;animation:dicePopIn .18s ease}@keyframes dicePopIn{0%{opacity:0;transform:translate(-50%) scale(.9) translateY(-8px)}to{opacity:1;transform:translate(-50%) scale(1) translateY(0)}}.dice-roll-close{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;line-height:1;padding:2px 4px}.dice-roll-close:hover{color:var(--text)}.dice-roll-monster{font-size:11px;color:var(--text-dim);font-family:var(--font-display);letter-spacing:.5px;margin-bottom:2px}.dice-roll-ability{font-size:13px;color:var(--purple-light);font-family:var(--font-display);letter-spacing:.5px;margin-bottom:6px}.dice-roll-total{font-size:48px;font-weight:700;color:var(--text);line-height:1;margin-bottom:6px}.dice-roll-total.crit{color:var(--green)}.dice-roll-total.fumble{color:var(--red)}.dice-roll-breakdown{font-size:13px;color:var(--text-muted)}.dice-roll-label{font-weight:700;font-size:12px}.crit-label{color:var(--green)}.fumble-label{color:var(--red)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:200;display:flex;align-items:center;justify-content:center;overflow:hidden}.lightbox img{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:12px;box-shadow:0 0 80px #000c;transform-origin:center center;transition:transform .05s ease-out;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}#lightbox-close{position:fixed;top:18px;right:22px;background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:22px;width:42px;height:42px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:201;transition:background .15s}#lightbox-close:hover{background:#ffffff38}.waffle-wrap{position:relative;flex-shrink:0}.waffle-btn{display:flex;align-items:center;gap:8px;height:48px;padding:0 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;cursor:pointer;transition:all .2s;color:var(--text-muted)}.waffle-btn:hover{background:#ffffff14;border-color:#7c3aed59;color:var(--text)}.waffle-btn.open{background:#7c3aed26;border-color:#7c3aed73}.waffle-icon{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;width:22px;height:22px}.waffle-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7}.waffle-btn.open .waffle-dot{opacity:1;color:var(--purple-light)}.waffle-current{font-size:20px;line-height:1}.waffle-popover{position:absolute;top:calc(100% + 8px);left:0;background:var(--surface);border:1px solid rgba(124,58,237,.28);border-radius:14px;padding:10px;box-shadow:0 12px 40px #0000008c,0 0 0 1px #7c3aed14;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:300;min-width:196px}.waffle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.waffle-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;aspect-ratio:1;background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:10px;cursor:pointer;transition:all .18s;color:var(--text-muted)}.waffle-tile:hover:not(.active){background:#ffffff12;border-color:#ffffff1f;color:var(--text);transform:translateY(-1px)}.waffle-tile-empty{aspect-ratio:1;border-radius:10px}.waffle-tile-icon{font-size:24px;line-height:1}.waffle-tile-label{font-size:11px;font-family:var(--font-display);letter-spacing:.8px;text-transform:uppercase}.menu-bar{position:fixed;top:0;left:0;right:0;z-index:400;display:flex;align-items:stretch;background:var(--surface);border-bottom:1px solid rgba(124,58,237,.2);box-shadow:0 2px 16px #0006;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow-x:auto;scrollbar-width:none}.menu-bar::-webkit-scrollbar{display:none}.menu-bar-spacer{height:48px;flex-shrink:0}.menu-bar-item{display:flex;align-items:center;gap:6px;padding:0 14px;height:48px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font-display);font-size:12px;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;flex-shrink:0;transition:color .15s,border-bottom-color .15s,background .15s}.menu-bar-item:hover:not(.active){color:var(--text);background:#ffffff0a}.menu-bar-item.active{font-weight:700}.menu-bar-icon{font-size:16px;line-height:1}.menu-bar-label{font-size:11px}.tab-content{display:none;flex-direction:column;gap:14px}.tab-content.active{display:flex}#turn-bar{align-items:center;gap:8px;background:#7c3aed14;border-radius:12px;padding:12px 16px}.turn-label{flex:1;text-align:center;font-family:var(--font-display);font-size:15px}.turn-label-dim{color:var(--text-dim)}.composer{border:1px solid var(--monster-accent-br);border-radius:14px;background:var(--monster-accent-bg);overflow:hidden;transition:border-color .2s}.composer:focus-within{border-color:var(--monster-accent)}.composer-staged{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 0}.composer-staged:empty{display:none}.composer-thumb{position:relative;display:inline-block}.composer-thumb-img{height:72px;width:72px;object-fit:cover;border-radius:10px;border:1px solid var(--monster-accent-br);display:block}.composer-thumb-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:transform .1s}.composer-thumb-remove:hover{transform:scale(1.1)}.composer-row{display:flex;align-items:flex-end;gap:8px;padding:12px}.composer-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:18px;font-family:var(--font-body, inherit);resize:none;line-height:1.5;padding:4px 2px}.composer-input::placeholder{color:var(--text-dim)}.composer-upload-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;cursor:pointer;font-size:18px;color:var(--text-dim);flex-shrink:0;transition:color .15s,background .15s}.composer-upload-btn:hover{color:var(--monster-accent);background:var(--monster-accent-bg)}.composer-send-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--orange),#ea580c);color:#fff;border:none;font-size:18px;cursor:pointer;flex-shrink:0;transition:transform .12s,box-shadow .15s}.composer-send-btn:hover{transform:scale(1.05);box-shadow:0 4px 16px var(--monster-accent-br)}.composer--spell{border-color:#8b5cf64d;background:#8b5cf608}.composer--spell:focus-within{border-color:#8b5cf680}.composer--spell .composer-upload-btn:hover{color:var(--purple);background:#7c3aed14}.composer-send-btn--spell{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.composer--item{border-color:#fbbf244d;background:#fbbf2408}.composer--item:focus-within{border-color:#fbbf2480}.composer--item .composer-upload-btn:hover{color:#fbbf24;background:#fbbf2414}.composer-send-btn--item{background:linear-gradient(135deg,#b45309,#92400e)}.pic-composer{margin-top:10px;border:1px solid var(--monster-accent-br);border-radius:12px;background:var(--monster-accent-bg);overflow:hidden;animation:fadeIn .2s ease}.pic-composer-staged{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px 0}.pic-composer-staged:empty{display:none}.pic-composer-row{display:flex;align-items:center;gap:8px;padding:10px 12px}.pic-composer-hint{flex:1;color:var(--text-dim);font-size:14px;font-family:var(--font-body, inherit);-webkit-user-select:none;user-select:none}.pic-composer-upload-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;cursor:pointer;font-size:16px;color:var(--text-dim);flex-shrink:0;transition:color .15s}.pic-composer-upload-btn:hover{color:var(--orange)}.pic-composer-send-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--orange);color:#fff;border:none;font-size:16px;cursor:pointer;flex-shrink:0;transition:opacity .15s}.pic-composer-send-btn:hover{opacity:.85}.upload-zone{display:block;border:2px dashed var(--monster-accent-br);border-radius:14px;padding:22px 14px;text-align:center;cursor:pointer;background:var(--monster-accent-bg);transition:border-color .2s,background .2s,transform .15s}.upload-zone:hover{transform:translateY(-1px)}.upload-zone.char{border-color:#7c3aed59;background:#7c3aed08}.upload-zone.drag-over{border-color:var(--monster-accent);background:var(--monster-accent-bg)}.upload-zone.char.drag-over{border-color:#7c3aedcc;background:#7c3aed1a}.upload-zone input{display:none}.upload-icon{font-size:32px;margin-bottom:8px}.upload-label{font-size:15px;font-family:var(--font-display);margin-bottom:5px;letter-spacing:.5px}.upload-label--monster{color:var(--monster-accent)}.upload-label--char{color:var(--purple-light)}.upload-hint{font-size:13px;color:var(--text-dim)}.upload-row{display:flex;gap:12px}.upload-row .upload-zone{flex:1}.upload-status{flex:1;flex-direction:column;align-items:center;justify-content:center;border:2px dashed;border-radius:14px;padding:22px 14px;text-align:center;gap:8px}.upload-status--monster{border-color:var(--monster-accent-br);background:var(--monster-accent-bg)}.upload-status--char{border-color:#7c3aed59;background:#7c3aed08}.upload-status-spinner{font-size:18px;display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.upload-status--monster .upload-status-text{color:var(--monster-accent);font-family:var(--font-display);font-size:15px}.upload-status--char .upload-status-text{color:var(--purple-light);font-family:var(--font-display);font-size:15px}.upload-error{color:var(--red);font-size:22px;margin-bottom:10px}.sort-row{display:flex;gap:8px;align-items:center;position:sticky;z-index:100;background:var(--bg);padding:8px 14px;margin-bottom:4px}.search-wrap{display:flex;align-items:center;overflow:hidden;flex:1;max-width:320px}.search-wrap.expanded{max-width:320px;flex:1}.search-icon-btn{flex-shrink:0;width:34px;height:34px;background:none;border:none;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);transition:color .15s;padding:0}.search-icon-btn:hover,.search-wrap.expanded .search-icon-btn{color:var(--text)}.search-wrap.has-value .search-icon-btn{color:var(--orange)}.search-input{flex:1;opacity:1;pointer-events:auto;min-width:0;margin-bottom:0!important}.search-info-btn{position:relative;flex-shrink:0;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);font-size:11px;font-style:normal;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .15s;margin-left:4px;-webkit-user-select:none;user-select:none}.search-wrap.expanded .search-info-btn{opacity:1;pointer-events:auto}.search-info-btn:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);right:0;min-width:180px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:12px;line-height:1.4;white-space:normal;pointer-events:none;opacity:0;transition:opacity .15s;z-index:200;box-shadow:0 8px 24px #00000080}.search-info-btn:hover:after,.search-info-btn.open:after{opacity:1}.sort-search{flex:1;margin-bottom:0!important}.sort-btn{flex-shrink:0;padding:8px 16px;border-radius:10px;border:1px solid var(--border);background:var(--tint-xs);color:var(--text-dim);font-size:16px;cursor:pointer;transition:all .2s}.sort-btn:hover{color:var(--text);border-color:var(--tint-border-md);background:var(--tint-sm)}.sort-btn--active{border-color:var(--accent, var(--monster-accent));color:var(--accent, var(--monster-accent));background:var(--monster-accent-bg)}.sel-all-btn{flex-shrink:0;width:20px;height:20px;padding:0;border-radius:5px;border:2px solid var(--tint-border-md);background:var(--tint-xs);color:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;position:relative}.sel-all-btn:hover{border-color:var(--tint-border-lg)}.sel-all-btn:after{content:"";display:block;width:6px;height:6px;border-radius:1px;background:transparent;transition:background .15s}.sel-all-btn.partial{border-color:var(--tint-2xl)}.sel-all-btn.partial:after{background:var(--tint-2xl);width:8px;height:2px;border-radius:1px}.sel-all-btn.all{border-color:var(--monster-accent);background:var(--monster-accent-bg)}.sel-all-btn.all:after{background:none;width:9px;height:5px;border-left:2px solid var(--orange);border-bottom:2px solid var(--orange);border-radius:0;transform:rotate(-45deg) translate(1px,-1px)}.source-filter-wrap{position:relative}.source-menu{position:absolute;top:calc(100% + 6px);right:0;left:auto;max-width:calc(100vw - 16px);background:var(--surface);border:1px solid rgba(124,58,237,.15);border-radius:12px;padding:10px 14px;z-index:100;min-width:140px;box-shadow:0 8px 32px var(--shadow-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fadeIn .15s ease}.source-opt{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;color:var(--text-dim);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .15s}.source-opt:hover{color:var(--text)}.source-opt input[type=checkbox],.source-opt input[type=radio]{accent-color:var(--purple);cursor:pointer}.filter-menu{min-width:270px;max-height:440px;overflow-y:auto}.filter-section{margin-bottom:14px}.filter-section:last-child{margin-bottom:0}.filter-section-lbl{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-weight:600;margin-bottom:8px;font-family:var(--font-display)}.filter-chips{display:flex;flex-wrap:wrap;gap:5px}.filter-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:12px;cursor:pointer;border:1px solid var(--border);color:var(--text-dim);background:var(--input-bg);transition:all .15s;-webkit-user-select:none;user-select:none;white-space:nowrap}.filter-chip:hover{border-color:#ffffff40;color:var(--text);background:#ffffff0f}.filter-chip.active{border-color:var(--purple);color:var(--purple-light);background:#7c3aed1a}.chk{width:20px;height:20px;border:2px solid rgba(255,255,255,.15);border-radius:5px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;background:#ffffff08;transition:all .15s}.chk:hover{border-color:#ffffff4d}.chk.on{background:var(--purple);border-color:var(--purple);box-shadow:0 0 8px #7c3aed4d}.sel-bar{position:fixed;bottom:0;left:0;right:0;background:var(--surface-alt);border-top:1px solid rgba(124,58,237,.3);padding:14px 18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;z-index:90;box-shadow:0 -8px 32px #00000080;overflow:visible}.sel-count{color:var(--purple-light);font-family:var(--font-display);font-size:14px;letter-spacing:1px;flex:1}.combatant-form-panel{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}.combatant-form-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;background:none;border:none;color:var(--purple-light);font-family:var(--font-display);font-size:13px;letter-spacing:1px;cursor:pointer;transition:background .15s}.combatant-form-toggle:hover{background:#ffffff0a}.combatant-form-chevron{font-size:10px;color:var(--text-dim)}.combatant-form-body{padding:0 12px 12px}.combatant-form-grid{display:grid;grid-template-columns:1fr 72px 72px 72px;gap:8px;margin-bottom:10px;margin-top:8px}.combatant-form-btns{display:flex;gap:8px;align-items:center}.ipt--num{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;padding:10px 6px}.ipt--num::-webkit-outer-spin-button,.ipt--num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mult-x{color:var(--text-dim);font-size:16px;font-weight:600}.mult-row-ctrl{display:flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:8px;background:#ffffff08;padding:2px 5px 2px 8px;height:34px;transition:border-color .15s}.mult-row-ctrl:hover{border-color:#ffffff26}.mult-row-input{width:28px;background:transparent;border:none;outline:none;color:var(--orange);font-size:17px;font-weight:700;text-align:center;padding:0;-moz-appearance:textfield}.mult-row-input::-webkit-outer-spin-button,.mult-row-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.mult-row-go{width:24px;height:24px;border-radius:6px;background:var(--monster-accent-bg);color:var(--monster-accent);border:none;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s}.mult-row-go:hover{background:var(--monster-accent-br)}.mult-row-toggle{height:34px;padding:0 9px;background:#ffffff08;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s;white-space:nowrap}.mult-row-toggle:hover{border-color:#ffffff26;color:var(--orange)}.picker-tabs{display:flex;gap:6px;margin-bottom:14px}.picker-tab-btn{flex:1;padding:8px 12px;font-size:14px;background:var(--input-bg);border-radius:10px;transition:all .15s}.picker-tab-btn.active{background:var(--purple);box-shadow:0 4px 12px #7c3aed4d}.picker-item{padding:12px 16px;border-radius:10px;cursor:pointer;margin-bottom:6px;color:var(--text);font-size:15px;transition:all .15s}.picker-item:hover{transform:translate(2px)}.picker-item--monster{background:var(--monster-accent-bg);border:1px solid var(--monster-accent-br)}.picker-item--monster:hover{border-color:var(--monster-accent)}.picker-item--char{background:#7c3aed0f;border:1px solid rgba(124,58,237,.15)}.picker-item--char:hover{border-color:#7c3aed4d}.picker-item-name{font-weight:600;font-family:var(--font-display);font-size:15px}.picker-item-name--monster{color:var(--monster-accent)}.picker-item-name--char{color:var(--purple-light)}.picker-item-sub{font-size:13px;color:var(--text-muted)}.empty-state{color:var(--text-dim);text-align:center;padding:48px 20px;font-family:var(--font-display);font-size:16px;letter-spacing:1px}.panel-title--spell{color:#14b8a6;text-shadow:0 0 20px rgba(20,184,166,.2)}.upload-zone.spell{border-color:#14b8a659;background:#14b8a608}.upload-zone.spell.drag-over{border-color:#14b8a6cc;background:#14b8a61a}.upload-label--spell{color:#14b8a6}.upload-status--spell{border-color:#14b8a659;background:#14b8a608}.upload-status--spell .upload-status-text{color:#14b8a6;font-family:var(--font-display);font-size:15px}.btn--spell{background:linear-gradient(135deg,#0f766e,#0d9488)}.spell-input-toggle{display:flex;gap:6px;margin-bottom:12px}.spell-mode-btn{flex:1;padding:8px 12px;font-size:15px;background:var(--input-bg);border:1px solid var(--border);color:var(--text-muted);border-radius:10px;transition:all .15s}.spell-mode-btn.active{background:linear-gradient(135deg,#0f766e,#0d9488);border-color:#0f766e;color:#fff}.spell-textarea{min-height:160px;resize:vertical;line-height:1.6}.spell-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.spell-card{border-radius:16px;overflow:hidden;border:2px solid rgba(255,255,255,.06);background:var(--surface);transition:all .2s}.spell-card:hover{border-color:#ffffff1a;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.spell-card.checked{border-color:var(--spell-accent, var(--purple));box-shadow:0 0 20px color-mix(in srgb,var(--spell-accent, var(--purple)) 25%,transparent)}.spell-card-header{background:color-mix(in srgb,var(--spell-accent, var(--purple)) 72%,#000);padding:12px 14px;display:flex;align-items:flex-start;gap:8px;position:relative}.spell-card-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent)}.spell-card-chk-wrap{padding-top:2px;flex-shrink:0}.spell-card-title{flex:1;min-width:0}.spell-card-name{font-family:var(--font-display);font-size:18px;color:#fff;font-weight:700;line-height:1.25;word-break:break-word;text-shadow:0 2px 6px rgba(0,0,0,.5);letter-spacing:.5px}.spell-card-meta{font-size:16px;color:#ffffffd9;margin-top:4px;text-transform:capitalize;text-shadow:0 1px 4px rgba(0,0,0,.4)}.spell-card-body{padding:14px}.spell-props{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.spell-prop{display:flex;gap:8px;font-size:18px;line-height:1.3}.spell-prop-lbl{color:var(--text-dim);min-width:68px;flex-shrink:0}.spell-prop-val{color:var(--text)}.spell-desc{font-size:18px;color:var(--text-muted);line-height:1.6;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.spell-desc.expanded{display:block;-webkit-line-clamp:unset;overflow:visible}.spell-expand-btn{color:#ffffffb3;font-size:18px;cursor:pointer;padding:2px 6px;flex-shrink:0;transition:color .15s;border-radius:4px}.spell-expand-btn:hover{color:#fff;background:#ffffff0d}.spell-higher{font-size:18px;color:var(--text-muted);line-height:1.55;margin-bottom:10px;font-style:italic}.spell-higher-lbl{font-weight:700;font-style:normal;color:var(--text)}.spell-badges{display:flex;flex-wrap:wrap;gap:5px}.spell-badge{font-size:16px;padding:3px 10px;border-radius:99px;background:#ffffff0f;color:var(--text-muted);border:1px solid rgba(255,255,255,.05)}.spell-badge--conc{background:#f59e0b26;color:var(--yellow);border-color:#f59e0b33}.spell-badge--ritual{background:#14b8a626;color:#14b8a6;border-color:#14b8a633}.panel-title--item{color:#fbbf24;text-shadow:0 0 20px rgba(251,191,36,.2)}.upload-zone.item{border-color:#fbbf2459;background:#fbbf2408}.upload-zone.item.drag-over{border-color:#fbbf24cc;background:#fbbf241a}.upload-label--item{color:#fbbf24}.upload-status--item{border-color:#fbbf2459;background:#fbbf2408}.upload-status--item .upload-status-text{color:#fbbf24;font-family:var(--font-display);font-size:15px}.btn--item{background:linear-gradient(135deg,#b45309,#92400e)}.spell-mode-btn.item-active{background:linear-gradient(135deg,#b45309,#92400e);border-color:#b45309;color:#fff}.item-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.item-card{border-radius:16px;overflow:hidden;border:2px solid rgba(255,255,255,.06);background:var(--surface);transition:all .2s}.item-card:hover{border-color:#ffffff1a;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.item-card.checked{border-color:var(--item-accent, var(--yellow));box-shadow:0 0 20px color-mix(in srgb,var(--item-accent, var(--yellow)) 25%,transparent)}.item-card-header{background:var(--item-accent, #b45309);padding:12px 14px;display:flex;align-items:flex-start;gap:8px;position:relative}.item-card-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent)}.item-card-chk-wrap{padding-top:2px;flex-shrink:0}.desc-clamped{display:-webkit-box;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.desc-clamped.expanded{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}.item-card-title{flex:1;min-width:0}.item-card-name{font-family:var(--font-display);font-size:15px;color:#fff;font-weight:700;line-height:1.2;word-break:break-word;text-shadow:0 1px 4px rgba(0,0,0,.4)}.item-card-meta{font-size:18px;color:#ffffffbf;margin-top:3px;text-transform:capitalize}.item-card-body{padding:14px}.item-props{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.item-prop{display:flex;gap:8px;font-size:18px;line-height:1.3}.item-prop-lbl{color:var(--text-dim);min-width:68px;flex-shrink:0}.item-prop-val{color:var(--text);text-transform:capitalize}.item-desc{font-size:18px;color:var(--text-muted);line-height:1.6;margin-bottom:10px}.desc-para{margin:0 0 .85em}.desc-para:last-child{margin-bottom:0}.item-properties{font-size:18px;color:var(--text-muted);line-height:1.55;margin-bottom:10px;font-style:italic}.item-badge{display:inline-block;font-size:16px;padding:3px 10px;border-radius:99px;background:#ffffff0f;color:var(--text-muted);border:1px solid rgba(255,255,255,.05)}.item-badge--attune{background:#fbbf241f;color:#fbbf24;border-color:#fbbf2440}.edit-form{padding:4px 0}.ef-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.ef{display:flex;flex-direction:column;gap:5px}.ef--full{grid-column:1 / -1}.ef-lbl{font-size:15px;color:var(--text-dim);font-family:var(--font-display);letter-spacing:.3px}.ef-ipt{margin-bottom:0!important;font-size:17px;padding:8px 12px}.ef-ta{margin-bottom:0!important;font-size:17px;padding:8px 12px;resize:none;white-space:pre-wrap;overflow:hidden}.ef-flags{grid-column:1 / -1;flex-direction:row;gap:20px;align-items:center}.ef-chk{display:flex;align-items:center;gap:6px;font-size:17px;color:var(--text);cursor:pointer}.ef-btns{display:flex;gap:10px}.btn-edit{display:inline-flex;align-items:center;gap:5px;padding:6px 16px;border-radius:8px;border:1px solid var(--tint-border-sm);background:var(--tint-sm);color:var(--text-dim);font-size:16px;cursor:pointer;transition:all .15s}.btn-edit:hover{color:var(--text);border-color:var(--tint-border-md);background:var(--tint-md)}.btn--gray{background:var(--tint-sm);color:var(--text-dim);border:1px solid var(--tint-border-sm)}.btn--gray:hover{background:var(--tint-md)}.hl-dice{color:#f87171;font-weight:600}.hl-dc{color:#fbbf24;font-weight:600}.hl-ability{color:#60a5fa;font-weight:600}.hl-success{color:#4ade80;font-weight:600}.hl-failure{color:#f87171;font-weight:600}.hl-hit{color:#fb923c;font-weight:600}.hl-miss{color:#a78bfa;font-weight:600}.desc-table-caption{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px;font-style:italic}caption.desc-table-caption{caption-side:top;text-align:left;padding-bottom:4px;font-size:14px;font-weight:700;color:var(--text);font-style:italic}.desc-table{border-collapse:collapse;margin:10px 0;font-size:15px;width:100%}.desc-table th,.desc-table td{padding:6px 14px;border:1px solid var(--table-border);text-align:left;vertical-align:top}.desc-table thead th{background:#ffffff0f;color:var(--text);font-weight:700;font-size:14px;letter-spacing:.02em}.desc-table tbody tr:nth-child(2n) td{background:#ffffff06}.desc-table tbody td{color:var(--text-muted)}.spell-show-more{display:block;width:100%;margin-top:10px;padding:6px 0;background:none;border:none;border-top:1px solid rgba(255,255,255,.06);color:var(--text-dim);font-size:14px;font-family:var(--font-body);cursor:pointer;text-align:center;letter-spacing:.04em;transition:color .15s}.spell-show-more:hover{color:var(--text)}#sel-share-wrap{position:relative}#share-menu{position:absolute;right:0;left:auto}@media (max-width: 520px){body{padding:10px;gap:10px}.sort-row{flex-wrap:wrap}.sort-search{min-width:0}.combatant-form-grid{grid-template-columns:1fr 1fr}.comb-row-init-lbl,.comb-row-ac-lbl{font-size:13px}.row-input--init{width:40px;font-size:23px}.row-input--ac{width:40px;font-size:20px}.row-input--hp{width:60px}.mult-row-ctrl,.stat-block-btn{display:none}.comb-row-header{gap:6px}.stat-grid{grid-template-columns:1fr 1fr}.ab-grid{grid-template-columns:repeat(3,1fr)}.ef-grid{grid-template-columns:1fr}.spell-grid{grid-template-columns:1fr!important}.filter-menu{min-width:min(270px,90vw)}.sel-bar{gap:6px;padding:12px 14px}.sel-count{font-size:16px}.page-title{font-size:18px}.page-subtitle{font-size:12px}.modal-box{padding:16px}}#turn-banner{display:none}.turn-banner-inner{background:linear-gradient(135deg,#7c3aed4d,#7c3aed14);border:1px solid rgba(124,58,237,.4);border-radius:16px;padding:16px 18px;box-shadow:0 0 32px #7c3aed26,inset 0 0 40px #7c3aed0d;position:relative;overflow:hidden}.turn-banner-inner:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 30% 50%,rgba(124,58,237,.1),transparent 70%);pointer-events:none}.turn-banner-label{font-size:10px;letter-spacing:.2em;color:var(--purple-light);text-transform:uppercase;margin-bottom:6px;opacity:.8;font-family:var(--font-display)}.turn-banner-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.turn-banner-info{flex:1}.turn-banner-name{font-family:var(--font-display);font-size:21px;font-weight:700;color:var(--text);margin-bottom:3px;text-shadow:0 0 16px rgba(167,139,250,.3)}.turn-banner-meta{font-size:13px;color:var(--text-muted)}.turn-banner-controls{display:flex;gap:6px;align-items:center}.turn-banner-controls button{width:38px;height:38px;border-radius:10px;border:1px solid var(--tint-border-md);background:var(--tint-md);color:var(--text);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.turn-banner-controls button:hover{background:var(--tint-xl);border-color:var(--tint-border-lg)}.turn-banner-controls button:last-child{background:#ef444433;border-color:#ef444466;color:#fca5a5;font-size:12px;width:auto;padding:0 12px;font-family:var(--font-display);letter-spacing:.5px}.turn-banner-controls button:last-child:hover{background:#ef444459}.turn-banner-bar-bg{height:5px;border-radius:99px;background:var(--tint-sm)}.turn-banner-bar-fill{height:100%;border-radius:99px;transition:width .4s ease,background .3s}.init-badge{background:var(--tint-sm);border:1px solid var(--tint-border-sm);border-radius:10px;padding:5px 12px;cursor:pointer;font-family:var(--font-body);transition:all .2s;text-align:center}.init-badge:hover{border-color:#7c3aed4d}.init-badge.open{border-color:var(--purple-light);background:#7c3aed33;box-shadow:0 0 12px #7c3aed33}.init-val{font-weight:700;font-size:18px;color:var(--purple-light)}.numpad-key--sign{background:#7c3aed26;color:var(--purple-light)}.init-numpad-box{width:220px}.hp-badge{background:var(--tint-sm);border:1px solid var(--tint-border-sm);border-radius:10px;padding:4px 12px;cursor:pointer;font-weight:700;font-size:14px;font-family:var(--font-body);transition:all .2s;min-width:90px;text-align:center}.hp-badge:hover{border-color:#7c3aed4d}.hp-badge.open{border-color:var(--purple-light);background:#7c3aed33;box-shadow:0 0 12px #7c3aed33}.numpad{background:var(--surface-alt);border-radius:12px;padding:12px;margin:8px 0;border:1px solid var(--border)}.numpad-mode-row{display:flex;gap:5px;margin-bottom:8px;align-items:center}.numpad-mode-btn{flex:1;padding:6px 0;border-radius:8px;cursor:pointer;font-size:15px;font-weight:700;border:1px solid var(--tint-border-sm);background:transparent;color:var(--text-dim);font-family:var(--font-body);transition:all .15s}.numpad-mode-btn.active{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 4px 12px #7c3aed40}.numpad-display{flex:2;background:var(--tint-sm);border-radius:8px;padding:6px 12px;text-align:right;font-size:16px;font-weight:700;font-family:monospace;border:1px solid var(--border);color:var(--text)}.numpad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.numpad-key{padding:8px 0;border-radius:8px;background:var(--tint-sm);border:none;color:var(--text);font-size:15px;cursor:pointer;font-family:var(--font-body);transition:background .12s}.numpad-key:hover{background:var(--tint-md)}.numpad-key--confirm{background:var(--purple);font-weight:700}.numpad-key--confirm:hover{background:#6d28d9}.numpad-key--del{background:#ef44441f;color:#f87171}.numpad-key--del:hover{background:#ef444433}.btn-tag-header{background:#818cf81a;border:1px solid rgba(129,140,248,.2);color:#818cf8;border-radius:10px;padding:6px 14px;cursor:pointer;font-size:16px;font-family:var(--font-body);flex-shrink:0;transition:all .15s}.btn-tag-header:hover{background:#818cf82e;border-color:#818cf859}.cond-sheet-box{position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid rgba(255,255,255,.1);border-radius:18px 18px 0 0;padding:18px;max-height:70vh;overflow-y:auto;animation:slideUp .2s ease;box-shadow:0 -12px 40px #00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.cond-sheet-header{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-display);font-size:13px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;margin-bottom:16px}.cond-sheet-header button{background:none;border:none;color:var(--text-dim);font-size:20px;cursor:pointer}.cond-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cond-sheet-item{padding:14px 16px;border-radius:12px;cursor:pointer;border:1px solid rgba(255,255,255,.06);background:#ffffff08;color:var(--text-muted);font-size:14px;font-family:var(--font-body);transition:all .15s;text-align:left}.cond-sheet-item:hover{background:#ffffff0f;border-color:#ffffff1a}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.stat-block-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:13px;color:var(--text-dim);transition:all .15s;display:inline-flex;align-items:center;gap:4px}.stat-block-btn:hover{border-color:var(--monster-accent-br);color:var(--text)}.stat-block-btn.open{background:var(--monster-accent-bg);border-color:var(--monster-accent-br);color:var(--monster-accent)}.stat-block-btn-arrow{font-size:10px;font-family:var(--font-display)}.stat-block-inline{padding:14px 16px;border-top:1px solid var(--monster-accent-br);background:var(--monster-accent-bg);animation:fadeIn .2s ease}.stat-block-inline--empty{padding:12px 16px;border-top:1px solid rgba(255,255,255,.05);color:var(--text-dim);font-size:13px;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.sb-subtitle{color:var(--text-muted);font-size:13px;font-style:italic;margin-bottom:10px}.sb-key-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.sb-key{background:#ffffff09;border-radius:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.04)}.sb-key-lbl{font-size:10px;color:var(--text-dim);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.sb-key-val{font-size:13px;color:#fff;font-weight:600}.ab-grid-mini{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:10px}.ab-cell-mini{text-align:center;background:#ffffff09;border-radius:6px;padding:4px 2px}.ab-cell-mini-lbl{font-size:10px;color:var(--purple-light);font-family:var(--font-display)}.ab-cell-mini-score{font-size:14px;font-weight:700;color:#fff}.ab-cell-mini-mod{font-size:11px;color:var(--text-dim)}.sb-field{font-size:13px;margin-bottom:3px;color:var(--text-muted)}.sb-field-lbl{color:var(--purple-light);font-weight:600}.sb-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);margin:8px 0}.sb-section-heading{font-family:var(--font-display);font-size:12px;color:var(--monster-accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.sb-entry{margin-bottom:6px;font-size:13px;line-height:1.55}.sb-entry-name{font-weight:700;font-style:italic;color:var(--text)}.sb-entry-desc{color:var(--text-muted)}.sb-jump-btn{margin-top:10px;background:var(--monster-accent-bg);border:1px solid var(--monster-accent-br);border-radius:8px;padding:6px 16px;color:var(--monster-accent);font-size:11px;cursor:pointer;font-family:var(--font-display);letter-spacing:1px;transition:all .15s}.sb-jump-btn:hover{background:var(--monster-accent-br);border-color:var(--monster-accent)}.fab-btn{position:fixed;bottom:24px;right:20px;width:56px;height:56px;border-radius:50%;background:var(--fab-color, var(--orange));color:#fff;font-size:30px;line-height:1;border:none;cursor:pointer;box-shadow:0 6px 24px #0006,0 0 28px var(--fab-color, var(--orange));transition:transform .2s,box-shadow .2s,background .2s,bottom .2s;z-index:300;display:flex;align-items:center;justify-content:center}.fab-btn:hover{transform:scale(1.1);box-shadow:0 8px 32px #00000080,0 0 36px var(--fab-color, var(--orange))}.fab-btn:active{transform:scale(.95)}.fab-btn.open{transform:rotate(45deg)}.fab-btn.fab-above-bar{bottom:80px}.fab-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end}.fab-sheet-box{width:100%;background:var(--surface);border-top:1px solid rgba(255,255,255,.08);border-radius:20px 20px 0 0;padding:14px 18px 32px;animation:fabSheetSlideUp .22s cubic-bezier(.32,0,.67,0) forwards;max-height:80vh;overflow-y:auto;box-shadow:0 -16px 48px #0006}.fab-sheet-handle{width:40px;height:4px;background:#ffffff26;border-radius:99px;margin:0 auto 16px}.fab-section-title{font-family:var(--font-display);font-size:18px;font-weight:700;margin-bottom:14px;letter-spacing:.05em}@keyframes fabSheetSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.chat-sheet{display:flex;flex-direction:column;gap:10px}.chat-header{display:flex;align-items:center;gap:8px;margin-bottom:2px}.chat-entity-tabs{display:flex;gap:4px;flex:1;flex-wrap:wrap}.chat-entity-tab{padding:4px 12px;border-radius:20px;border:1px solid var(--border-light);background:var(--input-bg);color:var(--text-muted);font-size:12px;font-family:var(--font-display);letter-spacing:.05em;cursor:pointer;transition:all .15s}.chat-entity-tab:disabled{opacity:.4;cursor:default}.chat-entity-tab--active.chat-entity-tab--monster{border-color:var(--monster-accent-br);background:var(--monster-accent-bg);color:var(--monster-accent)}.chat-entity-tab--active.chat-entity-tab--spell{border-color:var(--spell-accent-br);background:var(--spell-accent-bg);color:var(--spell-accent)}.chat-entity-tab--active.chat-entity-tab--item{border-color:var(--item-accent-br);background:var(--item-accent-bg);color:var(--item-accent)}.chat-entity-tab--active.chat-entity-tab--char{border-color:var(--char-accent-br);background:var(--char-accent-bg);color:var(--char-accent)}.chat-entity-tab:not(:disabled):hover{background:var(--hover-bg);color:var(--text)}.chat-clear-btn{background:none;border:1px solid var(--border-light);color:var(--text-dim);border-radius:8px;padding:4px 9px;font-size:15px;cursor:pointer;transition:all .15s;flex-shrink:0}.chat-clear-btn:hover{color:var(--text);background:var(--hover-bg)}.chat-messages{min-height:60px;max-height:38vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 0}.chat-empty{color:var(--text-dim);font-size:13px;text-align:center;padding:16px 0 8px}.chat-message{padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.5;max-width:92%}.chat-message--user{align-self:flex-end;background:var(--tint-md);border:1px solid var(--tint-border-sm);color:var(--text);border-bottom-right-radius:4px}.chat-message--assistant{align-self:flex-start;background:var(--surface-alt);border:1px solid var(--border);color:var(--text-muted);border-bottom-left-radius:4px}.chat-message--error{border-color:#ef444459;background:#ef44440f;color:#f87171}.chat-message--loading{align-self:flex-start;color:var(--text-dim);font-size:13px;display:flex;align-items:center;gap:6px;padding:6px 0;background:none;border:none}.chat-message-images{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.chat-message-thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--border-light)}.chat-message--assistant .chat-entity-summary{border-top-color:#ffffff12}.chat-entity-summary{font-size:13px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.chat-entity-summary:first-of-type{border-top:none;padding-top:4px}.chat-entity-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text);margin-bottom:4px;letter-spacing:.03em}.chat-entity-line{color:var(--text-muted);line-height:1.6}.chat-entity-meta{color:var(--text-dim);font-style:italic;margin-bottom:6px}.chat-entity-stat-row{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0;font-size:13px;color:var(--text-muted)}.chat-entity-stat-row b{color:var(--text);margin-right:2px}.chat-entity-ability-row{display:flex;gap:6px;margin:8px 0}.chat-ability-box{flex:1;text-align:center;background:var(--tint-xs);border:1px solid var(--border);border-radius:6px;padding:4px 2px}.chat-ability-label{font-size:10px;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase}.chat-ability-val{font-size:13px;font-weight:600;color:var(--text);margin-top:1px}.chat-entity-field{font-size:12.5px;color:var(--text-muted);line-height:1.5;margin:3px 0}.chat-entity-field b{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.07em;margin-right:4px}.chat-entity-section{margin-top:10px}.chat-entity-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:4px;border-bottom:1px solid var(--border);padding-bottom:2px}.chat-entity-trait{font-size:12.5px;color:var(--text-muted);line-height:1.6;margin-bottom:5px}.chat-entity-trait b{color:var(--text)}.chat-confirm-row{display:flex;gap:8px}.chat-confirm-row--panel{padding:10px 0 2px;border-top:1px solid var(--border-light)}.chat-confirm-panel--monster{border-color:var(--monster-accent-br)}.chat-confirm-panel--spell{border-color:var(--spell-accent-br)}.chat-confirm-panel--item{border-color:var(--item-accent-br)}.chat-confirm-panel--char{border-color:var(--char-accent-br)}.chat-confirm-btn{flex:1;padding:8px 16px;border-radius:10px;border:none;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;font-family:var(--font-display);font-size:13px;letter-spacing:.05em;cursor:pointer;transition:opacity .15s}.chat-confirm-btn:hover:not(:disabled){opacity:.85}.chat-confirm-btn:disabled{opacity:.5;cursor:default}.chat-deny-btn{padding:8px 16px;border-radius:10px;border:1px solid rgba(239,68,68,.35);background:#ef444414;color:#f87171;font-family:var(--font-display);font-size:13px;letter-spacing:.05em;cursor:pointer;transition:all .15s}.chat-deny-btn:hover:not(:disabled){background:#ef444424}.chat-deny-btn:disabled{opacity:.5;cursor:default}.btn-play-header{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80;border-radius:10px;padding:6px 14px;font-family:var(--font-display);font-size:12px;letter-spacing:.1em;cursor:pointer;transition:all .15s}.btn-play-header:hover{background:#22c55e2e;box-shadow:0 0 14px #22c55e33;border-color:#22c55e80}#player-view{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;flex-direction:column;background:#071a10;background-image:radial-gradient(ellipse at 50% 35%,#0f3d22,#071a10 65%),repeating-linear-gradient(45deg,rgba(255,255,255,.01) 0px,rgba(255,255,255,.01) 1px,transparent 1px,transparent 9px);overflow:hidden}.pv-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#0000008c;border-bottom:1px solid rgba(212,175,90,.18);z-index:10;position:relative;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.pv-exit-btn{background:#ef44441a;border:1px solid rgba(239,68,68,.25);color:#fca5a5;border-radius:10px;padding:7px 16px;font-family:var(--font-display);font-size:11px;letter-spacing:.08em;cursor:pointer;transition:all .15s}.pv-exit-btn:hover{background:#ef444433;border-color:#ef444466}.pv-title{font-family:var(--font-display);color:#d4af5a;font-size:14px;letter-spacing:2px;flex:1;line-height:1.2;text-align:center;text-shadow:0 0 20px rgba(212,175,90,.3)}.pv-deck-btn{background:#d4af5a1a;border:1px solid rgba(212,175,90,.3);color:#d4af5a;border-radius:10px;padding:7px 16px;font-family:var(--font-display);font-size:11px;letter-spacing:.06em;cursor:pointer;white-space:nowrap;transition:all .15s;position:relative}.pv-deck-btn:hover,.pv-deck-btn.open{background:#d4af5a2e;border-color:#d4af5a73}.pv-deck-panel{position:absolute;top:calc(100% + 6px);right:18px;width:min(340px,92vw);background:#0d2517;border:1px solid rgba(212,175,90,.25);border-radius:14px;box-shadow:0 20px 60px #000c;z-index:500;overflow:hidden;display:none;animation:pvDropDown .2s cubic-bezier(.16,1,.3,1) forwards}.pv-deck-panel.open{display:block}@keyframes pvDropDown{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pv-deck-panel-header{padding:12px 16px 10px;font-family:var(--font-display);font-size:10px;letter-spacing:2px;color:#d4af5a80;border-bottom:1px solid rgba(212,175,90,.1);text-transform:uppercase}.pv-deck-list{max-height:320px;overflow-y:auto;padding:8px}.pv-deck-list::-webkit-scrollbar{width:4px}.pv-deck-list::-webkit-scrollbar-thumb{background:#d4af5a33;border-radius:2px}.pv-deck-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:all .12s;border:1px solid transparent}.pv-deck-item:hover{background:#d4af5a12;border-color:#d4af5a26}.pv-deck-item-pip{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:13px;font-weight:700;color:#fff;flex-shrink:0}.pv-deck-item-info{flex:1;min-width:0}.pv-deck-item-name{font-family:var(--font-display);font-size:13px;color:#e8dfc0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-deck-item-sub{font-size:11px;color:#d4af5a66;margin-top:1px}.pv-deck-item-add{width:24px;height:24px;border-radius:50%;background:#d4af5a14;border:1px solid rgba(212,175,90,.25);color:#d4af5a;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;transition:all .12s}.pv-deck-item:hover .pv-deck-item-add{background:#d4af5a26}.pv-deck-empty{padding:24px;text-align:center;font-family:var(--font-display);font-size:11px;color:#d4af5a4d;line-height:1.7}.pv-content{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0}.pv-hand-area{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y;position:relative}.pv-hand-area::-webkit-scrollbar{width:4px}.pv-hand-area::-webkit-scrollbar-thumb{background:#d4af5a26;border-radius:2px}.pv-side-panel{width:300px;flex-shrink:0;border-left:1px solid rgba(212,175,90,.12);overflow-y:auto;background:#040c0799;display:flex;flex-direction:column;animation:pvSlideIn .18s ease forwards}.pv-side-panel::-webkit-scrollbar{width:4px}.pv-side-panel::-webkit-scrollbar-thumb{background:#d4af5a26;border-radius:2px}@keyframes pvSlideIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.pv-table{display:contents}.pv-hand-label{font-family:var(--font-display);color:#d4af5a47;font-size:10px;letter-spacing:3px;text-align:center;padding:14px 0 4px;flex-shrink:0}.pv-table-empty{padding:48px 20px;text-align:center;font-family:var(--font-display);font-size:12px;letter-spacing:.06em;color:#d4af5a40}.pv-hand{display:flex;flex-direction:column;gap:20px;padding:16px 20px 28px;min-height:100%}.pv-level-row{display:flex;flex-direction:column;gap:8px}.pv-level-row-label{font-family:var(--font-display);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:#4ade8099;display:flex;align-items:center;gap:8px;padding:0 4px}.pv-level-row-label:after{content:"";flex:1;height:1px;background:linear-gradient(to right,rgba(74,222,128,.15),transparent)}.pv-row-count{font-family:var(--font-display);font-size:11px;color:#4ade8073;margin-left:2px}.pv-level-row-cards{display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}.pv-level-row-cards::-webkit-scrollbar{height:3px}.pv-level-row-cards::-webkit-scrollbar-thumb{background:#d4af5a1f;border-radius:2px}.pv-hand-card{flex:0 0 auto;min-width:150px;max-width:210px;background:#08120ce0;border:1px solid rgba(255,255,255,.09);border-radius:12px;position:relative;cursor:grab;touch-action:none;transition:transform .14s cubic-bezier(.25,.46,.45,.94),box-shadow .14s,border-color .14s,background .14s;-webkit-user-select:none;user-select:none;padding:10px 12px;display:flex;flex-direction:column;gap:3px;overflow:hidden}.pv-hand-card:hover{border-color:#fff3;transform:translateY(-3px);box-shadow:0 8px 24px #00000080;z-index:20}.pv-hand-card:active{transform:scale(.97);cursor:grabbing}.pv-hand-card{transition:transform .14s cubic-bezier(.25,.46,.45,.94),opacity .14s}.pv-hand-card.pv-drag-source{opacity:.25}.pv-hand-card.drag-push-left{transform:translate(-22px)}.pv-hand-card.drag-push-right{transform:translate(22px)}.pv-level-row.pv-drag-source-row{opacity:.35}.pv-row-ghost{background:#ffffff1f;border:2px dashed rgba(255,255,255,.45);border-radius:8px;padding:10px 16px;color:#ffffffe6;font-size:13px;letter-spacing:.1em;text-transform:uppercase}.pv-hand-card.pv-selected{border-color:var(--card-color, #a78bfa);box-shadow:0 0 0 1px var(--card-color, #a78bfa),0 8px 24px #0009}.pv-hand-card.pv-card-expanded{border-color:#dc2626a6;background:#1c0606f2;box-shadow:0 0 0 1px #dc262640}.pv-deck-btn.pv-unlock-active{background:#64dc8c33;border-color:#64dc8c80;color:#86efac}.pv-layout-toggle{display:flex;gap:2px;background:#0000004d;border-radius:10px;padding:3px}.pv-layout-btn{background:none;border:none;border-radius:8px;padding:6px 14px;font-size:12px;color:#d4af5a80;cursor:pointer;font-family:var(--font-display);letter-spacing:.05em;transition:background .12s,color .12s}.pv-layout-btn:hover{color:#d4af5acc}.pv-layout-btn.active{background:#d4af5a2e;color:#d4af5af2}.pv-card-handle{display:none}.pv-arrange-menu{position:absolute;top:calc(100% + 6px);right:0;background:#1a1209;border:1px solid rgba(212,175,90,.25);border-radius:12px;overflow:hidden;z-index:200;min-width:200px;box-shadow:0 8px 32px #0009}.pv-arrange-option{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;padding:12px 14px;cursor:pointer;color:var(--text);text-align:left;transition:background .12s}.pv-arrange-option:hover{background:#d4af5a14}.pv-arrange-option.active{background:#d4af5a1f}.pv-arrange-option+.pv-arrange-option{border-top:1px solid rgba(212,175,90,.1)}.pv-arrange-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.pv-arrange-label{font-size:14px;font-weight:600;color:#d4af5ae6}.pv-arrange-desc{font-size:11px;color:var(--text-dim);margin-top:1px}.pv-arrange-check{margin-left:auto;color:#86efac;font-size:14px}.pv-custom-grid{display:flex;flex-direction:column;gap:6px;padding:12px}.pv-custom-row{display:flex;flex-wrap:nowrap;gap:10px;overflow-x:auto;overflow-y:hidden;min-height:120px;padding:6px 8px;border-radius:10px;border:1px dashed rgba(212,175,90,.12);align-items:center;transition:border-color .15s,background .15s}.pv-custom-row--over{border-color:#d4af5a73;background:#d4af5a0d}.pv-custom-row-empty{color:#d4af5a40;font-size:13px;font-style:italic;padding:0 8px;pointer-events:none;white-space:nowrap}.pv-custom-add-row{align-self:flex-start;margin-top:4px;background:none;border:1px dashed rgba(212,175,90,.25);color:#d4af5a80;border-radius:10px;padding:7px 18px;font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.pv-custom-add-row:hover{border-color:#d4af5a8c;color:#d4af5ad9}.pv-row-handle{cursor:grab;font-size:18px;line-height:1;color:#fff6;margin-right:8px;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s;-webkit-user-select:none;user-select:none}.pv-row-handle:hover{color:#ffffffd9;background:#ffffff14}.pv-card-band--draggable{cursor:grab}.pv-card-band--draggable:active{cursor:grabbing}.pv-card-drag-handle{font-size:14px;opacity:.55;margin-right:6px;line-height:1;-webkit-user-select:none;user-select:none;pointer-events:none}.pv-row-unlocked{transition:border .15s}.pv-level-row.pv-row-drop-above{border-top:3px solid rgba(255,255,255,.55)}.pv-level-row.pv-row-drop-below{border-bottom:3px solid rgba(255,255,255,.55)}.pv-hand-card-body{flex:1;display:flex;flex-direction:column;gap:4px;padding:8px 10px 10px;min-height:0;overflow:hidden;position:relative;z-index:1;color:#3a2e1a}.pv-hand-card-divider{height:1px;background:var(--card-color, #7c3aed);opacity:.2;flex-shrink:0}.pv-hand-card-props{display:flex;flex-direction:column;gap:2px}.pv-hand-card-components{font-size:10px;color:#7a6035;letter-spacing:.04em}.pv-hand-card-classes{font-size:10px;color:#7a6035}.pv-hand-card-badge{display:inline-block;font-size:9px;padding:2px 6px;border-radius:4px;font-family:var(--font-display);letter-spacing:.04em;border:1px solid rgba(167,139,250,.35);background:#a78bfa1a;color:#5b3fa8;align-self:flex-start}.pv-card-level-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;font-family:var(--font-display);font-size:11px;font-weight:700;color:#fff;flex-shrink:0;align-self:flex-start;margin-bottom:4px}.pv-card-sub{font-size:10px;color:#fff9;letter-spacing:.05em;margin-top:1px}.pv-card-conc{position:absolute;top:6px;right:8px;font-size:10px;color:#ffffffb3}.pv-card-band-level{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--band-text, #fff);line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.25)}.pv-card-band-lvl-label{font-size:9px;color:var(--band-text-dim, rgba(255,255,255,.72));letter-spacing:.06em;margin-top:1px;font-family:var(--font-display)}.pv-card-body{flex:1;padding:8px 10px;display:flex;flex-direction:column;gap:4px;position:relative;z-index:1;min-height:0;overflow:hidden}.pv-card-body:before{content:"";position:absolute;bottom:0;left:0;right:0;height:55%;background:linear-gradient(to top,color-mix(in srgb,var(--card-color, #7c3aed) 8%,transparent),transparent);pointer-events:none;z-index:0}.pv-card-name{font-family:var(--font-display);font-size:13px;font-weight:700;color:#e8dfc0;line-height:1.25}.pv-card-school{font-size:10px;text-transform:capitalize;letter-spacing:.04em;font-weight:600;line-height:1.3}.pv-card-action{font-size:10px;color:#d4af5a59;margin-top:1px}.pv-card-divider{height:1px;background:var(--card-color, #7c3aed);opacity:.2;margin:2px 0;position:relative;z-index:1}.pv-card-props{display:flex;flex-direction:column;gap:2px;position:relative;z-index:1}.pv-card-prop{display:flex;align-items:baseline;gap:5px;line-height:1.4}.pv-card-prop-lbl{color:#8a7250;flex-shrink:0;width:14px;text-align:center;font-size:10px}.pv-card-prop-val{color:#5c4a2a;font-size:10.5px;line-height:1.3}.pv-card-desc{font-size:10.5px;color:#3a3020;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;position:relative;z-index:1;flex:1;font-family:var(--font-body);min-height:0}.pv-card-badges{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto;position:relative;z-index:1}.pv-card-badge{font-size:9px;padding:2px 6px;border-radius:4px;letter-spacing:.04em;font-family:var(--font-display);border:1px solid}.pv-card-badge--conc{background:#f59e0b1f;color:#a06a10;border-color:#f59e0b4d}.pv-card-badge--ritual{background:#14b8a61a;color:#0a6b63;border-color:#14b8a64d}.pv-card-badge--comp{background:#64502814;color:#8a7250;border-color:#6450282e}.pv-card-corner-br{position:absolute;bottom:7px;right:8px;display:flex;flex-direction:column;align-items:center;gap:1px;transform:rotate(180deg);opacity:.45;z-index:2}.pv-card-corner-level{font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--card-color, #7c3aed)}.pv-card-corner-sym{font-size:8px;color:var(--card-color, #7c3aed)}.pv-hand-card-remove{position:absolute;top:6px;right:6px;width:20px;height:20px;background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:50%;color:#c53030;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;z-index:40;line-height:1}.pv-hand-card:hover .pv-hand-card-remove{opacity:1}.pv-item-detail-inline{width:100%;background:linear-gradient(170deg,#faf5e8,#ede0bc);border:2px solid var(--card-color, #9ca3af);border-radius:16px;overflow:hidden;box-shadow:0 8px 32px #00000073}.pv-item-detail-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.08)}.pv-item-detail-pip{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:15px;font-weight:700;color:#fff;flex-shrink:0}.pv-item-detail-name{font-family:var(--font-display);font-size:15px;font-weight:700;color:#2a1f0e;line-height:1.2}.pv-item-detail-meta{font-size:11px;color:#7a6440;margin-top:1px;text-transform:capitalize}.pv-item-detail-collapse{width:28px;height:28px;background:#00000012;border:1px solid rgba(0,0,0,.12);border-radius:6px;color:#7a6440;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pv-item-detail-props{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:0;padding:10px 16px;border-bottom:1px solid rgba(0,0,0,.06)}.pv-item-detail-divider{height:1px;background:#0000001a;margin:0 16px}.pv-item-detail-desc{padding:14px 16px;font-size:13px;color:#3a2e1a;line-height:1.65;white-space:pre-wrap}.pv-item-detail-badge{margin:0 16px 14px;display:inline-block;padding:3px 12px;border-radius:99px;font-size:11px;color:#92600e;background:#f59e0b1f;border:1px solid rgba(245,158,11,.3)}#pv-detail-scrim,#pv-card-detail{display:none}.pv-detail-panel{display:flex;flex-direction:column;flex:1}.pv-detail-header,.pv-detail-band{background:var(--detail-color, #a78bfa);padding:18px 20px 16px;position:relative;overflow:hidden;flex-shrink:0}.pv-detail-band:after{content:attr(data-sym);position:absolute;right:20px;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:96px;font-weight:700;color:#ffffff1a;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.pv-detail-close{position:absolute;top:14px;right:14px;width:28px;height:28px;background:#00000038;border:1px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .15s}.pv-detail-close:hover{background:#0006}.pv-detail-name{font-family:var(--font-display);font-size:20px;font-weight:700;color:#fff;line-height:1.2;padding-right:32px;text-transform:uppercase;letter-spacing:.04em;text-shadow:0 2px 8px rgba(0,0,0,.4)}.pv-detail-meta{font-size:10px;color:#ffffffb8;margin-bottom:4px;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-display)}.pv-detail-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:14px}.pv-detail-props{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.pv-detail-prop{display:flex;flex-direction:column;gap:3px;background:#ffffff0a;border-radius:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.06);transition:border-color .15s}.pv-detail-prop:hover{border-color:#ffffff1a}.pv-detail-prop-lbl{font-size:9px;color:#d4af5a80;text-transform:uppercase;letter-spacing:.12em;font-weight:600;font-family:var(--font-display)}.pv-detail-prop-val{font-size:13px;color:#e8dfc0;font-weight:600;line-height:1.3;font-family:var(--font-body)}.pv-detail-divider{height:1px;background:var(--detail-color, #a78bfa);opacity:.18}.pv-detail-desc{font-size:13px;color:#e8dfc0cc;line-height:1.65;font-family:var(--font-body)}.pv-detail-body .desc-table{margin:8px 0}.pv-detail-body .desc-table th,.pv-detail-body .desc-table td{border:1px solid rgba(255,255,255,.1)}.pv-detail-body .desc-table thead th{background:#ffffff0f;color:#e8dfc0}.pv-detail-body .desc-table tbody tr:nth-child(2n) td{background:#ffffff08}.pv-detail-body .desc-table tbody td{color:#e8dfc0cc}.pv-detail-body .desc-table-caption{color:#e8dfc099}.pv-detail-higher{background:#ffffff0a;border-radius:8px;padding:10px 14px;border-left:3px solid var(--detail-color, #a78bfa)}.pv-detail-higher-lbl{font-size:9px;color:var(--detail-color, #a78bfa);text-transform:uppercase;letter-spacing:.12em;font-family:var(--font-display);font-weight:700;margin-bottom:5px}.pv-detail-higher-text{font-size:12px;color:#e8dfc0b3;line-height:1.6;font-family:var(--font-body);font-style:italic}.pv-detail-badges{display:flex;flex-wrap:wrap;gap:5px}.pv-detail-badge{font-size:11px;padding:4px 10px;border-radius:6px;letter-spacing:.05em;font-family:var(--font-display);border:1px solid;font-weight:600}.pv-detail-badge--conc{background:#f59e0b26;color:#fbbf24;border-color:#f59e0b59}.pv-detail-badge--ritual{background:#14b8a61f;color:#2dd4bf;border-color:#14b8a659}.pv-detail-badge--class{background:#ffffff0f;color:#e8dfc099;border-color:#ffffff1f}.pv-detail-remove{align-self:flex-start;background:#ef44441a;color:#f87171;border:1px solid rgba(239,68,68,.25);border-radius:8px;padding:7px 16px;cursor:pointer;font-size:12px;font-family:var(--font-display);transition:all .15s}.pv-detail-remove:hover{background:#ef444433;border-color:#ef444466}.pv-manage-btn{background:#d4af5a14;border:1px solid rgba(212,175,90,.25);color:#d4af5ad9;border-radius:10px;padding:5px 10px;font-family:var(--font-display);font-size:11px;letter-spacing:.06em;line-height:1.2;text-align:center;cursor:pointer;transition:all .15s}.pv-manage-btn:hover{background:#d4af5a26;border-color:#d4af5a66}.pv-manage-btn.active{background:#d4af5a2e;border-color:#d4af5a80;color:#d4af5a}.pv-manage-panel{display:flex;flex-direction:column}.pv-manage-header{font-family:var(--font-display);font-size:9px;letter-spacing:3px;color:#d4af5a66;text-transform:uppercase;padding:14px 16px 10px;border-bottom:1px solid rgba(212,175,90,.1)}.pv-manage-section{font-family:var(--font-display);font-size:9px;letter-spacing:2px;color:#d4af5a4d;text-transform:uppercase;padding:10px 16px 4px}.pv-manage-list{display:flex;flex-direction:column;padding:0 8px 8px}.pv-manage-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;transition:background .12s}.pv-manage-item:hover{background:#ffffff0a}.pv-manage-pip{width:22px;height:22px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.pv-manage-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin:0 7px}.pv-manage-name{flex:1;font-family:var(--font-display);font-size:13px;color:#e8dfc0e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-manage-name.dim{color:#e8dfc04d}.pv-manage-toggle{width:26px;height:26px;border-radius:50%;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;font-weight:700;transition:all .12s}.pv-manage-toggle.remove{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25)}.pv-manage-toggle.remove:hover{background:#ef444438;border-color:#ef444466}.pv-manage-toggle.add{background:#4ade8014;color:#4ade80;border:1px solid rgba(74,222,128,.25)}.pv-manage-toggle.add:hover{background:#4ade802e;border-color:#4ade8066}.pv-manage-empty{padding:14px 18px;font-size:11px;color:#d4af5a4d;line-height:1.5;font-family:var(--font-display)}.item-table{border-collapse:separate;border-spacing:0;margin:12px 0;font-size:14px;width:100%;border:1px solid rgba(212,175,90,.25);border-radius:8px;overflow:hidden}.item-table th,.item-table td{padding:8px 14px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.08)}.item-table th{background:#d4af5a1f;color:var(--accent);font-weight:700;font-family:var(--font-display);font-size:13px;letter-spacing:.04em;text-transform:uppercase;border-bottom:2px solid rgba(212,175,90,.3)}.item-table td{color:var(--text-muted);line-height:1.5}.item-table td:first-child{color:var(--accent);font-weight:600;white-space:nowrap;width:1%}.item-table tr:nth-child(2n) td{background:#ffffff06}.item-table tr:hover td{background:#d4af5a0f}.item-table tr:last-child td{border-bottom:none}.item-table td strong{color:var(--text)}.item-table td em{color:#a78bfa;font-style:italic}.action-keyword{color:#f59e0b;font-weight:600}.spell-link{color:#a78bfa;text-decoration:underline dotted;cursor:pointer;border-radius:2px}.spell-link:hover{color:#c4b5fd;background:#a78bfa1f}.spell-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px}.spell-popup{background:var(--surface);border:1px solid var(--border-light);border-radius:12px;padding:20px;max-width:480px;width:100%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #00000080}.spell-popup-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.spell-popup-name{font-size:1.1rem;font-weight:700;color:#a78bfa;font-family:var(--font-display)}.spell-popup-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:0 0 0 8px;line-height:1;flex-shrink:0}.spell-popup-close:hover{color:var(--text)}.spell-popup-meta{color:var(--text-muted);font-size:.82rem;font-style:italic;margin-bottom:10px;text-transform:capitalize}.spell-popup-props{font-size:.85rem;color:var(--text);margin-bottom:10px;display:flex;flex-direction:column;gap:3px}.spell-popup-prop-lbl{font-weight:600;color:var(--text-muted)}.spell-popup-desc{font-size:.88rem;color:#d1d5db;line-height:1.6;border-top:1px solid var(--border-light);padding-top:10px;margin-top:2px}.spell-popup-higher{font-size:.85rem;color:#d1d5db;margin-top:8px;border-top:1px solid var(--border-light);padding-top:8px}.settings-tab{display:flex;flex-direction:column;gap:20px;max-width:480px;padding:8px 0}.settings-section-title{font-family:var(--font-display);font-size:1rem;letter-spacing:.08em;color:var(--text);margin:0}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:14px}.settings-card-title{font-family:var(--font-display);font-size:.85rem;letter-spacing:.06em;color:var(--text-muted);margin:0}.settings-user-list{display:flex;flex-direction:column;gap:8px}.settings-user-row{display:flex;align-items:center;justify-content:space-between;background:var(--bg);border-radius:6px;padding:8px 12px}.btn-danger-sm{background:none;border:1px solid #e05252;color:#e05252;border-radius:4px;padding:2px 10px;font-size:.8rem;cursor:pointer;transition:background .15s}.btn-danger-sm:hover{background:#e052521f}.settings-add-user-form{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:16px}.settings-form-label{margin:0;color:var(--text-dim);font-size:.8rem;letter-spacing:.05em}.input-field{background:var(--bg);border:1px solid var(--border);color:var(--text);padding:8px 12px;border-radius:6px;font-size:.9rem;font-family:var(--font-body)}.input-field:focus{outline:none;border-color:#7c3aed80}.settings-checkbox-label{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.85rem;cursor:pointer}.btn-primary{background:var(--accent);color:#fff;border:none;padding:8px;border-radius:6px;font-size:.9rem;font-family:var(--font-body);cursor:pointer;transition:opacity .15s}.btn-primary:disabled{cursor:not-allowed;opacity:.6}
