#densukeToggleBtn{
  display:none;
  position:fixed !important;
  right:max(12px,env(safe-area-inset-right)) !important;
  left:auto !important;
  top:auto !important;
  bottom:calc(12px + env(safe-area-inset-bottom)) !important;
  z-index:10001 !important;
  margin:0 !important;
  transform:none !important;
  padding:10px 16px;
  border:1px solid #c79a3b;
  border-radius:999px;
  background:#071426;
  color:#c79a3b;
  font-weight:700;
  width:auto !important;
  max-width:none !important;
}
#densukeAdminPanel{
  display:none;
  position:fixed !important;
  right:max(12px,env(safe-area-inset-right)) !important;
  left:auto !important;
  top:auto !important;
  bottom:calc(66px + env(safe-area-inset-bottom)) !important;
  z-index:10000 !important;
  width:min(92vw,680px) !important;
  max-width:calc(100vw - 24px) !important;
  max-height:min(70vh,620px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
  padding:16px;
  border:1px solid rgba(199,154,59,.45);
  border-radius:14px;
  background:rgba(7,20,38,.96);
  color:#fff;
  box-shadow:0 12px 35px rgba(0,0,0,.28);
}
#densukeAdminPanel.show{display:block}
#densukeAdminPanel button{margin:6px;padding:10px 14px;border-radius:10px;border:1px solid #c79a3b;background:#071426;color:#fff}
#densukeEndActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#densukeAdminPanel .danger{background:#5e1515}
#closeDensukeAdminBtn{background:#4d5662!important}
#densukeAdminPanel .restore{background:#173e24}
#densukeWarning{display:none;margin:12px 6px;color:#ff5b5b;font-weight:800;line-height:1.6}
#densukeAdminStatus{font-size:12px;line-height:1.7;color:#d5dbe3}
#accessPasswordAdminFields,#coachPasswordAdminFields{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
#coachPasswordAdminFields label{display:block;margin:10px 6px 5px;font-size:12px;font-weight:700;color:#d5dbe3}
#coachPasswordAdminFields input{width:100%;padding:11px 12px;border:1px solid rgba(199,154,59,.55);border-radius:9px;background:#fff;color:#17202b;font:inherit}
#saveAccessPasswordBtn,#saveCoachPasswordBtn{width:100%;margin:12px 0 4px!important;background:#c79a3b!important;color:#fff!important}
#coachPasswordStatus{min-height:0!important;margin:7px 6px 0!important;color:#d5dbe3!important;font-size:11px!important;line-height:1.6!important}
#tournamentAdminFields{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.18)}
#tournamentAdminFields label{display:block;margin:10px 6px 5px;font-size:12px;font-weight:700;color:#d5dbe3}
#tournamentAdminFields input{width:100%;padding:11px 12px;border:1px solid rgba(199,154,59,.55);border-radius:9px;background:#fff;color:#17202b;font:inherit}
#tournamentAdminFields select{width:100%;padding:11px 12px;border:1px solid rgba(199,154,59,.55);border-radius:9px;background:#fff;color:#17202b;font:inherit}
#uploadTournamentBtn{width:100%;margin:12px 0 4px!important;background:#c79a3b!important;color:#fff!important}
#tournamentAdminList{display:grid;gap:8px;margin-top:12px}
.tournament-admin-item{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.06)}
.tournament-admin-item span{min-width:0;flex:1;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.tournament-admin-item button{flex:0 0 auto;margin:0!important;background:#5e1515!important}
#dutyRosterAdminFields{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
#dutyRosterAdminFields label{display:block;margin:10px 6px 5px;font-size:12px;font-weight:700;color:#d5dbe3}
#dutyRosterAdminFields input{width:100%;margin:6px 0 10px;color:#fff}
.duty-change-admin{margin-top:12px;padding:12px;border:1px solid rgba(199,154,59,.38);border-radius:11px;background:rgba(255,255,255,.05)}
.duty-change-admin>p{margin:5px 0 9px!important;min-height:0!important;color:#d5dbe3!important;font-size:11px!important;line-height:1.6!important}
.duty-change-admin-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.duty-change-admin-meta label{margin:0!important}.duty-change-admin-meta input,.duty-change-admin-meta select,#dutyChangeText{width:100%;margin:5px 0 0!important;padding:10px 11px;border:1px solid rgba(199,154,59,.55);border-radius:8px;background:#fff;color:#17202b!important;font:inherit}.duty-change-admin-meta select{min-height:43px}#dutyChangeText{display:block;resize:vertical;line-height:1.6}
.duty-change-paste-actions{display:flex;align-items:center;gap:8px;margin-top:5px}.duty-change-paste-actions button{flex:0 0 auto;margin:0!important;background:#c79a3b!important;color:#fff!important}.duty-change-paste-actions span{color:#b9c2ce;font-size:10px;line-height:1.45}.duty-change-example{display:grid;gap:2px;margin-top:7px;padding:8px 10px;border-radius:7px;background:rgba(255,255,255,.06);color:#cbd2db;font-size:10px;line-height:1.5}.duty-change-example b{color:#d8ad4d}.duty-change-example span{display:block}
.duty-change-preview{margin-top:9px;padding:9px;border:1px dashed rgba(255,255,255,.25);border-radius:8px;color:#d5dbe3;font-size:11px;line-height:1.7}.duty-change-preview.has-items{border-style:solid;border-color:rgba(199,154,59,.55);background:rgba(199,154,59,.1);color:#fff}.duty-change-preview-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.12)}.duty-change-preview-row:last-child{border-bottom:0}.duty-change-preview-row select{width:100%;min-height:36px;padding:6px 7px;border:1px solid rgba(199,154,59,.55);border-radius:7px;background:#fff;color:#17202b;font:inherit}.duty-change-preview-error{color:#ffb9be;font-weight:700}
#saveDutyChangesBtn{width:100%;margin:10px 0 0!important;background:#c79a3b!important;color:#fff!important}.duty-change-admin-list{display:grid;gap:7px;margin-top:10px}.duty-change-admin-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(255,255,255,.06);font-size:11px}.duty-change-admin-item span{line-height:1.55}.duty-change-admin-item button{margin:0!important;padding:7px 9px!important;background:#5e1515!important}.duty-image-admin{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14)}
#dutyRosterAdminHelp{margin:2px 6px 10px!important;min-height:0!important;color:#d5dbe3!important;font-size:11px!important;line-height:1.6!important}
#saveDutyRosterBtn{width:100%;margin:4px 0!important;background:#c79a3b!important;color:#fff!important}
#dutyRosterAdminList{display:grid;gap:8px;margin-top:12px}
.duty-roster-admin-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.06)}
.duty-roster-admin-item span{min-width:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.duty-roster-admin-actions{display:flex;gap:4px;align-items:center}
.duty-roster-admin-actions button{margin:0!important;padding:7px 9px!important}
.duty-roster-admin-actions .duty-roster-delete{background:#5e1515!important}
.duty-roster-table-list{display:grid;gap:18px;margin-top:14px}.duty-digital-roster{overflow:hidden;border:1px solid rgba(199,154,59,.46);border-radius:12px;background:#fff}.duty-digital-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:#071426;color:#fff}.duty-digital-heading strong{font-size:16px}.duty-digital-heading span{padding:4px 8px;border-radius:999px;background:rgba(199,154,59,.2);color:#e6c66f;font-size:10px;font-weight:800}.duty-table-scroll{overflow-x:auto}.duty-digital-roster table{width:100%;min-width:520px;border-collapse:collapse;color:#17202b;font-size:12px}.duty-digital-roster thead th{padding:8px 5px;border-right:1px solid rgba(255,255,255,.35);background:#07964c;color:#fff;text-align:center}.duty-digital-roster tbody th,.duty-digital-roster tbody td{padding:8px 5px;border-top:1px solid #d9dde3;border-right:1px solid #d9dde3;text-align:center;white-space:nowrap}.duty-digital-roster tbody tr.is-activity th,.duty-digital-roster tbody tr.is-activity td{background:#fff49a}.duty-digital-roster tbody th{font-variant-numeric:tabular-nums}.duty-digital-roster .duty-weekday-日{color:#c12f3a}.duty-digital-roster .duty-weekday-土{color:#1a64ad}.duty-digital-roster td.is-changed,.duty-digital-roster tbody tr.is-activity td.is-changed{background:#fff0f1;color:#a91f2d;font-weight:inherit}.duty-digital-roster td.is-changed b{display:inline-block;margin-left:4px;padding:2px 5px;border-radius:999px;background:#b73742;color:#fff;font-size:9px;line-height:1.2}.duty-roster-originals{margin-top:15px;border-top:1px solid rgba(23,32,43,.13);padding-top:12px}.duty-roster-originals summary{display:flex;align-items:center;justify-content:center;min-height:44px;color:#8a6b28;font-size:12px;font-weight:800;cursor:pointer}.duty-roster-originals[open] summary{margin-bottom:10px}.duty-roster-originals .duty-roster-list{margin-top:0}
@media(max-width:440px){.duty-change-admin-meta{grid-template-columns:1fr}.duty-change-paste-actions{align-items:stretch;flex-direction:column}.duty-change-paste-actions button{width:100%}.duty-change-preview-row{grid-template-columns:1fr}.duty-change-preview-row select{min-height:40px}}
.duty-digital-roster{padding:8px;border:1px solid #d1d5dc;border-radius:8px;break-inside:avoid;page-break-inside:avoid}
.duty-digital-roster .duty-table-scroll{overflow:visible}
.duty-digital-roster table{min-width:0;width:100%;table-layout:fixed;font-size:clamp(10px,2.7vw,14px);line-height:1.35}
.duty-digital-roster thead th,.duty-digital-roster tbody th,.duty-digital-roster tbody td{border:1px solid #555;padding:5px 1px;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
.duty-digital-roster thead th{background:#00ad50;color:#102719;font-size:.9em}
.duty-digital-roster tbody th.duty-month{background:#fff;white-space:nowrap}
.duty-digital-roster td span{display:block}
.duty-digital-roster td.is-changed b{display:block;width:max-content;margin:2px auto 0;font-size:8px;padding:1px 4px}
.duty-sheet-note{margin-top:8px;font-size:10px;line-height:1.6;color:#404854}
.duty-roster-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
#dutyRosterCard .duty-roster-title-row h2{margin:0;min-width:0}
#toggleDutyOriginals{flex:none;min-height:44px;padding:6px 10px;border:1px solid #c79a3b;border-radius:8px;background:transparent;color:#866322;font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}
#dutyRosterOriginals[hidden]{display:none}
@media(max-width:440px){#dutyRosterCard{padding-left:12px;padding-right:12px}.duty-digital-roster{padding:6px}.duty-roster-table-list{gap:14px}.duty-digital-roster tbody th,.duty-digital-roster tbody td{padding-top:5px;padding-bottom:5px}}
#dutyRosterCard{padding-left:4px;padding-right:4px}
#dutyRosterCard>.card-kicker,#dutyRosterCard>.duty-roster-title-row,#dutyRosterCard>.duty-roster-note{margin-left:12px;margin-right:12px}
#dutyRosterCard .duty-digital-roster{padding:0;border:0;border-radius:0}
#dutyRosterCard .duty-sheet-note{padding:0 6px}
.duty-digital-roster tbody tr.is-activity td.is-changed{background:#fff49a}
#dutyChangeSection{margin-left:18px;margin-right:18px;padding:0;border:0;background:transparent}
@media(max-width:650px){#dutyChangeSection{margin-left:15px;margin-right:15px}}
#toggleDutyHistory{width:100%;min-height:43px;padding:10px 16px;border:1px solid #c79a3b;border-radius:8px;background:transparent;color:#866322;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
#dutyHistoryContent{margin-top:12px;padding:12px;border:1px solid #dac68d;border-radius:12px;background:#fffaf0}
#dutyHistoryContent[hidden]{display:none}
#dutyImageReview{margin-top:12px;padding:10px;border:1px solid #c79a3b;border-radius:10px}
#dutyImageReview[hidden]{display:none}
#dutyRosterAdminFields #dutyImageReview input,#dutyImageReview textarea{box-sizing:border-box;width:100%;padding:10px;background:#fff;color:#17202b;font-size:16px;border-radius:6px;border:1px solid #c79a3b}
#dutyImageReview p{min-height:0;font-size:12px;color:#fff;line-height:1.6}
#dutyImageReview pre{white-space:pre-wrap;overflow-wrap:anywhere}
#rulesAdminFields{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
#rulesAdminFields input{width:100%;margin:6px 0 10px;color:#fff}
#saveRulesBtn{width:100%;margin:4px 0!important;background:#c79a3b!important;color:#fff!important}
#rulesAdminList{display:grid;gap:8px;margin-top:12px}
.rules-admin-item{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.06)}
.rules-admin-item span{min-width:0;flex:1;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.rules-admin-item button{flex:0 0 auto;margin:0!important;background:#5e1515!important}
#documentArchiveAdminFields{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
#documentArchiveAdminFields label{display:block;margin:10px 6px 5px;font-size:12px;font-weight:700;color:#d5dbe3}
#documentArchiveAdminFields input{width:100%;margin:6px 0 10px;color:#fff}
.document-archive-help{margin:7px 6px 10px!important;min-height:0!important;color:#d5dbe3!important;font-size:11px!important;line-height:1.6!important}
#saveDocumentArchiveBtn{width:100%;margin:4px 0!important;background:#c79a3b!important;color:#fff!important}
#documentArchiveList{display:grid;gap:8px;margin-top:12px}
.document-archive-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.06)}
.document-archive-name{min-width:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.document-archive-meta{display:block;color:#aeb8c5;font-size:10px}
.document-archive-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.document-archive-actions button{margin:0!important;padding:7px 9px!important}
.document-archive-delete{background:#5e1515!important}
.document-archive-empty{padding:9px;color:#d5dbe3;font-size:12px}
#documentArchivePreview{position:fixed;inset:0;z-index:30000;background:#ececec;color:#071426;overflow:hidden}
#documentArchivePreview[hidden]{display:none!important}
.document-archive-preview-bar{height:calc(58px + env(safe-area-inset-top));padding:calc(8px + env(safe-area-inset-top)) 12px 8px;display:flex;align-items:center;gap:10px;background:#071426;color:#fff}
.document-archive-preview-bar strong{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.document-archive-preview-bar button{flex:0 0 auto;margin:0;padding:9px 14px;border:1px solid #c79a3b;border-radius:9px;background:#071426;color:#d8ad4d;font-weight:800}
.document-archive-preview-body{height:calc(100dvh - 58px - env(safe-area-inset-top));overflow:auto;-webkit-overflow-scrolling:touch;display:flex;align-items:flex-start;justify-content:center}
.document-archive-preview-body img{display:block;max-width:100%;height:auto;margin:auto}
.document-archive-preview-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}
body.document-archive-preview-open{overflow:hidden!important}
.meeting-day-list-row.history-focus-event{animation:historyEventFlash 2.6s ease}
@keyframes historyEventFlash{0%,32%{background:#fff4cf;box-shadow:0 0 0 4px rgba(199,154,59,.22)}100%{background:transparent;box-shadow:none}}

/* 当番日とは別に、変更を反映した日時を表示する。 */
.duty-change-item .duty-change-updated{grid-column:1/-1;margin-top:-3px;text-align:right;color:#69737f;font-size:10px;font-weight:400;line-height:1.35}
.duty-change-admin-item .duty-change-updated{display:block;margin-top:3px;color:#cbd2db;font-size:10px;font-weight:400;line-height:1.35}

/* チーム専用ページ・パスワード変更フォームを指導者出欠確認と同じ縦並びに統一 */
#accessPasswordAdminFields label{display:block;margin:10px 6px 5px;font-size:12px;font-weight:700;color:#d5dbe3}
#accessPasswordAdminFields input{display:block;box-sizing:border-box;width:100%;margin:0;padding:11px 12px;border:1px solid rgba(199,154,59,.55);border-radius:9px;background:#fff;color:#17202b;font:inherit}
#accessPasswordStatus{min-height:0!important;margin:7px 6px 0!important;color:#d5dbe3!important;font-size:11px!important;line-height:1.6!important}

/* 資料格納庫: スマホではファイル名・メタ情報・操作ボタンを3段表示 */
@media(max-width:650px){
  .document-archive-item{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    padding:12px;
  }
  .document-archive-name{
    width:100%;
    min-width:0;
    font-size:13px;
    line-height:1.55;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .document-archive-meta{
    display:block;
    margin-top:3px;
    font-size:10px;
    line-height:1.4;
  }
  .document-archive-actions{
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    justify-content:stretch;
  }
  .document-archive-actions button{
    width:100%;
    min-width:0;
    margin:0!important;
    padding:9px 6px!important;
    white-space:nowrap;
  }
}

/* Duty change request */
.duty-request-box{margin:18px 12px 0;padding:14px;border:1px solid rgba(199,154,59,.45);border-radius:14px;background:linear-gradient(180deg,#fffdf8,#fff)}
.duty-request-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.duty-request-head h3{margin:2px 0 0;color:#071426;font-size:17px}.duty-request-kicker{color:#a77d25;font-size:9px;font-weight:900;letter-spacing:.14em}.duty-request-head button,.duty-request-status>button{border:1px solid #c79a3b;border-radius:999px;background:#fff;color:#725516;font-weight:800;padding:8px 13px}.duty-request-help{font-size:12px;line-height:1.7;color:#5b6572}.duty-request-mode{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.duty-request-mode label{display:flex!important;align-items:center;gap:5px;width:auto!important;margin:0!important;padding:8px 10px;border:1px solid #d9dee5;border-radius:10px;background:#fff;font-size:12px}.duty-request-box label{display:block;margin-top:10px;font-size:12px;font-weight:800;color:#17202b}.duty-request-box select,.duty-request-box input[type=date],.duty-request-box textarea{box-sizing:border-box;width:100%;margin-top:5px;padding:10px;border:1px solid #cfd5dd;border-radius:9px;background:#fff;color:#17202b;font:inherit}.duty-request-submit{width:100%;margin-top:13px;padding:11px;border:0;border-radius:10px;background:#071426;color:#e7c56d;font-weight:900}.duty-request-result{margin-top:10px;padding:10px;border-radius:10px;background:#eef7ef;font-size:12px;line-height:1.7}.duty-request-result .line-share{display:block;margin-top:8px;text-align:center;padding:9px;border-radius:9px;background:#06c755;color:#fff;text-decoration:none;font-weight:900}.duty-request-status{margin:10px 12px 0}.duty-request-status>button{width:100%}.duty-request-status-item,.duty-request-admin-item{margin-top:8px;padding:10px;border:1px solid #dde2e8;border-radius:10px;background:#fff;color:#17202b;font-size:12px;line-height:1.65}.duty-request-status-item b[data-status="pending"]{color:#9a6b00}.duty-request-status-item b[data-status="approved"]{color:#147a38}.duty-request-status-item b[data-status="rejected"]{color:#a52b35}.duty-request-resend{display:inline-flex!important;align-items:center!important;gap:8px!important;margin:2px 0 0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#9a6b00!important;-webkit-text-fill-color:#9a6b00!important;font:inherit!important;font-weight:900!important;text-align:left!important;cursor:pointer!important}.duty-request-resend small{display:inline-block!important;padding:2px 7px!important;border:1px solid rgba(154,107,0,.35)!important;border-radius:999px!important;color:#8a6514!important;-webkit-text-fill-color:#8a6514!important;font-size:9px!important;font-weight:800!important;line-height:1.3!important}.duty-request-resend:disabled{opacity:.6!important}.duty-request-admin-block{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.15)}.duty-request-admin-actions{display:flex;gap:7px;margin-top:8px}.duty-request-admin-actions button{flex:1;margin:0!important}.duty-request-admin-actions .reject{background:#5e1515!important}.duty-request-wait{display:inline-block;margin-top:5px;color:#d9b65c;font-weight:800}

/* Duty change request: keep iOS date control inside the request card */
.duty-request-box{min-width:0;overflow:hidden}
.duty-request-box label{min-width:0}
.duty-request-box input[type=date]{display:block;box-sizing:border-box!important;width:100%!important;max-width:100%!important;min-width:0!important;-webkit-appearance:none;appearance:none}
.duty-request-box input[type=date]::-webkit-date-and-time-value{text-align:left}
@media(max-width:600px){.duty-request-mode{display:grid;grid-template-columns:1fr 1fr}.duty-request-mode label{min-width:0;white-space:normal}.duty-request-box input[type=date]{inline-size:100%!important}}

/* Duty change request pending badge */
.duty-request-pending-badge{display:inline-flex;align-items:center;margin-top:8px;padding:4px 9px;border:1px solid rgba(181,138,42,.55);border-radius:999px;background:rgba(181,138,42,.08);color:#9b741f;font-size:12px;font-weight:800;line-height:1;letter-spacing:.03em}
.duty-request-pending-badge[hidden]{display:none!important}

/* Duty change request: mode-specific date fields must respect hidden attribute */
.duty-request-box #dutyRequestRosterDate[hidden],
.duty-request-box #dutyRequestDirectDate[hidden]{display:none!important}

/* Duty roster legacy LINE toggle + history controls */
.duty-legacy-line-setting{margin:12px 0;padding:11px 12px;border:1px solid rgba(199,154,59,.38);border-radius:10px;background:rgba(255,255,255,.045)}
.duty-legacy-line-setting label{display:flex!important;align-items:center;gap:9px;margin:0!important;color:#f0cf7b!important;font-weight:800}.duty-legacy-line-setting input{width:19px;height:19px;accent-color:#c79a3b}.duty-legacy-line-setting small{display:block;margin-top:5px;color:#bfc7d2;font-size:10.5px;line-height:1.45}
#legacyDutyLineBlock[hidden]{display:none!important}.duty-change-admin-buttons{display:flex;gap:6px;align-items:center}.duty-change-admin-buttons button{margin:0!important}.duty-change-admin-buttons .delete{background:#7b1010!important}.duty-change-admin-item.is-cancelled{opacity:.72}.duty-change-cancelled{display:inline-block;margin-left:7px;color:#d9b65c;font-style:normal;font-weight:800}

/* Duty admin layout fix: legacy LINE toggle is compact; requests/history stay visible */
.duty-legacy-line-setting label{width:100%!important;max-width:100%!important;box-sizing:border-box!important;justify-content:flex-start!important;white-space:normal!important;text-align:left!important}
.duty-legacy-line-setting label span{display:inline!important;width:auto!important;max-width:calc(100% - 32px)!important;white-space:normal!important;word-break:keep-all!important;overflow-wrap:break-word!important}
.duty-request-admin-block{display:block!important}
.duty-admin-history-head{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.15)}
.duty-admin-history-head button{width:auto!important;margin:0!important;padding:7px 12px!important}
.duty-change-admin-buttons{display:flex;gap:7px;flex:0 0 auto}
.duty-change-admin-buttons .delete{background:#7a1717!important}
.feature-visibility-fields{margin-top:14px;padding-top:14px;border-top:1px solid rgba(205,164,72,.22)}
.feature-visibility-fields>strong{display:block;color:#e4bd62;margin-bottom:7px}
.feature-visibility-fields #featureVisibilitySave{width:100%;margin-top:2px}

/* 2026-09-26: force legacy LINE toggle into a stable mobile row */
#dutyRosterAdminFields .duty-legacy-line-setting{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
#dutyRosterAdminFields .duty-legacy-line-setting > label{
  display:grid!important;
  grid-template-columns:24px minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:10px!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0!important;
  writing-mode:horizontal-tb!important;
}
#dutyRosterAdminFields .duty-legacy-line-setting > label > input#toggleLegacyDutyLine{
  display:block!important;
  position:static!important;
  float:none!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  max-width:20px!important;
  margin:0!important;
}
#dutyRosterAdminFields .duty-legacy-line-setting > label > span{
  display:block!important;
  position:static!important;
  float:none!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  line-height:1.45!important;
}
#dutyRosterAdminFields .duty-legacy-line-setting > small{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  margin:8px 0 0!important;
  padding:0!important;
  writing-mode:horizontal-tb!important;
}

/* 2026-09-26 consolidated duty admin fixes */
#dutyChangeAdminList[hidden]{display:none!important;visibility:hidden!important;}
#dutyRosterAdminFields .duty-legacy-line-setting > label{
  display:flex!important;align-items:center!important;gap:10px!important;
  width:100%!important;min-width:0!important;max-width:100%!important;
  overflow:hidden!important;writing-mode:horizontal-tb!important;
}
#dutyRosterAdminFields .duty-legacy-line-setting > label > input#toggleLegacyDutyLine{
  flex:0 0 20px!important;width:20px!important;height:20px!important;
  position:static!important;inset:auto!important;transform:none!important;
}
#dutyRosterAdminFields .duty-legacy-line-setting > label > span{
  flex:1 1 auto!important;display:block!important;min-width:0!important;
  position:static!important;inset:auto!important;transform:none!important;
  writing-mode:horizontal-tb!important;text-orientation:mixed!important;
  white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;
  color:#f0cf7b!important;text-align:left!important;
}

.duty-request-pending-badge{display:inline-block;margin-top:6px;padding:4px 9px;border-radius:999px;background:#fff4cf;color:#8b6413;font-size:11px;font-weight:900;border:1px solid #d8b35b}.duty-request-pending-badge[hidden]{display:none}
