.builder-page{max-width:1440px;padding-bottom:38px}.builder-page .page-heading{margin-bottom:25px}.builder-page .page-heading p{max-width:680px;line-height:1.9}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:start}.builder-main{min-width:0}.builder-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:24px;border-bottom:1px solid #39313f;padding-bottom:17px}.builder-steps button{min-width:0;padding:8px 4px;display:flex;align-items:center;gap:8px;color:#8f849c;font-size:11px;text-align:left}.builder-steps button b{width:26px;height:26px;border:1px solid #4c4059;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;font-size:10px}.builder-steps button.active{color:#e0c8ef}.builder-steps button.active b{background:#b79ad5;color:#24172f;border-color:#b79ad5}.builder-panel{padding:25px;border:1px solid #42344d;border-radius:9px;background:linear-gradient(145deg,#24202b,#1b1b22);margin-bottom:20px;min-width:0}.builder-panel h2{font:500 21px var(--serif);margin-bottom:9px}.builder-panel h3{font-size:13px;color:#cbb3df;font-weight:500;margin:19px 0 11px}.builder-panel>.character-help{margin-bottom:20px}.builder-panel .field{min-width:0}.builder-panel .field select,.builder-panel .field input,.builder-panel .field textarea{width:100%;min-width:0}.builder-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.builder-rule-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:24px}.builder-rule-option{display:block;padding:16px 12px;border:1px solid #4a3a54;border-radius:7px;color:#ae9cbc;text-align:left}.builder-rule-option strong{font-size:14px;display:block;color:#e0cfeb}.builder-rule-option small{font-size:10px;margin-top:7px;display:block}.builder-rule-option.selected{background:#493550;border-color:#b895cf;box-shadow:0 0 0 1px #9c78b633}.builder-methods{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.builder-methods button{padding:10px 17px;border:1px solid #4f3c5d;border-radius:6px;font-size:12px}.builder-methods button.active{background:#b79ad5;color:#2c1c36}.builder-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.builder-stat{min-width:0;padding:15px;border:1px solid #4d3a59;border-radius:7px;background:#201d27}.builder-stat>span{font-size:12px;color:#c8b2d8}.builder-stat>span small{color:#877690;margin-left:5px;font-size:9px}.builder-stat input,.builder-stat select{width:100%;min-width:0;height:41px;border:1px solid #5e4670;border-radius:5px;background:#17151d;color:#e7d9ef;font-size:20px;text-align:center;margin:11px 0 8px;padding:4px}.builder-stat select{font-size:12px}.builder-stat>small{display:block;color:#9a86aa;font-size:10px;min-height:18px}.builder-budget{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0;padding:15px 18px;border:1px solid #59406a;border-radius:6px;background:#302339;font-size:12px}.builder-budget strong{color:#d4b4ec;font-size:19px}.builder-budget.over{border-color:#b47672;color:#e8bcb2}.builder-budget.over strong{color:#efb0a0}.builder-bonuses{display:flex;flex-wrap:wrap;gap:10px}.builder-bonuses label{min-width:95px;flex:1}.builder-roll-action{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.builder-roll-action p{flex:1;min-width:160px;font-size:11px;color:#a48ead}.builder-rolls{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.builder-rolls>span{border:1px solid #51415e;border-radius:6px;padding:7px 10px;color:#ac9ab8;font-size:11px}.builder-rolls b{color:#e3c9f7;margin-left:8px;font-size:16px}.builder-skill-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.builder-skill-choices label{min-width:0;display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #3f334b;border-radius:5px;color:#bda8ce;font-size:11px}.builder-skill-choices label:has(input:checked){border-color:#9b75b4;background:#372940;color:#e0c6ef}.builder-skill-choices label input{accent-color:#ba94d6;margin:0}.builder-fixed-skills{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 18px}.builder-fixed-skills span{padding:4px 8px;background:#292630;border-radius:5px;color:#ab9eb6;font-size:10px}.builder-skill-table{width:100%;border-collapse:collapse;font-size:11px}.builder-skill-table th{font-weight:400;color:#9a85aa;text-align:left;padding:10px 5px;border-bottom:1px solid #4e3a5c}.builder-skill-table td{padding:9px 5px;border-bottom:1px solid #332a3d}.builder-skill-table td small{display:block;color:#8c7999;font-size:9px}.builder-skill-table input{width:65px;padding:7px;border:1px solid #574066;background:#18151e;color:#e1cbed;border-radius:4px;text-align:center}.builder-skill-table td:last-child{color:#d3b8e8;font-weight:600}.builder-skill-table .skill-disabled{color:#6d6277}.builder-skill-search{margin-bottom:15px}.builder-money-choice{display:flex;gap:10px;align-items:flex-start;border:1px solid #4b3858;border-radius:6px;padding:14px;margin:10px 0;font-size:12px;color:#c4aed3}.builder-money-choice input{accent-color:#ba94d6;margin-top:3px}.builder-money-choice small{display:block;font-size:10px;color:#9882a8;line-height:1.9;margin-top:5px}.builder-money-choice:has(input:checked){background:#302437;border-color:#9472aa}.builder-equipment{color:#a893b8;font-size:11px;line-height:1.95;margin-top:10px}.builder-side{position:sticky;top:20px;min-width:0}.builder-summary{border:1px solid #5a4269;border-radius:9px;background:radial-gradient(ellipse at top right,#553d6655,transparent 70%),#25202b;padding:23px 20px}.builder-summary .eyebrow{font-size:9px;color:#b098c1}.builder-summary h2{font:500 23px/1.65 var(--serif);margin:10px 0 5px;overflow-wrap:anywhere}.builder-summary>p{font-size:11px;color:#af98bd;margin-bottom:18px}.builder-derived{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.builder-derived>div{padding:11px;background:#211a28;border:1px solid #473151;border-radius:5px;min-width:0}.builder-derived dt{color:#a48aB5;font-size:10px}.builder-derived dd{margin:4px 0 0;color:#e5cef6;font-size:18px;overflow-wrap:anywhere}.builder-summary-note{margin-top:17px;padding-top:15px;border-top:1px solid #4c365b;font-size:11px;line-height:1.9;color:#b99dcc;overflow-wrap:anywhere}.builder-errors{color:#e4b4a8;line-height:1.9;font-size:11px;margin-top:16px}.builder-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:22px}.builder-footer>.button{min-width:105px}.builder-review{margin:17px 0}.builder-review dt{color:#9b83a9;font-size:10px}.builder-review dd{margin:4px 0 16px;color:#d5bfdF;font-size:13px;overflow-wrap:anywhere}.builder-review-stats{display:flex;gap:12px;flex-wrap:wrap}.builder-review-stats span{padding:7px 12px;border:1px solid #493450;border-radius:5px;font-size:12px}.character-help{color:#a190af;font-size:11px;line-height:1.95}.character-error{color:#e3aa9d;font-size:12px;line-height:1.9;white-space:pre-wrap}.builder-source-list{margin-top:22px;border-top:1px solid #3d2e48;padding-top:16px;color:#877394;font-size:10px}.builder-source-list summary{cursor:pointer;color:#b09ac0}.builder-source-list a{display:block;color:#b499c8;overflow-wrap:anywhere;margin-top:10px}.builder-page input:disabled{opacity:.55}.builder-review-image{max-height:330px;object-fit:contain}.builder-page .loading-state{padding:70px 15px}.character-art-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:18px 0}.character-art-upload{min-width:0}.character-art-upload h3{font-size:13px;color:#d0b4e4;margin-bottom:12px}.character-art-preview{height:260px;display:flex;align-items:center;justify-content:center;position:relative;border:1px dashed #644c74;border-radius:8px;background:linear-gradient(145deg,#302539,#1b1722);overflow:hidden;margin-bottom:12px}.character-art-preview span{color:#9279a3;font-size:11px;max-width:160px;text-align:center;line-height:1.9}.character-art-preview img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;background:#231b2b;z-index:1}.character-art-preview.avatar img{object-fit:cover}.character-art-preview img:not([src]){display:none}.character-art-upload .text-button{margin-left:12px}.character-art-upload>p{font-size:10px;color:#b39ac3;line-height:1.8;margin-top:9px}.character-file-button{position:relative;cursor:pointer}.character-file-button input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.character-file-button:focus-within{outline:2px solid #bd96d5;outline-offset:3px}.character-card .character-avatar{overflow:hidden;position:relative}.character-card .character-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.character-card .character-avatar img:not([src]){display:none}.character-card .character-art-button{margin-top:9px}.character-profile-derived{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0}.character-profile-derived span{padding:7px 11px;border:1px solid #52395f;border-radius:5px;color:#c2a5d7;font-size:11px}
.character-art-preview{width:100%;min-width:0}
.builder-catalog-status{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;border:1px solid #51405f;background:#251e2d;border-radius:8px;padding:14px 18px;margin-bottom:20px;font-size:12px;color:#c4aed3}.builder-catalog-status p{flex:1;min-width:160px;line-height:1.8}.builder-catalog-status>div{display:flex;flex-wrap:wrap;gap:8px}.builder-catalog-status .button{font-size:12px;padding:9px 13px}
@media(max-width:1150px){.builder-layout{grid-template-columns:minmax(0,1fr) 240px;gap:17px}.builder-panel{padding:20px}.builder-skill-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-steps button{font-size:10px;gap:5px}}
@media(max-width:1000px){.builder-layout{grid-template-columns:minmax(0,1fr)}.builder-side{position:static;grid-row:1}.builder-summary{padding:18px}.builder-derived{grid-template-columns:repeat(4,minmax(0,1fr))}.builder-summary h2{font-size:21px}.builder-summary-note{margin-top:12px;padding-top:12px}.builder-steps{margin-bottom:18px}.builder-rule-option strong{font-size:12px}}
@media(max-width:760px){.builder-page .page-heading h1{white-space:normal}.builder-page .page-heading{padding-top:8px}.builder-panel{padding:17px}.builder-panel h2{font-size:18px}.builder-select-grid{grid-template-columns:minmax(0,1fr)}.builder-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.builder-stat{padding:12px}.builder-rule-options{gap:7px}.builder-rule-option{padding:12px 8px}.builder-rule-option small{font-size:9px}.builder-derived{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.builder-derived dd{font-size:16px}.builder-steps button{display:flex;flex-direction:column;gap:5px;align-items:flex-start;font-size:9px}.builder-skill-table{font-size:10px}.builder-skill-table input{width:49px;padding:6px 3px}.builder-skill-table th{font-size:9px}.builder-skill-table td:first-child{max-width:98px;overflow-wrap:anywhere}.builder-skill-table th:nth-child(2){min-width:27px}.character-art-grid{grid-template-columns:minmax(0,1fr)}.character-art-preview.avatar{height:220px}.character-art-preview.portrait{height:330px}.builder-side{grid-row:auto}.builder-footer{margin-bottom:15px}.builder-page .page-heading>.button{position:static;margin-top:13px}.builder-roll-action{align-items:flex-start}.builder-budget{padding:12px;gap:8px;font-size:11px}.builder-review-stats{gap:6px}.builder-review-stats span{padding:6px 9px;font-size:11px}}
.builder-choice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 7px}.builder-choice-heading h3{margin:0}.builder-choice-heading>[data-choice-count]{flex-shrink:0;background:#3a2d46;border:1px solid #5c456d;color:#e2c9f0;border-radius:20px;padding:4px 10px;font-size:12px;font-variant-numeric:tabular-nums}.builder-choice-help{font-size:12px;color:#aa9bb7;line-height:1.7;margin:0 0 12px}.builder-skill-choices label.choice-unavailable{opacity:.55;cursor:not-allowed}.builder-skill-choices label small{font-size:10px;color:#baa5c8;margin-left:auto}.builder-occupation-note{border-left:3px solid #79518f;background:#28212f;padding:12px 15px;border-radius:0 8px 8px 0;color:#c8b9d4;font-size:12px;line-height:1.85;overflow-wrap:anywhere}.builder-select-grid select[name="occupationId"],.builder-select-grid select[name="occupation-category"]{min-width:0;width:100%;max-width:100%}@media(max-width:600px){.builder-choice-heading{gap:8px;align-items:flex-start}.builder-choice-heading h3{font-size:15px;line-height:1.7}.builder-choice-heading>[data-choice-count]{font-size:11px;white-space:nowrap}.builder-skill-choices label small{font-size:9px}.builder-occupation-note{padding:11px;font-size:11px}}
