.signup60-page{--signup-blue:#3479c9;--signup-blue-soft:#edf5ff;--signup-red:#c45c61;--signup-red-soft:#fff1f1;--signup-neutral:#f5f8f6;display:grid;gap:18px}
.signup60-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:24px 26px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 14px 38px #193c3109}
.signup60-hero h2{margin:6px 0 5px;font-size:24px;font-weight:650}.signup60-hero p{margin:0;color:#71827b;line-height:1.65}.signup60-hero-actions{display:flex;gap:9px;flex:none}.signup60-hero-actions button{min-height:44px}
.signup60-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.signup60-summary article{padding:16px 18px;border:1px solid var(--line);border-radius:11px;background:#fff}.signup60-summary small{display:block;color:#7b8983}.signup60-summary strong{display:block;margin-top:6px;font-size:22px;font-weight:650}.signup60-summary article:nth-child(2) strong{color:var(--signup-blue)}.signup60-summary article:nth-child(3) strong{color:var(--signup-red)}
.signup60-event-list{display:grid;gap:12px}.signup60-event-card{display:grid;grid-template-columns:minmax(250px,1.2fr) minmax(320px,1fr) auto;align-items:center;gap:20px;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:#fff}.signup60-event-card h3{margin:0 0 8px;font-size:17px}.signup60-event-meta,.signup60-side-progress{display:flex;flex-wrap:wrap;gap:8px 14px;color:#71817b;font-size:12px}.signup60-event-meta span{display:inline-flex;align-items:center;gap:5px}.signup60-status{display:inline-flex;align-items:center;width:max-content;margin-bottom:9px;padding:4px 9px;border-radius:14px;background:#edf3ef;color:#49665d;font-size:11px;font-weight:650}.signup60-status.open{background:#e8f3ef;color:#0d6b63}.signup60-status.locked{background:#f5eedf;color:#826625}.signup60-status.closed{background:#f2f2f2;color:#737b77}.signup60-side-progress{display:grid;grid-template-columns:1fr 1fr;gap:8px}.signup60-side-progress>div{padding:10px 12px;border-radius:8px;background:var(--signup-blue-soft);color:#356da9}.signup60-side-progress>div:last-child{background:var(--signup-red-soft);color:#a84d52}.signup60-side-progress b{display:flex;justify-content:space-between;gap:12px}.signup60-side-progress i{display:block;height:4px;margin-top:7px;border-radius:4px;background:#dbe8f7;overflow:hidden}.signup60-side-progress em{display:block;height:100%;background:var(--signup-blue)}.signup60-side-progress>div:last-child i{background:#f3dfe0}.signup60-side-progress>div:last-child em{margin-left:auto;background:var(--signup-red)}.signup60-card-actions{display:flex;gap:7px;white-space:nowrap}.signup60-card-actions button{min-height:40px;padding:8px 12px}
.signup60-empty{display:grid;place-items:center;min-height:260px;padding:48px 24px;border:1px dashed #ccd9d2;border-radius:13px;background:#fff;text-align:center}.signup60-empty svg{width:42px;height:42px;color:#6d9489}.signup60-empty h3{margin:15px 0 6px}.signup60-empty p{max-width:520px;margin:0 0 20px;color:#76857f;line-height:1.7}
.signup60-editor{display:grid;gap:16px}.signup60-editor-head{position:sticky;z-index:8;top:0;display:flex;align-items:center;gap:14px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:#fbfdfbcc;box-shadow:0 8px 24px #183a300d;backdrop-filter:blur(12px)}.signup60-editor-head h2{margin:0;font-size:17px}.signup60-editor-head small{display:block;margin-top:3px;color:#7c8a84}.signup60-editor-actions{display:flex;gap:8px;margin-left:auto}.signup60-editor-actions button{min-height:40px}.signup60-save-state{display:inline-flex;align-items:center;gap:6px;color:#72817b;font-size:12px}.signup60-save-state:before{content:"";width:7px;height:7px;border-radius:50%;background:#86a399}.signup60-save-state.dirty:before{background:#d5a34e}
.signup60-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;padding:5px;border:1px solid var(--line);border-radius:11px;background:#fff}.signup60-steps button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border:0;background:transparent;color:#71817a}.signup60-steps button span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef2ef;font-size:11px;font-weight:700}.signup60-steps button.active{border-radius:8px;background:#e4f0ec;color:#0d6b63;font-weight:650}.signup60-steps button.active span{background:#0d6b63;color:#fff}
.signup60-panel{padding:24px 26px;border:1px solid var(--line);border-radius:13px;background:#fff}.signup60-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.signup60-panel-heading h3{margin:0 0 5px;font-size:19px}.signup60-panel-heading p{margin:0;color:#7b8983;line-height:1.6}.signup60-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.signup60-form-grid label{margin:0 0 18px}.signup60-form-grid .wide{grid-column:1/-1}.signup60-field-help{display:block;margin-top:2px;color:#8a9791;font-size:11px;line-height:1.55}.signup60-inline-check{display:flex!important;grid-column:1/-1;align-items:flex-start;gap:9px;margin:4px 0 0!important;padding:13px 14px;border-radius:8px;background:#f5f8f6}.signup60-inline-check input{width:auto;margin-top:2px}
.signup60-side-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(100%,560px);padding:5px;border:1px solid var(--line);border-radius:11px;background:#f5f7f6}.signup60-side-switch button{display:flex;align-items:center;justify-content:space-between;min-height:46px;border:0;background:transparent}.signup60-side-switch button b{font-size:14px}.signup60-side-switch button span{font-size:11px}.signup60-side-switch button.blue.active{background:#fff;color:var(--signup-blue);box-shadow:0 3px 12px #3479c91a}.signup60-side-switch button.red.active{background:#fff;color:var(--signup-red);box-shadow:0 3px 12px #c45c611a}
.signup60-structure{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px}.signup60-group-rail{padding:10px;border:1px solid var(--line);border-radius:11px;background:#f7f9f8}.signup60-group-rail>header{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 10px}.signup60-group-rail>header strong{font-size:13px}.signup60-group-rail>header button{min-height:34px;padding:5px 9px}.signup60-group-tab{width:100%;margin:4px 0;padding:11px 12px;border-color:transparent;background:transparent;text-align:left}.signup60-group-tab b{display:flex;justify-content:space-between;gap:10px}.signup60-group-tab small{display:block;margin-top:4px;color:#819088}.signup60-group-tab.active{border-color:#cadbd4;background:#fff;box-shadow:0 3px 12px #173b300b}.signup60-group-tab.active.blue{color:var(--signup-blue)}.signup60-group-tab.active.red{color:var(--signup-red)}.signup60-job-chart{display:flex;width:100%;height:7px;margin-top:8px;overflow:hidden;border-radius:999px;background:#e4eae7;box-shadow:inset 0 0 0 1px #d9e2de}.signup60-job-chart i{display:block;min-width:3px;height:100%;flex:var(--count) 1 0;background:var(--job);border-right:1px solid #ffffffb8}.signup60-job-chart i:last-child{border-right:0}.signup60-job-chart.empty:after{content:"尚未设置";display:block;width:100%;color:#8a9691;font-size:8px;line-height:7px;text-align:center}.signup60-group-tab:not(.active) .signup60-job-chart{opacity:.72}.signup60-group-add{width:100%;margin-top:8px;border-style:dashed;background:#fff;color:#60756e}
.signup60-group-workspace{min-width:0}.signup60-group-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.signup60-group-header input{max-width:260px;font-size:16px;font-weight:650}.signup60-group-header .spacer{min-width:12px}.signup60-group-header button{min-height:38px}.signup60-squad-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:10px}.signup60-squad{overflow:hidden;border:1px solid #dfe6e2;border-radius:10px;background:#fbfcfb}.signup60-squad>header{display:flex;align-items:center;gap:8px;padding:9px 11px;background:#f2f6f4}.signup60-squad>header strong{font-size:13px}.signup60-squad>header select{margin-left:auto;max-width:145px;padding:6px 8px;font-size:11px}.signup60-slot-template{display:grid;grid-template-columns:34px minmax(92px,.72fr) minmax(130px,1.28fr);align-items:center;gap:8px;min-height:51px;padding:7px 9px;border-top:1px solid #e8ece9;background:#fff}.signup60-slot-template>span{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#edf2ef;color:#65776f;font-size:11px;font-weight:700}.signup60-slot-template select,.signup60-slot-template input{width:100%;padding:7px 8px;font-size:12px}.signup60-slot-template select{border-left:5px solid var(--job,#cbd5d0)}
.signup60-dual-preview{display:grid;grid-template-columns:1fr 1fr;gap:12px}.signup60-preview-side{overflow:hidden;border:1px solid #dfe6e2;border-radius:11px;background:#fbfcfb}.signup60-preview-side>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px}.signup60-preview-side.blue>header{background:var(--signup-blue-soft);color:#2f6cab}.signup60-preview-side.red>header{background:var(--signup-red-soft);color:#a94d52}.signup60-preview-groups{display:grid;gap:8px;padding:10px}.signup60-preview-group{padding:10px;border-radius:8px;background:#fff}.signup60-preview-group header{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12px}.signup60-preview-teams{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.signup60-preview-team{padding:8px;border:1px solid #e7ece9;border-radius:7px}.signup60-preview-team>b{display:block;margin-bottom:6px;font-size:11px}.signup60-preview-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.signup60-preview-slots i{height:22px;border-left:5px solid var(--job,#cbd5d0);border-radius:4px;background:#f2f5f3}.signup60-publish-checks{display:grid;gap:8px;margin-top:16px}.signup60-check-row{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:8px;background:#f5f8f6;color:#61736c}.signup60-check-row.ok:before{content:"✓";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#dceee8;color:#0d6b63;font-weight:800}.signup60-check-row.bad:before{content:"!";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fae8e5;color:#a95048;font-weight:800}
.signup60-manage-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.signup60-manage-toolbar input{width:220px}.signup60-manage-toolbar .spacer{flex:1}.signup60-registration-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px}.signup60-registration-table{min-width:980px;border:0;border-radius:0}.signup60-registration-table tbody tr{cursor:pointer}.signup60-registration-table tbody tr:hover td{background:#f7faf8}.signup60-side-mark{display:inline-flex;align-items:center;gap:7px}.signup60-side-mark:before{content:"";width:6px;height:20px;border-radius:3px;background:var(--signup-blue)}.signup60-side-mark.red:before{background:var(--signup-red)}
.signup60-modal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:0 14px}.signup60-modal-grid>label{align-content:start;min-width:0}.signup60-modal-grid>label>input,.signup60-modal-grid>label>select{width:100%;height:42px}.signup60-modal-grid .wide{grid-column:1/-1}.signup60-danger-zone{margin-top:18px;padding:15px;border:1px solid #edd8d4;border-radius:9px;background:#fffafa}.signup60-danger-zone h4{margin:0 0 5px;color:#9c4943}.signup60-danger-zone p{margin:0 0 12px;color:#866d68;font-size:12px;line-height:1.6}
.hall-post.signup60:before{background:linear-gradient(180deg,var(--signup-blue) 0 48%,var(--signup-red) 52% 100%)}.hall-post.signup60 .hall-type{background:#f8e6ee;color:#a34568}.hall-signup60-progress{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hall-signup60-progress>div{padding:9px 10px;border-radius:8px;background:var(--signup-blue-soft);color:#356da9}.hall-signup60-progress>div:last-child{background:var(--signup-red-soft);color:#a84d52}.hall-signup60-progress b{display:flex;justify-content:space-between;gap:12px;font-size:12px}.hall-signup60-progress i{display:block;height:4px;margin-top:7px;border-radius:4px;background:#dbe8f7;overflow:hidden}.hall-signup60-progress em{display:block;height:100%;border-radius:inherit;background:var(--signup-blue)}.hall-signup60-progress>div:last-child i{background:#f3dfe0}.hall-signup60-progress>div:last-child em{margin-left:auto;background:var(--signup-red)}#dialog.signup60-hall-dialog{width:min(1040px,calc(100vw - 36px));max-height:92vh}.signup60-hall-preview{display:grid;gap:14px}.signup60-hall-preview-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:0 2px 12px;border-bottom:1px solid var(--line)}.signup60-hall-preview-meta strong{font-size:17px}.signup60-hall-preview-meta span{color:#74847e;font-size:12px}.signup60-hall-dialog .signup60-preview-slots i.occupied{background:var(--job);box-shadow:inset 0 0 0 1px #ffffffa3}.signup60-hall-dialog .signup60-preview-groups{max-height:58vh;overflow:auto}
@media(max-width:1120px){.signup60-event-card{grid-template-columns:1fr auto}.signup60-side-progress{grid-column:1/-1;grid-row:2}.signup60-structure{grid-template-columns:190px minmax(0,1fr)}.signup60-squad-grid{grid-template-columns:1fr}}
@media(max-width:760px){.signup60-hero{align-items:flex-start;flex-direction:column}.signup60-hero-actions{width:100%}.signup60-hero-actions button{flex:1}.signup60-summary{grid-template-columns:1fr 1fr}.signup60-event-card{grid-template-columns:1fr}.signup60-side-progress{grid-column:auto;grid-row:auto}.signup60-card-actions{width:100%}.signup60-card-actions button{flex:1}.signup60-editor-head{position:static;align-items:flex-start;flex-wrap:wrap}.signup60-editor-actions{width:100%;margin-left:0}.signup60-editor-actions button{flex:1}.signup60-steps{grid-template-columns:repeat(3,1fr)}.signup60-form-grid{grid-template-columns:1fr}.signup60-form-grid .wide{grid-column:auto}.signup60-panel{padding:20px 16px}.signup60-structure{grid-template-columns:1fr}.signup60-group-rail{display:flex;overflow-x:auto;gap:6px}.signup60-group-rail>header{position:sticky;left:0;min-width:92px;background:#f7f9f8}.signup60-group-tab{min-width:150px}.signup60-group-add{min-width:110px}.signup60-group-header{align-items:stretch;flex-wrap:wrap}.signup60-group-header input{max-width:none;flex:1}.signup60-dual-preview{grid-template-columns:1fr}.signup60-modal-grid{grid-template-columns:1fr}.signup60-modal-grid .wide{grid-column:auto}.signup60-hall-preview-meta{align-items:flex-start;flex-direction:column}.hall-signup60-progress{grid-template-columns:1fr}}
@media(max-width:480px){.signup60-summary{grid-template-columns:1fr}.signup60-side-switch{grid-template-columns:1fr}.signup60-slot-template{grid-template-columns:30px 1fr}.signup60-slot-template input{grid-column:2}.signup60-preview-teams{grid-template-columns:1fr}.signup60-editor-actions{display:grid;grid-template-columns:1fr 1fr}.signup60-editor-actions .primary{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.signup60-page *{scroll-behavior:auto!important;transition:none!important}}
.signup60-squad>header>input{min-width:90px;flex:1;padding:6px 8px;font-size:13px;font-weight:650}
.signup60-page button:focus-visible,.signup60-page input:focus-visible,.signup60-page select:focus-visible,.signup60-registration-table tbody tr:focus-visible{outline:3px solid #7fb0da;outline-offset:2px}.signup60-registration-table tbody tr:focus-visible td{background:#eef5fb}

/* 60v60 layout editor: reset the global application sidebar rules that also
   target semantic <aside> elements, then keep the group rail inside its grid. */
.signup60-layout-panel{min-width:0;overflow:visible}
.signup60-layout-panel>.signup60-panel-heading{align-items:center;margin-bottom:14px}
.signup60-template-actions{display:flex;align-items:center;gap:8px;flex:none}
.signup60-backup-entry{display:inline-flex;align-items:center;gap:8px;min-height:42px;white-space:nowrap;background:#f7faf8}
.signup60-backup-entry b{display:grid;place-items:center;min-width:36px;height:24px;padding:0 7px;border-radius:13px;background:#e3eeea;color:#17675e;font-size:11px}
.signup60-layout-switch{display:flex;justify-content:flex-end;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #edf1ee}
.signup60-layout-switch .signup60-side-switch{width:min(100%,620px)}
.signup60-auto-intro{margin-bottom:14px}.signup60-auto-intro strong{font-size:16px}.signup60-auto-intro p{margin:5px 0 0;color:#7a8982;line-height:1.6}.signup60-auto-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.signup60-auto-options label{display:flex!important;align-items:flex-start;gap:10px!important;margin:0!important;padding:14px;border:1px solid #dce5e0;border-radius:10px;background:#f8faf9;cursor:pointer}.signup60-auto-options label:has(input:checked){border-color:#6ca99e;background:#edf6f2;box-shadow:inset 0 0 0 1px #6ca99e}.signup60-auto-options input{width:auto;margin:3px 0 0}.signup60-auto-options span{display:grid;gap:4px}.signup60-auto-options b{font-size:13px}.signup60-auto-options small{color:#74847d;line-height:1.5}
.signup60-structure{grid-template-columns:184px minmax(0,1fr);align-items:start;gap:16px}
.signup60-group-rail{position:sticky!important;inset:auto!important;top:84px!important;display:block!important;flex-direction:initial!important;width:auto!important;height:auto!important;min-height:0!important;max-height:calc(100vh - 108px);overflow-y:auto;padding:10px!important;border:1px solid var(--line)!important;border-radius:11px;background:#f7f9f8}
.signup60-group-rail>header{height:auto!important;min-height:0!important;padding:5px 5px 10px!important;border:0!important;background:transparent!important}
.signup60-group-rail>header span{color:#829089;font-size:11px}
.signup60-group-workspace{width:100%;min-width:0}
.signup60-group-header{min-height:52px;margin-bottom:12px;padding:0 2px 10px;border-bottom:1px solid #edf1ee}
.signup60-group-header label{display:grid;gap:4px;min-width:220px;margin:0}
.signup60-group-header label>span{color:#788780;font-size:10px}
.signup60-group-header input{width:100%;max-width:300px;min-height:36px;padding:7px 9px}
.signup60-squad-grid{grid-template-columns:repeat(2,minmax(320px,1fr));gap:12px}
.signup60-squad{min-width:0}
.signup60-squad>header{min-height:42px;padding:7px 9px}
.signup60-squad>header input,.signup60-squad>header select{min-width:0;box-sizing:border-box}
.signup60-slot-template{grid-template-columns:28px minmax(100px,.72fr) minmax(150px,1.28fr);gap:7px;min-height:44px;margin:0;padding:6px 8px}
.signup60-slot-template>span{width:26px;height:26px}
.signup60-slot-template select,.signup60-slot-template input{min-width:0;box-sizing:border-box;padding:6px 7px}

#dialog.signup60-backup-dialog{width:min(760px,calc(100vw - 36px))}
.signup60-backup-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:4px 0 16px;padding:12px 14px;border-radius:9px;background:#f4f7f5}
.signup60-backup-intro p{margin:0;color:#667870;line-height:1.6}
.signup60-backup-intro strong{flex:none;color:#17675e}
.signup60-backup-list{display:grid;gap:10px}
.signup60-backup-slot{display:grid;grid-template-columns:38px minmax(180px,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:12px 14px;border:1px solid #dfe7e2;border-radius:10px;background:#fff}
.signup60-backup-slot>span{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#edf3f0;color:#567169;font:600 12px Georgia,serif}
.signup60-backup-slot>div:nth-child(2){min-width:0}
.signup60-backup-slot>div:nth-child(2)>strong,.signup60-backup-slot>div:nth-child(2)>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.signup60-backup-slot>div:nth-child(2)>small{margin-top:5px;color:#819089;font-size:11px}
.signup60-backup-slot.empty{border-style:dashed;background:#fbfcfb}
.signup60-backup-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
.signup60-backup-actions button,.signup60-backup-slot>button{min-height:36px;padding:7px 10px;font-size:12px}

@media(max-width:1180px){.signup60-squad-grid{grid-template-columns:1fr}}
@media(max-width:760px){.signup60-layout-panel>.signup60-panel-heading{align-items:flex-start}.signup60-template-actions{width:100%;flex-wrap:wrap}.signup60-template-actions button{flex:1}.signup60-layout-switch{justify-content:stretch}.signup60-layout-switch .signup60-side-switch{width:100%}.signup60-structure{grid-template-columns:1fr}.signup60-group-rail{position:static!important;display:flex!important;width:100%!important;max-height:none;overflow-x:auto;overflow-y:hidden}.signup60-group-rail>header{position:sticky;left:0;z-index:1;min-width:92px;background:#f7f9f8!important}.signup60-group-header label{min-width:0;flex:1}.signup60-auto-options{grid-template-columns:1fr}.signup60-backup-intro{align-items:flex-start;flex-direction:column}.signup60-backup-slot{grid-template-columns:38px minmax(0,1fr)}.signup60-backup-actions,.signup60-backup-slot>button{grid-column:1/-1}.signup60-backup-actions{display:grid;grid-template-columns:1fr 1fr}.signup60-backup-actions button{width:100%}}
@media(max-width:520px){.signup60-slot-template{grid-template-columns:28px minmax(0,1fr)}.signup60-slot-template input{grid-column:2}.signup60-panel-heading .signup60-backup-entry{width:100%;justify-content:center}.signup60-layout-panel>.signup60-panel-heading{flex-wrap:wrap}}

/* The event list shares the hall's compact hierarchy while keeping both sides
   visually distinct through accent rails instead of nested cards. */
.signup60-page{gap:14px}
.signup60-hero{align-items:center;padding:18px 20px;border-radius:11px;box-shadow:none}
.signup60-hero h2{font-size:20px}
.signup60-summary{gap:8px}.signup60-summary article{padding:12px 14px;border-radius:9px}.signup60-summary strong{margin-top:4px;font-size:19px}
.signup60-event-list{display:grid;width:100%;columns:auto;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:14px;align-items:start;container-type:inline-size}
.signup60-event-card{display:inline-grid;box-sizing:border-box;width:100%;margin:0 0 14px;padding:16px 17px;grid-template-columns:1fr;align-items:start;gap:12px;vertical-align:top;break-inside:avoid;page-break-inside:avoid;box-shadow:0 6px 20px #27493f08}
.signup60-event-card h3{margin-bottom:6px;font-size:16px}
.signup60-side-progress{grid-column:auto;grid-row:auto;gap:0;border-top:1px solid #edf1ef;border-bottom:1px solid #edf1ef}
.signup60-side-progress>div{padding:9px 2px;border-radius:0;background:transparent;border-left:3px solid var(--signup-blue);color:#356da9}
.signup60-side-progress>div:last-child{border-left-color:var(--signup-red);background:transparent;color:#a84d52}
.signup60-side-progress>div+div{border-top:0;margin-left:12px}
.signup60-event-card>*{min-width:0}
.signup60-event-card h3,.signup60-side-progress b span{overflow-wrap:anywhere}
.signup60-side-progress b span{min-width:0}
.signup60-side-progress b span:last-child{flex:none;white-space:nowrap}
.signup60-card-actions{flex-wrap:wrap}
.signup60-side-progress b,.signup60-side-progress i{margin-left:9px;margin-right:2px}
.signup60-card-actions{width:100%;white-space:normal}.signup60-card-actions button{flex:1;min-width:0}
.signup60-event-list:has(>.signup60-event-card:only-child){columns:1}
@container (min-width:820px){.signup60-event-card:only-child{grid-template-columns:minmax(220px,1.05fr) minmax(280px,1fr) minmax(200px,auto);align-items:center;column-gap:18px}.signup60-event-card:only-child .signup60-card-actions{width:auto}}
@media(max-width:760px){.signup60-event-list{columns:1}.signup60-event-card{margin-bottom:10px}.signup60-hero{padding:16px}}


.signup60-event-list>.signup60-event-card{margin:0}
@media(max-width:760px){.signup60-event-list{grid-template-columns:1fr}}

/* Registration management mirrors the working lineup board: people stay easy
   to scan on the left while every live slot remains visible on the right. */
.signup60-manage-panel{min-width:0;padding:20px}
.signup60-manage-heading{align-items:center;margin-bottom:12px}
.signup60-live-state{display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 11px;border-radius:999px;background:#edf6f2;color:#176b61;font-size:11px;white-space:nowrap}
.signup60-live-state i{width:7px;height:7px;border-radius:50%;background:#2c9b83;box-shadow:0 0 0 4px #2c9b8315}
.signup60-live-state.locked{background:#f7f1e5;color:#836721}.signup60-live-state.locked i{background:#bf9134;box-shadow:0 0 0 4px #bf913419}
.signup60-live-state.closed{background:#f1f3f2;color:#738079}.signup60-live-state.closed i{background:#96a19c;box-shadow:none}
.signup60-manage-toolbar{min-height:48px;margin-bottom:12px;padding:8px 10px;border:1px solid #e2e8e4;border-radius:9px;background:#f8faf9}
.signup60-sync-note{color:#74847d;font-size:11px;line-height:1.5}.signup60-manage-toolbar button{min-height:34px;padding:6px 10px;font-size:12px}
.signup60-manage-side-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;padding:5px;border:1px solid var(--line);border-radius:11px;background:#f4f7f5}
.signup60-manage-side-switch button{display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:8px 13px;border-color:transparent;background:transparent;text-align:left}
.signup60-manage-side-switch button>span{display:grid;gap:3px}.signup60-manage-side-switch button small{color:#819089;font-size:10px}.signup60-manage-side-switch button>strong{font:650 20px Georgia,serif}
.signup60-manage-side-switch button.active{border-color:#dce6e1;background:#fff;box-shadow:0 4px 14px #173d310a}.signup60-manage-side-switch button.blue.active{color:var(--signup-blue)}.signup60-manage-side-switch button.red.active{color:var(--signup-red)}
.signup60-manage-board{display:grid;grid-template-columns:248px minmax(0,1fr);align-items:start;gap:14px}
.signup60-player-pool{position:sticky!important;inset:auto!important;top:84px!important;display:block!important;box-sizing:border-box;width:auto!important;height:auto!important;max-height:calc(100vh - 108px);overflow:hidden;padding:10px!important;border:1px solid #dce5e0!important;border-radius:11px;background:#f8faf9}
.signup60-player-pool>header{display:flex!important;align-items:center;justify-content:space-between;height:auto!important;min-height:42px!important;padding:2px 3px 10px!important;border:0!important;background:transparent!important}
.signup60-player-pool>header>div{display:grid;gap:3px}.signup60-player-pool>header strong{font-size:13px}.signup60-player-pool>header small,.signup60-player-pool>header>span{color:#819089;font-size:10px}.signup60-player-pool>header>span{padding:4px 7px;border-radius:12px;background:#e9efec}
.signup60-player-pool>input{box-sizing:border-box;width:100%;min-height:36px;margin:0 0 8px;padding:7px 8px;font-size:12px}
.signup60-job-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-bottom:8px;padding-bottom:8px;overflow:visible;border-bottom:1px solid #e5ebe7}.signup60-job-filters button{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:100%;min-width:0;min-height:26px;padding:3px 4px;border-radius:16px;background:#fff;color:#60736b;font-size:10px;white-space:nowrap}.signup60-job-filters button b{font-size:9px}.signup60-job-filters button.active{border-color:#348e80;background:#e8f3ef;color:#0f6a61}
.signup60-player-list{display:grid;gap:6px;max-height:calc(100vh - 294px);overflow-y:auto;padding:1px 2px 2px 1px}.signup60-pool-empty{padding:34px 10px;color:#87948e;font-size:11px;line-height:1.6;text-align:center}
.signup60-pool-player{display:grid;width:100%;gap:4px;padding:9px 9px 9px 12px;border:1px solid #e0e7e3;border-left:4px solid var(--job);border-radius:8px;background:#fff;text-align:left;cursor:grab}.signup60-pool-player>span{display:flex;align-items:center;gap:6px}.signup60-pool-player strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.signup60-pool-player em{padding:2px 5px;border-radius:10px;background:#e5f1ed;color:#17685e;font-size:9px;font-style:normal}.signup60-pool-player small{overflow:hidden;color:#7b8983;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.signup60-pool-player:hover{border-color:#b9d0c6;box-shadow:0 4px 12px #173d310b}
.signup60-manage-groups{display:grid;min-width:0;gap:14px}.signup60-manage-group{overflow:hidden;border:1px solid #dfe6e2;border-radius:11px;background:#fbfcfb}.signup60-manage-group>header{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:54px;padding:9px 12px;border-bottom:1px solid #e1e7e3;background:#f3f7f5}.signup60-manage-group>header>div{display:flex;align-items:baseline;gap:9px}.signup60-manage-group h4{margin:0;font-size:14px}.signup60-manage-group>header span{color:#7a8982;font-size:10px}.signup60-group-commander{padding:5px 8px;border-radius:14px;background:#fff;color:#4f6b62!important}
.signup60-manage-squads{display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:10px;padding:10px}.signup60-manage-squad{min-width:0;overflow:hidden;border:1px solid #e1e7e3;border-radius:9px;background:#fff}.signup60-manage-squad>header{display:flex;align-items:center;justify-content:space-between;min-height:36px;padding:7px 9px;background:#f7f9f8}.signup60-manage-squad>header b{font-size:12px}.signup60-manage-squad>header span{color:#819089;font-size:10px}
.signup60-manage-slot{display:grid;grid-template-columns:25px minmax(115px,.85fr) minmax(105px,1.15fr);align-items:center;gap:7px;min-height:48px;padding:5px 8px;border-top:1px solid #e9edea;border-left:4px solid var(--job);background:#fff;transition:border-color .15s,background .15s,box-shadow .15s,opacity .15s}.signup60-manage-slot.occupied{cursor:grab}.signup60-slot-number{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:#edf2ef;color:#667971;font-size:10px;font-weight:700}.signup60-slot-person{display:grid;min-width:0;gap:2px}.signup60-slot-person b,.signup60-slot-person small,.signup60-slot-duty{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signup60-slot-person b{font-size:11px}.signup60-slot-person small,.signup60-slot-duty{color:#77867f;font-size:9px}.signup60-manage-slot.empty .signup60-slot-person b{color:#8b9791;font-weight:500}.signup60-manage-slot.empty{background:#fbfcfb}
.signup60-dragging{opacity:.42}.signup60-drop-ready{border-color:#48a48f!important;background:#eef8f4!important;box-shadow:inset 0 0 0 1px #48a48f}.signup60-swap-ready{border-color:#d6a54c!important;background:#fff8e9!important;box-shadow:inset 0 0 0 1px #d6a54c}.signup60-drop-blocked{opacity:.38}.signup60-job-blocked{opacity:.5;background:#faf7f7!important;cursor:not-allowed!important}.signup60-drop-ready:after{content:"移到这里";color:#197565;font-size:9px;font-weight:700}.signup60-swap-ready:after{content:"对调位置";color:#916c22;font-size:9px;font-weight:700}.signup60-job-blocked:after{content:"职业不符";color:#ad5a5a;font-size:9px;font-weight:700}.signup60-drop-ready .signup60-slot-duty,.signup60-swap-ready .signup60-slot-duty{display:none}
@media(max-width:1180px){.signup60-manage-board{grid-template-columns:220px minmax(0,1fr)}.signup60-manage-squads{grid-template-columns:1fr}}
@media(max-width:760px){.signup60-manage-panel{padding:16px}.signup60-manage-heading{align-items:flex-start;flex-direction:column}.signup60-live-state{white-space:normal}.signup60-manage-board{grid-template-columns:1fr}.signup60-player-pool{position:static!important;max-height:none}.signup60-player-list{display:flex;max-height:none;overflow-x:auto;overflow-y:hidden}.signup60-pool-player{min-width:180px}.signup60-manage-side-switch{grid-template-columns:1fr}.signup60-manage-toolbar .spacer{display:none}.signup60-manage-toolbar button{flex:1}.signup60-manage-squads{padding:7px}.signup60-manage-slot{grid-template-columns:24px minmax(100px,1fr)}.signup60-slot-duty{grid-column:2}}

/* League-style dense registration board: five squads share one row and every
   slot keeps its profession/note editor within the compact cell. */
.signup60-manage-board{grid-template-columns:180px minmax(0,1fr);gap:10px}
.signup60-manage-group{overflow-x:auto}
.signup60-manage-group>header{position:sticky;left:0;z-index:2;box-sizing:border-box;min-width:100%;width:max-content}
.signup60-manage-squads{grid-template-columns:repeat(var(--squad-count,5),minmax(170px,1fr));min-width:max(100%,var(--squad-grid-min,898px));gap:8px;padding:8px}
.signup60-manage-squad>header{min-height:31px;padding:5px 7px}
.signup60-manage-slot{position:relative;grid-template-columns:20px minmax(0,1fr) 24px;gap:4px;min-height:42px;padding:4px 6px;border-left-width:3px}
.signup60-slot-number{width:20px;height:20px;border-radius:5px;font-size:9px}
.signup60-slot-person{display:grid;min-width:0;gap:2px;padding:2px 0;cursor:default}
.signup60-slot-person[draggable="true"]{cursor:grab}
.signup60-slot-person b{font-size:10px}.signup60-slot-person small{display:flex;align-items:center;min-width:0;overflow:visible;font-size:8px;text-overflow:clip}.signup60-slot-person small em{flex:none;color:var(--job);font-style:normal;font-weight:700}.signup60-slot-person small span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.signup60-slot-edit{display:grid;place-items:center;width:22px;height:22px;min-height:22px;padding:0;border:0;border-radius:6px;background:#edf3f0;color:#2a7468;font-size:10px}
.signup60-slot-edit:hover{background:#dcece6;color:#0f665c}
.signup60-drop-ready:after,.signup60-swap-ready:after,.signup60-job-blocked:after{position:absolute;right:4px;bottom:2px;padding:1px 4px;border-radius:8px;background:#fff;font-size:7px}
.signup60-player-pool{padding:8px!important}.signup60-pool-player{box-sizing:border-box;min-height:42px;gap:2px;padding:5px 6px 5px 8px}.signup60-pool-player strong{font-size:11px}
@media(max-width:1180px){.signup60-manage-board{grid-template-columns:180px minmax(0,1fr)}.signup60-manage-squads{grid-template-columns:repeat(var(--squad-count,5),minmax(170px,1fr))}}
@media(max-width:760px){.signup60-manage-board{grid-template-columns:1fr}.signup60-player-pool>input,.signup60-job-filters button{min-height:44px}.signup60-manage-squads{grid-template-columns:repeat(var(--squad-count,5),minmax(170px,1fr));min-width:max(100%,var(--squad-grid-min,898px))}.signup60-manage-slot{grid-template-columns:20px minmax(0,1fr) 24px}.signup60-slot-person{grid-column:auto}.signup60-slot-duty{grid-column:auto}}

/* The nested management <main> must not inherit the application's page-shell
   left margin; removing it lets the lineup consume the available width. */
.signup60-manage-groups{display:grid!important;box-sizing:border-box!important;width:auto!important;max-width:none!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;gap:14px}

.signup60-manage-heading{display:grid;grid-template-columns:minmax(190px,250px) minmax(430px,1fr) auto;align-items:center;gap:18px}
.signup60-manage-title{min-width:0}.signup60-manage-title p{font-size:11px}
.signup60-manage-overview{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:8px 10px;border:1px solid #e1e8e4;border-radius:9px;background:#f8faf9}
.signup60-manage-chart{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-width:0}.signup60-manage-chart>header{display:grid;gap:3px;min-width:86px}.signup60-manage-chart>header strong{font-size:11px}.signup60-manage-chart>header span{color:#829089;font-size:9px}
.signup60-manage-job-bars{display:grid;grid-template-columns:repeat(10,minmax(22px,1fr));align-items:end;gap:4px;height:62px;min-width:0}.signup60-manage-job-bars>div{display:grid;grid-template-rows:12px 34px 12px;align-items:end;min-width:0;text-align:center}.signup60-manage-job-bars b{font-size:9px}.signup60-manage-job-bars i{position:relative;display:block;width:8px;height:32px;margin:0 auto;border-radius:5px;background:#e7ece9;overflow:hidden}.signup60-manage-job-bars i span{position:absolute;right:0;bottom:0;left:0;border-radius:5px}.signup60-manage-job-bars small{overflow:hidden;color:#74847d;font-size:8px;text-overflow:ellipsis;white-space:nowrap}
.signup60-manage-chart-tabs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;width:min-content;min-width:118px;max-width:180px}.signup60-manage-chart-tabs button{min-height:27px;padding:4px 7px;border-radius:14px;background:#fff;font-size:9px;white-space:nowrap}.signup60-manage-chart-tabs button.active{border-color:#398f82;background:#e6f2ee;color:#12685f;font-weight:700}

/* Public hall preview now communicates the slot instead of showing anonymous
   color blocks. */
#dialog.signup60-hall-dialog{width:min(1180px,calc(100vw - 36px))}
.signup60-hall-dialog .signup60-preview-teams{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.signup60-hall-dialog .signup60-preview-team{padding:7px}
.signup60-hall-dialog .signup60-preview-group>header>div{display:grid;gap:3px}.signup60-hall-dialog .signup60-preview-group>header small{color:#778780;font-size:9px;font-weight:500}
.signup60-hall-dialog .signup60-preview-slots{display:grid;grid-template-columns:1fr;gap:3px}
.signup60-hall-dialog .signup60-preview-slot{display:grid;grid-template-columns:19px minmax(72px,.85fr) minmax(80px,1.15fr);align-items:center;gap:5px;min-height:34px;padding:3px 5px;border-left:3px solid var(--job);border-radius:5px;background:#f7f9f8}
.signup60-hall-dialog .signup60-preview-slot>i{display:grid;width:18px;height:18px;place-items:center;margin:0;border:0;border-radius:5px;background:#e8efeb;color:#61746c;font-size:8px;font-style:normal}
.signup60-hall-dialog .signup60-preview-slot>span{display:grid;min-width:0;gap:1px}.signup60-hall-dialog .signup60-preview-slot>span b,.signup60-hall-dialog .signup60-preview-slot>span small,.signup60-hall-dialog .signup60-preview-slot>em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signup60-hall-dialog .signup60-preview-slot>span b{font-size:9px}.signup60-hall-dialog .signup60-preview-slot>span small{color:#7b8983;font-size:8px}.signup60-hall-dialog .signup60-preview-slot>em{color:#66776f;font-size:8px;font-style:normal}.signup60-hall-dialog .signup60-preview-slot.occupied{background:#eef6f3}.signup60-hall-dialog .signup60-preview-slot.empty>span small{color:#98a39e}
@media(max-width:1180px){.signup60-manage-heading{grid-template-columns:1fr auto}.signup60-manage-overview{grid-column:1/-1;grid-row:2}.signup60-manage-title p{max-width:680px}}
@media(max-width:760px){.signup60-manage-heading{grid-template-columns:1fr}.signup60-live-state,.signup60-manage-overview{grid-column:1}.signup60-manage-overview{grid-template-columns:1fr}.signup60-manage-chart{grid-template-columns:1fr}.signup60-manage-chart-tabs{justify-content:flex-start;width:auto;max-width:none}.signup60-hall-dialog .signup60-preview-teams{grid-template-columns:1fr}.signup60-hall-dialog .signup60-preview-slot{grid-template-columns:19px minmax(70px,.8fr) minmax(90px,1.2fr)}}
