.settings-view{padding-top:calc(24px + env(safe-area-inset-top))}
.settings-view header{padding-bottom:18px}
.settings-view h1{margin:17px 0 18px}
.settings-list{display:grid;gap:12px}
.settings-card{width:100%;min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border:1px solid #dce2e4;border-radius:14px;background:#f8fafb;color:#172327;text-align:left}
.settings-card:active{background:#eef3f5}
.settings-card>span:first-child{display:grid;gap:7px}
.settings-card strong{font-size:22px}
.settings-card small{font-size:14px;color:#66767d}
.settings-card>span:last-child{font-size:26px;color:#e85b24}
.settings-editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px!important}
.settings-editor-header .back-to-menu{margin:0 0 0 -6px}
.settings-save{min-width:72px;min-height:44px;border:0;border-radius:9px;background:#26393f;color:#fff;font-size:14px;font-weight:750}
.settings-description{margin:-8px 0 18px;color:#68777c;font-size:14px;line-height:1.5}
.settings-rows{display:grid;gap:18px}
.settings-airline-group{display:grid;gap:8px}
.settings-airline-heading{display:flex;align-items:center;gap:8px;margin:0;padding:0 4px;color:#31474f;font-size:15px;line-height:1.2}
.settings-airline-heading small{margin-left:auto;color:#7a898f;font-size:12px;font-weight:650}
.settings-airline-dot{width:11px;height:11px;border-radius:50%;background:var(--airline-color)}
.settings-airline-rows{display:grid;gap:8px}
.settings-input-row{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;min-height:64px;border:1px solid #d2dadd;border-left:6px solid var(--airline-color,#68777c);border-radius:12px;background:#fff;overflow:hidden}
.settings-input-row:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--airline-color,#68777c) 20%,transparent)}
.settings-row-check{width:22px;height:22px;margin:auto;accent-color:var(--airline-color,#68777c)}
.settings-input-row .settings-flight-input{width:100%;min-height:62px;border:0;border-left:1px solid #e3e8ea;background:#fff;color:#172327;padding:10px 15px;font-size:18px;font-weight:700;text-align:center;text-transform:uppercase;font-variant-numeric:tabular-nums}
.settings-input-row .settings-flight-input:focus{outline:0;background:#fbfcfc}
.settings-row-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.settings-row-actions button{min-height:54px;border:1px solid #b9c7cd;border-radius:10px;background:#fff;color:#31474f;font-size:15px;font-weight:750}
.settings-row-actions button span{font-size:20px;vertical-align:-1px}
.settings-row-actions .settings-delete{border-color:#e5b9bc;background:#fff7f7;color:#a63b45}
.settings-row-actions button:disabled{opacity:.4}
.settings-status{min-height:24px;margin:14px 2px 0;color:#26704d;font-size:14px;font-weight:650}

.schedule-upload-button{width:100%;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1.5px dashed #b7c5cb;border-radius:16px;background:#f8fafb;color:#263a42;padding:22px}
.schedule-upload-button:active{background:#eef3f5}.schedule-upload-button:disabled{opacity:.55}
.schedule-upload-button .schedule-upload-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#26393f;color:#fff;font-size:28px;font-weight:300;line-height:1}
.schedule-upload-button strong{font-size:20px}.schedule-upload-button small{font-size:13px;color:#738087}
.schedule-upload-summary{display:flex;align-items:center;gap:13px;margin-top:16px;padding:16px;border:1px solid #cfe2d6;border-radius:13px;background:#f2f9f4}
.schedule-upload-check{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#2f7750;color:#fff;font-weight:800}
.schedule-upload-summary strong{display:block;color:#235d40;font-size:16px}.schedule-upload-summary p{margin:5px 0 0;color:#5f7568;font-size:13px;line-height:1.45}
.schedule-upload-privacy{margin:14px 3px 0;color:#78858a;font-size:12px;line-height:1.55}
.schedule-upload-status{line-height:1.5}.schedule-upload-status.error{color:#b8202c}.schedule-upload-status.success{color:#26704d}

/* 요일별 운항편 설정 */
.operation-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 0 14px;padding:4px;border-radius:12px;background:#f1f4f5}
.operation-weekdays button{min-width:0;min-height:40px;border:0;border-radius:8px;background:transparent;color:#62727a;font-size:13px;font-weight:750;padding:0}
.operation-weekdays button.active{background:#fff;color:#172327;box-shadow:0 1px 7px rgb(22 42 50 / .12)}
.operation-settings-rows{display:grid;gap:10px}
.operation-row{padding:12px;border:1px solid #d8e0e3;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgb(33 54 62 / .035)}
.operation-row-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.operation-flight-input{width:100%;min-width:0;height:46px;border:1px solid #cbd5d9;border-radius:9px;background:#fbfcfc;color:#172327;padding:0 12px;font-size:17px;font-weight:750;text-align:center;text-transform:uppercase;font-variant-numeric:tabular-nums}
.operation-flight-input:focus,.operation-time-select:focus{outline:3px solid rgb(38 93 116 / .16);border-color:#6b94a5}
.operation-remove{height:42px;border:1px solid #e3c2c5;border-radius:8px;background:#fff8f8;color:#a5444c;padding:0 11px;font-size:12px;font-weight:750}
.operation-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.operation-time-block{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:7px;padding:8px 9px;border-radius:9px;background:#f5f7f8}
.operation-time-block>span{color:#617178;font-size:12px;font-weight:750}
.operation-time-controls{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:3px;color:#617178;font-weight:800}
.operation-time-select{width:100%;min-width:0;height:38px;border:1px solid #cbd5d9;border-radius:8px;background:#fff;color:#21343b;text-align:center;font-size:14px;font-weight:750;padding:0 2px;font-variant-numeric:tabular-nums}
.operation-add{width:100%;min-height:50px;margin-top:12px;border:1px solid #b9c7cd;border-radius:10px;background:#fff;color:#31474f;font-size:14px;font-weight:750}
.operation-add span{font-size:19px;vertical-align:-1px}
@media(max-width:370px){.operation-row{padding:9px}.operation-times{gap:5px}.operation-time-block{grid-template-columns:1fr;gap:4px;text-align:center;padding:6px}.operation-flight-input{font-size:15px}}

/* 운항편: 한 편에 여러 요일 선택 */
.operation-day-checks{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:10px}
.operation-day-choice{position:relative;display:block;min-width:0}
.operation-day-choice input{position:absolute;opacity:0;pointer-events:none}
.operation-day-choice span{display:grid;place-items:center;height:34px;border:1px solid #d5dde0;border-radius:9px;background:#f7f9f9;color:#6a797f;font-size:12px;font-weight:800;transition:background .12s,border-color .12s,color .12s,box-shadow .12s}
.operation-day-choice input:checked+span{background:#263b44;border-color:#263b44;color:#fff;box-shadow:0 2px 7px rgb(23 46 57 / .16)}
.operation-day-choice input:focus-visible+span{outline:3px solid rgb(38 93 116 / .18);outline-offset:1px}
@media(max-width:370px){.operation-day-checks{gap:3px}.operation-day-choice span{height:32px;font-size:11px;border-radius:8px}}

/* 비행기 통계 탭은 글자 대신 아이콘 */
.schedule-tabs button[data-schedule-mode="flights"]{font-size:17px;line-height:1}


/* 운항편: 월별 운항기간 + 부분 비운항 */
.operation-period{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;margin-top:10px;padding:8px 9px;border-radius:9px;background:#f5f7f8}
.operation-period-title{color:#617178;font-size:12px;font-weight:750;white-space:nowrap}
.operation-period-controls{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0;color:#50636b;font-size:12px;font-weight:800;white-space:nowrap}
.operation-range-select{width:48px;height:36px;border:1px solid #cbd5d9;border-radius:8px;background:#fff;color:#21343b;text-align:center;font-size:14px;font-weight:800;padding:0 2px;font-variant-numeric:tabular-nums}
.operation-range-select:focus{outline:3px solid rgb(38 93 116 / .16);border-color:#6b94a5}
.operation-off-button{width:100%;height:38px;margin-top:8px;border:1px dashed #b8c6cc;border-radius:9px;background:#fbfcfc;color:#52666e;font-size:12px;font-weight:800}
.operation-off-button.has-days{border-style:solid;border-color:#8fa9b4;background:#eef5f7;color:#2d505e}
.operation-off-dialog{width:min(calc(100% - 34px),390px);padding:0;border:0;border-radius:16px;background:#fff;color:#203239;box-shadow:0 24px 80px rgb(11 29 37 / .28)}
.operation-off-dialog::backdrop{background:rgb(18 31 37 / .42);backdrop-filter:blur(2px)}
.operation-off-panel{padding:17px}
.operation-off-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.operation-off-head strong{font-size:19px}
.operation-off-x{width:34px;height:34px;border:0;border-radius:10px;background:#f1f4f5;color:#53656d;font-size:22px;line-height:1}
.operation-off-help{margin:7px 0 13px;color:#738187;font-size:12px;line-height:1.45}
.operation-off-input-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:9px;border-radius:11px;background:#f5f7f8;color:#435960;font-weight:800}
.operation-off-month{font-variant-numeric:tabular-nums}.operation-off-input{min-width:0;height:40px;border:1px solid #cbd5d9;border-radius:8px;background:#fff;color:#172327;text-align:center;font-size:16px;font-weight:800}.operation-off-input:focus{outline:3px solid rgb(38 93 116 / .16);border-color:#6b94a5}
.operation-off-add{height:40px;border:0;border-radius:8px;background:#263b44;color:#fff;padding:0 12px;font-size:12px;font-weight:800}
.operation-off-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:38px;padding:12px 0 4px}.operation-off-chip{height:32px;border:1px solid #cbd8dd;border-radius:999px;background:#f7fafb;color:#3c5660;padding:0 10px;font-size:12px;font-weight:800}.operation-off-empty{align-self:center;color:#8a969b;font-size:12px}
.operation-off-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.operation-off-actions button{height:44px;border-radius:10px;font-size:14px;font-weight:800}.operation-off-cancel{border:1px solid #cbd5d9;background:#fff;color:#56676e}.operation-off-save{border:0;background:#263b44;color:#fff}
@media(max-width:370px){.operation-period{grid-template-columns:1fr}.operation-period-title{text-align:center}.operation-period-controls{justify-content:center;gap:3px}.operation-range-select{width:44px}.operation-off-dialog{width:calc(100% - 22px)}}

/* 운항편: 항공사별 자동 정렬 + 접이식 상세 */
.operation-settings-rows{display:grid;gap:18px}
.operation-airline-group{display:grid;gap:8px}
.operation-airline-heading{display:flex;align-items:center;gap:8px;margin:0;padding:0 4px;color:#31474f;font-size:15px;line-height:1.2}
.operation-airline-heading small{margin-left:auto;color:#7a898f;font-size:12px;font-weight:650}
.operation-airline-dot{width:11px;height:11px;border-radius:50%;background:var(--airline-color)}
.operation-airline-rows{display:grid;gap:8px}
.operation-row{padding:0;border:1px solid #d8e0e3;border-left:5px solid var(--airline-color,#9aa5aa);border-radius:13px;background:#fff;box-shadow:0 3px 12px rgb(33 54 62 / .035);overflow:hidden}
.operation-row-top{display:grid;grid-template-columns:minmax(0,1fr) 34px 42px auto;gap:7px;align-items:center;padding:10px}
.operation-flight-input{height:46px}
.operation-toggle{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #d5dde0;border-radius:9px;background:#f7f9f9;color:#586b73;font-size:21px;font-weight:800}
.operation-toggle span{display:block;transform:rotate(0deg);transition:transform .16s ease}
.operation-toggle.expanded span{transform:rotate(180deg)}
.operation-toggle:active{background:#edf2f4}
.operation-details{padding:0 10px 10px;border-top:1px solid #edf0f1;background:linear-gradient(180deg,#fff 0%,#fbfcfc 100%)}
.operation-details .operation-day-checks{margin-top:10px}
.operation-details .operation-times{margin-top:10px}
@media(max-width:370px){
  .operation-row{padding:0}
  .operation-row-top{grid-template-columns:minmax(0,1fr) 32px 38px auto;gap:5px;padding:8px}
  .operation-toggle{width:38px;height:40px}
  .operation-remove{padding:0 9px}
  .operation-details{padding:0 8px 8px}
}


/* 운항편: 편별 도착지 2칸 */
.operation-destinations{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  margin-top:8px;
  padding:8px 9px;
  border-radius:9px;
  background:#f5f7f8;
}
.operation-destinations-title{
  color:#617178;
  font-size:12px;
  font-weight:750;
  white-space:nowrap;
}
.operation-destination-controls{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  min-width:0;
}
.operation-destination-input{
  width:100%;
  min-width:0;
  height:38px;
  border:1px solid #cbd5d9;
  border-radius:8px;
  background:#fff;
  color:#21343b;
  text-align:center;
  text-transform:uppercase;
  font:inherit;
  font-size:14px;
  font-weight:850;
  letter-spacing:.7px;
  padding:0 6px;
}
.operation-destination-input::placeholder{
  color:#9aa5aa;
  font-weight:650;
  letter-spacing:0;
}
.operation-destination-input:focus{
  outline:3px solid rgb(38 93 116 / .16);
  border-color:#6b94a5;
}
@media(max-width:370px){
  .operation-destinations{grid-template-columns:1fr;gap:5px}
  .operation-destinations-title{text-align:center}
}


/* 운항편: 같은 항공사 안에서 빠르게 위/아래 순서 변경 */
.operation-move{display:grid;grid-template-rows:1fr 1fr;width:34px;height:42px;border:1px solid #d5dde0;border-radius:9px;overflow:hidden;background:#f7f9f9}
.operation-move-button{display:grid;place-items:center;width:100%;min-width:0;height:20px;padding:0;border:0;background:transparent;color:#4f646c;font:inherit;font-size:13px;font-weight:900;line-height:1}
.operation-move-button+.operation-move-button{border-top:1px solid #e0e6e8}
.operation-move-button:active:not(:disabled){background:#eaf0f2}
.operation-move-button:disabled{opacity:.24;cursor:default}
@media(max-width:370px){.operation-move{width:32px;height:40px}.operation-move-button{height:19px;font-size:12px}}

/* 운항편: 부분 운항 */
.operation-on-button{width:100%;height:38px;margin-top:6px;border:1px dashed #9ebdb2;border-radius:9px;background:#fbfdfc;color:#46695e;font-size:12px;font-weight:800}
.operation-on-button.has-days{border-style:solid;border-color:#6fa58f;background:#edf8f3;color:#245946}
.operation-on-dialog .operation-off-add,.operation-on-dialog .operation-off-save{background:#2e6553}
.operation-on-dialog .operation-on-chip{border-color:#b9d8cc;background:#f0faf6;color:#315f50}

.forest-restore-button{
  width:100%;
  min-height:54px;
  margin-top:12px;
  border:1px solid #b9d7c2;
  border-radius:12px;
  background:#eef8f1;
  color:#2f7042;
  font:inherit;
  font-size:15px;
  font-weight:900;
}
.forest-restore-button:active{transform:scale(.99);background:#e2f2e7}
.forest-restore-button:disabled{opacity:.5}

.visit-stats-refresh{min-width:76px}
.visit-stats-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.visit-stat-card{min-width:0;padding:14px 8px 12px;border:1px solid #e2e7e8;border-radius:14px;background:linear-gradient(180deg,#fff 0%,#f8fbfb 100%);box-shadow:0 5px 16px rgb(42 67 76 / .05);text-align:center}
.visit-stat-card span{display:block;color:#7d8c91;font-size:10px;font-weight:850}
.visit-stat-card strong{display:inline-block;margin-top:5px;color:#253d46;font-size:27px;line-height:1;font-weight:950;font-variant-numeric:tabular-nums}
.visit-stat-card small{margin-left:2px;color:#7d8c91;font-size:10px;font-weight:800}
.visit-stats-chart-card{margin-top:12px;padding:14px 12px 12px;border:1px solid #e2e7e8;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgb(42 67 76 / .045)}
.visit-stats-chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.visit-stats-chart-head strong{color:#314850;font-size:13px;font-weight:950}
.visit-stats-chart-head span{color:#9aa6aa;font-size:9px;font-weight:750}
.visit-stats-chart{display:grid;gap:7px}
.visit-stats-row{display:grid;grid-template-columns:34px minmax(0,1fr) 38px;align-items:center;gap:7px;min-height:22px}
.visit-stats-date{color:#809096;font-size:9px;font-weight:800;font-variant-numeric:tabular-nums}
.visit-stats-track{height:9px;overflow:hidden;border-radius:999px;background:#eef2f3}
.visit-stats-bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#8fc8c9 0%,#57a8ac 100%)}
.visit-stats-value{color:#52656c;font-size:9px;font-weight:900;text-align:right;font-variant-numeric:tabular-nums}
.visit-stats-row.is-today .visit-stats-date,.visit-stats-row.is-today .visit-stats-value{color:#267b80}
.visit-stats-row.is-today .visit-stats-bar{background:linear-gradient(90deg,#5cb8ba 0%,#2f9298 100%)}
@media(max-width:360px){.visit-stat-card strong{font-size:24px}.visit-stats-summary{gap:6px}}

/* 설정 월 선택: 금월 / 익월 */
.settings-month-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:-3px 0 16px;padding:4px;border-radius:13px;background:#eef2f3}
.settings-month-tabs button{min-width:0;min-height:52px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;background:transparent;color:#68777d;font:inherit}
.settings-month-tabs button strong{font-size:14px;font-weight:850}.settings-month-tabs button small{font-size:12px;font-weight:750;color:#849197}
.settings-month-tabs button.active{background:#fff;color:#1d3037;box-shadow:0 2px 9px rgb(30 50 58 / .11)}
.settings-month-tabs button.active small{color:#54717c}
.schedule-upload-summary p{white-space:pre-line}
.schedule-upload-summary.is-empty{border-color:#eadbb5;background:#fffaf0}
.schedule-upload-summary.is-empty .schedule-upload-check{background:#c89b3c;color:#fff}
.schedule-upload-summary.is-empty strong{color:#72591f}
.schedule-upload-summary.is-empty p{color:#816f48}

/* A11-53 · 운항편 설정 통합형 레이아웃 */
.operation-settings-rows{display:grid;gap:19px}
.operation-airline-group{display:grid;gap:0;margin:0}
.operation-airline-rows{display:grid;gap:6px}
.operation-row{
  padding:0;
  border:1px solid color-mix(in srgb,var(--airline-color) 48%,#d9e0e2);
  border-left:4px solid var(--airline-color);
  border-radius:14px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--airline-color) 7%,#fff),#fff 54%);
  overflow:hidden;
  box-shadow:0 4px 16px rgb(33 54 62 / .045)
}
.operation-card-main{padding:10px 9px 8px}
.operation-primary-grid{display:grid;grid-template-columns:1.9fr .62fr .62fr .78fr .78fr;gap:5px;align-items:end}
.operation-main-field{display:block;min-width:0;margin:0}
.operation-main-field>span,.operation-alt-small-field>span{display:block;margin:0 0 3px 2px;color:#7b898f;font-size:8px;font-weight:900;letter-spacing:.04em;white-space:nowrap}
.operation-main-field input{
  width:100%;min-width:0;height:40px;border:1px solid color-mix(in srgb,var(--airline-color) 27%,#ccd6d9);border-radius:8px;
  background:rgb(255 255 255 / .92);color:#17272d;text-align:center;font-size:12px;font-weight:900;padding:0 4px;font-variant-numeric:tabular-nums
}
.operation-main-field input:focus{outline:2px solid color-mix(in srgb,var(--airline-color) 25%,transparent);border-color:var(--airline-color)}
.operation-flight-input{text-transform:uppercase}
.operation-origin-input,.operation-destination-input{text-transform:uppercase;letter-spacing:.4px}
.operation-day-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr)) 1px .92fr;gap:4px;align-items:center;margin-top:8px}
.operation-day-button,.operation-every-button{min-width:0;height:31px;border:1px solid #d5dddf;border-radius:8px;background:#fff;color:#6d7c82;font-size:10px;font-weight:900;padding:0}
.operation-day-button.is-active,.operation-every-button.is-active{border-color:var(--airline-color);background:var(--airline-color);color:#fff;box-shadow:0 2px 7px color-mix(in srgb,var(--airline-color) 22%,transparent)}
.operation-day-divider{width:1px;height:23px;justify-self:center;background:#cbd5d8}
.operation-every-button{font-size:9px}
.operation-card-actions{display:grid;grid-template-columns:1fr auto;border-top:1px solid color-mix(in srgb,var(--airline-color) 17%,#e5ebed);background:#fff}
.operation-detail-toggle{height:39px;border:0;background:transparent;color:#52666d;font-size:11px;font-weight:900;text-align:left;padding:0 13px}
.operation-detail-toggle span{display:inline-block;margin-left:4px;transition:transform .16s ease}
.operation-detail-toggle.is-expanded span{transform:rotate(180deg)}
.operation-remove{height:39px;border:0;border-left:1px solid #edf0f1;border-radius:0;background:transparent;color:#ad555d;padding:0 13px;font-size:10px;font-weight:850}
.operation-details{padding:11px;border-top:1px solid #edf0f1;background:#fbfcfc}
.operation-detail-section+.operation-detail-section{margin-top:12px}
.operation-detail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:#4f6168;font-size:10px;font-weight:900}
.operation-detail-head strong{font-size:10px;color:#42555c}.operation-detail-head span{color:#8a969b;font-size:9px;font-weight:750;text-align:right}
.operation-period-new{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px}
.operation-period-box{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:3px;padding:6px 8px;border:1px solid #dbe2e4;border-radius:9px;background:#fff;color:#4b5f66;font-size:10px;font-weight:850}
.operation-period-box .operation-range-select{width:100%;height:31px;border:0;border-radius:0;background:#fff;color:#17272d;text-align:right;font-size:12px;font-weight:900;padding:0}
.operation-period-box .operation-range-select:focus{outline:0}
.operation-period-tilde{color:#849197;font-size:12px;font-weight:900}
.operation-date-add-row{display:flex;gap:6px}
.operation-date-input-wrap{display:flex;align-items:center;gap:4px;flex:1;min-width:0;height:37px;padding:0 9px;border:1px solid #d8e0e2;border-radius:9px;background:#fff;color:#586b72;font-size:10px;font-weight:850}
.operation-date-input-wrap input{width:48px;min-width:0;border:0;border-bottom:1px solid #cbd5d8;background:transparent;color:#17272d;text-align:center;font-size:12px;font-weight:950;padding:2px}
.operation-date-input-wrap input:focus{outline:0;border-bottom-color:var(--airline-color)}
.operation-small-button{border:0;border-radius:9px;background:#30464f;color:#fff;padding:0 13px;font-size:10px;font-weight:900}
.operation-date-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.operation-date-chip{height:28px;border:1px solid #d3dde0;border-radius:999px;background:#fff;color:#52666d;padding:0 9px;font-size:9px;font-weight:850}
.operation-date-chip.is-static{display:inline-grid;place-items:center;pointer-events:none}
.operation-alt-box{border:1px solid color-mix(in srgb,var(--airline-color) 28%,#d7dfe2);border-radius:11px;background:#fff;overflow:hidden}
.operation-alt-toggle{width:100%;height:41px;display:flex;align-items:center;border:0;background:color-mix(in srgb,var(--airline-color) 5%,#fff);padding:0 10px;color:#435960;font-size:11px;font-weight:950;text-align:left}
.operation-alt-summary{margin-left:auto;display:flex;align-items:center;gap:7px;color:color-mix(in srgb,var(--airline-color) 75%,#34484f);font-size:10px}
.operation-alt-count{min-width:31px;padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--airline-color) 11%,#fff);text-align:center}
.operation-alt-arrow{display:inline-block;transition:transform .16s ease}.operation-alt-toggle[aria-expanded="true"] .operation-alt-arrow{transform:rotate(180deg)}
.operation-alt-body{padding:10px;border-top:1px solid #e8edef}
.operation-alt-grid{display:grid;grid-template-columns:1.75fr .72fr .72fr;gap:5px}
.operation-alt-grid .operation-main-field input{height:35px;border-color:#d6dfe1;font-size:10px}
.operation-alt-subtitle{margin:10px 0 5px;color:#66767c;font-size:9px;font-weight:950}
.operation-alt-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.operation-alt-day{min-width:0;height:29px;border:1px solid #d9e0e2;border-radius:7px;background:#f8fafb;color:#7b888d;font-size:9px;font-weight:900;padding:0}
.operation-alt-day.is-active{background:#31474f;border-color:#31474f;color:#fff}
.operation-alt-hint{margin:5px 0 0;color:#98a3a7;font-size:8px;line-height:1.45}
.operation-alt-times{display:grid;grid-template-columns:.9fr 1fr .9fr 1fr;gap:4px;margin-top:9px}
.operation-alt-small-field{display:block;min-width:0;margin:0}
.operation-alt-small-field input,.operation-alt-small-field select{width:100%;min-width:0;height:35px;border:1px solid #d6dfe1;border-radius:7px;background:#fff;color:#17272d;text-align:center;font-size:10px;font-weight:900;padding:0 4px}
.operation-alt-clear{width:100%;height:32px;margin-top:10px;border:0;border-radius:8px;background:#fff1f1;color:#a84f55;font-size:9px;font-weight:900}
.operation-legacy-on{padding:8px;border:1px dashed #d4dde0;border-radius:9px;background:#fff}
.operation-order-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:11px;padding-top:9px;border-top:1px solid #edf0f1}
.operation-order-actions button{height:31px;border:1px solid #d7e0e2;border-radius:8px;background:#fff;color:#66767d;font-size:9px;font-weight:850}
.operation-order-actions button:disabled{opacity:.35}
.operation-add{height:50px;margin-top:14px;border:1px solid #c7d2d6;border-radius:12px;background:#fff;color:#31464e;font-size:13px;font-weight:900}
@media(max-width:370px){
  .operation-card-main{padding-left:7px;padding-right:7px}.operation-primary-grid{gap:3px}.operation-main-field input{font-size:10px;padding:0 2px}
  .operation-day-strip{gap:3px}.operation-day-button,.operation-every-button{font-size:9px}.operation-details{padding:9px}
  .operation-alt-times{grid-template-columns:1fr 1fr}.operation-alt-grid{grid-template-columns:1.55fr .72fr .72fr}
}

/* A11-54 · 다중 대체운항 */
.operation-alt-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.operation-alt-section-head strong{color:#42555c;font-size:10px;font-weight:950}
.operation-alt-add{height:31px;border:1px solid color-mix(in srgb,var(--airline-color) 34%,#ccd6d9);border-radius:8px;background:color-mix(in srgb,var(--airline-color) 6%,#fff);color:color-mix(in srgb,var(--airline-color) 78%,#32474f);padding:0 10px;font-size:9px;font-weight:950}
.operation-alt-list{display:grid;gap:7px}
.operation-alt-empty{margin:0;padding:10px;border:1px dashed #d9e1e3;border-radius:9px;background:#fff;color:#97a2a6;text-align:center;font-size:8px;font-weight:800}
.operation-alt-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}

/* A11-56 · 대체운항 적용일 정돈 + 입출항일 선택 제거 */
.operation-alt-date-title{margin-bottom:7px}
.operation-alt-date-controls{display:grid;grid-template-columns:1fr;gap:7px}
.operation-alt-date-card{min-width:0;padding:9px;border:1px solid #dde4e6;border-radius:10px;background:#fafcfc}
.operation-alt-date-card-auto{background:color-mix(in srgb,var(--airline-color) 3%,#fff);border-color:color-mix(in srgb,var(--airline-color) 17%,#dce4e6)}
.operation-alt-date-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.operation-alt-date-card-head strong{color:#4d6067;font-size:9px;font-weight:950}
.operation-alt-date-card-head span{color:#9aa5a9;font-size:8px;font-weight:800;white-space:nowrap}
.operation-alt-single-date{gap:7px}
.operation-alt-single-date .operation-date-input-wrap{height:38px;background:#fff}
.operation-alt-single-date .operation-small-button{min-width:58px;height:38px}
.operation-alt-range-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;min-width:0}
.operation-alt-range-input{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;height:38px;padding:0 8px;border:1px solid #d8e0e2;border-radius:9px;background:#fff;color:#586b72;font-size:9px;font-weight:850;white-space:nowrap}
.operation-alt-range-input input{width:38px;min-width:0;border:0;border-bottom:1px solid #cbd5d8;background:transparent;color:#17272d;text-align:center;font-size:11px;font-weight:950;padding:2px 0}
.operation-alt-range-input input:focus{outline:0;border-bottom-color:var(--airline-color)}
.operation-alt-range-tilde{color:#8b989d;font-size:12px;font-weight:950;text-align:center}
.operation-alt-auto-button{width:100%;height:35px;margin-top:7px;border-radius:8px;background:color-mix(in srgb,var(--airline-color) 76%,#30464f);padding:0 10px;white-space:nowrap}
.operation-alt-date-chips{padding-top:1px}
.operation-alt-times-simple{grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
@media(min-width:680px){
  .operation-alt-date-controls{grid-template-columns:minmax(0,.82fr) minmax(0,1.38fr);align-items:stretch}
  .operation-alt-date-card{display:flex;flex-direction:column}
  .operation-alt-date-card-auto .operation-alt-auto-button{margin-top:auto;padding-top:0}
}
@media(max-width:370px){
  .operation-alt-date-card{padding:8px}
  .operation-alt-range-input{padding:0 5px;font-size:8px}.operation-alt-range-input input{width:31px;font-size:10px}
  .operation-alt-times-simple{grid-template-columns:1fr 1fr}
}


/* A11-89: optional version override for uploaded monthly Excel schedules. */
.schedule-version-manual-row{margin:12px 0 6px;display:flex;flex-direction:column;gap:7px}
.schedule-version-manual-row>label{color:#435666;font-size:12px;font-weight:800}
.schedule-version-manual-row>label small{color:#7d8d9a;font-weight:500;font-size:11px}
.schedule-version-manual-row>div{display:flex;gap:8px;min-width:0}
.schedule-version-manual-row input{flex:1;min-width:0;border:1px solid #d4dee5;border-radius:9px;padding:10px 12px;font-size:15px;color:#263746;background:#fff}
.schedule-version-manual-row button{flex:none;border:1px solid #a6b9ce;border-radius:9px;background:#304b6b;color:#fff;padding:7px 12px;font-size:12px;font-weight:800;cursor:pointer}
.schedule-version-manual-row button:disabled{opacity:.5}

/* A11-89 manual schedule version */
.schedule-version-manual-row{margin:12px 0 6px;display:flex;flex-direction:column;gap:7px}
.schedule-version-manual-row>label{color:#435666;font-size:12px;font-weight:800}
.schedule-version-manual-row>label small{color:#7d8d9a;font-weight:500;font-size:11px}
.schedule-version-manual-row>div{display:flex;gap:8px;min-width:0}
.schedule-version-manual-row input{flex:1;min-width:0;border:1px solid #d4dee5;border-radius:9px;padding:10px 12px;font-size:15px;color:#263746;background:#fff}
.schedule-version-manual-row button{flex:none;border:1px solid #a6b9ce;border-radius:9px;background:#304b6b;color:#fff;padding:7px 12px;font-size:12px;font-weight:800;cursor:pointer}
.schedule-version-manual-row button:disabled{opacity:.5}

/* A11-98: message-first shared R/C Notice editor; flat server rules remain unchanged. */
.rc-notice-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;color:#344952;font-size:15px}
.rc-notice-toolbar span{color:#75858b;font-size:12px;font-weight:700;text-align:right}
.rc-notice-rows{display:grid;gap:12px}
.rc-notice-row{display:grid;gap:9px;padding:14px;border:1px solid #dce3e7;border-radius:14px;background:#f8fafb;min-width:0}
.rc-notice-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#31464d}
.rc-notice-row-top strong{font-size:15px}
.rc-notice-remove{min-height:32px;padding:5px 10px;background:#fff1f1;border:1px solid #e7bec1;border-radius:8px;color:#b05059;font-size:12px;font-weight:750}
.rc-notice-row input,.rc-notice-row textarea{box-sizing:border-box;border:1px solid #d6dfe3;border-radius:9px;background:#fff;color:#243740;font:inherit;font-size:16px;outline-offset:2px}
.rc-notice-row textarea{display:block;width:100%;min-height:75px;padding:10px 12px;resize:vertical;line-height:1.45;font-weight:550}
.rc-notice-conditions-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:4px}
.rc-notice-conditions-head strong{font-size:14px;color:#43565d}
.rc-notice-conditions-head span{font-size:11px;font-weight:600;color:#85949b}
.rc-notice-conditions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rc-notice-condition{display:flex;min-width:0;align-items:stretch;gap:4px}
.rc-notice-condition input{width:100%;min-width:0;height:39px;min-height:39px;padding:6px 5px;text-align:center;font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:.015em}
.rc-notice-condition-remove{flex:0 0 27px;min-width:27px;min-height:39px;border:1px solid #e8d2d3;border-radius:8px;background:#fff7f7;color:#b45e64;font-size:20px;font-weight:500;line-height:1}
.rc-notice-condition-add{justify-self:start;min-height:32px;padding:4px 11px;border:1px dashed #c6b3b6;border-radius:8px;background:#fff7f7;color:#aa5860;font-size:12px;font-weight:800}
.rc-notice-add{width:100%;min-height:48px;margin-top:13px;border:1px dashed #cdb1b4;border-radius:11px;background:#fff5f5;color:#a7525b;font-size:15px;font-weight:800}
.rc-notice-add:disabled{opacity:.45;cursor:not-allowed}
.rc-notice-remove:active,.rc-notice-add:active,.rc-notice-condition-add:active,.rc-notice-condition-remove:active{background:#fbe4e5}
@media(max-width:350px){.rc-notice-row{padding:10px}.rc-notice-conditions{gap:6px}.rc-notice-condition input{font-size:13px}.rc-notice-conditions-head span{font-size:10px}}


/* A11-120: pending work schedule is a review, not a published cloud value. */
.schedule-upload-summary.is-preview{border-color:#c3d5e8;background:#f2f7fd}
.schedule-upload-summary.is-preview .schedule-upload-check{background:#577fa2}
.schedule-upload-summary.is-preview strong{color:#294968}
.schedule-upload-summary.is-preview p{color:#4e6b7f}

/* A11-141: original collapsed operation cards. Simple 4-field alternates are ONLY inside Details. */
.operation-alternates-section{margin-top:13px}
.operation-alt-box{border-radius:10px}
.operation-alt-simple-title{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:30px;padding:7px 10px;background:color-mix(in srgb,var(--airline-color) 5%,white);font-weight:950;color:#42555c;font-size:10px}
.operation-alt-simple-title .operation-alt-label{font-size:10px}
.operation-alt-simple-title .operation-alt-arrow{display:none}
.operation-alt-body{padding:9px}
.operation-alt-compact-grid{grid-template-columns:minmax(0,1.85fr) repeat(2,minmax(0,.85fr));gap:6px}
.operation-alt-compact-grid .operation-main-field input{font-size:12px;height:38px}
.operation-alt-times-simple{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:8px}
.operation-alt-times-simple .operation-alt-small-field input{font-size:12px;height:38px}
.operation-alt-date-settings{margin-top:10px;border-top:1px solid #e9eff0;padding-top:5px}
.operation-alt-date-summary{cursor:pointer;font-size:10px;font-weight:900;color:#5f7680;line-height:1.4;padding:7px 0;list-style-position:inside}
.operation-alt-date-settings.needs-date .operation-alt-date-summary{color:#b26b22}
.operation-alt-date-notice{margin:3px 0 9px;font-size:10px;color:#8c999d;line-height:1.5}
.operation-alt-date-settings:not([open])>.operation-alt-date-notice{display:none}
@media(max-width:370px){.operation-alt-compact-grid{grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,.85fr));gap:4px}}

/* A11-147: compact readonly subflights directly below their parent.
   Alternates remain editable ONLY inside the original Details panel. */
.operation-alt-preview{
  padding:9px 9px 10px;
  border-top:1px solid color-mix(in srgb,var(--airline-color) 18%,#e9eef0);
  background:#fff;
}
.operation-alt-preview[hidden]{display:none!important}
.operation-alt-preview-head{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  margin-bottom:7px;font-size:10px;color:color-mix(in srgb,var(--airline-color) 70%,#654b43);
}
.operation-alt-preview-head strong{font-size:11px;font-weight:950}
.operation-alt-preview-head span{font-size:9px;color:#8b959a;font-weight:800}
.operation-alt-preview-labels,
.operation-alt-preview-line{
  display:grid;grid-template-columns:minmax(0,1.95fr) minmax(0,.62fr) minmax(0,.66fr) minmax(0,.78fr) minmax(0,.78fr);
  gap:5px;align-items:center;text-align:center;
}
.operation-alt-preview-labels{font-size:8px;font-weight:850;color:#9b9998;padding:0 4px 4px}
.operation-alt-preview-line{
  min-height:31px;padding:5px 4px;margin-top:4px;
  border:1px solid color-mix(in srgb,var(--airline-color) 15%,#e9edef);
  border-radius:8px;background:color-mix(in srgb,var(--airline-color) 3%,white);
}
.operation-alt-preview-line span{
  display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:clamp(8px,2.35vw,11px);font-weight:850;color:#40565e;letter-spacing:-.3px;
}
.operation-alt-preview-line span:first-child{font-weight:950;color:color-mix(in srgb,var(--airline-color) 74%,#39474c)}
/* 5 fields in one row, with small labels above them. */
.operation-alternates-section .operation-alt-compact-grid{
  display:grid;grid-template-columns:minmax(0,1.95fr) minmax(0,.62fr) minmax(0,.66fr) minmax(0,.78fr) minmax(0,.78fr);gap:5px;
}
.operation-alternates-section .operation-alt-compact-grid .operation-main-field>span{font-size:8px;letter-spacing:-.25px;white-space:nowrap}
.operation-alternates-section .operation-alt-compact-grid .operation-main-field input{
  width:100%;height:34px;min-width:0;white-space:nowrap;padding:0 2px;
  font-size:clamp(9px,2.4vw,11px);font-weight:900;letter-spacing:-.4px;
}
.operation-alt-simple-title{gap:6px;justify-content:space-between}
.operation-alt-simple-title .operation-alt-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.operation-alt-simple-title .operation-alt-summary{margin-left:0}
.operation-alt-simple-title .operation-alt-clear{
  flex:0 0 auto;width:auto;height:27px;min-height:27px;margin:0;padding:0 9px;
  background:#fff0ed;border:1px solid #f3dbd4;color:#ab5056;border-radius:7px;font-size:9px;
}
@media(max-width:390px){
  .operation-alt-preview-labels,.operation-alt-preview-line,.operation-alternates-section .operation-alt-compact-grid{gap:3px}
  .operation-alt-preview-line span{font-size:clamp(7.4px,2.25vw,9px);letter-spacing:-.55px}
  .operation-alternates-section .operation-alt-compact-grid .operation-main-field input{font-size:clamp(8.5px,2.3vw,10px)}
  .operation-alt-simple-title .operation-alt-label{font-size:9px}
}


/* A11-150: parent-only alternate preview and detail editor. */
.operation-alt-empty[hidden]{display:none!important}
.operation-alt-preview[hidden]{display:none!important}
.operation-alt-preview{border-left:3px solid color-mix(in srgb,var(--airline-color) 67%,white);padding-left:9px}
.operation-alt-preview-line span{font-variant-numeric:tabular-nums}
.operation-alt-preview-line span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.operation-alternates-section .operation-alt-list{margin-top:7px}
.operation-alternates-section .operation-alt-box{border-color:color-mix(in srgb,var(--airline-color) 25%,#dfe4e6)}
.operation-alternates-section .operation-alt-clear:focus-visible{outline:2px solid #b95353;outline-offset:2px}

/* A11-223 바나나숲 전체 기록 관리자 */
.forest-history-panel{margin:22px 0 36px;padding:16px 12px;border:1px solid #dbe5e7;border-radius:17px;background:#f9fbfb;max-width:780px}
.forest-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#24414a;font-size:17px}
.forest-history-head span{font-size:12px;color:#76888c;font-weight:800}
.forest-history-description{color:#718186;font-size:12px;line-height:1.65;margin:10px 0 14px}
.forest-history-description strong{color:#bd5558}
.forest-history-login{display:flex;gap:8px;align-items:stretch}
.forest-history-login input{min-width:0;flex:1;border:1px solid #d4dfe4;border-radius:11px;padding:12px;font-size:14px;background:#fff}
.forest-history-login button{padding:0 14px;background:#315b6c;color:white;border:0;border-radius:11px;font-weight:850;white-space:nowrap;font-size:12px}
.forest-history-list{display:grid;gap:10px;margin-top:14px}
.forest-history-card{border:1px solid #e2e7e8;border-radius:12px;padding:13px;background:white;min-width:0}
.forest-history-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.forest-history-card-head strong{font-size:13px;color:#273e48}
.forest-history-card-head span{font-size:11px;flex-shrink:0;font-weight:800}
.forest-live{color:#24815f}.forest-archived{color:#bd8243}
.forest-history-author{font-size:11px;color:#849397;margin-top:6px}
.forest-history-body{margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#253b42;font-size:14px;line-height:1.6}
.forest-history-media{display:flex;flex-direction:column;gap:6px;margin:6px 0;color:#72828c;font-size:12px}
.forest-history-media img{object-fit:contain;object-position:left;max-width:100%;max-height:180px;border-radius:9px}
.forest-history-actions{display:flex;gap:9px;align-items:center;justify-content:space-between;margin-top:12px;padding-top:9px;border-top:1px solid #edf0f2}
.forest-history-actions small{color:#8c969a;font-size:10px;line-height:1.4}
.forest-history-remove{border:1px solid #ebc2c2;background:#fff1f1;border-radius:9px;padding:9px 12px;color:#b3444a;font-weight:850;white-space:nowrap;font-size:12px}
.forest-history-more{display:block;width:100%;border:1px solid #d9e3e8;border-radius:10px;background:#fff;padding:12px;margin-top:10px;font-weight:850;color:#315b6c}
.forest-history-more[hidden]{display:none}
@media(max-width:370px){.forest-history-panel{padding:12px 10px}.forest-history-login button{padding:0 10px}}

.forest-history-secret-help{font-size:11px;color:#607d8b;margin:0 0 9px}.forest-history-secret-help code{font-family:ui-monospace,SFMono-Regular,monospace;background:#eaf1f4;padding:2px 4px;border-radius:4px}

/* A11-224: settings login is the only authentication UI for forest management. */
.forest-history-login button{width:100%;min-height:43px}

/* A11-245 emergency: archive viewer is read-only, destructive actions are frozen. */
.forest-history-remove:disabled{opacity:.52;cursor:not-allowed;filter:grayscale(.45)}
#forest-history-diagnostics{font-size:11px;line-height:1.6;color:#565b68;white-space:normal}

/* A11-246: protected recovery action, permanent delete remains blocked. */
#restore-forest{background:linear-gradient(135deg,#2c7153,#46a073);color:#fff;box-shadow:0 4px 12px rgba(36,103,74,.12)}
#restore-forest:disabled{background:#b0c8b9;color:#fff}

/* A11-248: marked records cleanup in management settings. */
.forest-marked-cleanup{margin:12px 0;padding:14px;border:1px solid #edcac6;border-radius:13px;background:#fff8f6;display:grid;gap:8px}
.forest-marked-cleanup strong{font-size:13px;color:#962f30}
.forest-marked-cleanup p{margin:5px 0 0;font-size:11px;line-height:1.55;color:#8a6562}
.forest-marked-cleanup button{height:39px;border-radius:10px;background:#c74340;color:#fff;border:0;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.forest-marked-cleanup button:disabled{opacity:.48;cursor:wait}
.forest-marked-cleanup .settings-status{margin:0;font-size:11px;color:#8a6562}
.forest-history-card.is-deleting{opacity:.44;pointer-events:none}

/* A11-248: compact root-post + expandable replies */
.forest-history-panel{margin-top:16px}
.forest-history-description,#forest-history-diagnostics,.forest-marked-cleanup{display:none}
.forest-history-group{padding:13px 14px}
.forest-history-group .forest-history-body{margin:8px 0 6px;line-height:1.5}
.forest-history-attachment{font-size:11px;color:#697e85;margin:5px 0}
.forest-history-replies{border:1px solid #e5eaec;border-radius:9px;background:#f8fafb;margin:9px 0;overflow:hidden}
.forest-history-replies>summary{cursor:pointer;list-style:revert;padding:10px 12px;color:#506875;font-size:12px;font-weight:850}
.forest-history-reply-list{max-height:300px;overflow:auto;border-top:1px solid #e6ecee;padding:4px 10px}
.forest-history-reply{display:flex;gap:8px;padding:8px 2px;border-bottom:1px solid #ebeeee;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.forest-history-reply:last-child{border-bottom:0}
.forest-history-reply strong{flex-shrink:0;max-width:28%;overflow:hidden;text-overflow:ellipsis;color:#47606b}
.forest-history-reply span{color:#36474d;white-space:pre-wrap}
.forest-history-group .forest-history-actions{margin-top:9px;padding-top:8px}

/* A11-250: actual image previews in grouped forest recovery posts/replies. */
.forest-history-preview{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 9px;align-items:flex-start}
.forest-history-preview-item{display:flex;flex-direction:column;gap:5px;margin:0;max-width:100%;min-width:0}
.forest-history-preview img{display:block;box-sizing:border-box;width:auto;max-width:100%;max-height:230px;min-width:95px;min-height:72px;border-radius:10px;object-fit:contain;object-position:left top;background:#f2f5f6;border:1px solid #e6eaea}
.forest-history-preview img.is-loaded{min-width:0;min-height:0}
.forest-history-preview figcaption{font-size:10px;font-weight:650;color:#7a8990}
.forest-history-reply-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.forest-history-reply-content>span{white-space:pre-wrap;overflow-wrap:anywhere}
.forest-history-preview.is-compact{margin:5px 0 2px}
.forest-history-preview.is-compact img{max-height:140px;max-width:min(100%,210px)}
@media(max-width:390px){.forest-history-preview img{max-height:190px}.forest-history-preview.is-compact img{max-height:116px}}

/* A11-252: admin-only preparation of existing R2 image thumbnails */
.forest-thumb-prewarm{display:grid;gap:4px;padding:12px;margin:10px 0;border:1px solid #e0e9de;border-radius:13px;background:#f7fbf6}
.forest-thumb-prewarm-button{width:100%;min-height:42px;border:1px solid #c5dac7;border-radius:10px;background:#e9f3e9;color:#24533a;font:inherit;font-weight:850;font-size:13px;cursor:pointer}
.forest-thumb-prewarm-button:disabled{opacity:.5;cursor:wait}
.forest-thumb-prewarm .settings-status{margin:0;font-size:11px;line-height:1.5}

/* A11-287: explicit pre-2026-11-04 permanent purge, available only after Settings auth. */
.forest-date-purge{padding:12px;margin:12px 0;border:1px solid #ecd8d4;border-radius:13px;background:#fffafa;display:grid;gap:7px}
.forest-date-purge strong{color:#9c4744;font-size:13px}
.forest-date-purge p{margin:0;color:#876e6a;font-size:11px;line-height:1.6}
.forest-date-purge button{min-height:38px;border:1px solid #ddc0bd;border-radius:9px;background:#fff;color:#9c4744;font:inherit;font-weight:800;font-size:12px}
.forest-date-purge button:disabled{opacity:.55}
.forest-date-purge .settings-status{margin:0;color:#9c4744}

/* A11-288: opt-in, post-level selection and verified multi-post deletion. */
.forest-history-bulk[hidden]{display:none!important}
.forest-history-bulk{margin-top:10px;padding:9px 10px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:#fff;border:1px solid #e4e8e9;border-radius:11px}
.forest-history-select-all{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:#3f5359;white-space:nowrap;cursor:pointer}
.forest-history-select-all input,.forest-history-item-select input{width:18px;height:18px;accent-color:#ed7844;cursor:pointer;margin:0;flex:0 0 18px}
.forest-history-selected-count{font-size:11px;color:#a14f37;font-weight:800;margin-left:auto;white-space:nowrap}
.forest-history-unselect{background:transparent;border:0;font:inherit;color:#697d83;font-size:11px;font-weight:750;padding:5px;cursor:pointer}
.forest-history-delete-selected{border:1px solid #cf5655;background:#c94e4e;color:#fff;padding:9px 12px;border-radius:9px;font:inherit;font-weight:850;font-size:12px;cursor:pointer}
.forest-history-delete-selected:disabled,.forest-history-unselect:disabled{opacity:.44;cursor:not-allowed}
.forest-history-item-label{display:inline-flex;align-items:center;gap:9px;min-width:0;cursor:pointer}
.forest-history-card.is-selected{border-color:#e4a27f;background:#fffaf6;box-shadow:0 0 0 1px #f8d8c2 inset}
.forest-history-card.is-deleting{opacity:.56;pointer-events:none}
@media(max-width:380px){.forest-history-bulk{gap:6px;padding:8px}.forest-history-delete-selected{width:100%}.forest-history-selected-count{margin-left:0}.forest-history-unselect{margin-left:auto}}

/* A11-294: make the post-vs-reply delete scope explicit, also on narrow phones. */
.forest-selection-guide{font-size:12px;line-height:1.65;color:#667c86;margin:12px 2px 9px}
.forest-reply-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px;padding:10px;border-top:1px solid #e0e8ea;background:#f3f7f8}
.forest-reply-actions span{font-size:11px;color:#607782;line-height:1.5}
.forest-reply-actions button{border:1px solid #d79595;border-radius:9px;background:#fff4f3;color:#a84244;padding:8px 10px;min-height:37px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.forest-reply-actions button:disabled{opacity:.55;cursor:not-allowed}
.forest-history-remove{white-space:normal;text-align:center}
@media(max-width:380px){.forest-reply-actions button{width:100%}}
