:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--bg: #00000f;--panel: #142238;--panel-soft: #1b2d46;--panel-deep: #07101f;--panel-raised: #243a58;--control: #294565;--control-hover: #35597e;--text: #f4f7ff;--muted: #9aa8ba;--accent: #4aa3ff;--accent-strong: #74bcff;--accent-muted: rgba(74, 163, 255, .16);--success: #66d69a;--success-muted: rgba(102, 214, 154, .16);--danger: #ff747e;--danger-muted: rgba(255, 116, 126, .16);background:var(--bg);color:var(--text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:var(--bg)}button,input,select{font:inherit}select{cursor:pointer;border-right:10px solid transparent!important}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:var(--accent-strong)}.app-shell{width:min(1560px,calc(100% - 32px));margin:0 auto;padding:18px 0 46px}.topbar,.title-row,.section-header,.card-header,.card-actions,.code-row,.config-link-row,.roulette-band,.api-status,.job-panel-header,.collapse-title,.result-header,.result-card{display:flex;align-items:center}.topbar{align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px}.brand-block{display:grid;gap:5px;padding-top:2px}.title-row{flex-wrap:wrap;gap:10px}.eyebrow,.slot-label,.summary-label,.section-header p,.role-slot span,.collapse-meta{margin:0;min-height:1em;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:0}h1,h2,h3{margin:0;letter-spacing:0}h1{font-size:clamp(1.45rem,2.5vw,2.15rem);line-height:1.05}h2{font-size:1.12rem}h3{min-height:1.35em;font-size:1rem;color:var(--text)}.api-status{position:relative;gap:7px;min-height:28px;padding:4px 9px;border-radius:999px;background:var(--panel-raised);color:var(--muted);font-size:.78rem;white-space:nowrap}.api-status-ready{background:var(--success-muted);color:var(--success)}.api-status-error{background:var(--danger-muted);color:var(--danger)}.status-dot{width:7px;height:7px;border-radius:999px;background:currentColor}.info-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);outline:none}.info-trigger:hover,.info-trigger:focus-visible{color:var(--accent-strong)}.tooltip{position:absolute;right:0;top:calc(100% + 8px);z-index:10;width:min(300px,80vw);display:none;padding:9px 11px;border-radius:6px;background:#0d1728;color:var(--text);font-size:.78rem;line-height:1.35;text-transform:none;white-space:normal;box-shadow:0 16px 34px #0000006b}.info-trigger:hover .tooltip,.info-trigger:focus-visible .tooltip{display:block}.save-strip{width:min(760px,100%);display:grid;gap:7px;justify-items:end}.code-row,.config-link-row{width:100%;justify-content:flex-end;gap:8px}.config-link-row{color:#c0ccda;font-size:.84rem}.config-link-row a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-input{max-width:170px;text-transform:uppercase}.code-input::placeholder{color:#89929e;opacity:1}.recent-code-select{max-width:160px}.section-header{justify-content:space-between;gap:16px;margin:0 0 12px}.section-header.compact{margin-top:0}.players-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;padding:0 12px 12px}.player-card{min-width:0;display:grid;align-content:start;gap:12px;padding:14px;border-radius:8px;background:var(--panel);box-shadow:0 12px 30px #0003}.card-header{min-height:40px;justify-content:space-between;gap:12px}.card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px}.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}label{display:grid;gap:6px;color:#c7d1df;font-size:.82rem}input,select{width:100%;min-height:38px;border:0;border-radius:6px;background:var(--control);color:var(--text);padding:0 10px;outline:none}input:focus,select:focus{box-shadow:0 0 0 3px var(--accent-muted)}.primary-button,.secondary-button,.tiny-button,.icon-button,.roulette-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:0;border-radius:6px;color:var(--text);text-decoration:none}.primary-button,.roulette-button{background:var(--accent);color:#03111f;font-weight:760}.primary-button:hover,.roulette-button:hover{background:var(--accent-strong)}.primary-button:disabled{background:var(--panel-raised);color:#b8c7d8}.secondary-button,.tiny-button,.icon-button{background:var(--control)}.secondary-button:hover,.tiny-button:hover,.icon-button:hover{background:var(--control-hover)}.tiny-button{min-height:32px;padding:0 10px;font-size:.8rem}.secondary-button,.primary-button{padding:0 14px}.icon-button{width:38px;min-width:38px;padding:0}.icon-button.small{width:32px;min-width:32px;min-height:32px}.icon-button.reroll{width:20px;min-width:20px;min-height:20px}.collapsible-section{display:grid;gap:12px;border-radius:8px;background:var(--panel-deep)}.collapsible-header{margin-bottom:0;align-items:stretch;gap:10px}.collapse-title{flex:1 1 auto;justify-content:space-between;gap:8px;min-height:42px;padding:6px 16px;border:0;border-radius:6px;background:var(--panel);color:var(--text);text-align:left}.collapse-title:hover,.collapse-title:focus-visible{background:var(--panel-soft);outline:none}.collapse-title-text{flex:1 1 auto;display:grid;gap:1px}.collapse-heading{font-size:1.12rem;font-weight:700}.lodestone-icon{width:15px;height:15px;display:inline-block;flex:0 0 auto;background:currentColor;-webkit-mask:url(/lodestone.svg) center / contain no-repeat;mask:url(/lodestone.svg) center / contain no-repeat}.lodestone-update-button{min-width:86px}.lodestone-update-button.loading{color:var(--accent-strong)}.lodestone-update-button.updated{background:var(--success-muted);color:var(--success)}.lodestone-update-button.error{background:var(--danger-muted);color:var(--danger)}.job-panel{min-width:0;display:grid;gap:9px;padding:2px 0 0;border-radius:6px;background:transparent}.job-panel.empty{background:transparent}.job-panel-header{justify-content:space-between;gap:10px}.job-count{color:#c0ccda;font-size:.78rem;white-space:nowrap}.job-panel-groups{display:grid;gap:8px}.job-panel-row{min-width:0}.job-pill-list{min-width:0;display:flex;flex-wrap:wrap;gap:5px}.job-pill{--job-accent: var(--accent);--job-accent-muted: var(--accent-muted);min-height:28px;padding:0 8px;border:0;border-radius:6px;background:var(--panel-deep);color:#d8e1ec;font-size:.74rem;font-weight:760}.job-pill:hover,.job-pill:focus-visible{background:#18243a;outline:none}.job-pill.selected{background:var(--job-accent-muted);color:var(--job-accent)}.job-tone-tank{--job-accent: #69adff;--job-accent-muted: rgba(105, 173, 255, .17)}.job-tone-healer{--job-accent: #72dfa0;--job-accent-muted: rgba(114, 223, 160, .15)}.job-tone-dps{--job-accent: #ff858b;--job-accent-muted: rgba(255, 133, 139, .15)}.roles-band{margin-top:24px;padding:16px;border-radius:8px;background:var(--panel-deep)}.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.role-slot{width:100%}.roulette-band{min-height:138px;flex-direction:column;justify-content:center;gap:16px;margin:28px 0 10px}.roulette-button{min-width:min(340px,100%);min-height:56px;padding:0 26px;font-size:1.04rem}.result-panel{width:100%;display:grid;gap:12px;padding:16px;border-radius:8px;background:var(--panel-deep)}.result-header{justify-content:space-between;gap:12px}.result-header p{margin:0;color:var(--muted);font-size:.78rem;text-transform:uppercase}.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.result-card{position:relative;min-width:0;justify-content:space-between;flex-direction:column;gap:10px;padding:10px;border-radius:6px;background:var(--panel-soft)}.reroll-btn{position:absolute;top:10px;right:10px}.result-card h3{min-height:0}.result-job-display{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:108px}.result-job-header{display:flex;padding-left:8px;flex-direction:column;align-self:start;gap:6px}.job-sprite{width:96px;height:96px;object-fit:contain;display:block}.job-sprite.spinning{animation:reel-flicker .11s steps(1) infinite}@keyframes reel-flicker{0%,to{opacity:1}50%{opacity:.3}}.job-sprite-placeholder{width:96px;height:96px;border-radius:8px;background:var(--panel-raised)}.job-sprite-label{font-size:1.5rem;color:var(--job-accent, var(--accent-strong));white-space:nowrap;text-align:center;max-width:200px;overflow:hidden;text-overflow:ellipsis}.result-empty{min-height:58px;display:grid;place-items:center;margin:0;border-radius:6px;background:var(--panel-soft);color:var(--muted)}.roulette-message{margin:0;color:#c7d1df}.error-text{color:var(--danger)}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.app-shell{width:min(100% - 18px,1560px);padding-top:16px}.topbar{flex-direction:column}.save-strip{justify-items:stretch}.code-row,.config-link-row{justify-content:flex-start}.code-row{flex-wrap:wrap}.code-input,.recent-code-select{max-width:none;flex:1 1 150px}.field-grid{grid-template-columns:1fr}.card-header{align-items:flex-start}.card-actions{justify-content:flex-end}.players-grid{grid-template-columns:1fr}.collapsible-header{flex-wrap:wrap}.collapse-title{min-width:min(260px,100%)}.role-slot{width:100%}}
