.tools-note{margin:var(--sp-3) 0 0;color:var(--text-muted);font-size:var(--fs-table)}.tools-about{margin-top:var(--sp-5)}.tool-bar,.tool-panel,.build-save{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-3)}.tool-bar{padding:var(--sp-2) var(--sp-3);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.panel .tool-bar{padding:0;background:none;border:0}.panel .tool-bar+.tool-bar{padding-top:var(--sp-3);border-top:1px solid var(--border);border-radius:0}.panel .tool-status:empty,.panel .tool-panel:last-child{margin-bottom:0}.tool-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-3)}.tool-bar label,.roster-move label{display:flex;flex-direction:column;gap:2px;min-width:0}.tool-bar label>span,.tool-panel>label,.build-save>label,.roster-move label>span{color:var(--text-muted);font-size:var(--fs-small)}.tool-grow{flex:1 1 220px}.tool-grow input{width:100%;min-width:0}.tool-link input{font-size:var(--fs-small);text-overflow:ellipsis}.tool-panel,.build-save{align-items:center}.tool-panel input[type=text]{flex:1 1 200px;min-width:0;max-width:480px}.tool-panel.is-block{display:block}.tool-panel.is-block>label{display:block;margin-bottom:2px}.tool-status{min-height:21px;margin:0 0 var(--sp-3)}.tool-help{max-width:var(--prose-max);margin:var(--sp-3) 0 var(--sp-4)}.roster select,.roster textarea,.builds textarea,.roster-move select{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);font:inherit;transition:border-color .12s,background-color .12s}.roster select{height:29px;padding:0 4px;max-width:100%}.roster select:hover:not(:disabled){border-color:var(--text-muted)}.roster select:disabled{opacity:.45}.roster option,.roster optgroup{background:var(--bg-panel)}.roster option:not([class]),.roster optgroup{color:var(--text)}.roster textarea,.builds textarea{color:var(--text);display:block;width:100%;max-width:720px;padding:var(--sp-2);margin-bottom:var(--sp-2);resize:vertical}.builds .bio-field textarea{max-width:none;margin-bottom:0}.roster textarea:focus-visible,.builds textarea:focus-visible{outline:none;box-shadow:var(--focus)}.roster button[data-armed]{border-color:var(--link);color:var(--link)}.roster-move{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2) var(--sp-3);padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-3);background:var(--bg-raised);border:1px solid var(--link);border-radius:var(--radius)}.roster-move>span{flex:1 1 220px;align-self:center}.roster-move select{height:29px;max-width:260px}.roster{display:grid;gap:var(--sp-5)}.roster>*{min-width:0;margin-bottom:0}.roster select,.roster input[type=text]{background-color:var(--bg-inset)}.roster-top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--sp-5);align-items:stretch}.roster-buffs{max-width:none}.roster-setup .tool-grow{flex:1 1 130px}.roster-setup .tool-actions button{padding:6px 10px}.roster-setup .tool-link{flex:1 1 100%}@media(max-width:1023px){.roster-top{grid-template-columns:minmax(0,1fr)}}.roster-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4);align-items:start}.roster-group .panel-head{margin:0 var(--sp-3);padding:var(--sp-3) 0 var(--sp-2)}.roster-group .panel-count{margin-left:auto;font-family:var(--font-heading);font-weight:700;font-size:var(--fs-h3);color:var(--text)}.roster-slots{display:grid;gap:6px;list-style:none;margin:0;padding:var(--sp-2)}.roster-slot{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);gap:4px;align-items:center;padding:5px 5px 5px 7px;background:var(--bg-inset);border:1px dashed var(--border);border-radius:var(--radius);transition:background-color .12s,border-color .12s}.roster-slot.is-filled{background:var(--bg-raised);border-style:solid;box-shadow:inset 0 1px 0 var(--bevel-hi)}.rs-stripe{position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;border-radius:var(--radius) 0 0 var(--radius);background:currentColor;opacity:0}.roster-slot.is-filled .rs-stripe[class*=c-]{opacity:1}.rs-body{display:grid;gap:4px;min-width:0}.rs-line{display:flex;align-items:center;gap:4px;min-width:0}.rs-icon{flex:none;line-height:0}.rs-class{flex:1 1 0;min-width:0}.rs-spec{flex:1.35 1 0;min-width:0}.rs-role{flex:0 0 74px}.rs-name{flex:1 1 0;min-width:0}.rs-act{flex:none;display:flex;gap:2px;white-space:nowrap}.roster-slot select,.roster-slot input{display:block;width:100%;min-width:0}.roster-slot input{height:29px}.roster-slot:not(.is-filled) .rs-icon .icon-s{border:1px dashed var(--border);background:none}.roster-slot:not(.is-filled) .rs-icon .icon-s:after{border-color:transparent}.rs-num{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-heading);font-style:normal;font-weight:700;font-size:var(--fs-small);line-height:1;color:var(--text-muted);font-variant-numeric:lining-nums tabular-nums}.rs-icon .icon-s:has(img) .rs-num{display:none}.rs-handle{width:22px;height:62px;padding:0;color:var(--text-muted);background:none;border-color:transparent;box-shadow:none;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;line-height:1}.rs-handle:hover,.rs-handle[aria-pressed=true]{color:var(--text)}.rs-handle[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--link);background:var(--bg-hover)}.rs-act button{width:25px;height:29px;padding:0;color:var(--text-muted)}.rs-act button:hover{color:var(--text)}.roster-slot:not(.is-filled) select,.roster-slot:not(.is-filled) .rs-act button{color:var(--text-muted)}.roster-slot.is-selected{background:var(--bg-hover);border:1px solid var(--link)}.roster-slot.is-drop{background:var(--bg-hover);border:1px solid var(--action-hover)}.roster-slot.is-dragging{opacity:.45}.roster-slot.is-warn,.roster-slot.is-warn .rs-name input{border-color:var(--link)}.roster-chip{position:fixed;z-index:50;left:0;top:0;max-width:240px;padding:2px var(--sp-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--bg-raised);border:1px solid var(--action-hover);border-radius:var(--radius);pointer-events:none}.roster-summary .panel-body{display:grid;gap:var(--sp-4)}.roster-summary .panel-body>*{margin:0}.roster-figures{display:flex;flex-wrap:wrap;gap:var(--sp-3) var(--sp-5)}.roster-figures .figure{min-width:48px}.roster-figures .figure.is-muted .figure-num{color:var(--text-muted)}.roster-classes{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none;padding:0}.roster-class{position:relative;display:flex;align-items:center;gap:var(--sp-2);padding:4px 10px 4px 5px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--bevel-hi);font-weight:600;font-size:var(--fs-table)}.roster-class:hover{border-color:var(--link);text-decoration:none}.roster-class b{min-width:1.2em;font-family:var(--font-heading);font-weight:700;font-size:var(--fs-body);text-align:right;color:var(--text)}.roster-warnings{list-style:none;padding:var(--sp-2) var(--sp-3);border:1px solid var(--link);border-radius:var(--radius);background:var(--bg-inset)}.roster-summary .soon-block,.roster-saved .soon-block,.builds .soon-block{max-width:none}.tool-table{margin-bottom:var(--sp-3)}.tool-table td,.tool-table th{padding:4px 6px}.tool-table .icon-cell{width:34px;padding-right:0}.tool-table .saved-name{min-width:160px}.tool-table .saved-name input{width:200px;max-width:100%}.tool-table .saved-actions{white-space:nowrap}.tool-table .saved-actions a{display:inline-flex;align-items:center;min-height:var(--pill-h-s);padding:0 var(--pill-px-s);border:0;border-radius:var(--radius-pill);background-color:var(--action);background-image:var(--pill-face);box-shadow:var(--pill-sheen),var(--pill-shadow);color:#fff;font-weight:600}.tool-table .saved-actions a:hover{text-decoration:none}.tool-table .saved-actions button{padding:3px 10px;font-size:var(--fs-table)}.tool-table .saved-actions a{padding:3px 10px;font-size:var(--fs-table);font-weight:600}.builds{display:grid;gap:var(--sp-5)}.builds-empty{margin:var(--sp-5)}.builds .table-scroll,.builds-table{margin:0}.builds-table td,.builds-table th{padding:9px 10px;vertical-align:middle}.builds-table th:first-child,.builds-table td:first-child{padding-left:var(--sp-5)}.builds-table .saved-name a{font-weight:600}.builds-status{min-height:0;margin:0;padding:0 var(--sp-5)}.builds-status span:not(:empty){display:block;padding:var(--sp-2) 0 var(--sp-3)}.split-chips{display:flex;flex-wrap:wrap;gap:4px}.split-chip{padding:1px 8px;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-s);font-size:var(--fs-small);line-height:20px;color:var(--text-muted);white-space:nowrap}.split-chip b{font-family:var(--font-heading);font-weight:700;font-size:var(--fs-table);color:var(--link)}.split-chip.is-zero b{color:var(--text-muted)}.bio-field{display:grid;gap:2px;margin-bottom:var(--sp-3)}.bio-label{font-weight:600;font-size:var(--fs-table);color:var(--text)}.bio-help{max-width:var(--prose-max);margin:0 0 6px;font-size:var(--fs-small);line-height:1.45;color:var(--text-muted)}.bio-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)}.bio-file{position:relative;display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0}.bio-file label{cursor:pointer}.bio-file input:focus-visible+label{outline:none;box-shadow:var(--focus),inset 0 0 0 1px var(--border)}.bio-filename{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-small)}.bio-go{margin-left:auto}.bio-status{min-height:21px;margin:var(--sp-2) 0 0;font-size:var(--fs-small)}.build-save{max-width:1000px;margin-top:calc(-1 * var(--sp-2));margin-bottom:var(--sp-4)}.build-save input{flex:0 1 260px;min-width:0;font-size:var(--fs-small)}.build-save [data-build-status]:empty{display:none}@media(max-width:1239px){.roster-groups{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1023px){.roster-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:639px){.roster-groups{grid-template-columns:minmax(0,1fr)}.roster-slot{grid-template-columns:28px minmax(0,1fr);gap:5px}.rs-line,.rs-body{gap:5px}.rs-role{flex-basis:96px}.roster-slot select,.roster-slot input,.rs-act button{height:36px}.rs-act button{width:34px}.rs-handle{width:28px;height:77px}.tool-bar label{flex:1 1 140px}.tool-bar select{width:100%}.roster-move select{max-width:100%}.builds-table th:first-child,.builds-table td:first-child{padding-left:var(--sp-4)}.builds-empty{margin:var(--sp-4)}}
