*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-dark: #0f0f13;--bg-surface: #1a1a22;--bg-card: #22222e;--bg-card-hover: #2a2a3a;--bg-selected: #2d2640;--border: #333345;--border-selected: #7c5cbf;--text-primary: #e8e6f0;--text-secondary: #9995a8;--text-muted: #6b6580;--accent: #9b6dff;--accent-hover: #b08aff;--accent-dim: #7c5cbf;--danger: #e05555;--success: #4caf80;--stalwart: #d44040;--vagabond: #4488cc;--mendicant: #44aa66;--wright: #cc8833;--sidebar-width: 220px;--char-sidebar-width: 240px}html{font-size:14px}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg-dark);color:var(--text-primary);line-height:1.55;min-height:100vh;margin:0;display:block}#root{min-height:100vh;max-width:none;margin:0;padding:0;text-align:left}h1,h2,h3,h4,h5{line-height:1.3;font-weight:600}button{cursor:pointer;font-family:inherit;border:none;background:none;color:inherit;padding:0;font-size:inherit;border-radius:0}input,select,textarea{font-family:inherit;font-size:inherit;color:var(--text-primary);background:var(--bg-dark);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;outline:none;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}ul{list-style:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.85rem;transition:all .15s;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-outline{border:1px solid var(--border);color:var(--text-secondary)}.btn-outline:hover{border-color:var(--accent);color:var(--text-primary)}.btn-ghost{color:var(--text-secondary)}.btn-ghost:hover{color:var(--text-primary)}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.25rem 0}.sidebar-header{padding:0 1rem 1.25rem;border-bottom:1px solid var(--border)}.sidebar-title{font-size:1.5rem;letter-spacing:.15em;color:var(--accent);margin:0}.sidebar-subtitle{font-size:.75rem;color:var(--text-muted);display:block;margin-top:.15rem}.sidebar-nav{padding:.75rem 0;flex:1}.sidebar-nav-item{padding:.6rem 1rem;display:flex;align-items:center;gap:.6rem;color:var(--text-secondary);font-size:.9rem;cursor:pointer;transition:all .15s}.sidebar-nav-item:hover{color:var(--text-primary);background:var(--bg-card)}.sidebar-nav-item.active{color:var(--accent);background:var(--bg-selected);border-right:2px solid var(--accent)}.nav-icon{font-size:1.1rem}.sidebar-footer{padding:1rem;border-top:1px solid var(--border)}.user-info{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.user-name{font-size:.8rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis}.local-mode-badge{font-size:.75rem;color:var(--text-muted);background:var(--bg-card);padding:.25rem .5rem;border-radius:4px;display:block;text-align:center}.main-content{flex:1;min-width:0;overflow-y:auto;height:100vh}.characters-page{display:flex;height:100%}.characters-sidebar{width:var(--char-sidebar-width);min-width:var(--char-sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column}.characters-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border)}.characters-sidebar-header h2{font-size:1rem;margin:0}.character-list{flex:1;overflow-y:auto}.character-list-item{display:flex;align-items:center;border-bottom:1px solid var(--border)}.character-list-item.active{background:var(--bg-selected);border-right:2px solid var(--accent)}.character-list-btn{flex:1;padding:.75rem 1rem;text-align:left;display:flex;flex-direction:column;gap:.15rem}.character-list-btn:hover{background:var(--bg-card-hover)}.character-list-name{font-weight:500;font-size:.9rem}.character-list-info{font-size:.75rem;color:var(--text-muted)}.character-delete-btn{padding:.5rem;color:var(--text-muted);font-size:1.1rem;line-height:1}.character-delete-btn:hover{color:var(--danger)}.character-list-empty{padding:1.5rem 1rem;color:var(--text-muted);font-size:.85rem;text-align:center}.characters-main{flex:1;overflow-y:auto;height:100vh}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--text-muted);text-align:center;padding:2rem}.empty-state h2{color:var(--text-primary)}.character-creator{padding:1.5rem 2rem 3rem;max-width:900px}.creator-header{margin-bottom:1.5rem}.character-name-input{font-size:1.5rem;font-weight:600;background:transparent;border:none;border-bottom:2px solid var(--border);padding:.3rem 0;width:100%;color:var(--text-primary);margin-bottom:1rem}.character-name-input:focus{border-bottom-color:var(--accent)}.character-name-input::placeholder{color:var(--text-muted)}.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border)}.tab{padding:.6rem 1.25rem;font-size:.9rem;font-weight:500;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all .15s}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.creator-section{margin-top:2rem}.section-title{font-size:1.1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.6rem}.step-number{width:1.6rem;height:1.6rem;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0}.section-desc{color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem}.rules-note{background:var(--bg-card);border-left:3px solid var(--accent);padding:.75rem 1rem;font-size:.85rem;color:var(--text-secondary);border-radius:0 6px 6px 0;margin-bottom:.5rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.selection-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem;text-align:left;transition:all .15s}.selection-card:hover{border-color:var(--accent-dim);background:var(--bg-card-hover)}.selection-card.selected{border-color:var(--accent);background:var(--bg-selected);box-shadow:0 0 0 1px var(--accent)}.selection-card h3{font-size:.95rem;margin-bottom:.4rem}.selection-card p{font-size:.8rem;color:var(--text-secondary);line-height:1.45}.card-tag{display:inline-block;margin-top:.5rem;font-size:.7rem;color:var(--accent);font-style:italic}.bond-list{display:flex;flex-direction:column;gap:.5rem}.bond-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden}.bond-card.selected{border-color:var(--accent)}.bond-header{width:100%;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;text-align:left}.bond-header:hover{background:var(--bg-card-hover)}.bond-header-left h3{font-size:.95rem;margin:0}.bond-actions{font-size:.8rem;color:var(--text-muted)}.expand-icon{color:var(--text-muted);font-size:.85rem}.bond-details{padding:0 1rem 1rem;border-top:1px solid var(--border)}.bond-description{font-size:.85rem;color:var(--text-secondary);margin:.75rem 0;font-style:italic}.bond-subsection{margin-top:1.25rem}.bond-subsection h4{font-size:.9rem;color:var(--text-primary);margin-bottom:.5rem}.ideals-list li{font-size:.85rem;color:var(--text-secondary);padding:.2rem 0 .2rem 1rem;position:relative}.ideals-list li:before{content:"—";position:absolute;left:0;color:var(--text-muted)}.action-choice{display:flex;gap:.5rem}.powers-list{display:flex;flex-direction:column;gap:.5rem}.power-card{background:var(--bg-dark);border:1px solid var(--border);border-radius:6px;padding:.6rem .75rem}.power-card.selected{border-color:var(--success);background:#4caf8014}.power-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem;flex-wrap:wrap}.power-select-btn{width:1.3rem;height:1.3rem;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;color:var(--text-muted)}.power-select-btn.active{background:var(--success);border-color:var(--success);color:#fff}.power-select-btn:disabled{opacity:.4;cursor:not-allowed}.uses-badge{font-size:.7rem;background:var(--bg-card);padding:.1rem .4rem;border-radius:3px;color:var(--accent)}.gambit-badge{font-size:.7rem;color:var(--text-muted);font-style:italic}.power-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.gear-kit{font-size:.8rem;color:var(--text-secondary);padding:.4rem 0;border-bottom:1px solid var(--border)}.gear-kit:last-child{border-bottom:none}.action-ratings{display:flex;flex-direction:column;gap:.4rem}.action-rating-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-card);border-radius:6px;gap:1rem}.action-info{flex:1;min-width:0}.action-name{font-weight:600;font-size:.9rem;margin-right:.5rem}.action-desc{font-size:.75rem;color:var(--text-muted)}.action-dots{display:flex;align-items:center;gap:.3rem;flex-shrink:0}.dot{width:1.4rem;height:1.4rem;border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-muted);transition:all .15s}.dot:hover{border-color:var(--accent);color:var(--accent)}.dot.filled{background:var(--accent);border-color:var(--accent);color:#fff}.dot.bond-dot{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.dot-count{font-size:.8rem;color:var(--text-muted);min-width:1rem;text-align:center}.text-danger{color:var(--danger)}.job-class-grid{display:flex;flex-direction:column;gap:.5rem}.job-class-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden}.job-class-card.selected{border-color:var(--accent)}.job-class-header{width:100%;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;text-align:left}.job-class-header:hover{background:var(--bg-card-hover)}.job-class-name{font-size:1rem;margin:0}.class-stalwart{color:var(--stalwart)}.class-vagabond{color:var(--vagabond)}.class-mendicant{color:var(--mendicant)}.class-wright{color:var(--wright)}.job-stats-mini{font-size:.8rem;color:var(--text-muted)}.job-class-details{padding:0 1rem 1rem;border-top:1px solid var(--border)}.stat-block{display:flex;gap:1.5rem;margin:1rem 0}.stat{display:flex;flex-direction:column;align-items:center}.stat-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.3rem;font-weight:700;color:var(--accent)}.trait-block{margin:1rem 0;padding:.75rem;background:var(--bg-dark);border-radius:6px}.trait-block h4{font-size:.9rem;margin-bottom:.4rem;display:flex;align-items:center;gap:.5rem}.trait-tag{font-size:.65rem;text-transform:uppercase;background:var(--accent-dim);color:#fff;padding:.1rem .4rem;border-radius:3px;font-weight:600;letter-spacing:.03em}.trait-block p{font-size:.82rem;color:var(--text-secondary);line-height:1.55}.souls-section{margin-top:1.5rem}.souls-section h4{margin-bottom:.3rem}.soul-group{margin-top:1rem}.soul-name{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}.advanced-job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.advanced-job-card{background:var(--bg-dark);border:1px solid var(--border);border-radius:6px;padding:.6rem .75rem;text-align:left;display:flex;align-items:center;gap:.5rem;transition:all .15s}.advanced-job-card:hover{border-color:var(--accent-dim)}.advanced-job-card.selected{border-color:var(--accent);background:var(--bg-selected)}.job-number{font-size:.7rem;color:var(--text-muted)}.job-name{font-size:.85rem;font-weight:500}.combat-summary{background:var(--bg-card);border-radius:8px;padding:1rem}.summary-row{display:flex;justify-content:space-between;padding:.35rem 0;font-size:.85rem;border-bottom:1px solid var(--border)}.summary-row:last-child{border-bottom:none}.summary-row span{color:var(--text-secondary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:2rem;min-width:350px;max-width:420px;position:relative}.modal-close{position:absolute;top:.75rem;right:1rem;font-size:1.4rem;color:var(--text-muted)}.modal-close:hover{color:var(--text-primary)}.modal-title{margin-bottom:1.25rem;font-size:1.2rem}.error-banner{background:#e0555526;border:1px solid var(--danger);color:var(--danger);padding:.5rem .75rem;border-radius:6px;font-size:.8rem;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:.3rem}.form-group input{width:100%}.form-footer{text-align:center;margin-top:1rem;font-size:.8rem;color:var(--text-muted)}.form-hint{font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem}.link-btn{color:var(--accent)!important;text-decoration:underline;font-size:inherit}.link-btn:hover{color:var(--accent-hover)!important}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-dark);color:var(--text-muted)}.auth-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-dark);padding:2rem}.auth-gate-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem;min-width:340px;max-width:400px;width:100%}.auth-gate-header{text-align:center;margin-bottom:1.5rem}.auth-gate-title{font-size:1.75rem;margin-bottom:.25rem}.auth-gate-subtitle{font-size:.9rem;color:var(--text-secondary)}.auth-gate .modal-title{margin-top:0}.wizard{display:flex;flex-direction:column;height:100%}.wizard-header{padding:1.25rem 1.5rem 0;border-bottom:1px solid var(--border);flex-shrink:0}.wizard-body{flex:1;overflow-y:auto;padding:1.5rem}.wizard-step{max-width:860px}.wizard-step-title{font-size:1.1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.6rem}.step-hint{color:var(--text-secondary);font-size:.85rem;margin-bottom:1rem}.wizard-nav{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0}.wizard-nav-right{display:flex;flex-direction:row;align-items:center;gap:.75rem}.nav-hint{font-size:.8rem;color:var(--text-muted)}.wizard-progress{display:flex;align-items:flex-start;overflow-x:auto;padding:.75rem 0;gap:0}.progress-item{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.progress-line{height:2px;flex:1;min-width:1rem;background:var(--border);margin-top:.9rem;align-self:auto}.progress-line.active{background:var(--accent)}.progress-dot{width:1.8rem;height:1.8rem;border-radius:50%;border:2px solid var(--border);background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0;transition:all .15s;color:var(--text-muted)}.progress-dot:hover{border-color:var(--accent-dim);color:var(--text-primary)}.progress-dot.current{background:var(--accent);border-color:var(--accent);color:#fff}.progress-dot.completed{background:var(--accent-dim);border-color:var(--accent-dim);color:#fff}.progress-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:.3rem;white-space:nowrap}.progress-label.current{color:var(--accent)}.progress-label.completed{color:var(--text-secondary)}.bond-select-list{display:flex;flex-direction:column;gap:.5rem}.bond-select-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;text-align:left;width:100%;padding:.75rem 1rem;transition:all .15s}.bond-select-card:hover{background:var(--bg-card-hover);border-color:var(--accent-dim)}.bond-select-card.selected{border-color:var(--accent);background:var(--bg-selected);box-shadow:0 0 0 1px var(--accent)}.bond-select-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3rem}.bond-select-name{font-weight:600;font-size:.95rem}.bond-select-actions{font-size:.8rem;color:var(--accent)}.bond-select-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5;margin:0}.bond-config-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.bond-config-header h3{margin-bottom:.4rem}.bond-stat-row{display:flex;gap:1.25rem;flex-wrap:wrap;margin:.5rem 0}.bond-stat{font-size:.85rem;color:var(--text-secondary)}.bond-stat strong{color:var(--accent)}.bond-ability-block{display:flex;flex-direction:column;gap:.5rem;background:var(--bg-card);padding:.75rem 1rem;border-radius:6px;font-size:.85rem;color:var(--text-secondary);line-height:1.55}.bond-ability-block strong{color:var(--text-primary)}.bond-ideals{margin-top:1rem}.config-section{margin-top:1.5rem}.config-section-title{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.9rem}.required-badge{color:var(--accent);font-size:.75rem;font-style:italic;font-weight:400}.optional-badge{color:var(--text-muted);font-size:.75rem;font-style:italic;font-weight:400}.btn-lg{padding:.65rem 1.5rem;font-size:1rem}.gear-kit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.5rem}.gear-kit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;text-align:left;padding:.75rem 1rem;transition:all .15s;display:flex;flex-direction:column;gap:.25rem}.gear-kit-card:hover{background:var(--bg-card-hover);border-color:var(--accent-dim)}.gear-kit-card.selected{border-color:var(--accent);background:var(--bg-selected);box-shadow:0 0 0 1px var(--accent)}.gear-kit-name{font-weight:600;font-size:.9rem;display:block}.gear-kit-items{font-size:.78rem;color:var(--text-secondary);line-height:1.45}.dots-remaining-bar{display:flex;gap:.75rem;align-items:center;margin-bottom:.5rem;font-size:.85rem}.dots-done-badge{font-weight:500}.text-success{color:var(--success)}.bond-tag{display:inline-block;font-size:.7rem;background:#9b6dff26;color:var(--accent);padding:.1rem .4rem;border-radius:3px;border:1px solid var(--accent-dim);white-space:nowrap}.review-section{background:var(--bg-card);border-radius:8px;padding:.75rem 1rem;margin-bottom:.75rem}.review-section-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:.5rem;margin-bottom:.5rem}.review-section-header h4{font-size:.9rem;margin:0}.review-row{display:flex;gap:.75rem;padding:.3rem 0;font-size:.85rem}.review-label{color:var(--text-secondary);min-width:100px;flex-shrink:0}.review-value{color:var(--text-primary)}.review-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:.2rem .5rem}.review-action{display:flex;align-items:center;justify-content:space-between;padding:.25rem 0;color:var(--text-muted)}.review-action.has-dots{color:var(--text-primary)}.review-action-info{display:flex;align-items:center;gap:.35rem}.review-action-name{font-size:.82rem}.review-dots{display:flex;gap:3px}.review-dot{width:.7rem;height:.7rem;border-radius:50%;border:1px solid var(--border);display:inline-block}.review-dot.filled{background:var(--accent);border-color:var(--accent)}.character-sheet{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:1.5rem}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:1rem;margin-bottom:1.25rem;flex-shrink:0}.sheet-character-name{font-size:2rem;font-weight:700;line-height:1.1}.sheet-header-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.sheet-tag{background:var(--bg-card);font-size:.75rem;padding:.2rem .5rem;border-radius:4px;border:1px solid var(--border);color:var(--text-secondary)}.sheet-tag-bond{border-color:var(--accent-dim);color:var(--accent)}.sheet-tag-class{font-weight:600}.sheet-level-row{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.82rem;color:var(--text-secondary)}.xp-bar{flex:1;max-width:120px;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.xp-bar-fill{height:100%;background:var(--accent);transition:width .3s ease}.sheet-xp-label{color:var(--text-muted);font-size:.78rem}.sheet-body{display:flex;gap:1.25rem;flex:1}.sheet-col{display:flex;flex-direction:column;gap:.75rem}.sheet-col-left{flex:3}.sheet-col-right{flex:2}.sheet-section{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem}.sheet-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.sheet-section-title{font-size:.95rem;margin:0}.sheet-bond-desc{font-style:italic;color:var(--text-secondary);font-size:.82rem;line-height:1.5;margin-bottom:.5rem}.sheet-stats-row{display:flex;gap:1.25rem;margin:.5rem 0}.sheet-stat{display:flex;flex-direction:column;align-items:center}.sheet-stat-val{font-size:1.2rem;font-weight:700;color:var(--accent)}.sheet-ability{padding:.5rem 0;border-top:1px solid var(--border);font-size:.82rem}.sheet-ability:first-of-type{border-top:none}.sheet-ability-name{font-weight:600;color:var(--text-primary);margin-bottom:.2rem}.sheet-ability-desc{color:var(--text-secondary);line-height:1.5}.sheet-ideals{list-style:none;font-size:.82rem;color:var(--text-secondary);display:flex;flex-direction:column;gap:.3rem}.sheet-ideals li{padding-left:1rem;position:relative}.sheet-ideals li:before{content:"—";position:absolute;left:0;color:var(--text-muted)}.sheet-ideal{padding-left:0;position:static;display:flex;align-items:flex-start;gap:.5rem}.sheet-ideal:before{display:none}.sheet-ideal.checked{color:var(--text-muted);text-decoration:line-through}.ideal-check{width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;color:var(--text-muted);margin-top:.1rem;transition:all .15s}.ideal-check:hover{border-color:var(--success);color:var(--success)}.ideal-check.checked{background:var(--success);border-color:var(--success);color:#fff}.sheet-power{padding:.5rem 0;border-bottom:1px solid var(--border)}.sheet-power:last-child{border-bottom:none}.sheet-power-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.sheet-power-name{font-weight:500;font-size:.9rem}.sheet-power-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5;margin:0}.sheet-gear-kit{padding:.5rem 0;border-bottom:1px solid var(--border)}.sheet-gear-kit:last-child{border-bottom:none}.sheet-gear-kit.preferred{background:var(--bg-selected);margin:0 -1rem;padding:.5rem 1rem}.sheet-gear-kit-name{font-weight:500;font-size:.9rem;display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.preferred-tag{font-size:.65rem;background:#9b6dff26;color:var(--accent);padding:.1rem .35rem;border-radius:3px;border:1px solid var(--accent-dim);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.sheet-gear-kit-items{font-size:.78rem;color:var(--text-muted);line-height:1.45}.sheet-actions{display:flex;flex-direction:column;gap:.15rem}.sheet-action{display:flex;justify-content:space-between;align-items:center;padding:.3rem .4rem;border-radius:4px;color:var(--text-muted);font-size:.82rem}.sheet-action.has-dots{color:var(--text-primary)}.sheet-action-info{display:flex;align-items:center;gap:.4rem}.sheet-action-name{font-size:.85rem}.sheet-action-dots{display:flex;gap:3px}.sheet-dot{width:1.1rem;height:1.1rem;border-radius:50%;border:1px solid var(--border);display:inline-block;flex-shrink:0}.sheet-dot.filled{background:var(--accent);border-color:var(--accent)}.sheet-combat-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.5rem 0}.sheet-combat-stat{display:flex;flex-direction:column;align-items:center}.sheet-combat-stat-val{font-size:1.5rem;font-weight:700;color:var(--accent);line-height:1.1}.sheet-combat-stat-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem}.sheet-advanced-job{display:flex;gap:.5rem;align-items:center;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.sheet-advanced-job-hint{font-size:.8rem;color:var(--text-muted);margin-top:.5rem;font-style:italic}.sheet-origin-row{display:flex;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.sheet-origin-row:last-child{border-bottom:none}.sheet-origin-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;min-width:60px;padding-top:.15rem;flex-shrink:0}.sheet-origin-name{font-weight:500;font-size:.9rem;margin-bottom:.2rem}.sheet-origin-desc{font-size:.78rem;color:var(--text-secondary);line-height:1.45}.sheet-origin-values{font-size:.75rem;color:var(--accent);font-style:italic;margin-top:.2rem}.sheet-tab-bar{display:flex;border-bottom:1px solid var(--border);padding:0 1.5rem;gap:0;background:var(--bg-surface)}.sheet-tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;font-size:.9rem;font-weight:500;padding:.75rem 1.25rem;margin-bottom:-1px;transition:color .15s,border-color .15s}.sheet-tab-btn:hover{color:var(--text-primary)}.sheet-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.ability-tier-group{margin-top:1rem}.ability-tier-heading{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .5rem}.ability-list{display:flex;flex-direction:column;gap:.5rem}.ability-card{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.75rem}.ability-header{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;margin-bottom:.35rem}.ability-name{font-weight:600;font-size:.9rem;color:var(--text-primary)}.ability-cost{font-size:.78rem;color:var(--text-muted);margin-left:auto;white-space:nowrap}.ability-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.4rem}.ability-tag{font-size:.7rem;font-weight:500;background:var(--bg-surface);border:1px solid var(--border);border-radius:3px;padding:.1rem .45rem;color:var(--text-secondary)}.ability-flavor{font-size:.8rem;font-style:italic;color:var(--text-muted);margin:0 0 .35rem}.ability-effect{font-size:.82rem;color:var(--text-secondary);margin:0;white-space:pre-line;line-height:1.5}.limit-break-card{background:color-mix(in srgb,var(--accent) 8%,var(--bg-card));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-radius:6px;padding:.75rem;margin-top:1rem}.limit-break-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--accent);color:#fff;border-radius:3px;padding:.15rem .5rem}.talents-section{margin-top:1rem}.talents-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.talent-card{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.65rem .75rem}.talent-name{font-weight:600;font-size:.82rem;color:var(--text-primary);margin-bottom:.25rem}.talent-desc{font-size:.78rem;color:var(--text-secondary);line-height:1.45}.job-keyword-block{display:flex;gap:.5rem;align-items:baseline;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;margin-bottom:.75rem}.keyword-name{font-weight:700;font-size:.82rem;color:var(--accent);white-space:nowrap}.keyword-desc{font-size:.8rem;color:var(--text-secondary)}.job-preview-panel{margin-top:1.5rem;background:var(--bg-surface);border:1px solid var(--border-selected);border-radius:8px;padding:1.25rem}.job-preview-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.job-preview-name{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0}.sheet-body-combat{flex-direction:column;gap:0;padding:1.5rem;max-width:900px}.sheet-body-combat .sheet-section{max-width:100%}@media(max-width:768px){.app-layout{flex-direction:column}.sidebar{width:100%;min-width:100%;flex-direction:row;padding:0;border-right:none;border-bottom:1px solid var(--border)}.sidebar-header{padding:.75rem 1rem;border-bottom:none}.sidebar-nav{display:flex;padding:0}.sidebar-nav-item{border-right:none}.sidebar-nav-item.active{border-right:none;border-bottom:2px solid var(--accent)}.sidebar-footer{border-top:none;padding:.75rem}.main-content{height:auto}.characters-page{flex-direction:column}.characters-sidebar{width:100%;min-width:100%;max-height:200px;border-right:none;border-bottom:1px solid var(--border)}.characters-main{height:auto}.character-creator{padding:1rem}.card-grid,.advanced-job-grid,.talents-grid{grid-template-columns:1fr}.sheet-body{flex-direction:column}.review-actions-grid{grid-template-columns:1fr}.wizard-progress{padding-bottom:.5rem}.progress-label{display:none}}@media(max-width:900px){.sheet-body{flex-direction:column}.sheet-combat-stats{grid-template-columns:repeat(2,1fr)}}.level-up-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.level-up-modal{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:680px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.level-up-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-surface);z-index:1}.level-up-modal-title{font-size:1.2rem;font-weight:700;color:var(--accent)}.level-up-step{padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.level-up-step-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.level-up-section{display:flex;flex-direction:column;gap:.75rem}.level-up-section-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.level-up-check{color:var(--success);font-size:.85em;margin-left:.5rem}.level-up-choice-picker{display:flex;flex-direction:column;gap:.75rem}.level-up-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.level-up-modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;border-top:1px solid var(--border);margin-top:auto}.ability-pick-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.75rem;text-align:left;cursor:pointer;transition:border-color .15s,background .15s;width:100%;color:var(--text-primary)}.ability-pick-card:hover{background:var(--bg-card-hover);border-color:var(--accent-dim)}.ability-pick-card.selected{background:var(--bg-selected);border-color:var(--border-selected)}.ability-pick-grid{display:flex;flex-direction:column;gap:.5rem}.combat-xp-section{background:var(--bg-card);border-radius:8px;padding:1rem 1.25rem}.combat-xp-triggers{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0}.combat-xp-trigger-row{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;border-radius:6px;transition:background .15s}.combat-xp-trigger-row.checked{background:#9b6dff14}.combat-xp-footer{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:.75rem;border-top:1px solid var(--border);margin-top:.5rem}.xp-bar-row{display:flex;align-items:center;gap:.75rem;flex:1;min-width:160px}.xp-bar{position:relative;flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.xp-bar-pending{position:absolute;top:0;height:100%;background:#9b6dff66;border-radius:0 4px 4px 0}.active-abilities-notice{font-size:.8rem;font-weight:600;color:var(--accent);background:#9b6dff1f;padding:.15rem .5rem;border-radius:12px;margin-left:.5rem}.jobs-list{display:flex;flex-direction:column;gap:.5rem}.job-entry{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;gap:.75rem}.job-entry-info{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.job-entry-name{font-weight:600;color:var(--text-primary)}.job-level-badge{font-size:.75rem;font-weight:600;color:var(--accent);background:#9b6dff1f;padding:.1rem .4rem;border-radius:10px;white-space:nowrap}.job-main-badge{font-size:.75rem;font-weight:600;color:var(--success);background:#4caf8026;padding:.1rem .4rem;border-radius:10px}.set-main-btn{white-space:nowrap;flex-shrink:0}.new-job-browser{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.new-job-class-section{border:1px solid var(--border);border-radius:8px;padding:.75rem;background:var(--bg-card)}.new-job-class-name{font-size:.95rem;font-weight:700;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em}.new-job-soul-group{margin-bottom:.5rem}.new-job-soul-group:last-child{margin-bottom:0}
