body.sanctuary-management-draft-open{overflow:hidden}
button.is-requirement-pending{opacity:.58}
.sanctuary-management-draft-layer[hidden],.sanctuary-management-draft-layer [hidden]{display:none!important}
.sanctuary-management-draft-layer{position:fixed;inset:0;z-index:2147482500;min-width:0;padding:18px;display:grid;place-items:center;overflow:hidden;color:#24314a;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.sanctuary-management-draft-backdrop{position:absolute;inset:0;background:rgba(13,24,45,.68);backdrop-filter:blur(8px)}
.sanctuary-management-mode-dialog,.sanctuary-management-builder-dialog{position:relative;z-index:1;min-width:0;border:1px solid rgba(137,155,188,.28);background:#f7f9fd;box-shadow:0 28px 80px rgba(10,23,48,.34);box-sizing:border-box}
.sanctuary-management-mode-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:24px;border-radius:22px;overflow-y:auto;scrollbar-width:none}
.sanctuary-management-mode-dialog::-webkit-scrollbar,.sanctuary-management-builder-dialog::-webkit-scrollbar,.sanctuary-management-schedule-scroll::-webkit-scrollbar,.sanctuary-management-force-list::-webkit-scrollbar{display:none}
.sanctuary-management-mode-dialog header>span,.sanctuary-management-composer-title>div>span,.sanctuary-management-schedule-panel>header>span{color:#3466d5;font-size:9px;font-weight:1000;letter-spacing:.14em}
.sanctuary-management-mode-dialog h2{margin:6px 0 0;color:#1e2d46;font-size:25px;letter-spacing:-.04em}
.sanctuary-management-mode-dialog header p{margin:8px 0 0;color:#75839a;font-size:11px;font-weight:750;line-height:1.55}
.sanctuary-management-mode-options{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sanctuary-management-mode-options button{min-width:0;min-height:174px;padding:18px;display:grid;align-content:start;justify-items:start;gap:8px;border:1px solid rgba(112,135,174,.22);border-radius:17px;background:#fff;color:#344761;text-align:left;cursor:pointer}
.sanctuary-management-mode-options button:hover{border-color:#6e8de5;box-shadow:0 12px 28px rgba(45,75,151,.12)}
.sanctuary-management-mode-options button>span{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#edf3ff;color:#3566d6;font-size:17px;font-weight:1000}
.sanctuary-management-mode-options strong{font-size:15px}.sanctuary-management-mode-options small{color:#8190a5;font-size:10px;font-weight:750;line-height:1.55}.sanctuary-management-mode-options em{margin-top:auto;color:#3263d1;font-size:9px;font-style:normal;font-weight:1000}
.sanctuary-management-mode-options button[aria-disabled="true"]{cursor:not-allowed;opacity:.52}
.sanctuary-management-mode-dialog>footer{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.sanctuary-management-mode-dialog>footer p{margin:0;color:#8290a4;font-size:9px;font-weight:800}.sanctuary-management-mode-dialog>footer button{min-width:76px;height:38px;border:1px solid rgba(112,135,174,.22);border-radius:10px;background:#fff;color:#5f6f86;font-size:10px;font-weight:950;cursor:pointer}

.sanctuary-management-draft-frame{position:relative;z-index:1;width:min(100%,1000px);max-height:calc(100dvh - 28px);overflow:hidden}.sanctuary-management-draft-frame::after,.sanctuary-management-schedule-panel::after{content:"";position:absolute;z-index:3;pointer-events:none;opacity:0;transition:opacity .16s ease}.sanctuary-management-draft-frame::after{left:0;right:0;bottom:0;height:58px;border-radius:0 0 18px 18px;background:linear-gradient(180deg,rgba(247,249,253,0),#f7f9fd 90%)}.sanctuary-management-draft-frame.has-more::after,.sanctuary-management-schedule-panel.has-more::after{opacity:1}
.sanctuary-management-builder-dialog{width:100%;max-height:calc(100dvh - 28px);border:0;border-radius:18px;background:transparent;overflow:auto;scrollbar-width:none;outline:none}
.sanctuary-management-builder-layout{--sanctuary-composer-size:min(680px,calc(100vw - 338px),calc(100dvh - 36px));width:max-content;max-width:100%;margin:auto;display:grid;grid-template-columns:var(--sanctuary-composer-size) 286px;align-items:start;gap:10px}
.sanctuary-management-builder-side{width:286px;height:var(--sanctuary-composer-size);min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);gap:10px}.sanctuary-management-builder-side.has-linked-alts{grid-template-rows:minmax(280px,3fr) minmax(210px,2fr)}
.sanctuary-management-composer{width:var(--sanctuary-composer-size);height:var(--sanctuary-composer-size);min-width:0;min-height:0;display:grid;grid-template-rows:20% 60% 20%;border:1px solid rgba(112,135,174,.22);border-radius:17px;background:#fff;overflow:hidden;box-sizing:border-box}
.sanctuary-management-composer-title{min-width:0;padding:clamp(14px,2.4cqw,23px);display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,38%);align-items:center;gap:15px;border-bottom:1px solid rgba(112,135,174,.14);background:linear-gradient(145deg,#fff,#f4f7fc);box-sizing:border-box}
.sanctuary-management-composer-title h2{margin:4px 0 0;color:#1f304a;font-size:clamp(16px,3.2cqw,25px);letter-spacing:-.04em}.sanctuary-management-composer-title p{margin:6px 0 0;color:#7c899c;font-size:clamp(7px,1.3cqw,10px);font-weight:780;line-height:1.45}
.sanctuary-management-composer-title label{min-width:0;display:grid;gap:6px}.sanctuary-management-composer-title label>span{color:#5e6f87;font-size:9px;font-weight:950}.sanctuary-management-composer-title input{width:100%;min-width:0;height:40px;padding:0 10px;border:1px solid rgba(112,135,174,.25);border-radius:10px;background:#fff;color:#263750;font:inherit;font-size:11px;font-weight:850;box-sizing:border-box}
.sanctuary-management-composer-middle{min-width:0;min-height:0;display:grid;grid-template-columns:20% 60% 20%;overflow:hidden}
.sanctuary-management-force-rail,.sanctuary-management-candidate-rail{min-width:0;min-height:0;padding:10px;display:grid;align-content:start;gap:8px;background:#f5f8fc;box-sizing:border-box;overflow:hidden}
.sanctuary-management-force-rail{position:relative;grid-template-rows:minmax(0,1fr) auto;border-right:1px solid rgba(112,135,174,.13)}.sanctuary-management-force-rail::after,.sanctuary-management-candidate-rail::after{content:"";position:absolute;left:8px;right:8px;bottom:30px;height:30px;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(245,248,252,0),#f5f8fc 88%);transition:opacity .16s ease}.sanctuary-management-force-rail.has-more::after,.sanctuary-management-candidate-rail.has-more::after{opacity:1}.sanctuary-management-candidate-rail{position:relative;grid-template-rows:auto minmax(0,1fr) auto;border-left:1px solid rgba(112,135,174,.13);text-align:left}.sanctuary-management-candidate-rail.is-empty{grid-template-rows:minmax(0,1fr);place-content:center;justify-items:center;text-align:center}
.sanctuary-management-force-list{min-width:0;min-height:0;display:grid;align-content:start;gap:7px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.sanctuary-management-force-rail button{width:100%;min-width:0;min-height:52px;padding:7px;display:grid;gap:3px;border:1px solid rgba(112,135,174,.2);border-radius:10px;background:#fff;color:#65758c;cursor:pointer;box-sizing:border-box}.sanctuary-management-force-rail button.is-active{border-color:transparent;background:linear-gradient(135deg,#315fe8,#7250eb);color:#fff}.sanctuary-management-force-rail button.is-add{border-style:dashed;background:#eef3fb;color:#3b5aa3}.sanctuary-management-force-rail button:disabled{cursor:wait;opacity:.58}.sanctuary-management-force-rail button.is-active:disabled{opacity:1}.sanctuary-management-force-rail strong{font-size:10px}.sanctuary-management-force-rail small{font-size:7px;font-weight:850}.sanctuary-management-force-rail p,.sanctuary-management-candidate-rail p{margin:0;color:#8795a8;font-size:7px;font-weight:800;line-height:1.5;word-break:keep-all}
.sanctuary-management-force-rail button.is-limit{border-color:rgba(126,139,161,.32);background:#f1f3f7;color:#7e899a;cursor:not-allowed}
.sanctuary-management-candidate-rail>header{min-width:0;display:grid;gap:2px}.sanctuary-management-candidate-rail>header strong{color:#425875;font-size:8px}.sanctuary-management-candidate-rail>header small{color:#7f8da0;font-size:6px;font-weight:900}.sanctuary-management-candidate-empty{height:100%;min-width:0;display:grid;place-content:center;justify-items:center;gap:7px;text-align:center}.sanctuary-management-candidate-empty>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#fff;color:#6f87a7;font-size:18px}.sanctuary-management-candidate-empty strong{color:#566980;font-size:9px}.sanctuary-management-candidate-empty.is-warning>span{background:#fff7ed;color:#c56a17}.sanctuary-management-candidate-empty.is-complete>span{background:#ecfdf5;color:#16805c}
.sanctuary-management-candidate-list{min-width:0;min-height:0;display:grid;align-content:start;gap:6px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.sanctuary-management-candidate-list::-webkit-scrollbar{display:none}.sanctuary-management-candidate-card{width:100%;min-width:0;padding:6px;display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:6px;border:1px solid rgba(49,95,232,.2);border-radius:9px;background:#fff;color:#314f91;text-align:left;cursor:pointer;box-sizing:border-box}.sanctuary-management-candidate-card:hover{border-color:rgba(49,95,232,.55);background:#f1f5ff}.sanctuary-management-candidate-card:disabled{cursor:wait;opacity:.55}.sanctuary-management-candidate-avatar{width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,#315fe8,#7250eb);color:#fff;font-size:9px;font-weight:1000}.sanctuary-management-candidate-copy{min-width:0;display:grid;gap:1px}.sanctuary-management-candidate-copy em{color:#6d5dd5;font-size:6px;font-style:normal;font-weight:1000}.sanctuary-management-candidate-copy strong,.sanctuary-management-candidate-copy small{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sanctuary-management-candidate-copy strong{color:#2d4261;font-size:8px}.sanctuary-management-candidate-copy small{color:#8592a4;font-size:6px;font-weight:850}
.sanctuary-management-quick-candidates,.sanctuary-management-candidate-note,.sanctuary-management-search-empty,.sanctuary-management-search-result,.sanctuary-management-official-result{min-width:0;display:grid;gap:5px}.sanctuary-management-quick-candidates>strong{color:#66778d;font-size:6px}.sanctuary-management-candidate-note,.sanctuary-management-search-empty{padding:7px;border-radius:8px;background:#edf3fb}.sanctuary-management-candidate-note strong,.sanctuary-management-search-empty strong{color:#51667f;font-size:7px}.sanctuary-management-candidate-note small,.sanctuary-management-search-empty small{color:#7c8ba0;font-size:5.5px;font-weight:800;line-height:1.45}.sanctuary-management-candidate-note.is-warning,.sanctuary-management-search-empty.is-warning{background:#fff7ed}.sanctuary-management-candidate-note.is-complete{background:#ecfdf5}.sanctuary-management-search-empty.is-progress{background:#eef2ff}.sanctuary-management-character-search,.sanctuary-management-main-search{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}.sanctuary-management-character-search label,.sanctuary-management-main-search label{min-width:0;display:grid;gap:2px}.sanctuary-management-character-search span,.sanctuary-management-main-search span{color:#63748b;font-size:5.5px;font-weight:900}.sanctuary-management-character-search input,.sanctuary-management-main-search input{width:100%;min-width:0;height:28px;padding:0 6px;border:1px solid rgba(112,135,174,.25);border-radius:7px;background:#fff;color:#344760;font-size:7px;box-sizing:border-box}.sanctuary-management-character-search button,.sanctuary-management-main-search button,.sanctuary-management-search-result button,.sanctuary-management-main-official button,.sanctuary-management-register-character,.sanctuary-management-search-reset{min-width:0;border:0;border-radius:7px;background:#3f63dc;color:#fff;font-size:6px;font-weight:900;cursor:pointer}.sanctuary-management-character-search>button,.sanctuary-management-main-search>button{align-self:end;height:28px;padding:0 7px}.sanctuary-management-search-result{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:7px;border:1px solid rgba(74,111,220,.22);border-radius:8px;background:#fff}.sanctuary-management-search-result>div,.sanctuary-management-official-card,.sanctuary-management-main-confirmed,.sanctuary-management-main-official{min-width:0;display:grid;gap:2px}.sanctuary-management-search-result em,.sanctuary-management-official-card em{color:#664ed5;font-size:5.5px;font-style:normal;font-weight:950}.sanctuary-management-search-result strong,.sanctuary-management-official-card strong,.sanctuary-management-main-confirmed strong,.sanctuary-management-main-official strong{overflow:hidden;color:#3d5068;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-search-result small,.sanctuary-management-official-card small,.sanctuary-management-main-confirmed small,.sanctuary-management-main-official small{color:#7b899b;font-size:5.3px;font-weight:800;line-height:1.4}.sanctuary-management-search-result>button{height:25px;padding:0 7px}.sanctuary-management-official-result{padding:7px;border:1px solid rgba(101,78,213,.22);border-radius:8px;background:#fff}.sanctuary-management-official-result>p{margin:0;color:#78879a;font-size:5.3px;font-weight:800;line-height:1.45}.sanctuary-management-relation-buttons{min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.sanctuary-management-relation-buttons button{min-width:0;height:24px;border:1px solid rgba(112,135,174,.24);border-radius:6px;background:#f4f7fb;color:#63738a;font-size:5.5px;font-weight:900;cursor:pointer}.sanctuary-management-relation-buttons button[aria-pressed="true"]{border-color:#4e69d8;background:#eef1ff;color:#3d51ad}.sanctuary-management-main-confirmed,.sanctuary-management-main-official{padding:6px;border-radius:7px;background:#eefaf5}.sanctuary-management-main-official{background:#fff8ed}.sanctuary-management-main-official button{height:24px}.sanctuary-management-register-character{height:28px}.sanctuary-management-register-character:disabled{cursor:not-allowed;opacity:.42}.sanctuary-management-search-reset{height:24px;background:#e8eef8;color:#5d708c}.sanctuary-management-main-search+.is-error{color:#ba4e4e}.sanctuary-management-candidate-rail button:disabled{cursor:not-allowed;opacity:.55}
.sanctuary-management-roster{min-width:0;min-height:0;padding:10px;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px;background:#fff;box-sizing:border-box}
.sanctuary-management-party-labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.sanctuary-management-party-labels span{min-width:0;padding:6px;border-radius:8px;background:#eff4fa;color:#61738b;font-size:8px;font-weight:950;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sanctuary-management-draft-slot-grid{min-width:0;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));grid-auto-flow:column;gap:7px}
.sanctuary-management-draft-slot{position:relative;min-width:0;min-height:0;padding:6px 7px 6px 29px;display:grid;align-content:center;gap:2px;border:1px dashed rgba(112,135,174,.28);border-radius:9px;background:#f9fbfe;color:#8190a3;text-align:left;box-sizing:border-box;overflow:hidden;opacity:1}
.sanctuary-management-draft-slot>span{position:absolute;left:7px;top:50%;width:16px;height:16px;display:grid;place-items:center;transform:translateY(-50%);border-radius:5px;background:#e9eff7;color:#66778e;font-size:7px;font-weight:1000}.sanctuary-management-draft-slot strong{font-size:9px}.sanctuary-management-draft-slot small{min-width:0;font-size:7px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sanctuary-management-draft-slot:not(:disabled){cursor:pointer}.sanctuary-management-draft-slot:not(:disabled):hover,.sanctuary-management-draft-slot.is-selected{border-style:solid;border-color:#7250eb;background:#f6f3ff;color:#5c46b8}.sanctuary-management-draft-slot.is-selected>span{background:#e9eff7;color:#5c46b8}.sanctuary-management-draft-slot.is-occupied{border-style:solid;border-color:rgba(49,95,232,.34);background:#f1f5ff;color:#314f91}.sanctuary-management-draft-slot.is-occupied>span{background:#315fe8;color:#fff}.sanctuary-management-draft-slot.is-occupied strong{color:#263e76}
.sanctuary-management-draft-slot.is-occupied:not(:disabled){cursor:grab}.sanctuary-management-draft-slot.is-move-source,.sanctuary-management-draft-slot.is-dragging{border-color:#7250eb;background:#eee9ff;box-shadow:0 0 0 2px rgba(114,80,235,.14)}.sanctuary-management-draft-slot.is-dragging{opacity:.55}.sanctuary-management-draft-slot.is-drop-target{border-style:solid;border-color:#16805c;background:#ecfdf5}
.sanctuary-management-composer-actions{min-width:0;padding:clamp(12px,2.4cqw,22px);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;border-top:1px solid rgba(112,135,174,.14);background:linear-gradient(145deg,#f7faff,#fff);box-sizing:border-box}.sanctuary-management-draft-status{min-width:0;margin:0;color:#718198;font-size:clamp(7px,1.35cqw,10px);font-weight:850;line-height:1.5;word-break:keep-all}.sanctuary-management-draft-status.is-warning{color:#b45309}.sanctuary-management-draft-status.is-error{color:#c33737}.sanctuary-management-draft-status.is-progress{color:#315fca}
.sanctuary-management-draft-status.is-success{color:#16805c}.sanctuary-management-composer-actions>div{display:flex;gap:6px}.sanctuary-management-composer-actions button{width:72px;min-width:72px;height:38px;border:1px solid rgba(112,135,174,.23);border-radius:10px;background:#fff;color:#5b6c83;font-size:9px;font-weight:1000;cursor:pointer}.sanctuary-management-composer-actions button.is-primary{border-color:transparent;background:linear-gradient(135deg,#315fe8,#7150eb);color:#fff}.sanctuary-management-composer-actions button:disabled{cursor:wait;opacity:.5}

.sanctuary-management-schedule-panel{position:relative;width:286px;height:var(--sanctuary-composer-size);min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid rgba(112,135,174,.22);border-radius:17px;background:#fff;overflow:hidden;box-sizing:border-box}.sanctuary-management-schedule-panel::after{left:0;right:0;bottom:0;height:50px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 86%)}
.sanctuary-management-schedule-panel>header{padding:19px 16px 13px;border-bottom:1px solid rgba(112,135,174,.14);background:linear-gradient(145deg,#fff,#f4f7fc)}.sanctuary-management-schedule-panel h3{margin:5px 0 0;color:#1f304b;font-size:17px;letter-spacing:-.035em}.sanctuary-management-schedule-panel header p{margin:6px 0 0;color:#7d8b9f;font-size:8px;font-weight:800;line-height:1.5}
.sanctuary-management-schedule-scroll{min-width:0;min-height:0;padding:13px;display:grid;align-content:start;gap:11px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;box-sizing:border-box}
.sanctuary-management-week-note{padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:10px;background:#eff6ff;color:#2563eb;font-size:8px}.sanctuary-management-week-note span{font-weight:900;white-space:nowrap}
.sanctuary-management-field{min-width:0;display:grid;gap:5px}.sanctuary-management-field>span,.sanctuary-management-weekdays legend{color:#52647c;font-size:8px;font-weight:1000}.sanctuary-management-field input,.sanctuary-management-field select{width:100%;min-width:0;height:38px;padding:0 9px;border:1px solid rgba(112,135,174,.25);border-radius:9px;background:#fff;color:#263750;font:inherit;font-size:10px;font-weight:850;box-sizing:border-box}.sanctuary-management-field>small,.sanctuary-management-weekdays small{color:#8d99aa;font-size:7px;font-weight:800}
.sanctuary-management-schedule-kind{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.sanctuary-management-schedule-kind button{min-width:0;min-height:36px;border:1px solid rgba(112,135,174,.2);border-radius:9px;background:#f7f9fc;color:#708096;font-size:8px;font-weight:950;cursor:pointer}.sanctuary-management-schedule-kind button[aria-pressed="true"]{border-color:#5573dd;background:#eff3ff;color:#3456c5}
.sanctuary-management-join-policy{display:grid;gap:6px;padding:9px;border:1px solid rgba(112,135,174,.14);border-radius:10px;background:#f8faff}.sanctuary-management-join-policy>strong{color:#4f6079;font-size:9px}.sanctuary-management-join-policy>small{color:#8a97aa;font-size:7px;font-weight:750;line-height:1.45}
.sanctuary-management-weekdays{min-width:0;margin:0;padding:0;border:0}.sanctuary-management-weekdays>div{margin-top:6px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.sanctuary-management-weekdays label{min-width:0;cursor:pointer}.sanctuary-management-weekdays input{position:absolute;opacity:0;pointer-events:none}.sanctuary-management-weekdays label span{min-width:0;min-height:31px;display:grid;place-items:center;border:1px solid rgba(112,135,174,.2);border-radius:8px;background:#f7f9fc;color:#708096;font-size:8px;font-weight:950}.sanctuary-management-weekdays input:checked+span{border-color:#5573dd;background:#eff3ff;color:#3456c5}.sanctuary-management-weekdays small{display:block;margin-top:5px;line-height:1.4}
.sanctuary-management-schedule-preview{min-width:0;padding:11px;display:grid;gap:4px;border:1px dashed rgba(37,99,235,.25);border-radius:10px;background:#f8fbff}.sanctuary-management-schedule-preview span{color:#2563eb;font-size:7px;font-weight:1000}.sanctuary-management-schedule-preview strong{color:#3e526e;font-size:9px;line-height:1.45}.sanctuary-management-schedule-preview small{color:#8996a8;font-size:7px;font-weight:850;line-height:1.45}
.sanctuary-management-draft-layer :is(button,input,select,[tabindex]):focus-visible{outline:3px solid rgba(37,99,235,.42);outline-offset:2px}

@media(max-width:1100px){
  .sanctuary-management-draft-layer{padding:8px}
  .sanctuary-management-draft-frame{width:min(700px,100%);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}
  .sanctuary-management-builder-dialog{width:100%;height:100%;max-height:none}
  .sanctuary-management-builder-layout{width:100%;max-width:none;display:flex;flex-direction:column;gap:9px;padding:7px;box-sizing:border-box}
  .sanctuary-management-builder-side{order:1;width:100%;height:auto;display:flex;flex-direction:column;gap:9px}
  .sanctuary-management-schedule-panel{width:100%;height:auto;min-height:500px;flex:0 0 auto}
  .sanctuary-management-schedule-scroll{overflow:visible}.sanctuary-management-schedule-panel::after{display:none}
  .sanctuary-management-composer{order:2;width:100%;height:auto;aspect-ratio:1/1;flex:0 0 auto}
}
@media(max-width:699px){
  .sanctuary-management-mode-dialog{padding:17px;border-radius:18px}.sanctuary-management-mode-options{grid-template-columns:1fr}.sanctuary-management-mode-options button{min-height:138px}.sanctuary-management-mode-dialog>footer{align-items:stretch;display:grid}.sanctuary-management-mode-dialog>footer button{width:100%}
  .sanctuary-management-composer-title{padding:10px;grid-template-columns:minmax(0,1fr) minmax(112px,40%);gap:8px}.sanctuary-management-composer-title h2{font-size:15px}.sanctuary-management-composer-title p{font-size:6.5px}.sanctuary-management-composer-title label>span{font-size:7px}.sanctuary-management-composer-title input{height:32px;padding-inline:7px;font-size:8px}
  .sanctuary-management-force-rail,.sanctuary-management-candidate-rail,.sanctuary-management-roster{padding:5px}.sanctuary-management-draft-slot-grid,.sanctuary-management-party-labels{gap:4px}.sanctuary-management-draft-slot{padding:3px 4px 3px 21px;border-radius:7px}.sanctuary-management-draft-slot>span{left:4px;width:13px;height:13px;font-size:6px}.sanctuary-management-draft-slot strong{font-size:7px}.sanctuary-management-draft-slot small{font-size:5.5px}.sanctuary-management-party-labels span{padding:3px;font-size:6px}.sanctuary-management-force-rail button{min-height:36px;padding:3px}.sanctuary-management-force-rail strong{font-size:7px}.sanctuary-management-force-rail small,.sanctuary-management-force-rail p,.sanctuary-management-candidate-rail p{font-size:5.5px}.sanctuary-management-candidate-empty>span{width:25px;height:25px;font-size:12px}.sanctuary-management-candidate-empty strong,.sanctuary-management-candidate-rail>header strong{font-size:6px}.sanctuary-management-candidate-rail>header small{font-size:5px}.sanctuary-management-candidate-list{gap:3px}.sanctuary-management-candidate-card{padding:3px;grid-template-columns:16px minmax(0,1fr);gap:3px;border-radius:6px}.sanctuary-management-candidate-avatar{width:16px;height:16px;border-radius:5px;font-size:6px}.sanctuary-management-candidate-copy em,.sanctuary-management-candidate-copy small{font-size:4.5px}.sanctuary-management-candidate-copy strong{font-size:6px}
  .sanctuary-management-character-search,.sanctuary-management-main-search{grid-template-columns:minmax(0,1fr)}.sanctuary-management-character-search>button,.sanctuary-management-main-search>button{width:100%;height:22px}.sanctuary-management-search-result{grid-template-columns:minmax(0,1fr)}.sanctuary-management-search-result>button{width:100%;height:22px}.sanctuary-management-candidate-note,.sanctuary-management-search-empty,.sanctuary-management-official-result{padding:4px}.sanctuary-management-register-character,.sanctuary-management-search-reset{height:22px}.sanctuary-management-relation-buttons button{height:20px;font-size:4.5px}
  .sanctuary-management-composer-actions{padding:7px;gap:5px}.sanctuary-management-draft-status{font-size:6px}.sanctuary-management-composer-actions>div{gap:3px}.sanctuary-management-composer-actions button{width:49px;min-width:49px;height:29px;padding:0;font-size:6.5px}
}

/* Stage 8 part 2: the small icon target owns the slot restriction while the
   character card remains the placement/move target. The picker is viewport-
   centered so it never creates horizontal overflow inside the square modal. */
.sanctuary-management-draft-slot{padding-right:42px}
.sanctuary-management-slot-class-trigger{position:absolute;z-index:4;top:50%;right:7px;width:28px;height:30px;padding:2px;display:grid;place-items:center;align-content:center;gap:1px;border:0;border-radius:6px;background:transparent;color:#65758c;cursor:pointer;transform:translateY(-50%)}
.sanctuary-management-slot-class-trigger img{display:block;width:22px;height:22px;object-fit:contain}.sanctuary-management-slot-class-trigger b{font-size:7px}.sanctuary-management-slot-class-trigger span{max-width:28px;overflow:hidden;font-size:5.5px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-slot-class-trigger:hover,.sanctuary-management-slot-class-trigger[aria-expanded="true"]{color:#315fca;filter:drop-shadow(0 2px 4px rgba(49,95,202,.28))}
.sanctuary-management-slot-class-picker{position:fixed;z-index:2147483600;left:50%;top:50%;width:min(420px,calc(100vw - 28px));padding:14px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;border:1px solid rgba(112,135,174,.26);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 24px 70px rgba(13,24,45,.32);box-sizing:border-box;transform:translate(-50%,-50%)}
.sanctuary-management-slot-class-picker button{min-width:0;height:68px;padding:6px;display:grid;place-items:center;align-content:center;gap:4px;border:1px solid rgba(112,135,174,.2);border-radius:10px;background:#f7f9fc;color:#586a82;cursor:pointer}.sanctuary-management-slot-class-picker button[aria-pressed="true"]{border-color:#5573dd;background:#eef3ff;color:#315fca;box-shadow:inset 0 0 0 1px rgba(85,115,221,.1)}.sanctuary-management-slot-class-picker img{width:30px;height:30px;object-fit:contain}.sanctuary-management-slot-class-picker b{font-size:10px}.sanctuary-management-slot-class-picker span{font-size:8px;font-weight:950}
.sanctuary-management-draft-slot.is-random-alt{border-color:#9271d8;background:#f7f2ff;color:#6045a2}.sanctuary-management-draft-slot.is-random-alt>span{background:#7250ad}
.sanctuary-management-search-result-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sanctuary-management-search-result-actions button{width:100%;height:34px;padding:0 8px;border:0;border-radius:9px;background:#3f63dc;color:#fff;font-size:clamp(9px,6.4cqw,11px);font-weight:900;cursor:pointer}.sanctuary-management-search-result-actions button+button{background:#6f50c9}
.sanctuary-management-builder-side>.sanctuary-management-schedule-panel{width:100%;height:100%}
.sanctuary-management-linked-alt-panel{position:relative;z-index:1;width:100%;max-width:none;height:100%;max-height:none;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);border:1px solid rgba(112,135,174,.24);border-radius:17px;background:#fff;box-shadow:0 14px 34px rgba(13,24,45,.14);overflow:hidden;box-sizing:border-box}.sanctuary-management-linked-alt-panel[hidden]{display:none!important}.sanctuary-management-linked-alt-panel::after{content:"";position:absolute;z-index:3;left:0;right:0;bottom:0;height:44px;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 88%);transition:opacity .16s ease}.sanctuary-management-linked-alt-panel.has-more::after{opacity:1}
.sanctuary-management-linked-alt-panel>header{padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border-bottom:1px solid rgba(112,135,174,.14);background:linear-gradient(145deg,#fff,#f4f7fc)}.sanctuary-management-linked-alt-panel>header>div{min-width:0;display:grid;gap:4px}.sanctuary-management-linked-alt-panel>header span{color:#3466d5;font-size:8px;font-weight:1000;letter-spacing:.12em}.sanctuary-management-linked-alt-panel>header strong{color:#233653;font-size:15px}.sanctuary-management-linked-alt-panel>header small{color:#7d8b9f;font-size:8px;font-weight:800;line-height:1.45}.sanctuary-management-linked-alt-panel>header>button{width:32px;height:32px;border:1px solid rgba(112,135,174,.22);border-radius:9px;background:#fff;color:#63748b;font-size:18px;cursor:pointer}
.sanctuary-management-linked-alt-panel>div{min-height:0;padding:12px 12px 54px;display:grid;align-content:start;gap:8px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:none}.sanctuary-management-linked-alt-panel>div::-webkit-scrollbar{display:none}.sanctuary-management-linked-alt-card{min-width:0;min-height:76px;padding:10px;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;border:1px solid rgba(49,95,232,.24);border-radius:12px;background:#fff;color:#324a70;text-align:left;cursor:pointer}.sanctuary-management-linked-alt-card>span:first-child{display:grid;place-items:center}.sanctuary-management-linked-alt-card img{display:block;width:36px;height:36px;object-fit:contain}.sanctuary-management-linked-alt-card>span:last-child{min-width:0;display:grid;gap:3px}.sanctuary-management-linked-alt-card em{color:#7250ad;font-size:8px;font-style:normal;font-weight:950}.sanctuary-management-linked-alt-card strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-linked-alt-card small{color:#7d8a9e;font-size:8px;font-weight:800;line-height:1.4}.sanctuary-management-linked-alt-card.is-random{border-color:#9271d8;background:#faf7ff}.sanctuary-management-linked-alt-card.is-random b{color:#7250ad;font-size:8px}.sanctuary-management-linked-alt-card:disabled{cursor:not-allowed;opacity:.45}.sanctuary-management-linked-alt-state{padding:16px;display:grid;gap:6px;border-radius:12px;background:#f2f6fc}.sanctuary-management-linked-alt-state strong{color:#435875;font-size:11px}.sanctuary-management-linked-alt-state small{color:#7f8da1;font-size:9px;font-weight:800;line-height:1.5}.sanctuary-management-linked-alt-state.is-error{background:#fff1f2}
.sanctuary-management-linked-alt-card.is-random{min-height:210px;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:9px;cursor:default}.sanctuary-management-linked-alt-random-profile{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px}.sanctuary-management-linked-alt-random-profile>span:first-child{display:grid;place-items:center}.sanctuary-management-linked-alt-random-profile>span:last-child{min-width:0;display:grid;gap:3px}.sanctuary-management-linked-alt-class-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.sanctuary-management-linked-alt-class-picker button{min-width:0;height:42px;padding:3px;display:grid;place-items:center;align-content:center;gap:1px;border:1px solid rgba(112,135,174,.2);border-radius:7px;background:#fff;color:#65758c;cursor:pointer}.sanctuary-management-linked-alt-class-picker button[aria-pressed="true"]{border-color:#7250ad;background:#eee8ff;color:#6045a2;box-shadow:inset 0 0 0 1px rgba(114,80,173,.12)}.sanctuary-management-linked-alt-class-picker img{width:24px;height:24px}.sanctuary-management-linked-alt-class-picker b{font-size:7px}.sanctuary-management-linked-alt-class-picker span{font-size:6px;font-weight:950;white-space:nowrap}.sanctuary-management-linked-alt-random-add{width:100%;height:34px;border:0;border-radius:8px;background:#7250ad;color:#fff;font-size:9px;font-weight:950;cursor:pointer}.sanctuary-management-linked-alt-random-add:disabled{cursor:not-allowed;opacity:.42}.sanctuary-management-linked-alt-card.is-unavailable{position:relative;overflow:hidden;opacity:1}.sanctuary-management-linked-alt-card.is-unavailable>span:not(.sanctuary-management-linked-alt-unavailable){filter:blur(1.2px);opacity:.3}.sanctuary-management-linked-alt-card.is-unavailable:disabled{opacity:1}.sanctuary-management-linked-alt-unavailable{position:absolute!important;z-index:2;inset:7px;display:grid!important;place-items:center!important;padding:5px;border:1px solid rgba(190,18,60,.2);border-radius:8px;background:rgba(255,255,255,.9);color:#b4233c;font-size:9px;font-weight:1000;line-height:1.35;text-align:center;white-space:normal!important;filter:none!important;opacity:1!important}.sanctuary-management-linked-alt-card.is-random>.sanctuary-management-linked-alt-unavailable{position:relative!important;inset:auto;min-height:30px}

/* Linked-alt status rows stay in normal flow so unavailable messages never
   cover the class picker, action button, or the following character card. */
.sanctuary-management-linked-alt-panel>div{display:flex;flex-direction:column;align-items:stretch}.sanctuary-management-linked-alt-panel>div>*{flex:0 0 auto}
.sanctuary-management-linked-alt-card.is-unavailable{min-height:112px;overflow:hidden;align-content:start}.sanctuary-management-linked-alt-card.is-random.is-unavailable{min-height:260px}.sanctuary-management-linked-alt-card.is-unavailable>span:not(.sanctuary-management-linked-alt-unavailable){filter:none;opacity:.48}
.sanctuary-management-linked-alt-unavailable,.sanctuary-management-linked-alt-card.is-random>.sanctuary-management-linked-alt-unavailable{position:static!important;z-index:auto;inset:auto;grid-column:1/-1;width:100%;min-width:0;min-height:30px;height:30px;display:flex!important;align-items:center!important;justify-content:center!important;gap:4px;padding:5px 7px;box-sizing:border-box;border:1px solid rgba(190,18,60,.2);border-radius:8px;background:#fff7f8;color:#b4233c;font-size:9px;font-weight:950;line-height:1;text-align:center;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;filter:none!important;opacity:1!important}
.sanctuary-management-linked-alt-unavailable.is-character-relation{border-color:rgba(109,74,205,.26);background:linear-gradient(100deg,#fff8fc,#f7f3ff);color:#5b496d;box-shadow:inset 0 0 0 1px rgba(122,84,204,.06)}
.sanctuary-management-linked-alt-unavailable-lead,.sanctuary-management-linked-alt-unavailable-name{flex:0 0 auto;font-weight:1000;letter-spacing:-.02em;text-shadow:0 0 8px currentColor}.sanctuary-management-linked-alt-unavailable-lead{color:#26785e}.sanctuary-management-linked-alt-unavailable-lead.is-alt{color:#a239b8}.sanctuary-management-linked-alt-unavailable-lead.is-random-alt{color:#d72fb2;font-size:10px}.sanctuary-management-linked-alt-unavailable-name{max-width:96px;overflow:hidden;color:#b02fb7;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-linked-alt-unavailable-copy{min-width:0;overflow:hidden;color:#665771;text-overflow:ellipsis;white-space:nowrap}
.sanctuary-management-linked-alt-random-profile em{color:#bd2aac;text-shadow:0 0 8px rgba(189,42,172,.42)}

@media(max-width:1100px){.sanctuary-management-builder-side>.sanctuary-management-schedule-panel{height:auto}.sanctuary-management-builder-side.has-linked-alts .sanctuary-management-linked-alt-panel{height:min(560px,70dvh);min-height:430px;flex:0 0 auto}}

@media(max-width:699px){
  .sanctuary-management-draft-slot{padding-right:31px}.sanctuary-management-slot-class-trigger{right:3px;width:24px;height:27px}.sanctuary-management-slot-class-trigger img{width:19px;height:19px}.sanctuary-management-slot-class-trigger span{font-size:4.5px}
  .sanctuary-management-slot-class-picker{grid-template-columns:repeat(2,minmax(0,1fr));max-height:calc(100dvh - 24px);overflow-y:auto}.sanctuary-management-slot-class-picker button{height:56px;grid-template-columns:28px minmax(0,1fr);justify-content:start}.sanctuary-management-slot-class-picker img{width:26px;height:26px}
  .sanctuary-management-builder-side.has-linked-alts .sanctuary-management-linked-alt-panel{height:min(560px,70dvh);min-height:430px;flex:0 0 auto;border-radius:16px}.sanctuary-management-linked-alt-card{min-height:82px}.sanctuary-management-search-result-actions{grid-template-columns:minmax(0,1fr)}
}

/* Stage 8 part 1: force/party requirement editor. The editor reuses the right
   rail on desktop and its full-width lower row on mobile, so no horizontal
   overflow is introduced. */
.sanctuary-management-roster{grid-template-rows:auto auto minmax(0,1fr);transition:border-color .18s ease,background .18s ease}.sanctuary-management-roster.has-unmet-requirements{box-shadow:inset 0 0 0 2px rgba(210,55,65,.4);background:#fffafa}
.sanctuary-management-force-requirement-summary{min-width:0;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:7px;border:1px solid #dfe6f0;border-radius:9px;background:#f8faff}.sanctuary-management-force-requirement-summary.has-unmet-requirements{border-color:#e99197;background:#fff1f2}.sanctuary-management-force-requirement-summary>span{min-width:0;display:grid;gap:2px}.sanctuary-management-force-requirement-summary strong,.sanctuary-management-force-requirement-summary small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-force-requirement-summary strong{color:#344a6c;font-size:9px}.sanctuary-management-force-requirement-summary small{color:#718096;font-size:7px;font-weight:850}.sanctuary-management-force-requirement-summary button,.sanctuary-management-party-labels button{flex:0 0 auto;height:25px;padding:0 7px;border:1px solid #cfd9e8;border-radius:7px;background:#fff;color:#4e64a9;font-size:7px;font-weight:950;cursor:pointer}
.sanctuary-management-party-labels span{display:flex;align-items:center;justify-content:space-between;gap:5px;text-align:left}.sanctuary-management-party-labels span b{min-width:0;overflow:hidden;text-overflow:ellipsis}.sanctuary-management-party-labels span.has-unmet-requirements{box-shadow:inset 0 0 0 2px rgba(210,55,65,.34);background:#fff0f1;color:#b1363e}
.sanctuary-management-force-option.has-unmet-requirements>[data-draft-force]{border-color:#df6971!important;background:#fff0f1!important;color:#a72d36!important}
.sanctuary-management-requirement-editor{grid-template-rows:auto minmax(0,1fr) auto}.sanctuary-management-requirement-editor-body{min-width:0;display:grid;align-content:start;gap:10px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.sanctuary-management-requirement-editor-body::-webkit-scrollbar{width:0;height:0}.sanctuary-management-requirement-editor-body>section{min-width:0;padding:9px;display:grid;gap:7px;border:1px solid #dfe6f0;border-radius:10px;background:#f9fbfe}.sanctuary-management-requirement-editor-body>section>button{height:32px;border:1px solid #cfd9e8;border-radius:8px;background:#fff;color:#61708a;font-size:9px;font-weight:950}.sanctuary-management-requirement-editor-body>section>button[aria-pressed="true"]{border-color:#5573dd;background:#edf2ff;color:#3456c5;box-shadow:inset 0 0 0 1px rgba(85,115,221,.12)}.sanctuary-management-requirement-editor-body label{min-width:0;display:flex;align-items:center;gap:5px;color:#52637b;font-size:8px;font-weight:900}.sanctuary-management-requirement-editor-body label span{flex:1 1 auto}.sanctuary-management-requirement-editor-body input{box-sizing:border-box;width:58px;min-width:0;height:30px;padding:0 5px;border:1px solid #d8e0ec;border-radius:7px;background:#fff;color:#2f415f;text-align:center;font-size:9px}.sanctuary-management-requirement-editor-body small{color:#7b889b;font-size:7px;line-height:1.45}.sanctuary-management-requirement-preview{padding:9px;display:grid;gap:3px;border:1px solid #e1e7f0;border-radius:9px;background:#fff}.sanctuary-management-requirement-preview strong{color:#3b4f70;font-size:9px}.sanctuary-management-requirement-preview small{font-size:7px}.sanctuary-management-requirement-editor>footer{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sanctuary-management-requirement-editor>footer button{min-width:0;height:32px;padding:0 5px;border:1px solid #d4ddea;border-radius:8px;background:#fff;color:#596a82;font-size:8px;font-weight:950}.sanctuary-management-requirement-editor>footer button.is-primary{grid-column:1/-1;border-color:#5068dc;background:#5068dc;color:#fff}
@media(max-width:699px){.sanctuary-management-force-requirement-summary{padding:6px}.sanctuary-management-force-requirement-summary strong{font-size:8px}.sanctuary-management-force-requirement-summary small{font-size:6.5px}.sanctuary-management-force-requirement-summary button,.sanctuary-management-party-labels button{height:23px;font-size:6.5px}.sanctuary-management-requirement-editor-body>section{padding:11px}.sanctuary-management-requirement-editor-body>section>button{height:38px;font-size:10px}.sanctuary-management-requirement-editor-body label{font-size:9px}.sanctuary-management-requirement-editor-body input{height:36px;font-size:10px}.sanctuary-management-requirement-editor>footer button{height:38px;font-size:9px}}
@media(max-width:430px){.sanctuary-management-draft-layer{padding:5px}.sanctuary-management-builder-layout{padding:4px}.sanctuary-management-schedule-panel{min-height:490px}.sanctuary-management-schedule-panel>header{padding:14px 12px 10px}.sanctuary-management-schedule-scroll{padding:10px}.sanctuary-management-mode-dialog h2{font-size:20px}}
@media(max-width:350px){.sanctuary-management-builder-layout{padding:3px;gap:6px}.sanctuary-management-force-rail,.sanctuary-management-candidate-rail,.sanctuary-management-roster{padding:3px}.sanctuary-management-draft-slot-grid,.sanctuary-management-party-labels{gap:3px}.sanctuary-management-composer-actions{padding:4px}.sanctuary-management-composer-actions button{width:43px;min-width:43px;height:26px}.sanctuary-management-draft-status{font-size:5.3px}.sanctuary-management-schedule-panel{min-height:480px}}
@media(prefers-reduced-motion:reduce){.sanctuary-management-mode-options button{transition:none}}
@media(forced-colors:active){.sanctuary-management-mode-dialog,.sanctuary-management-composer,.sanctuary-management-schedule-panel{border:2px solid CanvasText}}

/* Stage 7 review composer controls. All composition changes stay local until the
   single final SAVE_COMPOSITION command succeeds. */
.sanctuary-management-force-option{position:relative;min-width:0}.sanctuary-management-force-option>[data-draft-force]{padding-right:24px}.sanctuary-management-force-option>.sanctuary-management-force-remove{position:absolute;z-index:2;top:5px;right:5px;width:18px;min-width:18px;height:18px;min-height:18px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.72);border-radius:6px;background:rgba(255,255,255,.2);color:inherit;font-size:13px;line-height:1}.sanctuary-management-force-option:not(.is-active)>.sanctuary-management-force-remove{border-color:#f6b7be;background:#fff1f2;color:#be123c}
.sanctuary-management-draft-slot-shell{position:relative;min-width:0;min-height:0}.sanctuary-management-draft-slot-shell>.sanctuary-management-draft-slot{width:100%;height:100%}.sanctuary-management-slot-remove{position:absolute;z-index:8;top:-7px;right:-6px;width:26px;min-width:26px;height:14px;min-height:14px;padding:0;display:grid;place-items:center;border:1px solid #f7b8c0;border-radius:4px;background:#fff1f2;color:#be123c;font-size:13px;font-weight:1000;line-height:1;box-shadow:0 4px 10px rgba(190,18,60,.16)}
.sanctuary-management-candidate-card{position:relative;min-height:42px;overflow:hidden}.sanctuary-management-candidate-card.is-main{border-color:rgba(49,95,232,.56);background:linear-gradient(135deg,#f7faff,#eaf0ff)}.sanctuary-management-candidate-card.is-alt{border-color:rgba(113,133,169,.24);background:linear-gradient(135deg,#fbfcfe,#f1f3f7);filter:saturate(.68)}.sanctuary-management-candidate-avatar{overflow:hidden}.sanctuary-management-candidate-avatar img{display:block;width:100%;height:100%;object-fit:cover}.sanctuary-management-candidate-copy{position:relative;padding-right:25px}.sanctuary-management-candidate-copy em{position:absolute;top:-1px;right:0;color:#315fca}.sanctuary-management-candidate-card.is-alt .sanctuary-management-candidate-copy em{color:#75839a}.sanctuary-management-candidate-copy strong{font-size:9.5px}.sanctuary-management-candidate-copy small{margin-top:2px}
.sanctuary-management-date-field,.sanctuary-management-time-field{grid-template-columns:max-content minmax(0,1fr);align-items:center;column-gap:8px}.sanctuary-management-date-parts,.sanctuary-management-time-parts{min-width:0;display:flex;align-items:center;gap:6px}.sanctuary-management-date-parts label,.sanctuary-management-time-parts label{min-width:0;flex:0 0 auto;display:flex;align-items:center;gap:4px}.sanctuary-management-date-parts label span,.sanctuary-management-time-parts label span{color:#596a81;font-size:9px;font-weight:950}.sanctuary-management-date-parts input,.sanctuary-management-time-parts input{box-sizing:border-box;width:3.25em!important;min-width:3.25em!important;height:38px!important;padding:0 5px!important;text-align:center}.sanctuary-management-period-buttons{flex:0 0 auto;display:grid;grid-template-columns:repeat(2,40px);gap:4px}.sanctuary-management-period-buttons button,.sanctuary-management-duration-options button{height:38px;border:1px solid rgba(112,135,174,.22);border-radius:9px;background:#f7f9fc;color:#67778e;font-size:8px;cursor:pointer}.sanctuary-management-period-buttons button[aria-pressed="true"],.sanctuary-management-duration-options button[aria-pressed="true"]{border-color:#5573dd;background:linear-gradient(135deg,#edf3ff,#f2edff);color:#3456c5;box-shadow:inset 0 0 0 1px rgba(85,115,221,.08)}
.sanctuary-management-duration-options{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.sanctuary-management-duration-options button{aspect-ratio:1.25/1;height:auto;min-height:44px;padding:4px;white-space:nowrap}.sanctuary-management-date-field>small{grid-column:1/-1;line-height:1.45}
@media(max-width:699px){.sanctuary-management-force-option>.sanctuary-management-force-remove{top:2px;right:2px;width:14px;min-width:14px;height:14px;min-height:14px;border-radius:4px;font-size:10px}.sanctuary-management-slot-remove{top:-6px;right:-4px;width:22px;min-width:22px;height:13px;min-height:13px;border-radius:4px;font-size:10px}.sanctuary-management-candidate-card{min-height:29px}.sanctuary-management-candidate-copy{padding-right:17px}.sanctuary-management-candidate-copy strong{font-size:6.5px}.sanctuary-management-date-field,.sanctuary-management-time-field{column-gap:6px}.sanctuary-management-date-parts,.sanctuary-management-time-parts{gap:4px}.sanctuary-management-period-buttons{grid-template-columns:repeat(2,36px)}.sanctuary-management-duration-options{gap:4px}}

/* Shared readable team composer: fixed/participation creation and editing use
   the same candidate rail. Its type scales to the rail, while mobile moves the
   rail below the roster instead of shrinking labels into the former 20% column. */
.sanctuary-management-composer-middle{grid-template-columns:18% 58% 24%}
.sanctuary-management-composer-mode-switch{min-width:0;display:flex;align-items:center;gap:5px}.sanctuary-management-composer-mode-switch h2{margin-left:3px}.sanctuary-management-composer-mode-switch button{flex:0 0 auto;height:27px;padding:0 9px;border:1px solid #d3dcea;border-radius:8px;background:#f5f7fb;color:#65758c;font-size:9px;font-weight:950;cursor:pointer}.sanctuary-management-composer-mode-switch button[aria-pressed="true"]{border-color:#536fdf;background:#3f63dc;color:#fff;box-shadow:0 6px 14px rgba(63,99,220,.2)}
.sanctuary-management-roster{container-type:inline-size}
.sanctuary-management-draft-slot{padding:7px 8px 7px 31px;gap:3px}
.sanctuary-management-draft-slot>span{left:8px;width:18px;height:18px;font-size:8.5px}
.sanctuary-management-draft-slot strong{font-size:clamp(10.5px,3cqw,12px);line-height:1.2}
.sanctuary-management-draft-slot small{font-size:clamp(7.5px,2.25cqw,9px);line-height:1.25}
.sanctuary-management-party-labels span{font-size:9px}
.sanctuary-management-candidate-rail{container-type:inline-size;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch;padding:11px;gap:10px}
.sanctuary-management-candidate-rail>header{gap:7px}
.sanctuary-management-candidate-rail>header>strong{font-size:clamp(12px,9cqw,15px);line-height:1.15}
.sanctuary-management-candidate-position{min-width:0;display:grid;gap:2px}
.sanctuary-management-candidate-position em{color:#7e8ca0;font-size:clamp(7px,5.2cqw,9px);font-style:normal;font-weight:900}
.sanctuary-management-candidate-position b{min-width:0;color:#334a6c;font-size:clamp(9px,6.6cqw,11px);line-height:1.3;word-break:keep-all}
.sanctuary-management-candidate-list{gap:9px}
.sanctuary-management-quick-candidates{gap:7px}
.sanctuary-management-quick-candidates>strong{font-size:clamp(9px,6.5cqw,11px)}
.sanctuary-management-creator-tools{min-width:0;display:grid;gap:8px}.sanctuary-management-creator-candidates-toggle{width:100%;min-height:36px;border:1px solid #5471df;border-radius:9px;background:#eef3ff;color:#3456c5;font-size:clamp(9px,6.5cqw,11px);font-weight:950;cursor:pointer}.sanctuary-management-creator-candidates-toggle[aria-expanded="true"]{background:#3f63dc;color:#fff;box-shadow:0 7px 16px rgba(63,99,220,.18)}
.sanctuary-management-candidate-card{min-height:58px;padding:8px;grid-template-columns:32px minmax(0,1fr);gap:8px;border-radius:10px}
.sanctuary-management-candidate-avatar{width:32px;height:32px;border-radius:9px}
.sanctuary-management-candidate-copy{padding-right:30px;gap:2px}
.sanctuary-management-candidate-copy em{font-size:clamp(7px,5cqw,8.5px)}
.sanctuary-management-candidate-copy strong{font-size:clamp(10px,7.5cqw,12.5px);line-height:1.2}
.sanctuary-management-candidate-copy small{font-size:clamp(7.5px,5.5cqw,9px)}
.sanctuary-management-candidate-note,.sanctuary-management-search-empty{padding:9px;gap:4px;border-radius:9px}
.sanctuary-management-candidate-note strong,.sanctuary-management-search-empty strong{font-size:clamp(9px,6.7cqw,11px);line-height:1.3}
.sanctuary-management-candidate-note small,.sanctuary-management-search-empty small{font-size:clamp(7px,5.2cqw,8.5px);line-height:1.5}
.sanctuary-management-candidate-completion{grid-row:3;margin-top:auto}
.sanctuary-management-character-search,.sanctuary-management-main-search{grid-template-columns:minmax(0,1fr);gap:7px}
.sanctuary-management-character-search label,.sanctuary-management-main-search label{gap:5px}
.sanctuary-management-character-search span,.sanctuary-management-main-search span{font-size:clamp(10px,7.4cqw,12.5px);line-height:1.2}
.sanctuary-management-character-search input,.sanctuary-management-main-search input{height:38px;padding:0 9px;border-radius:9px;font-size:clamp(9px,6.4cqw,11px)}
.sanctuary-management-character-search>button,.sanctuary-management-main-search>button{width:100%;height:34px;padding:0 9px;border-radius:9px;font-size:clamp(9px,6.4cqw,11px)}
.sanctuary-management-search-result{min-height:118px;grid-template-columns:minmax(0,1fr);align-content:start;gap:9px;padding:9px;border-radius:10px}
.sanctuary-management-search-result-profile,.sanctuary-management-official-card{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px}
.sanctuary-management-search-result-avatar{width:34px;height:34px;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:linear-gradient(135deg,#315fe8,#7250eb);color:#fff;font-size:14px;font-weight:1000}
.sanctuary-management-search-result-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.sanctuary-management-search-result-copy{min-width:0;display:grid;gap:3px}
.sanctuary-management-search-result-copy em{color:#664ed5;font-size:clamp(7.5px,5.5cqw,9px);font-style:normal;font-weight:950}
.sanctuary-management-search-result-copy strong{min-width:0;overflow:hidden;color:#293f60;font-size:clamp(13px,9.5cqw,16px);line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.sanctuary-management-search-result-copy small{color:#6f7f95;font-size:clamp(8px,5.8cqw,10px);font-weight:850}
.sanctuary-management-search-result>button,.sanctuary-management-register-character{width:100%;height:34px;padding:0 9px;border-radius:9px;font-size:clamp(9px,6.4cqw,11px)}
.sanctuary-management-official-result{padding:9px;gap:8px;border-radius:10px}
.sanctuary-management-official-result>p{font-size:clamp(7px,5.2cqw,8.5px)}
.sanctuary-management-relation-buttons{gap:5px}
.sanctuary-management-relation-buttons button{height:30px;font-size:clamp(7px,5.2cqw,8.5px)}
.sanctuary-management-search-reset{grid-row:4;width:100%;height:30px;font-size:clamp(8px,5.8cqw,10px)}

@media(max-width:699px){
  .sanctuary-management-composer-mode-switch{gap:4px}.sanctuary-management-composer-mode-switch button{height:25px;padding:0 7px;font-size:7.5px}.sanctuary-management-composer-mode-switch h2{margin-left:1px}
  .sanctuary-management-composer{height:auto;aspect-ratio:auto;grid-template-rows:auto auto auto}
  .sanctuary-management-composer-middle{grid-template-columns:86px minmax(0,1fr);grid-template-rows:minmax(430px,auto) minmax(370px,auto);overflow:visible}
  .sanctuary-management-force-rail{grid-column:1;grid-row:1;min-height:430px}
  .sanctuary-management-roster{grid-column:2;grid-row:1;min-height:430px}
  .sanctuary-management-candidate-rail{grid-column:1/-1;grid-row:2;min-height:370px;padding:14px;border-top:1px solid rgba(112,135,174,.13);border-left:0}
  .sanctuary-management-candidate-rail::after{left:12px;right:12px}
  .sanctuary-management-candidate-card{min-height:62px;padding:9px;grid-template-columns:36px minmax(0,1fr);gap:9px}
  .sanctuary-management-candidate-avatar{width:36px;height:36px}
  .sanctuary-management-draft-slot{padding:6px 6px 6px 27px}
  .sanctuary-management-draft-slot>span{left:6px;width:17px;height:17px;font-size:8px}
  .sanctuary-management-draft-slot strong{font-size:clamp(9px,4.5cqw,11px)}
  .sanctuary-management-draft-slot small{font-size:clamp(7px,3.6cqw,8.5px)}
  .sanctuary-management-party-labels span{font-size:8px}
}
.sanctuary-management-draft-slot{padding-right:42px}
@media(max-width:699px){.sanctuary-management-draft-slot{padding-right:31px}}

/* Stage 8 part 3: placement lock and balance proposal. The proposal is a
   viewport layer so the square composer keeps its dimensions and never gains
   horizontal overflow. */
.sanctuary-management-balance-open{margin-top:9px;min-height:32px;padding:0 12px;border:1px solid #b8c8ee;border-radius:9px;background:linear-gradient(135deg,#edf3ff,#f2edff);color:#3456c5;font-size:9px;font-weight:950;cursor:pointer}.sanctuary-management-balance-open:disabled{cursor:wait;opacity:.55}
.sanctuary-management-draft-slot.is-placement-locked{border-color:#b98a25;background:#fff9e8;color:#7a5917;box-shadow:inset 0 0 0 1px rgba(185,138,37,.15)}.sanctuary-management-draft-slot.is-placement-locked>span{background:#b78321;color:#fff}.sanctuary-management-draft-slot.is-placement-locked:not(:disabled){cursor:pointer}
.sanctuary-management-slot-lock{position:absolute;z-index:4;right:4px;bottom:4px;max-width:62px;height:20px;padding:0 6px;border:1px solid #d5aa4f;border-radius:6px;background:#fff8dc;color:#795718;font-size:6.5px;font-weight:950;white-space:nowrap;cursor:pointer;box-shadow:0 3px 9px rgba(121,87,24,.12)}.sanctuary-management-slot-lock[aria-pressed="true"]{background:#b78321;color:#fff}
.sanctuary-management-balance-panel{position:fixed;z-index:40;inset:50% auto auto 50%;width:min(720px,calc(100vw - 28px));max-height:calc(100dvh - 28px);transform:translate(-50%,-50%);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid rgba(112,135,174,.28);border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(11,24,48,.42);overflow:hidden;box-sizing:border-box}.sanctuary-management-balance-panel[hidden]{display:none!important}.sanctuary-management-balance-panel::before{content:"";position:fixed;z-index:-1;inset:-100vh -100vw;background:rgba(15,25,43,.58);backdrop-filter:blur(3px)}
.sanctuary-management-balance-panel>header{padding:18px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;border-bottom:1px solid #e2e8f2;background:linear-gradient(145deg,#fff,#f4f7fc)}.sanctuary-management-balance-panel>header>div{min-width:0}.sanctuary-management-balance-panel>header span{color:#3466d5;font-size:8px;font-weight:1000;letter-spacing:.14em}.sanctuary-management-balance-panel h3{margin:4px 0;color:#243754;font-size:21px}.sanctuary-management-balance-panel>header p{margin:0;color:#748298;font-size:10px;font-weight:780;line-height:1.5}.sanctuary-management-balance-panel>header>button{width:34px;height:34px;border:1px solid #d9e1ed;border-radius:10px;background:#fff;color:#66778d;font-size:19px;cursor:pointer}
.sanctuary-management-balance-body{min-width:0;min-height:0;padding:16px 20px;display:grid;align-content:start;gap:14px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.sanctuary-management-balance-body::-webkit-scrollbar{display:none}.sanctuary-management-balance-body h4{margin:0 0 8px;color:#465b79;font-size:11px}.sanctuary-management-balance-averages>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sanctuary-management-balance-averages article{min-width:0;padding:10px;display:grid;gap:3px;border:1px solid #dde5f0;border-radius:10px;background:#f8faff}.sanctuary-management-balance-averages span,.sanctuary-management-balance-averages small{color:#718096;font-size:8px;font-weight:850}.sanctuary-management-balance-averages strong{min-width:0;overflow:hidden;color:#314b77;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-balance-body ol,.sanctuary-management-balance-body ul{margin:0;padding:0;display:grid;gap:7px;list-style:none}.sanctuary-management-balance-body li{min-width:0;padding:9px 10px;display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #e0e6ef;border-radius:9px;background:#fff;color:#52657f;font-size:9px}.sanctuary-management-balance-body li b{color:#3158bd}.sanctuary-management-balance-body li small{color:#78869a;font-weight:850}.sanctuary-management-balance-body li.is-empty{grid-template-columns:minmax(0,1fr);background:#f7f9fc}.sanctuary-management-balance-body details{padding:10px;border:1px solid #eadfcb;border-radius:10px;background:#fffaf2}.sanctuary-management-balance-body summary{color:#8b6321;font-size:9px;font-weight:950;cursor:pointer}.sanctuary-management-balance-body details ul{margin-top:8px}.sanctuary-management-balance-body details li{grid-template-columns:110px minmax(0,1fr);border-color:#eee2cf;background:#fff}.sanctuary-management-balance-expiry{margin:0;color:#7b899c;font-size:8px;font-weight:850}
.sanctuary-management-balance-panel>footer{padding:13px 20px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e2e8f2;background:#fbfcfe}.sanctuary-management-balance-panel>footer button{min-width:92px;height:38px;padding:0 12px;border:1px solid #d7dfeb;border-radius:10px;background:#fff;color:#5f7088;font-size:9px;font-weight:950;cursor:pointer}.sanctuary-management-balance-panel>footer button.is-primary{border-color:#4566df;background:linear-gradient(135deg,#315fe8,#7250eb);color:#fff}.sanctuary-management-balance-panel>footer button:disabled{cursor:not-allowed;opacity:.42}
@media(max-width:699px){.sanctuary-management-balance-open{min-height:29px;padding-inline:9px;font-size:7.5px}.sanctuary-management-slot-lock{right:2px;bottom:2px;max-width:48px;height:16px;padding:0 4px;border-radius:4px;font-size:5.2px}.sanctuary-management-balance-panel{inset:5px;width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:none;transform:none;border-radius:15px}.sanctuary-management-balance-panel>header{padding:14px}.sanctuary-management-balance-panel h3{font-size:18px}.sanctuary-management-balance-panel>header p{font-size:9px}.sanctuary-management-balance-body{padding:12px 14px}.sanctuary-management-balance-averages>div{grid-template-columns:repeat(2,minmax(0,1fr))}.sanctuary-management-balance-body li{grid-template-columns:72px minmax(0,1fr);font-size:8.5px}.sanctuary-management-balance-body li small{grid-column:2}.sanctuary-management-balance-panel>footer{padding:10px 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.sanctuary-management-balance-panel>footer button{min-width:0;width:100%;padding:0 6px;font-size:8px}}
@media(max-width:350px){.sanctuary-management-balance-averages>div{grid-template-columns:minmax(0,1fr)}.sanctuary-management-balance-panel>footer{grid-template-columns:minmax(0,1fr)}.sanctuary-management-balance-panel>footer button{height:34px}}
@media(prefers-reduced-motion:reduce){.sanctuary-management-balance-panel::before{backdrop-filter:none}}

/* Force difficulty belongs to each force. Sanctuary 3 exposes two choices and
   Sanctuary 4 exposes three, all beside the force summary. */
.sanctuary-management-force-difficulty-editor{flex:0 0 auto;display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:5px}.sanctuary-management-force-difficulty-editor button{min-width:0;height:30px;padding:3px 6px;display:flex;align-items:center;justify-content:center;gap:4px;border:1px solid #d7e0eb;border-radius:8px;background:#f7f9fc;color:#66778e;font-size:7px;font-weight:950;cursor:pointer}.sanctuary-management-force-difficulty-editor button small{overflow:visible;color:inherit;font-size:6.5px;white-space:nowrap}.sanctuary-management-force-difficulty-editor button[data-draft-force-difficulty="EASY"][aria-pressed="true"]{border-color:#83b9e8;background:#eef7ff;color:#24689d}.sanctuary-management-force-difficulty-editor button[data-draft-force-difficulty="NORMAL"][aria-pressed="true"]{border-color:#74c39c;background:#eefaf4;color:#18754d}.sanctuary-management-force-difficulty-editor button[data-draft-force-difficulty="HARD"][aria-pressed="true"]{border-color:#e47e86;background:#fff0f1;color:#ad303a}
@media(max-width:699px){.sanctuary-management-force-requirement-summary{align-items:flex-start;flex-wrap:wrap}.sanctuary-management-force-difficulty-editor{order:3;width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.sanctuary-management-force-difficulty-editor button{height:28px;font-size:7.5px}}

/* Stage 9: the slot number is a background watermark and the actual class icon
   is the first foreground datum. This applies equally to create and edit. */
.sanctuary-management-draft-slot{isolation:isolate;padding:7px 42px 7px 8px;grid-template-columns:32px minmax(0,1fr);align-items:center;align-content:center;gap:8px}
.sanctuary-management-draft-slot::before{content:attr(data-slot-number);position:absolute;z-index:0;left:50%;top:50%;color:#506a9b;font-size:34px;font-weight:1000;line-height:1;opacity:.07;transform:translate(-50%,-50%);pointer-events:none}
.sanctuary-management-draft-slot>.sanctuary-management-draft-character-icon,.sanctuary-management-draft-slot.is-occupied>.sanctuary-management-draft-character-icon{position:relative;z-index:1;left:auto;top:auto;width:32px;height:32px;display:grid;place-items:center;transform:none;border-radius:0;background:transparent;color:#657a9a;font-size:10px;font-weight:1000}
.sanctuary-management-draft-character-icon img{display:block;width:100%;height:100%;object-fit:contain}.sanctuary-management-draft-slot>.sanctuary-management-draft-slot-copy,.sanctuary-management-draft-slot.is-occupied>.sanctuary-management-draft-slot-copy{position:relative;z-index:1;left:auto;top:auto;width:auto;height:auto;min-width:0;display:grid;place-items:initial;gap:3px;transform:none;border-radius:0;background:transparent;color:inherit;font-size:inherit;font-weight:inherit}.sanctuary-management-draft-slot-copy strong,.sanctuary-management-draft-slot-copy small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sanctuary-management-power-value{display:inline-flex;align-items:center;gap:4px;min-width:0;vertical-align:middle}.sanctuary-management-power-value img{width:13px;height:13px;flex:0 0 auto;object-fit:contain}.sanctuary-management-power-value b{font:inherit;font-weight:950;white-space:nowrap}
.sanctuary-management-difficulty{display:grid;gap:7px}.sanctuary-management-difficulty[hidden]{display:none!important}.sanctuary-management-difficulty>strong{color:#53637a;font-size:8px}.sanctuary-management-difficulty>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.sanctuary-management-difficulty button{height:38px;border:1px solid #d7e0eb;border-radius:9px;background:#f7f9fc;color:#67778e;font-size:9px;font-weight:950}.sanctuary-management-difficulty button[data-draft-difficulty="EASY"][aria-pressed="true"]{border-color:#83b9e8;background:#eef7ff;color:#24689d}.sanctuary-management-difficulty button[data-draft-difficulty="NORMAL"][aria-pressed="true"]{border-color:#74c39c;background:#eefaf4;color:#18754d}.sanctuary-management-difficulty button[data-draft-difficulty="HARD"][aria-pressed="true"]{border-color:#e47e86;background:#fff0f1;color:#ad303a}
.sanctuary-management-search-result.is-ineligible,.sanctuary-management-official-result.is-ineligible{border-color:#efb1b6;background:#fff7f7}.sanctuary-management-search-result-actions button:disabled{cursor:not-allowed;opacity:.42}
.sanctuary-management-candidate-copy small,.sanctuary-management-search-result-copy small,.sanctuary-management-linked-alt-card small,.sanctuary-management-force-option small,.sanctuary-management-force-requirement-summary strong{display:flex;align-items:center;gap:4px;min-width:0}
@media(max-width:699px){.sanctuary-management-draft-slot{padding:6px 31px 6px 5px;grid-template-columns:26px minmax(0,1fr);gap:5px}.sanctuary-management-draft-slot>.sanctuary-management-draft-character-icon{width:26px;height:26px}.sanctuary-management-draft-slot::before{font-size:28px}.sanctuary-management-difficulty>strong{font-size:9px}.sanctuary-management-difficulty button{height:36px;font-size:9px}}

/* Stage 13: external membership and main/alt family choice are independent.
   Controls stay inside the candidate rail and never enlarge the composer. */
.sanctuary-management-relation-buttons{grid-template-columns:repeat(auto-fit,minmax(78px,1fr))}
.sanctuary-management-list-sync{min-width:0;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #dce4ef;border-radius:9px;background:#f7f9fc}.sanctuary-management-list-sync>span{color:#536780;font-size:clamp(8px,5.8cqw,10px);font-weight:950;white-space:nowrap}.sanctuary-management-list-sync>div{display:grid;grid-template-columns:repeat(2,34px);gap:4px}.sanctuary-management-list-sync button{height:27px;border:1px solid #cad5e5;border-radius:7px;background:#fff;color:#718096;font-size:9px;font-weight:1000;cursor:pointer}.sanctuary-management-list-sync button[aria-pressed="true"]{border-color:#4c6bdd;background:#3f63dc;color:#fff;box-shadow:0 4px 11px rgba(63,99,220,.2)}
.sanctuary-management-register-blocker{display:block;min-width:0;overflow:hidden;color:#c23e49;font-size:clamp(8px,5.8cqw,10px);font-weight:950;text-align:center;text-overflow:ellipsis;white-space:nowrap}.sanctuary-management-main-confirmed strong{color:#664ed5;text-shadow:0 0 10px rgba(102,78,213,.2)}
.sanctuary-management-draft-status-wrap{min-width:0;display:flex;align-items:center;gap:10px}.sanctuary-management-list-retry{flex:0 0 auto;height:30px;padding:0 10px;border:1px solid #d95761!important;border-radius:8px!important;background:#fff1f2!important;color:#b62f3b!important;font-size:8px!important;font-weight:1000;cursor:pointer}.sanctuary-management-list-retry:disabled{cursor:wait;opacity:.5}
@media(max-width:699px){.sanctuary-management-draft-status-wrap{align-items:flex-start;flex-direction:column;gap:4px}.sanctuary-management-list-retry{height:25px;padding:0 7px;font-size:7px!important}.sanctuary-management-list-sync>div{grid-template-columns:repeat(2,minmax(30px,1fr))}}

/* Composer roster feedback mirrors the public roster without changing any
   measured box. Animated borders are an overlay, never a thicker real border. */
.sanctuary-management-roster,.sanctuary-management-party-labels span,.sanctuary-management-draft-slot{transition:border-color .22s ease,background-color .22s ease,box-shadow .22s ease,filter .22s ease}
.sanctuary-management-roster:hover{box-shadow:inset 0 0 0 1px rgba(73,139,108,.1)}
.sanctuary-management-party-labels span:hover{background:#e8f5ef;box-shadow:inset 0 0 0 1px rgba(73,153,113,.14)}
.sanctuary-management-draft-slot:not(:disabled):hover{border-color:#75a28e;background:#edf8f3;color:#456454;box-shadow:inset 0 0 0 1px rgba(58,145,104,.16)}
.sanctuary-management-draft-slot.is-selected:not(.is-occupied){border-color:#7250eb;background:#f6f3ff;color:#5c46b8;box-shadow:inset 0 0 0 1px rgba(114,80,235,.14)}
.sanctuary-management-draft-slot:not(.is-occupied){background:#effbf5;border-color:transparent}
.sanctuary-management-draft-slot:not(.is-occupied):not(.is-selected):not(:disabled):hover{border-color:#75a28e;background:#e6f7ef;color:#456454}
.sanctuary-management-draft-slot.is-selected:not(.is-occupied){border-color:#7250eb;background:#f6f3ff;color:#5c46b8}
.sanctuary-management-draft-slot:not(.is-occupied)::after{content:"";position:absolute;z-index:3;inset:1px;border-radius:8px;pointer-events:none;background:repeating-linear-gradient(90deg,#4fc989 0 7px,transparent 7px 12px) 0 0/24px 2px repeat-x,repeating-linear-gradient(90deg,#4fc989 0 7px,transparent 7px 12px) 12px 100%/24px 2px repeat-x,repeating-linear-gradient(180deg,#4fc989 0 7px,transparent 7px 12px) 0 12px/2px 24px repeat-y,repeating-linear-gradient(180deg,#4fc989 0 7px,transparent 7px 12px) 100% 0/2px 24px repeat-y;opacity:.8;animation:sanctuary-draft-empty-dashes 1.5s linear infinite}
@keyframes sanctuary-draft-empty-dashes{to{background-position:24px 0,-12px 100%,0 -12px,100% 24px}}

.sanctuary-management-draft-slot-shell.is-class-slot>.sanctuary-management-draft-slot{padding:4px;grid-template-columns:minmax(0,1fr);place-items:center;overflow:hidden;background:#e8faf1}
.sanctuary-management-draft-slot-shell.is-class-slot .sanctuary-management-draft-character-icon{position:absolute;z-index:1;left:-4px;top:50%;width:64px;height:64px;opacity:.7;transform:translateY(-50%);pointer-events:none}
.sanctuary-management-draft-slot-shell.is-class-slot .sanctuary-management-draft-slot-copy{position:relative;z-index:2;width:100%;display:grid;place-items:center;padding:0 3px;box-sizing:border-box}
.sanctuary-management-draft-slot-shell.is-class-slot .sanctuary-management-draft-slot-copy strong{width:100%;overflow:visible;color:#137049;font-size:clamp(11px,3.2cqw,15px);font-weight:1000;line-height:1.05;text-align:center;text-overflow:clip;text-shadow:0 1px 0 #fff,0 0 9px rgba(85,222,148,.28);white-space:nowrap}
.sanctuary-management-draft-slot-shell.is-class-slot>.sanctuary-management-slot-class-trigger{z-index:5;left:0;right:auto;width:58px;height:100%;transform:translateY(-50%);filter:none}
.sanctuary-management-draft-slot-shell.is-class-slot>.sanctuary-management-slot-class-trigger>*{opacity:0}
@media(max-width:699px){.sanctuary-management-draft-slot-shell.is-class-slot .sanctuary-management-draft-character-icon{left:-3px;width:54px;height:54px}.sanctuary-management-draft-slot-shell.is-class-slot>.sanctuary-management-slot-class-trigger{width:49px}.sanctuary-management-draft-slot-shell.is-class-slot .sanctuary-management-draft-slot-copy strong{font-size:clamp(9px,4.2cqw,12px)}}
@media(prefers-reduced-motion:reduce){.sanctuary-management-roster,.sanctuary-management-party-labels span,.sanctuary-management-draft-slot{transition:none}.sanctuary-management-draft-slot:not(.is-occupied)::after{animation:none}}
