@import "https://fonts.googleapis.com/css2?family=Junge&display=swap";:root{--color-black:#000;--color-black-alt:#222;--color-white:#fff;--color-gray-dark:#333;--color-gray:#999;--color-gray-light:#e0e0e0;--color-border:#ccc;--color-bg-alt:#ccc;--color-bg-hover:#fdfdfd;--color-surface:var(--color-white);--color-surface-alt:#f7f7f7;--color-accent:#8a6d1f;--color-accent-dim:#f5edd6;--color-success:#27ae60;--color-danger:#e74c3c;--color-danger-bg:#fdecea;--color-warning:#f1c40f;--color-surface-dark:#2c3e50;--color-on-dark-muted:#bdc3c7;--color-conditional:#0e5a73;--color-conditional-bg:#e4f1f6;--spacing-xxs:2px;--spacing-xs:4px;--spacing-xs-alt:5px;--spacing-sm:8px;--spacing-sm-alt:10px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:24px;--font-family-base:"Junge", serif;--font-size-xxs:8px;--font-size-xs:10px;--font-size-sm:12px;--font-size-md:14px;--font-size-lg:18px;--font-size-xl:24px;--font-size-huge:32px;--border-radius-sm:2px;--border-radius-lg:4px;--border-radius-md:8px;--border-width:1px;--sidebar-width:280px;--container-max-width:1300px;--skill-name-width:200px;--tooltip-max-width:260px;--hex-large-w:80px;--hex-large-h:69.3px;--hex-medium-w:65px;--hex-medium-h:56.3px;--hex-small-w:50px;--hex-small-h:43.3px;--hex-xs-md-w:35px;--hex-xs-md-h:30.3px;--hex-xs-w:25px;--hex-xs-h:21.6px;--hex-xxs-w:20px;--hex-xxs-h:17.3px}*{box-sizing:border-box;text-align:center;margin:0;padding:0}body{font-family:var(--font-family-base);background-color:var(--color-white);color:var(--color-black);line-height:1.5}input{border:var(--border-width) solid var(--color-border);padding:var(--spacing-sm);font-family:inherit}input:focus{border-color:var(--color-black);outline:none}.label{font-size:var(--font-size-sm);color:var(--color-gray);text-transform:uppercase;font-weight:700}.skill-row{padding:var(--spacing-xxs) var(--spacing-sm);border-bottom:1px solid var(--color-gray-light);justify-content:flex-start;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.skill-info{align-items:baseline;gap:var(--spacing-xs);width:var(--skill-name-width);flex-direction:row;flex-shrink:0;display:flex}.skill-name{color:var(--color-black);text-align:left;font-size:13px;font-weight:700}.skill-ability{font-size:var(--font-size-xs);color:var(--color-gray);text-transform:uppercase}.chip{padding:2px var(--spacing-sm);border:var(--border-width) solid var(--color-accent-dim);border-radius:var(--border-radius-sm);background-color:var(--color-accent-dim);color:var(--color-black);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;align-items:center;line-height:1.6;display:inline-flex}.chip:hover{border-color:var(--color-accent)}.granted-feat-waiver{margin-top:var(--spacing-xxs);color:var(--color-accent);font-size:var(--font-size-xs);font-style:italic}@media (pointer:coarse){.chip{min-height:2.75rem;padding:var(--spacing-xs) var(--spacing-md)}}.chip:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:var(--spacing-xxs)}.chip-row{gap:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.chip.is-open{border-color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.chip.is-lost{background-color:var(--color-danger-bg);border-color:var(--color-danger-bg);color:var(--color-gray-dark)}.chip.is-lost:hover,.chip.is-lost.is-open{border-color:var(--color-danger)}.chip.is-lost.is-open{box-shadow:inset 0 0 0 1px var(--color-danger)}.chip.is-gain{border-color:var(--color-accent)}.chip-mark{margin-right:var(--spacing-xxs);color:var(--color-danger);font-weight:700}.chip{text-overflow:ellipsis;max-width:22rem;display:inline-block;overflow:hidden}.chip .chip-mark{display:inline}.stat-with-notes{flex-direction:column;align-items:stretch;display:flex}.feat-note-list{gap:var(--spacing-xxs);margin-top:var(--spacing-xxs);flex-direction:column;flex-basis:100%;list-style:none;display:flex}.header-item .feat-note-list{min-width:13rem;max-width:26rem}.feat-note{align-items:baseline;gap:var(--spacing-xs);border-left:3px solid var(--color-accent);padding:1px var(--spacing-xs);font-size:var(--font-size-xs);text-align:left;flex-wrap:wrap;line-height:1.5;display:flex}.feat-note.is-conditional{border-left-style:dashed;border-left-color:var(--color-conditional);background-color:var(--color-conditional-bg)}.feat-note-value{white-space:nowrap;text-align:left;font-weight:700}.feat-note.is-conditional .feat-note-value{color:var(--color-conditional)}.feat-note-source{text-align:left;font-style:italic}.feat-note-when{color:var(--color-conditional);text-align:left;flex-basis:100%}.feat-note-flag{text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:var(--font-size-xxs);text-align:left}@media (width<=480px){.feat-note{font-size:var(--font-size-xxs)}}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0006;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-white);padding:var(--spacing-xl);border:2px solid var(--color-black);box-shadow:8px 8px 0 var(--color-black);min-width:300px;animation:.2s ease-out slideUp}.modal-content h3{margin-top:0;margin-bottom:var(--spacing-lg);text-transform:uppercase;font-size:var(--font-size-md);color:var(--color-gray-dark)}.modal-input{width:100%;font-size:var(--font-size-huge);font-family:var(--font-family-base), serif;border:1px solid var(--color-gray-light);padding:var(--spacing-sm);margin-bottom:var(--spacing-xl);text-align:center}.modal-actions{gap:var(--spacing-md);justify-content:flex-end;display:flex}.modal-actions button{padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-family-base), serif;text-transform:uppercase;font-size:var(--font-size-sm);cursor:pointer;border:1px solid var(--color-black);font-weight:700;transition:all .1s}.btn-cancel{background:var(--color-white);color:var(--color-black)}.btn-cancel:hover{background:var(--color-gray-light)}.btn-save{background:var(--color-black);color:var(--color-white)}.btn-save:hover{background:var(--color-gray-dark)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modifier-modal{max-width:32rem;width:calc(100vw - 2 * var(--spacing-xl))}.modifier-list{gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);flex-direction:column;list-style:none;display:flex}.modifier-row{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);border-left:3px solid var(--color-accent);font-size:var(--font-size-sm);text-align:left;flex-wrap:wrap;display:flex}.modifier-row.is-off{border-left-style:dotted;border-left-color:var(--color-gray);color:var(--color-gray)}.modifier-row.is-suppressed{border-left-style:dashed;border-left-color:var(--color-gray)}.modifier-row.is-suppressed .modifier-value{color:var(--color-gray);text-decoration:line-through}.modifier-value{text-align:left;min-width:2.5rem;font-weight:700}.modifier-type{text-transform:uppercase;font-size:var(--font-size-xxs);letter-spacing:.06em;color:var(--color-gray-dark);text-align:left}.modifier-source{text-align:left;flex:8rem;font-style:italic}.modifier-form{gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;display:flex}.modifier-field{gap:var(--spacing-xxs);flex-direction:column;flex:8rem;display:flex}.modifier-field span{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray-dark);text-align:left}.modifier-field .modal-input{font-size:var(--font-size-md);text-align:left;margin-bottom:0}.modifier-form .modal-actions{flex-basis:100%}.app-header{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);border-bottom:var(--border-width) solid var(--color-border);flex-wrap:wrap;display:flex}.app-nav{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.app-nav-link{font-family:inherit;font-size:var(--font-size-md);color:var(--color-black);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-lg);text-decoration:none}.app-nav-link:hover{background-color:var(--color-bg-hover)}.app-header-user{align-items:center;gap:var(--spacing-md);display:flex}.app-header-name{font-weight:700}.app-header-btn{padding:var(--spacing-xs) var(--spacing-md);font-family:inherit;font-size:var(--font-size-sm);background-color:var(--color-white);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);cursor:pointer}.app-header-btn:hover{background-color:var(--color-bg-hover)}.glossary-term{display:inline-block;position:relative}.glossary-term-trigger{font-family:var(--font-family-base);font-size:inherit;color:var(--color-accent);cursor:help;text-underline-offset:var(--spacing-xxs);background:0 0;border:none;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.glossary-term:hover .glossary-term-trigger{text-decoration:underline}.glossary-term-trigger:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:var(--spacing-xxs);border-radius:var(--border-radius-sm)}.glossary-term-bubble{margin-bottom:var(--spacing-xs);z-index:10;width:max-content;max-width:min(var(--tooltip-max-width), 90vw);padding:var(--spacing-sm) var(--spacing-sm-alt);background-color:var(--color-surface-dark);color:var(--color-white);border-radius:var(--border-radius-md);font-size:var(--font-size-md);text-align:left;white-space:normal;opacity:0;pointer-events:none;font-weight:400;transition:opacity .12s ease-in-out;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000004d}.glossary-term:hover .glossary-term-bubble,.glossary-term:focus-within .glossary-term-bubble{opacity:1;pointer-events:auto}.glossary-term.is-dismissed .glossary-term-bubble{opacity:0;pointer-events:none}.glossary-term-bubble:after{content:"";border:var(--spacing-xs-alt) solid transparent;border-top-color:var(--color-surface-dark);position:absolute;top:100%;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.glossary-term-bubble{transition:none}}.advancement{gap:var(--spacing-sm);text-align:left;flex-direction:column;display:flex}.advancement-scroll{border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-white);overflow-x:auto}.advancement-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.advancement-table th,.advancement-table td{padding:var(--spacing-xs) var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-border);text-align:center;white-space:nowrap}.advancement-table thead th{background-color:var(--color-surface-alt);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;position:sticky;top:0}.advancement-table tbody tr:last-child th,.advancement-table tbody tr:last-child td{border-bottom:none}.advancement-table tbody tr:hover{background-color:var(--color-surface-alt)}.advancement-special{text-align:left;white-space:normal;min-width:12rem}.feature-chip{margin:var(--spacing-xxs) var(--spacing-xxs) var(--spacing-xxs) 0}.advancement-special{gap:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.feature-plain{color:var(--color-gray-dark);font-size:var(--font-size-sm)}.feature-detail{padding:var(--spacing-md);border:var(--border-width) solid var(--color-accent);border-radius:var(--border-radius-md);background-color:var(--color-accent-dim);max-height:16rem;overflow-y:auto}.feature-detail-head{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);background-color:var(--color-accent-dim);display:flex;position:sticky;top:0}.feature-detail p{font-size:var(--font-size-sm);text-align:left;margin:0;line-height:1.5}.feature-detail-close{color:var(--color-gray-dark);cursor:pointer;padding:0 var(--spacing-xs);background:0 0;border:none;font-size:1.5rem;line-height:1}.feature-detail-close:hover{color:var(--color-black)}.feature-table-scroll{margin-top:var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-white);overflow-x:auto}.feature-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.feature-table th,.feature-table td{padding:var(--spacing-xs) var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-border);text-align:left;vertical-align:top}.feature-table thead th{background-color:var(--color-surface-alt);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;white-space:nowrap}.feature-table tbody tr:last-child td{border-bottom:none}.feature-table td:first-child{white-space:nowrap;font-weight:700}.feature-table-caption{margin:var(--spacing-sm) 0 0;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray-dark)}.feature-options ul{margin:var(--spacing-xxs) 0 0;padding-left:var(--spacing-lg);font-size:var(--font-size-sm);line-height:1.5}.feature-options li{margin-bottom:var(--spacing-xxs)}.feature-chip-list{gap:var(--spacing-xxs);margin-top:var(--spacing-xxs);flex-wrap:wrap;display:flex}.feature-swap{align-items:center;gap:var(--spacing-xxs);display:inline-flex}.feature-swap-arrow{color:var(--color-gray);font-size:var(--font-size-sm)}.advancement-known{text-align:center;white-space:nowrap;width:1%}.known-count{margin-bottom:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-left:3px solid var(--color-accent);background-color:var(--color-white);font-style:italic}.granted-feats{margin-top:var(--spacing-sm);border-top:var(--border-width) solid var(--color-border);padding-top:var(--spacing-xs)}.granted-feat{margin-top:var(--spacing-xs);padding:var(--spacing-sm);border-radius:var(--border-radius-sm);background-color:var(--color-white)}.granted-feat p.granted-feat-name{margin-bottom:var(--spacing-xxs);font-weight:700}.granted-feat-source{color:var(--color-gray-dark);font-weight:400;font-size:var(--font-size-xs)}.granted-feat p.granted-feat-normal{margin-top:var(--spacing-xxs);color:var(--color-gray-dark)}.feature-lost-note{margin-bottom:var(--spacing-sm);color:var(--color-danger);font-size:var(--font-size-sm);font-style:italic}.class-details-backdrop{z-index:1100;padding:var(--spacing-lg)}.class-details-modal{flex-direction:column;width:min(56rem,100%);min-width:0;max-height:min(44rem,90vh);padding:0;display:flex}.class-details-modal-head{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-bottom:var(--border-width) solid var(--color-border);flex-shrink:0;display:flex}.class-details-modal-head h3{text-transform:none;font-size:var(--font-size-lg);color:var(--color-accent);text-align:left;margin:0}.class-details-modal-close{color:var(--color-gray-dark);cursor:pointer;padding:0 var(--spacing-xs);background:0 0;border:none;min-width:2.75rem;min-height:2.75rem;font-size:2rem;line-height:1}.class-details-modal-close:hover{color:var(--color-black)}.class-details-modal-close:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:calc(-1 * var(--spacing-xxs))}.class-details-modal-body{padding:var(--spacing-lg);min-height:0;overflow-y:auto}.class-details-modal-body .class-details{background:0 0;border-top:none;padding:0}@media (width<=40rem){.class-details-backdrop{padding:var(--spacing-sm)}.class-details-modal{max-height:92vh}.class-details-modal-body{padding:var(--spacing-md)}}.prereq-badge{font-size:var(--font-size-xs);margin-left:var(--spacing-sm);display:inline-block}.prereq-badge-ok{color:var(--color-success)}.prereq-badge-warn{color:var(--color-danger)}.prereq-badge-toggle{font:inherit;color:var(--color-danger);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.prereq-badge-detail{margin-top:var(--spacing-xxs);text-align:left;color:var(--color-gray-dark);list-style:none}.prereq-cond-met{color:var(--color-success)}.prereq-cond-unmet{color:var(--color-danger)}.feat-choices{margin-bottom:var(--spacing-md)}.feat-choice-hint{color:var(--color-gray-dark);font-weight:400;font-size:var(--font-size-sm)}.feat-choices .selection-list{gap:var(--spacing-xs);flex-wrap:wrap;max-height:none;display:flex}.feat-choice-item{align-items:stretch;gap:var(--spacing-xs);text-align:left;border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);flex-direction:column;flex:18rem}.feat-choice-item .item-main{justify-content:space-between;align-items:baseline;gap:var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-border);padding-bottom:var(--spacing-xxs);flex-direction:row}.feat-choice-item .item-details{gap:var(--spacing-xs);flex-direction:column}.feat-choice-item .item-title{text-transform:capitalize}.feat-choice-item.blocked{opacity:.55;cursor:not-allowed}.feat-details section,.feat-details p,.feat-details ul,.feat-details li{text-align:left}.feat-details section{margin-bottom:var(--spacing-md)}.feat-details p{margin:0;line-height:1.5}.feat-details p.feat-details-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray-dark);margin-bottom:var(--spacing-xxs)}.feat-details-prereqs ul{padding-left:var(--spacing-lg);margin:0;line-height:1.6}.feat-details-prereqs .prereq-cond-unmet{color:var(--color-danger)}.feat-details-prereqs .prereq-cond-met{color:var(--color-gray-dark)}.prereq-reason{color:var(--color-gray-dark);font-size:var(--font-size-sm)}.feat-details p.feat-details-note{margin-top:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-gray-dark);font-style:italic}.feat-details-source{padding-top:var(--spacing-sm);border-top:var(--border-width) solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-gray-dark)}.choice-summary-wrap{flex-shrink:0}.choice-summary{gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-xl);border-bottom:1px solid var(--color-border);background-color:var(--color-white);font-size:var(--font-size-sm);text-align:left;flex-wrap:wrap;flex-shrink:0;display:flex}.choice-chip{align-items:baseline;gap:var(--spacing-xs);padding:2px var(--spacing-sm);border:1px solid var(--color-accent-dim);background-color:var(--color-accent-dim);border-radius:var(--border-radius-sm);display:inline-flex}.choice-summary .choice-label{color:var(--color-gray);text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.5px}.choice-summary .choice-value{color:var(--color-black);font-weight:700}.choice-violations{padding:var(--spacing-sm) var(--spacing-xl);border-bottom:2px solid var(--color-danger);background-color:var(--color-danger-bg);text-align:left;font-size:var(--font-size-sm);color:var(--color-black);max-height:6.5rem;margin:0;list-style:none;overflow-y:auto}.choice-violations li+li{margin-top:var(--spacing-xs)}.choice-validation-error{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xl);border-bottom:2px solid var(--color-danger);background-color:var(--color-danger-bg);font-size:var(--font-size-sm);color:var(--color-black);display:flex}.choice-validation-error .btn-secondary{padding:var(--spacing-xxs) var(--spacing-sm)}.wizard-progress .progress-step.has-violation,.wizard-progress .progress-step.has-violation .step-indicator{color:var(--color-black);font-weight:700}.wizard-progress .progress-step.has-violation .step-indicator{border-color:var(--color-danger);background-color:var(--color-danger-bg)}.wizard-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.wizard-modal{background-color:var(--color-surface);color:var(--color-black);border:2px solid var(--color-black);width:90vw;max-width:1000px;height:80vh;box-shadow:8px 8px 0 var(--color-black);flex-direction:column;display:flex;overflow:hidden}.wizard-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.wizard-header h2{color:var(--color-accent);margin:0}.close-btn{color:var(--color-gray);cursor:pointer;background:0 0;border:none;padding:0;font-size:2rem;line-height:1}.close-btn:hover{color:var(--color-black)}.wizard-progress{padding:var(--spacing-md);background-color:var(--color-surface-alt);border-bottom:1px solid var(--color-border);justify-content:space-between;display:flex;overflow-x:auto}.progress-step{min-width:80px;color:var(--color-gray);flex-direction:column;flex:1;align-items:center;transition:color .3s;display:flex;position:relative}.progress-step.active,.progress-step.completed{color:var(--color-black);font-weight:700}.progress-step.active{color:var(--color-accent)}.step-indicator{border:2px solid var(--color-gray);width:30px;height:30px;margin-bottom:var(--spacing-xs);background-color:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;display:flex}.progress-step.active .step-indicator{border-color:var(--color-accent);background-color:var(--color-accent-dim)}.progress-step.completed .step-indicator{border-color:var(--color-accent);background-color:var(--color-surface)}.step-label{text-transform:uppercase;letter-spacing:1px;font-size:.8rem}.wizard-content{padding:var(--spacing-xl);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.step-container,.step-container>div{flex-direction:column;flex:1;min-height:0;display:flex}.step-container h3{border-bottom:2px solid var(--color-accent);padding-bottom:var(--spacing-sm);margin-top:0;margin-bottom:var(--spacing-lg);flex-shrink:0}.wizard-footer{padding:var(--spacing-lg);border-top:1px solid var(--color-border);background-color:var(--color-surface-alt);justify-content:space-between;align-items:center;display:flex}.footer-right{gap:var(--spacing-md);display:flex}.btn-primary,.btn-secondary{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--border-radius-sm);cursor:pointer;text-transform:uppercase;font-family:inherit;font-weight:700;transition:all .2s}.btn-primary{background-color:var(--color-black);color:var(--color-white);border:none}.btn-primary:hover:not(:disabled){background-color:var(--color-gray-dark);transform:translateY(-2px)}.btn-secondary{color:var(--color-black);border:1px solid var(--color-border);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--color-black);background-color:var(--color-gray-light)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.3;cursor:not-allowed}.form-group{margin-bottom:var(--spacing-lg);gap:var(--spacing-xs);flex-direction:column;display:flex}.form-group:has(.selection-list){flex:1 0 auto;min-height:8rem;margin-bottom:0}.form-group label{color:var(--color-gray-dark);text-align:left;font-weight:700}.wizard-input{background-color:var(--color-white);border:1px solid var(--color-border);color:var(--color-black);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-sm);font-family:inherit}.wizard-input:focus{border-color:var(--color-accent);box-shadow:0 0 5px var(--color-accent-dim);outline:none}.search-box{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.search-box .wizard-input{flex:1}.selection-list{border:1px solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-white);flex:1;min-height:7rem;overflow-y:auto}.selection-row{border-bottom:1px solid var(--color-border)}.selection-row:last-child,.selection-row .selection-item{border-bottom:none}.selection-item{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);cursor:pointer;justify-content:space-between;align-items:center;transition:background-color .2s;display:flex}.class-details{padding:var(--spacing-md);background-color:var(--color-surface-alt);border-top:var(--border-width) dashed var(--color-border)}.class-details-blurb{margin:0 0 var(--spacing-sm);font-size:var(--font-size-sm);text-align:left;color:var(--color-gray-dark);line-height:1.5}.selection-item:last-child{border-bottom:none}.selection-item:hover{background-color:var(--color-gray-light)}.selection-item.selected{background-color:var(--color-accent-dim);border-left:4px solid var(--color-accent)}.item-main{flex-direction:column;align-items:flex-start;display:flex}.item-title{font-size:1.1rem;font-weight:700}.item-meta{color:var(--color-gray-dark);font-size:.8rem}.item-details{gap:var(--spacing-md);color:var(--color-gray-dark);font-size:.9rem;display:flex}.method-selection{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);justify-content:center;display:flex}.btn-tab{border:1px solid var(--color-border);color:var(--color-gray);padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;border-radius:var(--border-radius-sm);background:0 0;transition:all .2s}.btn-tab.active{border-color:var(--color-accent);color:var(--color-accent);background-color:var(--color-accent-dim)}.point-buy-header{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-surface-alt);border-radius:var(--border-radius-md);justify-content:space-between;align-items:center;display:flex}.budget-control{align-items:center;gap:var(--spacing-md);display:flex}.wizard-input.small{text-align:center;width:60px}.points-remaining{font-size:1.1rem}.points-remaining.positive{color:var(--color-success)}.points-remaining.negative{color:var(--color-danger)}.stats-allocation{gap:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.stat-row{padding:var(--spacing-md);background-color:var(--color-surface-alt);border-radius:var(--border-radius-md);justify-content:space-between;align-items:center;display:flex}.stat-label{flex-direction:column;align-items:flex-start;display:flex}.stat-name{text-transform:uppercase;font-weight:700}.stat-cost{color:var(--color-gray);font-size:.7rem}.stat-controls{align-items:center;gap:var(--spacing-md);display:flex}.btn-stat{border:1px solid var(--color-border);width:30px;height:30px;color:var(--color-black);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.btn-stat:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.stat-value{min-width:25px;font-size:1.2rem;font-weight:700}.bonuses-display{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.bonus-item{padding:var(--spacing-md);background-color:var(--color-surface-alt);border-radius:var(--border-radius-md);border-bottom:2px solid var(--color-accent);flex-direction:column;display:flex}.bonus-label{text-transform:uppercase;color:var(--color-gray);font-size:.8rem}.bonus-value{color:var(--color-accent);font-size:1.5rem;font-weight:700}.info-box{background-color:var(--color-accent-dim);padding:var(--spacing-md);border-radius:var(--border-radius-md);border-left:4px solid var(--color-accent);margin-bottom:var(--spacing-lg);text-align:left;flex-shrink:0}.prestige-requirements h4{color:var(--color-accent);margin-top:0}.requirements-text{margin-bottom:var(--spacing-md);font-size:.9rem;font-style:italic}.confirmation-checkbox{align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:.9rem;display:flex}.hp-controls{gap:var(--spacing-lg);margin-top:var(--spacing-xl);flex-direction:column;align-items:center;display:flex}.current-hp-gained{flex-direction:column;align-items:center;display:flex}.current-hp-gained .label{color:var(--color-gray);text-transform:uppercase;font-size:.9rem}.current-hp-gained .value{color:var(--color-accent);font-size:3rem;font-weight:700}.roll-actions{gap:var(--spacing-md);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.manual-input{align-items:center;gap:var(--spacing-sm);display:flex}.skill-points-banner{padding:var(--spacing-md);background-color:var(--color-accent-dim);border-radius:var(--border-radius-md);border-bottom:2px solid var(--color-accent);margin-bottom:var(--spacing-lg);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.points-summary{align-items:center;gap:var(--spacing-md);display:flex}.points-summary .label{font-weight:700}.points-summary .value{font-size:1.2rem;font-weight:700}.points-summary .value.positive{color:var(--color-success)}.points-summary .value.negative{color:var(--color-danger)}.points-math{color:var(--color-gray);font-size:.8rem}.skills-list-container{border:1px solid var(--color-border);border-radius:var(--border-radius-md);flex:1;min-height:0;overflow-y:auto}.wizard-table{border-collapse:collapse;text-align:left;width:100%}.wizard-table th{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-surface-alt);border-bottom:1px solid var(--color-border);text-transform:uppercase;color:var(--color-gray);font-size:.8rem}.wizard-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-gray-light)}.feat-list .item-main{flex-shrink:0}.feat-list .item-details{flex:1 1 0;min-width:0}.feat-benefit-preview{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--color-gray-dark);overflow:hidden}@media (width<=40rem){.feat-benefit-preview{display:none}}.class-skill-row{background-color:var(--color-accent-dim)}.skill-kept-cap{color:var(--color-gray-dark);font-size:var(--font-size-xs);font-style:italic}.skill-at-cap{color:var(--color-accent);font-weight:700}.rank-controls{align-items:center;gap:var(--spacing-sm);display:flex}.rank-value{text-align:center;min-width:20px;font-weight:700}.review-section{margin-bottom:var(--spacing-xl);text-align:left}.review-section h4{border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-xs);margin-bottom:var(--spacing-md);color:var(--color-accent)}.review-grid{gap:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.review-item label{color:var(--color-gray-dark);margin-right:var(--spacing-sm)}.review-stats{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.stat-pill{background-color:var(--color-surface-alt);padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);gap:var(--spacing-sm);border-radius:20px;display:flex}.stat-pill .stat-label{color:var(--color-accent);font-weight:700}.review-list{gap:var(--spacing-xs);flex-direction:column;display:flex}.review-list-item{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-surface-alt);border-radius:var(--border-radius-sm)}.empty-text{color:var(--color-gray);font-style:italic}.wizard-progress .progress-step{font-family:inherit;font-size:inherit;cursor:default;background:0 0;border:none}.wizard-progress .progress-step.reachable{cursor:pointer}.wizard-progress .progress-step.reachable:hover .step-indicator{border-color:var(--color-accent);background-color:var(--color-accent-dim)}.wizard-progress .progress-step.reachable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.wizard-progress .progress-step:disabled{cursor:not-allowed}.current-selection{align-items:baseline;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);margin-bottom:var(--spacing-xs);background-color:var(--color-accent-dim);border-left:4px solid var(--color-accent);display:flex}.selection-label{color:var(--color-gray);text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.5px}.selection-value{color:var(--color-black);font-weight:700}.btn-custom{padding:var(--spacing-sm) var(--spacing-lg);border:2px solid var(--color-danger);background-color:var(--color-white);color:var(--color-black);cursor:pointer;font-family:inherit;font-weight:700}.btn-custom:hover:not(:disabled){background-color:var(--color-danger-bg)}.btn-custom:disabled{cursor:not-allowed;opacity:.6}.btn-custom-inline{padding:2px var(--spacing-sm);border:1px solid var(--color-danger);background-color:var(--color-white);color:var(--color-black);font-family:inherit;font-size:var(--font-size-xs);cursor:pointer;font-weight:700}.btn-custom-inline:hover{background-color:var(--color-danger-bg)}.selection-item.blocked{cursor:not-allowed;background-color:var(--color-danger-bg)}.selection-item.blocked .item-title{opacity:.75}.requirements-unmet{margin:0 0 var(--spacing-xs);color:var(--color-black);font-weight:700}.requirements-list{padding-left:var(--spacing-xl);text-align:left;color:var(--color-black);margin:0}.requirements-met{color:var(--color-black);margin:0;font-weight:700}.requirements-note{margin:var(--spacing-xs) 0 0;color:var(--color-gray);font-size:var(--font-size-xs)}.alignment-grid{gap:var(--spacing-xs);grid-template-columns:auto repeat(3,1fr);align-items:stretch;display:grid}.alignment-grid-corner{min-width:60px}.alignment-axis-label{font-size:var(--font-size-xs);text-transform:capitalize;color:var(--color-gray-dark);justify-content:center;align-items:center;font-weight:700;display:flex}.alignment-cell{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-white);color:var(--color-black);cursor:pointer;font-family:inherit;font-weight:700;transition:all .2s}.alignment-cell:hover:not(:disabled){border-color:var(--color-accent);background-color:var(--color-gray-light)}.alignment-cell.selected{border:2px solid var(--color-accent);background-color:var(--color-accent-dim)}.alignment-cell:disabled{color:var(--color-gray);cursor:default}.domain-card{padding:var(--spacing-md);border-bottom:1px solid var(--color-border);text-align:left;cursor:pointer;transition:background-color .2s}.domain-card:last-child{border-bottom:none}.domain-card:hover{background-color:var(--color-gray-light)}.domain-card.selected{background-color:var(--color-accent-dim);border-left:4px solid var(--color-accent)}.domain-card.full{opacity:.75;cursor:not-allowed}.domain-power{margin:var(--spacing-xs) 0;color:var(--color-gray-dark);text-align:left;font-style:italic}.domain-spell-list,.domain-spell-list li{padding-left:var(--spacing-xl);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;margin:0}.domain-card .empty-text{text-align:left}.form-group.variant-picker{min-height:0;margin-top:var(--spacing-lg);flex:none}.variant-picker .variant-list{flex:0 auto;max-height:20rem}.variant-intro{margin:0 0 var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left}.variant-kind{padding:var(--spacing-xxs) var(--spacing-sm);border-radius:var(--border-radius-lg);font-size:var(--font-size-xs);white-space:nowrap}.variant-kind-feature_swap{background-color:var(--color-gray-light);border:var(--border-width) solid var(--color-border);color:var(--color-gray-dark)}.variant-kind-substitution{background-color:var(--color-accent-dim);border:var(--border-width) solid var(--color-accent);color:var(--color-gray-dark)}.class-details-note{margin:0 0 var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-gray-dark);text-align:left;font-style:italic}.homebrew-badge{padding:1px var(--spacing-sm);border:1px solid var(--color-danger);border-radius:var(--border-radius-sm);background-color:var(--color-danger-bg);color:var(--color-black);font-size:var(--font-size-xs);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;vertical-align:middle;font-weight:700;display:inline-block}.home{padding:var(--spacing-xl)}.home-cols{gap:var(--spacing-xl);align-items:flex-start;display:flex}.home-sessions{flex:2}.home-characters{flex:3}.home-heading{font-size:var(--font-size-lg);letter-spacing:.5px;margin:0 0 var(--spacing-md);font-weight:400}.home-error{color:var(--color-danger);font-size:var(--font-size-sm)}.home-panel{border:1px solid var(--color-border);background:var(--color-white);border-radius:6px}.home-empty{color:var(--color-gray);font-size:var(--font-size-sm);padding:var(--spacing-md)}.home-session-row{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-gray-light);color:inherit;text-align:left;justify-content:space-between;align-items:center;text-decoration:none;display:flex}.home-session-row:last-child{border-bottom:none}.home-session-row:hover{background:var(--color-bg-hover)}.home-session-name{font-size:var(--font-size-md);display:block}.home-session-meta{font-size:var(--font-size-xs);color:var(--color-gray);display:block}.home-badge{font-size:var(--font-size-xs);border:1px solid var(--color-border);padding:1px var(--spacing-sm);border-radius:10px}.home-manage-link{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray);display:block}.home-backoffice{margin-top:var(--spacing-xl);border:1px solid var(--color-border);padding:var(--spacing-lg);color:inherit;text-align:left;background:var(--color-bg-hover);border-radius:6px;text-decoration:none;display:block}.home-backoffice-flag{font-size:var(--font-size-xxs);letter-spacing:1px;text-transform:uppercase;color:var(--color-gray);display:block}.home-backoffice-title{font-size:var(--font-size-md);display:block}.home-backoffice-sub{font-size:var(--font-size-xs);color:var(--color-gray);margin-top:var(--spacing-xs);display:block}.home-char-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.home-char-card{border:1px solid var(--color-border);padding:var(--spacing-lg) var(--spacing-sm-alt) var(--spacing-md);cursor:pointer;background:var(--color-white);border-radius:6px;position:relative}.home-char-card:hover{background:var(--color-bg-hover)}.home-char-portrait{width:72px;height:80px;margin:0 auto var(--spacing-sm-alt);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--color-gray-light);font-size:var(--font-size-xl);color:var(--color-gray);justify-content:center;align-items:center;display:flex;overflow:hidden}.home-char-portrait img{object-fit:cover;width:100%;height:100%}.home-char-name{font-size:var(--font-size-lg)}.home-char-meta{font-size:var(--font-size-xs);color:var(--color-gray)}.home-create-card{border:2px dashed var(--color-border);color:var(--color-gray);cursor:pointer;min-height:150px;font-family:var(--font-family-base);font-size:var(--font-size-sm);background:0 0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;display:flex}.home-create-card:hover{color:var(--color-gray-dark);border-color:var(--color-gray)}.home-create-plus{font-size:var(--font-size-huge);line-height:1}.home-char-actions{top:var(--spacing-xs);right:var(--spacing-xs);gap:var(--spacing-xs);display:none;position:absolute}.home-char-card:hover .home-char-actions,.home-char-card:focus-within .home-char-actions{display:flex}.home-char-action{font-family:var(--font-family-base);font-size:var(--font-size-xs);border:1px solid var(--color-border);background:var(--color-white);color:var(--color-gray-dark);padding:1px var(--spacing-sm);cursor:pointer;border-radius:4px}.home-char-action:hover{background:var(--color-bg-hover)}.home-char-action:disabled{color:var(--color-gray);cursor:default}.home-char-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--spacing-xs)}.hex-container{flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.hex-container.large{width:var(--hex-large-w);height:var(--hex-large-h)}.hex-container.medium{width:var(--hex-medium-w);height:var(--hex-medium-h)}.hex-container.small{width:var(--hex-small-w);height:var(--hex-small-h)}.hex-container.xs-md{width:var(--hex-xs-md-w);height:var(--hex-xs-md-h)}.hex-container.xs{width:var(--hex-xs-w);height:var(--hex-xs-h)}.hex-container.xxs{width:var(--hex-xxs-w);height:var(--hex-xxs-h)}.hex-container.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .1s cubic-bezier(.4,0,.2,1)}.hex-container.clickable:active{transform:scale(.92)}.hex-container.clickable:hover .hex-bg-small,.hex-container.clickable:hover .hex-bg{fill:var(--color-bg-hover);stroke:var(--color-black)}.hex-container.black.clickable:hover .hex-bg-small,.hex-container.black.clickable:hover .hex-bg{fill:var(--color-black-alt)}.hex-svg{z-index:0;width:100%;height:100%;position:absolute;top:0;left:0}.hex-bg{fill:var(--color-white);stroke:var(--color-black);stroke-width:4px}.hex-bg-small{fill:var(--color-white);stroke:var(--color-gray);stroke-width:2px}.hex-label{z-index:1;text-transform:uppercase;color:var(--color-gray-dark);font-weight:700;position:absolute}.large .hex-label{font-size:9px;top:10px}.medium .hex-label{font-size:8px;top:8px}.small .hex-label{font-size:7px;top:5px}.xs-md .hex-label{font-size:6px;top:4px}.xs .hex-label{font-size:5px;top:3px}.xxs .hex-label{font-size:4px;top:2px}.hex-content{z-index:1;justify-content:center;align-items:center;display:flex}.has-label.large .hex-content{margin-top:var(--spacing-md)}.has-label.medium .hex-content{margin-top:var(--spacing-sm-alt)}.has-label.small .hex-content{margin-top:var(--spacing-sm)}.has-label.xs-md .hex-content{margin-top:6px}.has-label.xs .hex-content{margin-top:var(--spacing-xs-alt)}.has-label.xxs .hex-content{margin-top:var(--spacing-xs)}.hex-value{font-weight:700}.large .hex-value{font-size:26px}.medium .hex-value{font-size:20px}.small .hex-value{font-size:var(--font-size-md)}.xs-md .hex-value{font-size:var(--font-size-sm)}.xs .hex-value{font-size:var(--font-size-xs)}.xxs .hex-value{font-size:var(--font-size-xxs)}.hex-secondary-label{z-index:1;color:var(--color-gray);font-size:8px;font-weight:700;position:absolute;bottom:8px}.small .hex-secondary-label{font-size:6px;bottom:4px}.xs-md .hex-secondary-label{font-size:5px;bottom:3px}.xs .hex-secondary-label{font-size:4px;bottom:2px}.xxs .hex-secondary-label{font-size:3px;bottom:1px}.hex-container.black .hex-bg-small,.hex-container.black .hex-bg{fill:var(--color-black);stroke:var(--color-black)}.hex-container.black .hex-value,.hex-container.black .hex-label,.hex-container.black .hex-secondary-label{color:var(--color-white)}.hex-container.proficient .hex-bg-small,.hex-container.proficient .hex-bg{fill:var(--color-success);stroke:var(--color-success)}.hex-container.proficient .hex-value,.hex-container.proficient .hex-label,.hex-container.proficient .hex-secondary-label{color:var(--color-white)}.stat-inputs{z-index:1;flex-direction:row;margin-left:-20px;display:flex}.stat-inputs .hex-container{margin-left:-6px}.stat-inputs .hex-container:first-child{margin-left:20px}.stat-inputs .hex-container:nth-child(2n){margin-top:15px}.derived-stat-container{align-items:flex-start;gap:var(--spacing-xs);padding:var(--spacing-sm);flex-direction:column;display:flex}.derived-stat-label-main{font-weight:700;font-size:var(--font-size-md);text-transform:uppercase;color:var(--color-gray-dark)}.derived-stat-row{align-items:center;gap:var(--spacing-sm);display:flex}.derived-stat-container .modifiers-container{align-items:center;gap:var(--spacing-xs);display:flex}.typed-mod{align-items:center;display:flex}.typed-mod.is-suppressed .hex-bg-small,.typed-mod.is-suppressed .hex-bg{stroke-dasharray:4 3;stroke:var(--color-gray);fill:var(--color-surface-alt)}.typed-mod.is-suppressed .hex-value{color:var(--color-gray);text-decoration:line-through}.typed-mod.is-suppressed .hex-label{color:var(--color-gray)}.typed-mod.is-unverified .hex-bg-small,.typed-mod.is-unverified .hex-bg{stroke-dasharray:1 2;stroke:var(--color-conditional)}.typed-mod.is-unverified .hex-value,.typed-mod.is-unverified .hex-label{color:var(--color-conditional)}.stat-container{justify-content:center;align-items:center;width:100%;margin-bottom:10px;display:flex;position:relative}.stat-container:last-child{margin-bottom:0}.stat-inputs{z-index:1;flex-flow:wrap;align-items:flex-start;margin-left:-20px;display:flex}.stat-inputs>*{margin-left:-6px}.stat-inputs>:first-child{margin-left:20px}.stat-inputs>:nth-child(2n){margin-top:15px}.hex-container.add-modifier .hex-bg-small,.hex-container.add-modifier .hex-bg{fill:var(--color-surface-alt);stroke:var(--color-border)}.hex-container.add-modifier .hex-value,.hex-container.add-modifier .hex-label{color:var(--color-gray)}.hex-container.add-modifier:hover .hex-value,.hex-container.add-modifier:hover .hex-label{color:var(--color-accent)}.sheet-attacks{border-top:var(--border-width) solid var(--color-gray-light);width:100%;padding-top:var(--spacing-sm);background-color:var(--color-white);flex-basis:100%}.atk-columns{align-items:baseline;gap:var(--spacing-md);padding:0 var(--spacing-md) var(--spacing-xxs);border-bottom:var(--border-width) solid var(--color-gray-light);display:flex}.atk-columns span{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);font-style:normal;font-weight:700}.atk-list{flex-direction:column;display:flex}.atk-row{border-left:var(--spacing-xxs) solid transparent}.atk-row+.atk-row{border-top:var(--border-width) solid var(--color-gray-light)}.atk-head{align-items:stretch;display:flex}.atk-toggle{align-items:baseline;gap:var(--spacing-md);min-width:0;padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;background:0 0;border:none;flex:auto;min-height:2.75rem;font-family:inherit;display:flex}.atk-row.is-open{border-left:var(--spacing-xxs) solid var(--color-accent)}.atk-row.is-open .atk-head{background-color:var(--color-accent-dim)}.atk-row:not(.is-open) .atk-toggle:hover{background-color:var(--color-bg-hover)}.atk-toggle:focus-visible,.atk-remove:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:calc(-1 * var(--spacing-xxs))}.atk-name{align-items:baseline;gap:var(--spacing-xs);width:var(--skill-name-width);color:var(--color-black);text-align:left;flex-shrink:0;font-size:13px;font-weight:700;display:flex}.atk-warning{padding:0 var(--spacing-xs);border:var(--border-width) solid var(--color-danger);border-radius:var(--border-radius-sm);background-color:var(--color-danger-bg);font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-danger);white-space:nowrap;font-weight:400}.atk-total{min-width:7rem;font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;color:var(--color-black);text-align:left;flex-shrink:0}.atk-damage{min-width:5rem;font-size:var(--font-size-md);font-variant-numeric:tabular-nums;color:var(--color-gray-dark);text-align:left;flex-shrink:0}.atk-terms{min-width:0;font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;flex:auto}.atk-terms.is-incomplete{color:var(--color-gray);font-style:italic}.atk-remove{width:2.75rem;font-family:inherit;font-size:var(--font-size-lg);color:var(--color-gray);cursor:pointer;background:0 0;border:none;flex-shrink:0;line-height:1}.atk-remove:hover{color:var(--color-danger);background-color:var(--color-danger-bg)}.atk-body{padding:0 var(--spacing-md) var(--spacing-md);padding-left:calc(var(--spacing-md) + var(--spacing-lg))}.atk-kind-name{margin-bottom:var(--spacing-xxs);font-weight:700;font-size:var(--font-size-sm);text-align:left}.atk-kind-desc{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}.atk-breakdown h5{margin-bottom:var(--spacing-xxs);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);text-align:left}.atk-breakdown ul{margin-bottom:var(--spacing-sm);padding:0;list-style:none}.atk-breakdown li{align-items:baseline;gap:var(--spacing-sm);padding:var(--spacing-xxs) 0;font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.atk-term-value{font-variant-numeric:tabular-nums;min-width:2.5rem;color:var(--color-black);text-align:left;flex-shrink:0;font-weight:700}.atk-term-label{min-width:6rem;color:var(--color-black);text-align:left;flex-shrink:0}.atk-term-why{font-size:var(--font-size-xs);color:var(--color-gray-dark);text-align:left;flex:14rem;line-height:1.5}.atk-save{margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-left:2px solid var(--color-accent);background-color:var(--color-accent-dim);font-size:var(--font-size-sm);text-align:left;line-height:1.5}.atk-missing{margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-left:2px solid var(--color-gray);background-color:var(--color-surface-alt);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}.atk-note-line{margin-bottom:var(--spacing-xs);padding:var(--spacing-xxs) var(--spacing-sm);border-left:3px dashed var(--color-conditional);background-color:var(--color-conditional-bg);font-size:var(--font-size-xs);color:var(--color-gray-dark);text-align:left;line-height:1.5}.atk-feat-note{margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-left:2px solid var(--color-accent);background-color:var(--color-accent-dim);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}.atk-kind-picker,.atk-add label{align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);text-align:left;flex-wrap:wrap;display:flex}.atk-kind-picker select,.atk-add select{padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-surface);font-family:inherit;font-size:var(--font-size-sm);min-width:0;max-width:22rem}.atk-add{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) 0;border-top:var(--border-width) solid var(--color-gray-light);flex-wrap:wrap;display:flex}.atk-add label{margin-bottom:0}.atk-add-label{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);font-weight:700}.atk-add button:disabled{opacity:.5;cursor:not-allowed}.atk-empty{padding:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}@media (width<=900px){.atk-toggle{flex-wrap:wrap}.atk-name{flex:auto;width:auto}.atk-terms{flex-basis:100%}.atk-columns{display:none}}.sheet-actions{border:1px solid var(--color-gray-light);padding:var(--spacing-sm);background-color:var(--color-white);grid-area:actions;height:fit-content}.ca-columns{align-items:baseline;gap:var(--spacing-md);padding:0 var(--spacing-md) var(--spacing-xxs);border-bottom:var(--border-width) solid var(--color-gray-light);display:flex}.ca-columns span{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);font-style:normal;font-weight:700}.ca-list{flex-direction:column;display:flex}.ca-row+.ca-row{border-top:1px solid var(--color-gray-light)}.ca-head{align-items:baseline;gap:var(--spacing-md);width:100%;padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;background:0 0;border:none;min-height:2.75rem;font-family:inherit;display:flex}.ca-row.is-open .ca-head{background-color:var(--color-accent-dim)}.ca-head:hover{background-color:var(--color-bg-hover)}.ca-row.is-open .ca-head:hover{background-color:var(--color-accent-dim)}.ca-head:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:calc(-1 * var(--spacing-xxs))}.ca-name{width:var(--skill-name-width);color:var(--color-black);text-align:left;flex-shrink:0;font-size:13px;font-weight:700}.ca-total{min-width:7rem;font-size:var(--font-size-lg);font-variant-numeric:tabular-nums;color:var(--color-black);text-align:left;flex-shrink:0}.ca-terms{min-width:0;font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;flex:auto}.ca-terms.is-incomplete{color:var(--color-gray);font-style:italic}.ca-cost{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);flex-shrink:0}.ca-aoo{padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-accent);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);color:var(--color-gray-dark);white-space:nowrap;flex-shrink:0}.ca-aoo.is-waived{border-style:dashed;border-color:var(--color-gray);color:var(--color-gray);text-decoration:line-through}.ca-body{padding:0 var(--spacing-md) var(--spacing-md);padding-left:calc(var(--spacing-md) + var(--spacing-lg))}.ca-check{margin-bottom:var(--spacing-xxs);font-weight:700;font-size:var(--font-size-sm);text-align:left}.ca-desc{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}.ca-missing{margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-left:2px solid var(--color-gray);background-color:var(--color-surface-alt);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}.ca-aoo-scope{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left}.ca-feat-note{margin-bottom:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-left:2px solid var(--color-accent);background-color:var(--color-accent-dim);font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;line-height:1.5}.ca-feat-rider{color:var(--color-black)}.ca-situational h5{margin-bottom:var(--spacing-xxs);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);text-align:left}.ca-situational ul{margin-bottom:var(--spacing-sm);padding:0;list-style:none}.ca-situational li{align-items:baseline;gap:var(--spacing-sm);padding:var(--spacing-xxs) 0;font-size:var(--font-size-sm);display:flex}.ca-sit-value{font-variant-numeric:tabular-nums;min-width:2rem;color:var(--color-gray-dark);text-align:left;flex-shrink:0;font-weight:700}.ca-sit-label{color:var(--color-gray-dark);text-align:left}.ca-empty{padding:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-gray-dark)}@media (width<=900px){.ca-head{flex-wrap:wrap}.ca-name{flex:auto;width:auto}.ca-terms{flex-basis:100%}.ca-columns{display:none}}.sheet-abilities{border:1px solid var(--color-gray-light);padding:var(--spacing-sm);background-color:var(--color-white);grid-area:abilities;height:fit-content}.ability-list{gap:var(--spacing-sm);padding:var(--spacing-xs);flex-wrap:wrap;justify-content:flex-start;list-style:none;display:flex}.ability{align-items:flex-start;gap:var(--spacing-xxs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-white);flex-direction:column;flex:0 11rem;min-width:9rem;display:flex}.ability.is-active{background-color:var(--color-accent-dim);border-color:var(--color-accent);border-left-width:4px}.ability-head{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;width:100%;display:flex}.ability-toggle{font-family:inherit;font-size:var(--font-size-sm);text-align:left;padding:var(--spacing-xxs) 0;cursor:pointer;color:var(--color-black);background:0 0;border:none;min-height:1.75rem;font-weight:700}.ability-toggle:disabled{color:var(--color-gray);cursor:not-allowed}.ability.is-active .ability-toggle{color:var(--color-accent)}.ability-toggle:focus-visible,.ability-amount:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:var(--spacing-xxs)}.ability-amounts{gap:var(--spacing-xxs);margin-left:auto;display:flex}.ability-amount{font-family:inherit;font-size:var(--font-size-sm);min-width:2rem;min-height:1.75rem;padding:0 var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-white);cursor:pointer;color:var(--color-black)}.ability-amount:hover:not(:disabled){border-color:var(--color-accent)}.ability-amount[aria-pressed=true]{background-color:var(--color-accent);border-color:var(--color-accent);color:var(--color-white);font-weight:700}.ability-amount:disabled{color:var(--color-gray);cursor:not-allowed}.ability-trade{font-size:var(--font-size-xs);text-align:left;margin:0;line-height:1.4}.ability-cost{color:var(--color-danger);font-weight:700}.ability-grant{color:var(--color-success);font-weight:700}.ability-trade-sep{color:var(--color-gray)}.ability-cap{font-size:var(--font-size-xxs);color:var(--color-gray-dark);text-align:left;margin:0;font-style:italic}@media (pointer:coarse){.ability-toggle,.ability-amount{min-height:2.75rem}}@media (width<=480px){.ability{flex:1 1 calc(50% - var(--spacing-sm));min-width:8rem}}.save-row{padding:var(--spacing-xxs) var(--spacing-sm);border-bottom:1px solid var(--color-gray-light);justify-content:flex-start;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.save-info{align-items:baseline;gap:var(--spacing-xs);width:var(--skill-name-width);flex-direction:row;flex-shrink:0;display:flex}.save-name{color:var(--color-black);text-align:left;font-size:13px;font-weight:700}.save-ability{font-size:var(--font-size-xs);color:var(--color-gray);text-transform:uppercase}.save-values{align-items:center;gap:var(--spacing-sm);display:flex}.save-row .modifiers-container{align-items:center;gap:var(--spacing-xxs);display:flex}.skill-values{align-items:center;gap:var(--spacing-sm);display:flex}.skill-row .modifiers-container{align-items:center;gap:var(--spacing-xxs);display:flex}.skill-operator{color:var(--color-gray);-webkit-user-select:none;user-select:none;font-size:.8em;font-weight:700}.skill-row.is-proficient .skill-name{color:var(--color-success);font-weight:700}.sheet-inventory{border:var(--border-width) solid var(--color-gray-light);padding:var(--spacing-sm);background-color:var(--color-white);grid-area:inventory;height:fit-content}.inv-header{justify-content:flex-start;align-items:baseline;gap:var(--spacing-md);border-bottom:2px solid var(--color-black);margin-bottom:var(--spacing-sm);padding:0 var(--spacing-md) var(--spacing-xs);display:flex}.sheet-inventory h2{color:var(--color-gray-dark);font-size:var(--font-size-lg);text-transform:uppercase;text-align:left;flex-shrink:0}.inv-hint{font-size:var(--font-size-xxs);color:var(--color-gray);text-align:left;font-style:italic}.inv-list{flex-direction:column;list-style:none;display:flex}.inv-row{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-md);display:flex}.inv-row+.inv-row{border-top:var(--border-width) solid var(--color-gray-light)}.inv-row.is-equipped{background-color:var(--color-accent-dim);box-shadow:inset 3px 0 0 var(--color-accent)}.inv-equip{align-items:center;gap:var(--spacing-xxs);cursor:pointer;flex-direction:column;flex-shrink:0;justify-content:center;min-width:4.5rem;min-height:2.75rem;display:flex}.inv-equip input{cursor:pointer;width:1.1rem;height:1.1rem;accent-color:var(--color-accent)}.inv-equip-word{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray-dark)}.inv-row.is-equipped .inv-equip-word{color:var(--color-accent);font-weight:700}.inv-body{align-items:flex-start;gap:var(--spacing-xxs);flex-direction:column;flex-grow:1;min-width:0;display:flex}.inv-name{font-size:var(--font-size-md);text-align:left}.inv-qty{margin-left:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-gray-dark)}.inv-slot{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);text-align:left}.inv-notes{font-size:var(--font-size-sm);color:var(--color-gray-dark);text-align:left;font-style:italic}.inv-effects{gap:var(--spacing-xxs);margin-top:var(--spacing-xxs);flex-direction:column;list-style:none;display:flex}.inv-effect{align-items:baseline;gap:var(--spacing-xs);font-size:var(--font-size-sm);text-align:left;flex-wrap:wrap;display:flex}.inv-effect-value{color:var(--color-accent);font-weight:700}.inv-effect-type{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray)}.inv-effect.is-dormant .inv-effect-value{color:var(--color-gray);font-weight:400}.inv-effect-state{font-size:var(--font-size-xxs);color:var(--color-gray-dark);font-style:italic}.inv-effect.is-situational{border-left:var(--spacing-xxs) dashed var(--color-accent);padding-left:var(--spacing-xs)}.inv-effect.is-situational .inv-effect-value{color:var(--color-accent);font-weight:700}.inv-effect-when{font-size:var(--font-size-xxs);color:var(--color-gray-dark);flex-basis:100%;font-style:italic;line-height:1.4}.inv-remove{font-family:inherit;font-size:var(--font-size-lg);color:var(--color-gray);cursor:pointer;padding:0 var(--spacing-xs);background:0 0;border:none;flex-shrink:0;min-width:2.75rem;min-height:2.75rem}.inv-remove:hover,.inv-remove:focus-visible{color:var(--color-danger)}.inv-empty{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-gray);text-align:left;font-style:italic}.inv-error{margin:var(--spacing-xs) var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);text-align:left}.inv-add{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md) 0;margin-top:var(--spacing-xs);border-top:var(--border-width) solid var(--color-gray-light);flex-wrap:wrap;display:flex}.inv-add-label{font-size:var(--font-size-xxs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray);font-weight:700}.inv-add-input{min-width:8rem;font-size:var(--font-size-sm);text-align:left;flex-grow:1}.inv-add-button{border:var(--border-width) solid var(--color-border);background-color:var(--color-surface-alt);font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;min-height:2.75rem}.inv-add-button:disabled{color:var(--color-gray);cursor:not-allowed}@media (width<=480px){.inv-equip{min-width:3.5rem}}.sheet-container{grid-template-columns:var(--sidebar-width) 1fr;gap:var(--spacing-lg);padding:var(--spacing-xl);max-width:var(--container-max-width);border:var(--border-width) solid var(--color-border);grid-template-rows:auto auto auto auto auto auto auto;grid-template-areas:"header header""stats main""stats abilities""stats actions""stats saves""stats skills""stats inventory";margin:0 auto;display:grid}.sheet-container.allocating-skills .sheet-header,.sheet-container.allocating-skills .sheet-stats,.sheet-container.allocating-skills .sheet-grid,.sheet-container.allocating-skills .derived-grid,.sheet-container.allocating-skills .sheet-saves{opacity:.3;pointer-events:none;filter:grayscale();transition:opacity .3s,filter .3s}.sheet-container.allocating-skills .sheet-skills{z-index:10;box-shadow:0 0 15px #0000001a}.allocation-banner{background-color:var(--color-surface-dark);color:var(--color-white);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md);z-index:1000;border-bottom:4px solid var(--color-danger);grid-area:header;justify-content:space-between;align-items:center;padding:15px 25px;display:flex;position:sticky;top:0;box-shadow:0 4px 15px #0006}.allocation-info{flex-direction:column;gap:4px;display:flex}.allocation-main{font-size:1.1em}.remaining-count{color:var(--color-warning);margin-left:10px;font-size:1.3em;font-weight:700}.allocation-math{color:var(--color-on-dark-muted);font-family:Courier New,Courier,monospace;font-size:.85em}.btn-finalize{background-color:var(--color-success);color:var(--color-white);border-radius:var(--border-radius-lg);cursor:pointer;border:none;padding:10px 20px;font-weight:700}.btn-finalize:disabled{background-color:var(--color-bg-alt);cursor:not-allowed}.sheet-header{border-bottom:2px solid var(--color-black);padding-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-end;gap:var(--spacing-xl);grid-area:header;display:flex}.header-item{padding:var(--spacing-sm);flex-direction:column;justify-content:flex-end;display:flex}.character-name{text-align:left;flex-grow:1;justify-content:center;padding:0}.character-name .skill-row{border-bottom:1px solid var(--color-gray-light);width:100%}.character-name .skill-row:last-child{border-bottom:none}.name-input{width:100%;font-size:var(--font-size-lg);text-align:left;font-family:var(--font-family-base), serif;padding:var(--spacing-xxs) 0;background:0 0;border:none}.sheet-stats{padding:var(--spacing-xl) var(--spacing-md);border:1px solid var(--color-gray-light);background-color:var(--color-white);flex-direction:column;grid-area:stats;align-items:center;gap:0;height:fit-content;display:flex;position:relative;overflow:hidden}.sheet-stats:before{content:"STATS";color:#00000008;z-index:0;pointer-events:none;letter-spacing:20px;font-size:80px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.sheet-grid{justify-content:flex-start;align-items:start;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-gray-light);background-color:var(--color-white);flex-wrap:wrap;grid-area:main;display:flex}.grid-item{background-color:var(--color-bg-alt);flex:0 auto;justify-content:flex-start;align-items:flex-start;width:auto;height:fit-content;display:flex}.attack-note{max-width:14rem;padding:0 var(--spacing-xs);font-size:var(--font-size-xxs);color:var(--color-gray-dark);text-align:left;font-style:italic;line-height:1.4}.sheet-skills{border:1px solid var(--color-gray-light);padding:var(--spacing-sm);background-color:var(--color-white);grid-area:skills;height:fit-content}.sheet-saves{border:1px solid var(--color-gray-light);padding:var(--spacing-sm);background-color:var(--color-white);grid-area:saves;height:fit-content}.skills-list{gap:var(--spacing-xxs);flex-direction:column;display:flex}.skills-header{justify-content:flex-start;align-items:flex-end;gap:var(--spacing-lg);border-bottom:2px solid var(--color-black);margin-bottom:var(--spacing-sm);padding:0 var(--spacing-md);display:flex}.sheet-skills h2,.sheet-saves h2{color:var(--color-gray-dark);font-size:var(--font-size-lg);text-transform:uppercase;text-align:left;width:var(--skill-name-width);flex-shrink:0;margin-bottom:0}.skills-header-labels{align-items:center;gap:var(--spacing-md);font-size:var(--font-size-xxs);color:var(--color-gray);padding-bottom:var(--spacing-xs);font-weight:700;display:flex}.skill-label-total{width:var(--hex-xs-w);text-align:center}.skill-label-mods{gap:var(--spacing-xxs);display:flex}.skill-label-mods span{width:var(--hex-xxs-w);text-align:center}@media (width<=900px){.sheet-container{padding:var(--spacing-md);gap:var(--spacing-md);grid-template-columns:1fr;grid-template-areas:"header""stats""main""abilities""actions""saves""skills""inventory"}.sheet-header{justify-content:flex-start;gap:var(--spacing-md);flex-wrap:wrap}.character-name{flex-basis:100%}.sheet-stats:before{display:none}.sheet-stats{padding:var(--spacing-md) var(--spacing-xs)}}@media (width<=480px){.header-item .feat-note-list{min-width:0}.skill-info,.sheet-skills h2,.sheet-saves h2{width:auto}}.login-backdrop{background-color:var(--color-bg-alt);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{gap:var(--spacing-sm);width:320px;max-width:90vw;padding:var(--spacing-xl);background-color:var(--color-white);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);text-align:left;flex-direction:column;display:flex}.login-title{text-align:center;font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}.login-error{color:var(--color-danger);font-size:var(--font-size-sm)}.login-button{margin-top:var(--spacing-md);padding:var(--spacing-sm);font-family:inherit;font-size:var(--font-size-md);color:var(--color-white);background-color:var(--color-surface-dark);border-radius:var(--border-radius-lg);cursor:pointer;border:none}.login-button:disabled{background-color:var(--color-gray);cursor:default}.admin-users{max-width:var(--container-max-width);padding:var(--spacing-lg);text-align:left;margin:0 auto}.admin-users-title{font-size:var(--font-size-lg);margin-bottom:var(--spacing-md)}.admin-users-form{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.admin-users-form button,.admin-users-table button,.admin-users-form select,.admin-users-table select{padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);cursor:pointer;font-family:inherit}.admin-users-error{color:var(--color-danger);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm)}.admin-users-table{border-collapse:collapse;width:100%}.admin-users-table th,.admin-users-table td{padding:var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-gray-light);text-align:left}.backoffice{padding:var(--spacing-xl);max-width:var(--container-max-width);margin:0 auto}.backoffice-title{font-size:var(--font-size-xl);margin:0 0 var(--spacing-xl);font-weight:400}.backoffice-tiles{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.backoffice-section{font-size:var(--font-size-lg);margin:var(--spacing-xl) 0 var(--spacing-sm);font-weight:400}.backoffice-section-sub{font-size:var(--font-size-sm);color:var(--color-gray);max-width:640px;margin:0 auto var(--spacing-lg)}.backoffice-status,.backoffice-error{font-size:var(--font-size-sm);margin-bottom:var(--spacing-lg)}.backoffice-error{color:var(--color-danger)}.backoffice-tile.is-queue{padding:var(--spacing-lg);gap:var(--spacing-xs);grid-template-rows:auto auto 1fr auto;display:grid}.backoffice-tile-count{font-size:var(--font-size-huge);color:var(--color-accent);line-height:1.1;display:block}.backoffice-tile-meta{font-size:var(--font-size-xs);color:var(--color-gray);text-transform:uppercase;letter-spacing:.04em;display:block}.backoffice-tile{border:1px solid var(--color-border);padding:var(--spacing-xl) var(--spacing-lg);color:inherit;background:var(--color-white);border-radius:6px;text-decoration:none}.backoffice-tile:hover{background:var(--color-bg-hover)}.backoffice-tile-title{font-size:var(--font-size-lg);display:block}.backoffice-tile-sub{font-size:var(--font-size-sm);color:var(--color-gray);margin-top:var(--spacing-sm);display:block}.entity-picker{display:inline-block;position:relative}.entity-picker-input{min-width:180px}.entity-picker-results{z-index:10;background-color:var(--color-white);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);max-height:200px;list-style:none;position:absolute;left:0;right:0;overflow-y:auto}.entity-picker-results button{text-align:left;width:100%;padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;background:0 0;border:none;font-family:inherit;display:block}.entity-picker-results button:hover{background-color:var(--color-bg-hover)}.entity-picker-selected{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xxs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);display:inline-flex}.entity-picker-clear{cursor:pointer;color:var(--color-danger);background:0 0;border:none;font-weight:700}.review-queue{padding:var(--spacing-lg);max-width:var(--container-max-width);margin:0 auto}.review-back{font-size:var(--font-size-sm);color:var(--color-gray);margin-bottom:var(--spacing-sm);display:inline-block}.review-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-xs);font-weight:400}.review-description{font-size:var(--font-size-sm);color:var(--color-gray);max-width:720px;margin:0 auto var(--spacing-md)}.review-counts{font-size:var(--font-size-sm);margin-bottom:var(--spacing-md)}.review-count-chip{margin-left:var(--spacing-sm);padding:0 var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);font-size:var(--font-size-xs);color:var(--color-gray);display:inline-block}.review-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.review-filter,.review-paging button{font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-white);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);cursor:pointer}.review-filter.is-active{border-color:var(--color-accent);background:var(--color-accent-dim)}.review-paging{align-items:center;gap:var(--spacing-sm);display:inline-flex}.review-range{font-size:var(--font-size-sm);color:var(--color-gray)}.review-status-line{font-size:var(--font-size-sm);color:var(--color-gray);padding:var(--spacing-lg)}.review-error{font-size:var(--font-size-xs);color:var(--color-danger);display:block}.review-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.review-table th{text-align:left;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-gray);border-bottom:var(--border-width) solid var(--color-border);padding:var(--spacing-xs) var(--spacing-sm)}.review-cell{text-align:left;vertical-align:top;padding:var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-gray-light)}.review-row.is-settled{background:var(--color-surface-alt);color:var(--color-gray)}.review-cell-label{width:18%}.review-cell-value{width:34%}.review-context{font-size:var(--font-size-xs);color:var(--color-gray);display:block}.review-cell-value span{max-height:4.5em;display:block;overflow:hidden}.review-applied{font-size:var(--font-size-xs);color:var(--color-success);display:block}.review-edit-prereq{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.review-edit-select,.review-edit-number,.review-edit-text,.review-status-select,.review-note-input{font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);background:var(--color-white);max-width:100%}.review-edit-number{width:72px}.review-edit-text,.review-note-input{width:100%;min-width:90px}.review-edit-apply{font-family:inherit;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background:var(--color-white);cursor:pointer}.review-edit-none{font-size:var(--font-size-xs);color:var(--color-gray)}.review-byline{font-size:var(--font-size-xs);color:var(--color-gray);display:block}.review-queue select:focus,.review-queue input:focus,.review-queue button:focus{outline:2px solid var(--color-accent);outline-offset:1px}@media (width<=900px){.review-table,.review-table thead,.review-table tbody,.review-table tr,.review-table td,.review-table th{width:auto;display:block}.review-table thead{display:none}.review-row{border-bottom:var(--border-width) solid var(--color-border);margin-bottom:var(--spacing-sm)}.review-cell{padding:var(--spacing-xs) 0;border-bottom:none}}.about{max-width:var(--container-max-width);padding:var(--spacing-lg);text-align:left;margin:0 auto}.about-search{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.about-search-input{flex:1}.about-search-btn,.about-tab{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-white);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);cursor:pointer;font-family:inherit}.about-tabs{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.about-tab-active{background-color:var(--color-surface-dark);color:var(--color-white);border-color:var(--color-surface-dark)}.about-status{color:var(--color-gray);font-size:var(--font-size-sm)}.about-error{color:var(--color-danger);font-size:var(--font-size-sm)}.about-results{gap:var(--spacing-xs);flex-direction:column;list-style:none;display:flex}.about-result-link{align-items:baseline;gap:var(--spacing-sm);padding:var(--spacing-sm);border:var(--border-width) solid var(--color-gray-light);border-radius:var(--border-radius-lg);color:var(--color-black);text-decoration:none;display:flex}.about-result-link:hover{background-color:var(--color-bg-hover)}.about-badge{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-white);background-color:var(--color-gray);padding:var(--spacing-xxs) var(--spacing-xs);border-radius:var(--border-radius-sm);flex-shrink:0}.about-result-title{font-weight:700}.about-snippet{color:var(--color-gray);font-size:var(--font-size-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.about-rulebook{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.about-rulebook-select{padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);flex:auto;min-width:0;max-width:100%;font-family:inherit}.about-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.about-filter{align-items:center;gap:var(--spacing-xs);display:flex}.about-filter-label{font-size:var(--font-size-sm);color:var(--color-gray-dark)}.about-filter select{padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);font-family:inherit}.prereq-display{margin-top:var(--spacing-lg);text-align:left}.prereq-display h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}.prereq-groups{gap:var(--spacing-xs);flex-direction:column;list-style:none;display:flex}.prereq-group{padding:var(--spacing-xs) var(--spacing-sm);border-left:3px solid var(--color-gray-light)}.prereq-or{color:var(--color-gray);font-style:italic}.prereq-freetext{color:var(--color-surface-dark)}.prereq-edit-toggle,.prereq-editor button{padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);cursor:pointer;font-family:inherit}.prereq-editor{margin-top:var(--spacing-md);padding:var(--spacing-md);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);text-align:left}.prereq-editor-head{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.prereq-editor-head span{gap:var(--spacing-xs);display:flex}.prereq-editor-rows{gap:var(--spacing-xs);flex-direction:column;list-style:none;display:flex}.prereq-editor-row{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.prereq-editor-row select,.prereq-editor-row input{padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);font-family:inherit}.prereq-group-input{width:48px}.prereq-value-input{width:72px}.prereq-text-input{flex:1}.prereq-row-remove{color:var(--color-danger);font-weight:700}.prereq-editor-error{color:var(--color-danger);font-size:var(--font-size-sm)}.prereq-editor-actions{gap:var(--spacing-sm);margin-top:var(--spacing-md);display:flex}.detail{max-width:var(--container-max-width);padding:var(--spacing-lg);text-align:left;margin:0 auto}.detail-back{margin-bottom:var(--spacing-md);color:var(--color-gray-dark);display:inline-block}.detail-title{font-size:var(--font-size-xl);margin-right:var(--spacing-sm)}.detail-badge{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-white);background-color:var(--color-gray);padding:var(--spacing-xxs) var(--spacing-xs);border-radius:var(--border-radius-sm)}.detail-fields{margin-top:var(--spacing-md)}.detail-field{gap:var(--spacing-md);padding:var(--spacing-xs) 0;border-bottom:var(--border-width) solid var(--color-gray-light);display:flex}.detail-key{width:var(--skill-name-width);text-transform:capitalize;color:var(--color-gray-dark);flex-shrink:0;font-weight:700}.detail-value{white-space:pre-wrap}.detail-prereq{color:var(--color-surface-dark);text-decoration:underline}.detail-section{margin-top:var(--spacing-xl)}.detail-table{border-collapse:collapse;width:100%}.detail-table th,.detail-table td{padding:var(--spacing-xs) var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-gray-light);text-align:left}.detail-features{padding-left:var(--spacing-xl);list-style:outside}.detail-status{color:var(--color-gray)}.detail-error{color:var(--color-danger)}.detail-notfound{color:var(--color-gray-dark)}.sessions{max-width:var(--container-max-width);padding:var(--spacing-lg);text-align:left;margin:0 auto}.sessions-title{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}.sessions-error{color:var(--color-danger);font-size:var(--font-size-sm)}.sessions-forms{gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.sessions-form{gap:var(--spacing-sm);padding:var(--spacing-md);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);flex-direction:column;display:flex}.sessions-form input,.sessions-form select,.sessions-form button,.sessions-list a{font-family:inherit}.sessions-form input,.sessions-form select,.sessions-form button{padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white)}.sessions-group{margin-top:var(--spacing-lg)}.sessions-list{gap:var(--spacing-xs);flex-direction:column;list-style:none;display:flex}.sessions-list a{padding:var(--spacing-sm);border:var(--border-width) solid var(--color-gray-light);border-radius:var(--border-radius-lg);color:var(--color-black);justify-content:space-between;text-decoration:none;display:flex}.sessions-list a:hover{background-color:var(--color-bg-hover)}.sessions-name{font-weight:700}.sessions-meta,.sessions-empty{color:var(--color-gray);font-size:var(--font-size-sm)}.session-detail{max-width:var(--container-max-width);padding:var(--spacing-lg);text-align:left;margin:0 auto}.session-back{margin-bottom:var(--spacing-md);color:var(--color-gray-dark);display:inline-block}.session-title{font-size:var(--font-size-xl)}.session-status{color:var(--color-gray);font-size:var(--font-size-md)}.session-dm,.session-code{color:var(--color-gray-dark)}.session-roster{gap:var(--spacing-xs);margin:var(--spacing-sm) 0 var(--spacing-lg);flex-direction:column;list-style:none;display:flex}.session-roster li{align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);border-bottom:var(--border-width) solid var(--color-gray-light);display:flex}.session-player{width:var(--skill-name-width);font-weight:700}.session-char{flex:1}.session-error{color:var(--color-danger)}.session-empty{color:var(--color-gray)}.session-actions button,.session-remove{padding:var(--spacing-xs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);cursor:pointer;font-family:inherit}.combat-actions{margin-top:var(--spacing-md);text-align:left}.combat-actions-toggle{padding:var(--spacing-xs) var(--spacing-md);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-sm);color:var(--color-gray-dark);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;background:0 0;min-height:2.75rem}.combat-actions-toggle:hover{border-color:var(--color-accent);color:var(--color-black)}.combat-actions-list{margin-top:var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);background-color:var(--color-white)}.combat-action+.combat-action{border-top:var(--border-width) solid var(--color-border)}.combat-action-head{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);text-align:left;cursor:pointer;background:0 0;border:none;min-height:2.75rem;font-family:inherit;display:flex}.combat-action.is-open .combat-action-head{background-color:var(--color-accent-dim)}.combat-action-head:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:calc(-1 * var(--spacing-xxs))}.combat-action-name{flex:1;font-weight:700}.combat-action-cost{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray-dark)}.combat-action-provokes{padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-accent);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);color:var(--color-gray-dark)}.combat-action-body{padding:0 var(--spacing-md) var(--spacing-md)}.combat-action-check{margin:0 0 var(--spacing-xs);font-weight:700;font-size:var(--font-size-sm)}.combat-action-desc{margin:0 0 var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-dark);line-height:1.5}.combat-modifiers h5{margin:var(--spacing-sm) 0 var(--spacing-xxs);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:1px;color:var(--color-gray-dark)}.combat-total{margin-left:var(--spacing-sm);padding:var(--spacing-xxs) var(--spacing-sm);border-radius:var(--border-radius-sm);background-color:var(--color-accent-dim);border:var(--border-width) solid var(--color-accent);color:var(--color-black);font-size:var(--font-size-sm)}.combat-modifiers ul{margin:0;padding:0;list-style:none}.combat-modifiers li{padding:var(--spacing-xxs) 0;font-size:var(--font-size-sm)}.combat-modifiers label{align-items:baseline;gap:var(--spacing-xs);cursor:pointer;min-height:2.25rem;display:flex}.combat-mod-value{min-width:2.5rem;font-weight:700}.combat-mod-rule{padding-left:var(--spacing-lg);color:var(--color-gray-dark);font-style:italic;display:block}.combat-mod-always{color:var(--color-gray-dark);font-size:var(--font-size-xs)}.live{max-width:var(--container-max-width);padding:var(--spacing-lg);text-align:left;margin:0 auto}.live-head{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.live-back{color:var(--color-gray-dark)}.live-dot{font-size:var(--font-size-sm);padding:var(--spacing-xxs) var(--spacing-sm);border-radius:var(--border-radius-lg)}.live-on{color:var(--color-success)}.live-off{color:var(--color-danger)}.live-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.live-card{border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.live-card-head{margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:baseline;display:flex}.live-char{font-weight:700}.live-player,.live-classes{color:var(--color-gray);font-size:var(--font-size-sm)}.live-row{gap:var(--spacing-md);margin-top:var(--spacing-xs);display:flex}.live-abilities{gap:var(--spacing-sm);margin-top:var(--spacing-sm);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.live-empty{color:var(--color-gray)}.live-hp-controls{gap:var(--spacing-xs);margin-top:var(--spacing-sm);display:flex}.live-hp-amount{width:3.5rem;padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);font-family:inherit}.live-hp-controls button{padding:var(--spacing-xxs) var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);cursor:pointer;font-family:inherit}.live-effects-panel{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-md);flex-wrap:wrap;align-items:center;display:flex}.live-effects-panel select,.live-effects-panel input,.live-effects-panel button{padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-white);font-family:inherit}.live-tags{gap:var(--spacing-xxs);margin-top:var(--spacing-sm);flex-wrap:wrap;display:flex}.live-tag{font-size:var(--font-size-sm);padding:var(--spacing-xxs) var(--spacing-xs);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius-lg);background-color:var(--color-bg-hover)}.live-tag-x{cursor:pointer;color:var(--color-danger);margin-left:var(--spacing-xxs);background:0 0;border:none;font-family:inherit}.live-effects-error{color:var(--color-danger);font-size:var(--font-size-sm)}
