kbd{display:inline-block;padding:1px 5px;border:1px solid #dce5e8;border-radius:4px;background:#f6f9fa;color:#697b88;font:10px/1.5 ui-monospace,monospace;white-space:nowrap;box-shadow:0 1px 0 #e7edef}
.btn.primary kbd{background:#ffffff18;border-color:#ffffff40;color:inherit;box-shadow:none}
.quick-panel{border-top:3px solid #2c9272;padding:20px 22px}
.quick-panel .panel-head{align-items:center;margin-bottom:18px}.quick-panel .sub,.sheet-panel .sub{margin-top:7px;font-size:11px;line-height:1.8}
.quick-grid{display:grid;grid-template-columns:70px minmax(155px,1.4fr) minmax(145px,1.3fr) minmax(145px,1.2fr) 104px 82px 100px;gap:11px;align-items:end}
.quick-grid input,.quick-grid select,.quick-secondary input{height:39px;min-width:0;width:100%;padding:8px 10px;font-size:12px}.quick-grid .field,.quick-secondary .field{min-width:0;gap:7px}
.quick-grid .quick-submit{height:39px;padding:8px}.quick-submit kbd{margin-left:3px}
.quick-grid .carry-control{display:flex;align-items:center;gap:7px;height:39px;padding:7px 8px;border:1px solid #d4dde9;border-radius:8px;font-size:11px;color:#526074;white-space:nowrap}
.carry-control input{height:16px;width:16px;padding:0;margin:0;box-shadow:none}.carry-control span{display:flex;gap:5px;align-items:center}.carry-control:focus-within{outline:3px solid #e1f3eb;border-color:#3b9d82}
.quick-secondary{display:grid;grid-template-columns:100px minmax(180px,1fr) minmax(190px,.8fr);gap:11px;margin-top:13px;align-items:end}.quick-secondary>div:last-child{padding:0 0 11px;font-size:10px;color:#7b8c98;line-height:1.7}
.insert-banner{margin-bottom:14px;background:#edf7f1;border:1px solid #c7e4d4;border-radius:8px;padding:10px 12px;color:#217451;font-size:12px}
.member-picker{position:fixed;z-index:200;overflow:auto;max-height:min(340px,50vh);background:#fff;border:1px solid #bad8cb;border-radius:10px;box-shadow:0 12px 32px #163a3326;padding:5px;scrollbar-width:thin;overscroll-behavior:contain}
.member-option{padding:10px 9px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:6px;cursor:pointer;color:#3c5368;min-height:54px}.member-option strong{display:block;font-size:12px}.member-option small{display:block;font-size:10px;color:#8a99a8;margin-top:3px;font-variant-numeric:tabular-nums}.member-option>span{font-size:9px;color:#7c8e9b;white-space:nowrap}.member-option.selected{background:#eaf6ef;box-shadow:inset 3px 0 #2b8c67}.member-option:hover{background:#f2f8f4}.picker-empty{padding:16px 12px;color:#7b8d9b;font-size:12px;line-height:1.8}
.sheet-panel{padding:20px 22px}.sheet-panel .filterbar input{max-width:350px;width:100%}.sheet-panel .filterbar select{min-width:115px}
.wf-day-closures{margin:0 0 16px;padding:12px;border:1px solid #e3d9f0;border-radius:10px;background:#faf7fe;min-width:0}.wf-day-closures>strong{display:block;margin-bottom:9px;font-size:12px;color:#72548f}.wf-day-closure-list{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.wf-day-closure{display:flex;align-items:center;justify-content:space-between;flex:1 1 200px;min-width:0;max-width:100%;gap:12px;padding:9px 10px;border:1px solid #e5dcef;border-radius:8px;background:#fff}.wf-day-closure>span{font-size:12px;font-weight:700;color:#665078}.wf-day-closure small{display:block;margin-top:3px;color:#94879f;font-size:10px;font-weight:400}.wf-day-closure .btn{flex-shrink:0;border-color:#d8c9e7;color:#765094}
.battle-sheet-scroll{max-height:65vh;overflow:auto;border:1px solid #e3e9ee;border-radius:8px;scrollbar-width:thin;overscroll-behavior:contain}
.battle-sheet{min-width:1040px;width:100%;border-collapse:separate;border-spacing:0;table-layout:auto}.battle-sheet th,.battle-sheet td{height:47px;padding:9px 10px;white-space:nowrap;vertical-align:middle}.battle-sheet th{height:36px;font-size:10px;background:#f5f8fa}.battle-sheet .number{text-align:right;font-variant-numeric:tabular-nums}.battle-sheet td small{display:block;font-size:9px;margin-top:4px;color:#93a2af}.battle-sheet .member-cell{min-width:105px}.battle-sheet .member-cell strong{font-weight:650}.battle-sheet td.calculated{background:#fafcfd;color:#7a8d9e}.battle-sheet td .accent{color:#2e8c65}
.battle-sheet .edit-cell{cursor:cell;min-width:63px;border-right:1px solid #edf1f4;position:relative;outline-offset:-2px}.battle-sheet .edit-cell:focus{outline:2px solid #329573;background:#eef8f2!important;z-index:2}.battle-sheet .edit-cell:hover{background:#f1f8f4}.battle-sheet td.is-editing{padding:3px;background:#edf7f1;outline:2px solid #329573;z-index:3}.battle-sheet td.is-editing input,.battle-sheet td.is-editing select{height:36px;width:100%;min-width:80px;max-width:260px;padding:6px;border-radius:4px;font:inherit;font-size:12px;box-shadow:none;outline:none;border-color:#7bb89f}.battle-sheet td.member-cell.is-editing input{min-width:150px}.battle-sheet td.memo-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis}.battle-sheet td.memo-cell.is-editing{min-width:200px;max-width:none;overflow:visible}.battle-sheet .row-warning td.h-num{color:#ad782a}.carry-value{display:inline-block;min-width:40px;font-size:11px;color:#a2adb8}.carry-value.is-on{color:#20795b;font-weight:650}
.row-tools{white-space:nowrap}.row-tools button{height:25px;width:25px;margin-right:3px;border:1px solid #dfe7eb;background:#fff;color:#7d909e;border-radius:5px;font-size:14px;cursor:pointer}.row-tools button:hover{border-color:#92c1ad;color:#167252;background:#eef8f2}.row-tools button:last-child:hover{color:#b9475b;background:#fff2f4;border-color:#edc9d0}
.sheet-footer{display:flex;gap:12px;align-items:center;justify-content:space-between;padding-top:15px;color:#8696a6;font-size:10px}.roster-count{font-size:12px;color:#6d8093;background:#fff;border:1px solid #dde7e3;padding:10px 16px;border-radius:9px}.roster-count strong{font-size:22px;color:#217957;margin:0 3px}
.roster-form-grid{display:grid;grid-template-columns:1.2fr 1.4fr .8fr 1fr 1fr;gap:15px 14px}.roster-form-grid .field{min-width:0}.roster-form-grid input,.roster-form-grid select{width:100%;min-width:0;height:39px;font-size:12px;padding:7px 10px}.roster-memo{grid-column:span 3}.roster-editor .form-actions{align-items:center;flex-wrap:wrap}.roster-table{min-width:800px}.roster-table small{display:block;margin-top:5px;font-size:10px}.roster-table .uid{font-variant-numeric:tabular-nums;font-size:12px;letter-spacing:.2px}.roster-table .btnbar{flex-wrap:nowrap}.roster-table .btn{white-space:nowrap}
@media(max-width:1350px){.quick-grid{grid-template-columns:70px minmax(160px,1.2fr) minmax(150px,1.2fr) minmax(140px,1fr)}.quick-grid .quick-submit{grid-column:4}.quick-grid .carry-control{width:100%}.roster-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-memo{grid-column:span 2}}
@media(max-width:800px){.quick-panel,.sheet-panel{padding:16px}.quick-grid{grid-template-columns:70px minmax(140px,1fr)}.quick-grid .quick-submit{grid-column:auto}.quick-secondary{grid-template-columns:85px minmax(130px,1fr)}.quick-secondary>div:last-child{grid-column:1/-1;padding-bottom:0}.quick-panel .panel-head,.sheet-panel .panel-head{align-items:flex-start;gap:9px;flex-wrap:wrap}.quick-panel .panel-head>.btn{display:none}.sheet-panel .filterbar{display:flex}.sheet-panel .filterbar input{min-width:0}.battle-sheet-scroll{max-height:58vh}.roster-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-memo{grid-column:span 2}.mobile-nav{grid-template-columns:repeat(8,minmax(0,1fr));gap:0}.mobile-nav button{min-width:0;padding:9px 1px;font-size:8px;white-space:nowrap}.hero .btnbar{gap:7px}.hero .btnbar .btn{font-size:10px;padding:8px}.roster-count{padding:6px 12px}.sheet-footer{gap:5px}.sheet-footer .btn{padding:6px 9px}}
