:root{font-family:system-ui,sans-serif;color:#eeeaf9;background:#100f19}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{background:#835ee7;border:1px solid #997af0;border-radius:12px;color:#fff;padding:12px 17px;cursor:pointer;min-height:44px}button:disabled{opacity:.5}.secondary{background:#252239;border-color:#4b4565}.shell{max-width:1180px;margin:auto;padding:32px}header{display:flex;justify-content:space-between;gap:20px;margin-bottom:32px}h1{font-size:clamp(28px,4vw,48px);margin:8px 0}.eyebrow{font-size:12px;letter-spacing:.18em;color:#bda7ff;font-weight:800}p{color:#b6b0ca;line-height:1.5}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:#1c192b;border:1px solid #3d3653;border-radius:22px;padding:24px}.auth{max-width:520px}.panel label{display:block;color:#c9c3db;font-size:14px;margin:16px 0}.panel input,.panel select{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #4e4569;border-radius:10px;background:#131120;color:#fff;min-height:46px}.actions{display:flex;gap:10px;flex-wrap:wrap}.campaign{display:flex;flex-direction:column;gap:4px;text-align:left;width:100%;background:#252139;border-color:#4c4166;margin:10px 0}.campaign span,.character span{color:#b9aed4;font-size:13px}.campaign.active{border-color:#a98cff;background:#362a56}hr{border:0;border-top:1px solid #403951;margin:24px 0}.character{padding:16px;margin:10px 0;border:1px solid #49415f;border-radius:12px;display:flex;justify-content:space-between}.notice{padding:14px;border:1px solid #7760b3;border-radius:12px;margin-top:22px}footer{margin-top:36px;color:#837a9e;font-size:12px}@media(max-width:700px){.columns{grid-template-columns:1fr}header{flex-wrap:wrap}.panel{padding:18px}}.auth-choices{display:grid;gap:12px;margin-top:24px}.auth-choices button,.auth-submit{width:100%}.auth form{margin-top:20px}.auth input:focus-visible,.auth button:focus-visible{outline:2px solid #bba3ff;outline-offset:2px}.password-row{display:flex;gap:8px;align-items:end}.password-row input{flex:1;min-width:0}.password-row .visibility{margin-top:8px;min-width:68px}.back-link,.text-link{border:0;background:transparent;color:#c8b6ff;padding:8px 0;text-align:left}.back-link:hover,.text-link:hover{text-decoration:underline}.auth-submit{margin-top:16px}.hint{font-size:13px;margin:8px 0}.auth h2{margin:8px 0 14px}.social-auth{margin-top:20px}.social-divider{display:flex;align-items:center;gap:12px;color:#a69bbf;font-size:13px;margin-bottom:16px}.social-divider:before,.social-divider:after{content:"";height:1px;background:#403951;flex:1}.google-button{display:block;width:100%;background:#f9f8ff;color:#1b1729;border-color:#ddd8ed;font-weight:650}.google-button:hover{background:#e9e5fa}.builder{margin-top:20px}.builder-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.builder-steps{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.builder-steps button{font-size:13px;min-height:40px;padding:9px 12px}.builder-steps .active{background:#6845be}.builder-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 20px}.ability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ability-grid label{margin:0;text-align:center}.ability-grid small{display:block;margin-top:6px;color:#b6b0ca}.builder textarea{width:100%;margin-top:8px;background:#131120;color:#fff;border:1px solid #4e4569;border-radius:10px;padding:12px;font:inherit}.builder-nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.character{align-items:center;gap:8px;flex-wrap:wrap}.character button{margin-left:auto}@media(max-width:600px){.ability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-steps button{flex:1 1 40%}}.builder{grid-column:1/-1}.builder-head,.builder-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.builder-steps{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.builder-steps button{font-size:13px}.builder-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px}.ability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.ability-grid label{padding:12px;background:#252139;border-radius:12px;margin:0}.ability-grid small{display:block;margin-top:8px;color:#b6b0ca}.builder textarea{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #4e4569;border-radius:10px;background:#131120;color:#fff;font:inherit}.builder-nav{margin-top:24px}.character button{padding:6px 10px;min-height:36px;margin-left:10px}@media(max-width:500px){.ability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-nav button{flex:1}}.panel{min-width:0}.panel label{line-height:1.5}.character-container+.character-container{margin-top:14px}.character-container .builder{margin:0;padding:20px;background:#211c32;border:1px solid #66518f}.builder-head{align-items:flex-start;gap:16px;margin-bottom:18px}.builder-head h2{margin:10px 0 0}.builder-steps{gap:10px;margin:20px 0 26px}.builder-steps button{margin:0}.builder-fields{gap:12px 20px}.builder-fields label{margin:0}.ability-section{display:grid;gap:18px}.ability-section>label{display:block;max-width:420px;margin:0}.ability-grid{gap:12px}.ability-grid label{display:flex;flex-direction:column;gap:6px;min-width:0}.ability-grid input,.ability-grid select{margin-top:0}.review-details{display:grid;gap:14px}.review-details p{margin:0;overflow-wrap:anywhere}.notes-field{display:grid;gap:8px;margin-top:12px}.notes-field label{margin:0}.notes-field textarea{display:block;width:100%;min-height:110px;background:#131120;color:#eeeaf9;border:1px solid #4e4569;border-radius:10px;padding:13px;font:inherit;resize:vertical}.builder-nav{margin-top:26px;gap:12px}.builder-nav button{margin:0}@media(max-width:700px){.character-container .builder{padding:16px}.builder-head{flex-wrap:wrap}.builder-steps{display:grid;grid-template-columns:1fr 1fr}.builder-steps button{width:100%;white-space:normal}.builder-nav{display:grid;grid-template-columns:1fr 1fr}.builder-nav button:nth-child(2){grid-column:1/-1;grid-row:1}.builder-nav button{width:100%}}.progression-section{display:grid;gap:16px}.progression-section h3{margin:12px 0 0}.progression-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.progression-stats label{margin:0}.proficiency-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.proficiency-grid label{display:flex;align-items:center;gap:10px;margin:0;padding:12px;background:#252139;border:1px solid #403951;border-radius:10px}.proficiency-grid input[type=checkbox]{width:20px;height:20px;min-height:20px;flex-shrink:0;margin:0;accent-color:#9a7aff}.proficiency-grid span{margin-left:auto;color:#bda7ff;font-size:12px}.progression-section .notes-field{margin-top:8px}@media(max-width:600px){.progression-stats{grid-template-columns:1fr 1fr}.proficiency-grid{grid-template-columns:1fr}}.rules-summary{padding:16px;border:1px solid #4a3c67;border-radius:12px;background:#7d59b91a}.rules-summary h3{margin:0 0 10px}.rules-summary p{line-height:1.55}.rules-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.rules-actions button{width:auto;min-width:0}@media(max-width:600px){.rules-actions{display:grid;grid-template-columns:1fr}.rules-actions button{width:100%}}.class-skills{display:grid;gap:12px}.class-skills .hint{margin:0}.proficiency-grid input:disabled{opacity:.65}.proficiency-grid label:has(input:disabled){opacity:.75}.combat-feature-editor{display:grid;gap:14px;margin-top:14px}.combat-feature-editor h3{margin:14px 0 0}.feature-suggestions{display:flex;flex-wrap:wrap;gap:8px}.feature-suggestions button{width:auto;min-width:0;font-size:13px;padding:10px 12px}.feature-entry{display:grid;gap:10px;padding:14px;border:1px solid #4a3c67;border-radius:12px;background:#7d59b914}.feature-entry-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.feature-entry-head button{width:auto;min-width:0}.feature-add{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:12px 0}.feature-add>input{flex:1;min-width:150px}.feature-add>button{width:auto}.feature-add label{flex:1;min-width:110px}.resource-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.combat-feature-editor textarea{width:100%;box-sizing:border-box}@media(max-width:600px){.feature-add{display:grid;grid-template-columns:1fr}.feature-add>button{width:100%}.feature-add>input{width:100%}.feature-suggestions button{flex:1 1 42%}}.compact-feature-editor{gap:14px}.compact-group{border:1px solid #4a3c67;border-radius:12px;padding:14px;background:#7d59b914}.compact-trigger{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;background:transparent;border:0;padding:0;text-align:left;color:inherit}.compact-trigger span:first-child{display:grid;gap:6px}.compact-trigger small{font-size:12px;color:#bdb2d3}.compact-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.feature-chip{width:auto!important;min-width:0!important;border-radius:20px!important;padding:7px 11px!important;font-size:12px!important;background:#332b4b!important;border:1px solid #594775!important;color:#e9ddff!important}.feature-overlay{position:fixed;inset:0;z-index:2000;background:#0a0812c2;display:flex;justify-content:center;align-items:flex-end;padding:12px;box-sizing:border-box}.feature-detail-overlay{z-index:2100}.feature-dialog{width:100%;max-width:650px;max-height:85dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:18px;background:#211b31;border:1px solid #67528b;padding:18px;box-sizing:border-box;display:grid;gap:14px;box-shadow:0 18px 70px #0009}.feature-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.feature-dialog-head h3{margin:0}.feature-dialog-head button{width:auto;min-width:0}.feature-menu{display:grid;gap:8px}.feature-menu-item{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid #4b3e62;border-radius:10px;background:#2b243d;color:#f4efff;text-align:left}.feature-menu-item>button{width:auto;min-width:0;background:transparent;border:0;padding:4px;color:inherit;text-align:left}.feature-menu-item>button:first-child{flex:1}.feature-menu-item small{display:block;font-size:12px;color:#baa8d6;margin-top:4px}.feature-dialog textarea{width:100%;box-sizing:border-box}.feature-dialog .feature-add{margin:0}.multi-select-field{border:1px solid #4a3c67;border-radius:12px;padding:15px;background:#7d59b914;min-width:0}.multi-select-trigger{min-height:42px}.multi-select-trigger span:first-child{min-width:0}.multi-select-trigger small{line-height:1.5;overflow-wrap:anywhere}.multi-select-options{display:grid;gap:8px}.multi-select-option{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #504367;border-radius:11px;padding:13px;background:#2b243d;color:#f4efff;min-height:54px}.multi-select-option.selected{border-color:#9373d8;background:#3a2b59}.multi-select-option:disabled{opacity:.65}.multi-select-option small{margin-left:auto;color:#bca8df}.multi-select-check{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;border:2px solid #8b7ba8;border-radius:6px;font-weight:700}.multi-select-option.selected .multi-select-check{background:#865bda;border-color:#b19afa}.multi-select-done{width:100%}@media(min-width:700px){.feature-overlay{align-items:center}}.feature-rules-help{padding:14px;border:1px solid #574572;border-radius:12px;background:#885fc721;line-height:1.55}.feature-rules-help p{margin:8px 0}.feature-rules-help small{color:#beb1d3}
