:root{
  --bg:#101010; --panel:#181818; --panel2:#202020; --line:#333; --text:#f3f3f3; --muted:#aaa;
  --accent:#d49a35; --accent2:#f0c46b; --danger:#ff5b5b; --warn:#f5b84b; --info:#62a9ff; --ok:#4bd37b;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:radial-gradient(circle at 20% 0,#252017 0,#101010 420px);color:var(--text);font-family:Arial,Helvetica,sans-serif}
button,input,select,textarea{font:inherit} button{border:1px solid #4a4a4a;background:#242424;color:#fff;border-radius:8px;padding:10px 14px;cursor:pointer} button:hover{border-color:var(--accent);background:#2d2a23}.primary{background:linear-gradient(135deg,#98651e,#d49a35);border-color:#e0aa51;color:#120d05;font-weight:700}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;border-bottom:1px solid var(--line);background:rgba(15,15,15,.88);position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}
h1{margin:4px 0 6px;font-size:30px}.topbar p{margin:0;color:var(--muted)}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent2);font-size:12px}.upload-box{display:flex;gap:10px;align-items:center;background:#171717;border:1px solid var(--line);padding:12px;border-radius:12px}.filepick{display:inline-flex;align-items:center;gap:8px;color:#ddd}.filepick input{max-width:220px}.flash{margin:16px 32px 0;padding:12px 14px;background:#1f2b1f;border:1px solid #315d31;border-radius:10px}.dashboard{display:grid;grid-template-columns:repeat(4, minmax(110px,1fr)) minmax(260px,auto);gap:14px;margin:20px 32px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px}.stat strong{display:block;font-size:28px}.stat span{color:var(--muted)}.stat.danger strong{color:var(--danger)}.stat.warn strong{color:var(--warn)}.stat.info strong{color:var(--info)}.actions{display:flex;align-items:stretch;gap:10px;justify-content:flex-end}.actions form{display:flex}.layout{display:grid;grid-template-columns:290px 1fr;gap:20px;margin:0 32px 40px}.sidebar{position:sticky;top:122px;align-self:start;background:rgba(22,22,22,.94);border:1px solid var(--line);border-radius:14px;padding:14px;max-height:calc(100vh - 145px);overflow:auto}.sidebar input{width:100%;padding:11px;border-radius:8px;border:1px solid #3a3a3a;background:#101010;color:#fff;margin-bottom:12px}#toc{display:flex;flex-direction:column;gap:6px}#toc a{color:#ddd;text-decoration:none;padding:9px 10px;border-radius:8px;background:#202020;display:flex;justify-content:space-between}#toc a:hover{background:#2a241a;color:#fff}.hint{margin-top:14px;padding:12px;background:#211b12;border:1px solid #4a3516;border-radius:10px;color:#e8d2a3;line-height:1.35}.content{min-width:0}.warnings,.section-card{background:rgba(22,22,22,.94);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px}.warnings h2,.section-card h2{margin:0 0 14px}.warning{padding:12px 14px;border-radius:10px;margin:10px 0;background:#202020;border-left:5px solid var(--info)}.warning p{margin:5px 0;color:#ddd}.warning small{color:var(--muted)}.warning.danger{border-left-color:var(--danger);background:#2a1717}.warning.warn{border-left-color:var(--warn);background:#2a2114}.warning.info{border-left-color:var(--info);background:#14202a}.empty{color:var(--ok);background:#142418;border:1px solid #295d38;padding:12px;border-radius:10px}.savebar{display:flex;align-items:center;gap:12px;background:#151515;border:1px solid #303030;border-radius:12px;padding:12px;margin-bottom:18px;position:sticky;top:104px;z-index:10}.savebar span{color:var(--muted)}.savebar.bottom{position:static}.subgroup{background:#141414;border:1px solid #282828;border-radius:12px;margin:12px 0;overflow:hidden}.subgroup summary{cursor:pointer;padding:13px 14px;background:#202020;font-weight:700}.subgroup summary span{color:var(--muted);font-weight:400}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:14px}.field{display:flex;flex-direction:column;gap:6px;background:#1d1d1d;border:1px solid #303030;border-radius:12px;padding:12px;min-height:144px}.field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(212,154,53,.15)}.field.is-hit{outline:2px solid var(--accent)}.field.is-invalid{border-color:var(--danger)}.label{font-weight:700}.key{font-size:12px;color:#8b8b8b;word-break:break-all}input,select,textarea{width:100%;border:1px solid #3b3b3b;border-radius:8px;background:#101010;color:#fff;padding:10px}textarea{resize:vertical}.inputrow{display:flex;align-items:center;gap:8px}.inputrow span{color:var(--accent2);min-width:28px}.field em{color:#b9b9b9;font-size:12px;line-height:1.35;font-style:normal}.hidden{display:none!important}.section-card.hidden-section{display:none}@media(max-width:980px){.topbar{position:static;display:block}.upload-box{margin-top:16px;flex-wrap:wrap}.dashboard{grid-template-columns:repeat(2,1fr);margin:16px}.actions{grid-column:1/-1;justify-content:stretch;flex-wrap:wrap}.layout{grid-template-columns:1fr;margin:0 16px 28px}.sidebar{position:static;max-height:none}.savebar{position:static}.grid{grid-template-columns:1fr}}
.groupintro{margin:12px 14px 0;padding:10px 12px;border-radius:10px;background:#211b12;border:1px solid #4a3516;color:#e8d2a3;font-size:13px;line-height:1.35}
.wizard{background:linear-gradient(180deg,rgba(35,28,18,.98),rgba(22,22,22,.96));border:1px solid #5a3d17;border-radius:14px;padding:18px;margin-bottom:18px;box-shadow:0 0 0 1px rgba(212,154,53,.08) inset}.wizard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.wizard-head h2{margin:4px 0 8px}.wizard-head p,.wizard-body p{margin:0;color:#d8c39b;line-height:1.4}.wizard-open{width:100%;margin:0 0 12px;background:linear-gradient(135deg,#5e3b12,#b47927);border-color:#d49a35;color:#fff;font-weight:700}.wizard-body{border-top:1px solid #4b3517;margin-top:14px;padding-top:14px}.wizard-progress{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:#f0c46b}.wizard-progress>div{height:9px;flex:1;background:#161616;border:1px solid #3a2a14;border-radius:999px;overflow:hidden}.wizard-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#98651e,#f0c46b);transition:width .2s}.wizard h3{font-size:22px;margin:6px 0 8px}.wizard-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:16px 0}.wizard-field{display:flex;flex-direction:column;gap:8px;background:#1c1a17;border:1px solid #3d3324;border-radius:12px;padding:12px}.wizard-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px rgba(212,154,53,.13)}.wizard-field-head{display:flex;flex-direction:column;gap:4px}.wizard-field code{font-size:12px;color:#8b8b8b;word-break:break-all}.wizard-field small{font-size:12px;color:#c8c8c8;line-height:1.35}.wizard-row-actions{display:flex;gap:8px;flex-wrap:wrap}.wizard-row-actions button{font-size:12px;padding:7px 9px}.wizard-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;border-top:1px solid #332617;padding-top:14px}.wizard-actions button:disabled{opacity:.45;cursor:not-allowed}
.wizard-open.secondary{background:#242424;border-color:#4a4a4a;color:#fff;font-weight:600}
.simplewizard{border-color:#6f4d1d;background:linear-gradient(180deg,rgba(43,32,18,.98),rgba(20,20,20,.97))}.simple-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin:16px 0}.simple-card{background:#1c1a17;border:1px solid #463923;border-radius:13px;padding:14px;display:flex;flex-direction:column;gap:10px}.simple-card h3{margin:0;font-size:20px}.simple-card p{margin:0;color:#d8c39b;line-height:1.35}.simple-card label{display:flex;flex-direction:column;gap:6px;color:#f3f3f3;font-weight:700}.simple-card input,.simple-card select{margin-top:2px}.simple-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.simple-actions{display:flex;gap:8px;justify-content:flex-end}.simple-card small{display:block;color:#bdbdbd;background:#141414;border:1px solid #302719;border-radius:9px;padding:9px;line-height:1.45}.simple-card code{color:#f0c46b;font-size:12px}.simple-card b{color:#fff;font-weight:700}@media(max-width:680px){.simple-row{grid-template-columns:1fr}}
.encountercalc{background:linear-gradient(180deg,rgba(23,31,33,.98),rgba(18,18,18,.97));border:1px solid #31505a;border-radius:14px;padding:18px;margin-bottom:18px;box-shadow:0 0 0 1px rgba(98,169,255,.08) inset}.encountercalc .wizard-head p{color:#bfd2d8}.encounter-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}.encounter-pill{background:#182124;border:1px solid #30434a;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;min-height:104px}.encounter-pill.wide{grid-column:span 2}.encounter-pill span{color:#aec7cf;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.encounter-pill strong{color:#fff;font-size:20px;line-height:1.25}.encounter-pill small{color:#b9c6ca;line-height:1.35}.encounter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:12px}.encounter-grid.compact{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.encounter-card{background:#151b1d;border:1px solid #2d434a;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.encounter-card h3{margin:0;color:#fff;font-size:18px}.encounter-card p{margin:0;color:#bcd0d6;line-height:1.35;font-size:13px}.encounter-values{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.encounter-value{background:#101416;border:1px solid #2a3b40;border-radius:10px;padding:10px;min-width:0}.encounter-value span{display:block;color:#9db8c1;font-size:12px}.encounter-value strong{display:block;color:#fff;font-size:24px;line-height:1.1;margin:4px 0}.encounter-value small{color:#9faeb2;font-size:11px}.encounter-formula{background:#101416;border:1px solid #2a3b40;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.encounter-formula strong{color:#f0c46b;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.encounter-formula code{color:#e8f2f5;font-size:12px;white-space:normal;word-break:break-word}.setting-chip-row{display:flex;gap:6px;flex-wrap:wrap}.setting-chip-row.compact{margin:-4px 0 6px}.setting-chip{border:1px solid #3e5c65;background:#102025;color:#d8eef5;border-radius:999px;padding:5px 8px;font-size:11px;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.setting-chip:hover{border-color:#62a9ff;background:#142b33;color:#fff}.setting-chip.missing{border-style:dashed;color:#879ba2;background:#111}.field.is-encounter-calc{border-color:#365561;box-shadow:0 0 0 1px rgba(98,169,255,.11) inset}.weight-row{display:grid;grid-template-columns:minmax(70px,1fr) 62px;gap:8px;align-items:center;background:#101416;border:1px solid #2a3b40;border-radius:10px;padding:9px;position:relative;overflow:hidden}.weight-row span,.weight-row strong,.weight-row small{position:relative;z-index:1}.weight-row span{color:#dfeff3}.weight-row strong{color:#fff;text-align:right}.weight-row small{grid-column:1/-1;color:#9faeb2}.weight-row i{position:absolute;left:0;top:0;bottom:0;background:rgba(98,169,255,.18);border-right:1px solid rgba(98,169,255,.35)}.distance-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#101416;border:1px solid #2a3b40;border-radius:10px;padding:9px}.distance-row span{color:#dfeff3}.distance-row strong{color:#fff;text-align:right}.distance-row.muted strong{color:#aeb8bb}.distance-row.warn{border-color:#70501d;background:#211b12}.distance-row.warn strong{color:#f0c46b}.distance-row.danger{border-color:#7d3030;background:#281717}.distance-row.danger strong{color:#ff8c8c}.encounter-alert{background:#281717;border:1px solid #7d3030;border-radius:10px;color:#ffb0b0;padding:10px;line-height:1.35}@media(max-width:720px){.encounter-pill.wide{grid-column:auto}.encounter-values{grid-template-columns:1fr}.encounter-value strong{font-size:22px}}
.langswitch{display:flex;gap:6px;margin-top:12px}.langswitch a{color:#ddd;text-decoration:none;border:1px solid #3a3a3a;background:#191919;border-radius:999px;padding:6px 10px;font-weight:700}.langswitch a.active,.langswitch a:hover{background:var(--accent);border-color:var(--accent);color:#111}
