.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px}
.auth-card{width:min(420px,100%);background:var(--white);border:1px solid var(--line);border-radius:14px;padding:28px 24px}
.auth-card h1{font-size:24px;margin:8px 0 6px}
.auth-card form{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.auth-card label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.auth-card input{border:1px solid var(--line);border-radius:6px;padding:11px 12px;min-height:44px;color:var(--ink)}
.auth-error{color:var(--amber);font-size:13px;min-height:1.4em}
.auth-switch{border:0;background:transparent;color:var(--green);font-weight:700;padding:8px}
.sidebar-user{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.sidebar-user button{width:100%;margin-top:10px}
.calc-panel{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--white)}
.calc-panel strong{display:block;font-size:14px;margin:2px 0 6px}
.calc-panel label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);margin-top:8px}
.calc-panel input{border:1px solid var(--line);border-radius:6px;padding:9px 10px;min-height:40px;color:var(--ink)}
.calc-help{font-size:12px;color:var(--muted);margin:0}
.calc-result{font-size:13px;font-weight:700;margin:10px 0 4px}
.calc-warn{font-size:11px;color:var(--amber);margin:0}
.complete-form{display:flex;flex-direction:column;gap:8px;margin:12px 0 20px}
.complete-form input,.complete-form select{border:1px solid var(--line);border-radius:6px;padding:10px;min-height:44px}
.catalog-badge{display:inline-block;font-size:10px;font-weight:700;color:var(--green);background:var(--soft);border-radius:4px;padding:2px 6px;margin-left:6px}
@media(max-width:900px){.sidebar-user{margin:0 0 0 auto;padding:0;border:0}.sidebar-user button{width:auto;margin:0;min-height:36px;padding:6px 12px}.auth-card{padding:22px 18px}}

/* 현장 작업: 일정 선택 → 실시 기록. 공통 화면의 크기와 배치를 여기서 맞춘다. */
body { font-size: 16px; }
h1 { font-size: 32px; letter-spacing: -1.2px; }
.eyebrow, .muted, .side-caption { font-size: 13px; }
.eyebrow { letter-spacing: .3px; }
.page-intro { font-size: 15px; line-height: 1.7; }
.page-header { margin-bottom: 24px; }
.button-primary { min-height: 48px; padding: 12px 18px; font-size: 15px; white-space: normal; }
.button-quiet, .auth-switch { min-height: 44px; font-size: 14px; }
button, a, summary, input, select { touch-action: manipulation; }
summary { cursor: pointer; }
main { margin-left: 232px; padding: 36px; max-width: 1660px; }

.sidebar { width: 232px; padding: 28px 20px; overflow-y: auto; gap: 24px; }
.brand { padding: 0; margin: 0; font-size: 22px; overflow-wrap: anywhere; }
.brand img { flex-shrink: 0; }
.brand small { font-size: 12px; letter-spacing: 1px; }
.view-nav { gap: 6px; }
.view-nav a { font-size: 16px; min-height: 48px; padding: 12px; }
.sidebar-tools { display: grid; gap: 10px; min-width: 0; }
.tool-disclosure { min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--white); }
.tool-disclosure > summary, .season-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; padding: 12px; list-style: none; font-size: 14px; font-weight: 700; }
.tool-disclosure > summary::-webkit-details-marker, .season-disclosure > summary::-webkit-details-marker { display: none; }
.tool-disclosure > summary::after, .season-disclosure > summary::after { content: "+"; font: 20px var(--data); }
.tool-disclosure[open] > summary::after, .season-disclosure[open] > summary::after { content: "−"; }
.tool-disclosure[open] > summary { border-bottom: 1px solid var(--line); }
.sidebar .farm-note, .sidebar .calc-panel { display: block; width: auto; border: 0; border-radius: 0; margin: 0; padding: 14px 12px; background: transparent; }
.farm-note .side-caption { margin: 0 0 6px; }
.farm-note p, .calc-help, .calc-warn, .calc-result { font-size: 13px; overflow-wrap: anywhere; }
.farm-note strong { font-size: 20px; }
.field-label, .calc-panel label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; margin-top: 12px; }
.field-label input, .calc-panel input { width: 100%; min-width: 0; min-height: 46px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 16px; color: var(--ink); background: var(--white); }
.sidebar-user { margin: auto 0 0; padding-top: 16px; }
.sidebar-user button { margin: 0; }

.work-summary { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.next-schedule { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px 24px; border-left: 4px solid var(--green); }
.next-schedule h2 { margin: 4px 0; font-size: 25px; letter-spacing: -.6px; }
.next-schedule > div { min-width: 0; overflow-wrap: anywhere; }
.next-schedule .button-primary { flex-shrink: 0; gap: 16px; }
#next-period { font-size: 14px; color: var(--muted); }
.record-overview { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 24px; background: var(--soft); font-size: 13px; }
.record-overview > span { white-space: nowrap; }
.record-overview strong { font: 700 18px var(--data); margin-left: 8px; }
.record-overview p { color: var(--muted); overflow-wrap: anywhere; }
.calendar-status { margin: 14px 2px 20px; font-size: 13px; color: var(--muted); }
#calendar-retry { margin-bottom: 16px; }
.workspace { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 24px; }
.schedule-panel, .detail-panel { min-width: 0; }
.schedule-panel > .section-top { padding: 20px; }
.section-top h2 { font-size: 19px; margin: 0; }
.schedule-row { grid-template-columns: 30px minmax(0, 1fr) auto; gap: 12px; padding: 18px 20px; min-height: 90px; }
.schedule-number { font: 14px var(--data); color: var(--muted); }
.schedule-label { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.schedule-row .name-text { font-size: 18px; white-space: normal; overflow-wrap: anywhere; }
.schedule-row .period-text { font-size: 13px; white-space: normal; color: var(--muted); }
.schedule-status { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.application-status { font-size: 12px; white-space: nowrap; }
.row-action { font-size: 13px; font-weight: 700; color: var(--green); }
.detail-panel { padding: 24px; scroll-margin-top: 20px; }
.detail-topline { margin: 0 0 8px; }
.detail-title-row { flex-wrap: wrap; }
.detail-title-row h2 { font-size: 28px; }
.detail-period { margin: 8px 0 18px; font-size: 14px; }
.label-pill { font-size: 12px; }
.mobile-detail-close { display: none; }
.complete-form { gap: 12px; margin: 16px 0 24px; }
.record-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.record-fields label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; min-width: 0; }
.record-fields input, .record-fields select { width: 100%; min-width: 0; min-height: 48px; font-size: 16px; background: var(--white); color: var(--ink); }
.record-summary { padding: 12px; border-radius: 6px; background: var(--soft); font-size: 14px; font-weight: 700; overflow-wrap: anywhere; }
.record-label-note { font-size: 13px; color: var(--amber); }
.record-feedback { margin: 12px 0; padding: 12px; background: var(--soft); border-radius: 6px; font-size: 14px; }
.record-feedback.is-error { background: var(--amber-bg); color: var(--amber); }
.application-record { margin: 16px 0 12px; }
.application-record strong { font-size: 16px; }
.application-record p { font-size: 13px; }
#record-edit { margin-bottom: 24px; }
.candidate-heading h3 { font-size: 16px; }
.candidate-help, .candidate-empty, .raw-notice { font-size: 13px; }
.candidate-name, .raw-grid dd { font-size: 16px; }
.raw-grid dt { font-size: 13px; }
.season-disclosure { margin-top: 24px; padding: 0 20px; }
.season-disclosure > summary { padding: 16px 0; font-size: 16px; }
.season-disclosure > summary .muted { margin-left: auto; }
.season-track { overflow-x: auto; grid-template-columns: repeat(10, minmax(88px, 1fr)); padding: 6px 4px 14px; }
.track-step { min-height: 88px; }
.track-name, .track-month { font-size: 13px; }

.catalog-workspace { grid-template-columns: 310px minmax(0, 1fr); }
.catalog-statusbar, .catalog-help { font-size: 14px; }
.catalog-statusbar > span { font-size: 13px; }
.header-actions { gap: 16px; flex-wrap: wrap; }
.toggle-wrap { min-height: 44px; font-size: 14px; }
.toggle-wrap input { width: 20px; height: 20px; }
.search, .pest-panel .search, .catalog-results .search { min-height: 48px; padding: 10px 12px; }
.search input, .catalog-results .search input { font-size: 16px; min-height: 26px; }
.pest-panel { padding: 20px; }
.pest-panel .section-top { flex-wrap: wrap; }
.catalog-all { margin: 12px 0 20px; font-size: 14px; }
.frequent-panel { margin: 0 0 16px; padding: 0 0 20px; }
.frequent-panel h2 { font-size: 16px; }
.frequent-description { font-size: 13px; }
.frequent-pest { min-height: 48px; font-size: 14px; }
.catalog-chips { flex-wrap: wrap; gap: 6px; }
.catalog-chips button { min-height: 44px; font-size: 14px; padding: 8px 10px; white-space: nowrap; }
.pest-list { padding: 4px 0; }
.pest-row { padding: 0; gap: 2px; }
.star-toggle { min-width: 44px; min-height: 44px; padding: 8px; font-size: 22px; }
.star-toggle:hover, .star-toggle.is-active { color: var(--amber); }
.pest-select { gap: 6px; padding: 12px 4px; }
.pest-select .pest-name { font-size: 16px; }
.pest-select small { font-size: 12px; }
.pest-select .pest-number { font-size: 13px; }
.results-heading { padding: 0 0 12px; }
.results-heading h2 { font-size: 25px; }
.results-heading .mode-badge { font-size: 13px; }
.catalog-results { scroll-margin-top: 20px; }
#medicine-tools { margin-bottom: 20px; }
#medicine-scope { margin: 0 0 8px; }
.medicine-card { padding: 20px; }
.medicine-card h3 { font-size: 22px; }
.medicine-product, .medicine-method { font-size: 15px; }
.medicine-target { font-size: 13px; color: var(--green); margin: 8px 0; }
.medicine-card .farm-badge, .farm-history, .dialog-history { font-size: 13px; }
.frac-desc { font-size: 13px; line-height: 1.6; }
.frac-code, .frac-tag { font-size: 12px; }
.medicine-card button { min-height: 48px; font-size: 15px; }
.catalog-empty { font-size: 15px; padding: 24px; }
.medicine-pagination { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 24px 0; font-size: 14px; color: var(--muted); }
.medicine-pagination button { min-width: 180px; }
#medicine-dialog .raw-grid dt, .dialog-source { font-size: 13px; }
#medicine-dialog .raw-grid dd { font-size: 16px; }
.auth-card { width: min(460px, 100%); }
.auth-card label { font-size: 14px; }
.auth-card input { font-size: 16px; min-width: 0; }

@media (max-width: 1150px) {
  main { padding: 28px 24px; }
  .workspace { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; }
  .schedule-row { padding: 16px 12px; gap: 8px; grid-template-columns: 24px minmax(0, 1fr) auto; }
  .detail-panel { padding: 20px; }
  .catalog-workspace { grid-template-columns: 280px minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 900px) {
  .sidebar { width: auto; padding: 16px 22px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; overflow: visible; }
  .brand { font-size: 20px; }
  .view-nav { margin: 0; grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: 1fr 1fr; }
  .view-nav a { justify-content: center; font-size: 15px; padding: 10px; }
  .view-nav a span { display: inline; font-size: 20px; }
  .sidebar-tools { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
  .sidebar-tools:has(.tool-disclosure[open]) { grid-template-columns: 1fr; }
  .sidebar-user { grid-column: 2; grid-row: 1; margin: 0; padding: 0; border: 0; }
  .sidebar-user button { min-height: 44px; font-size: 13px; }
  main { margin: 0; padding: 24px 22px; }
  .record-overview { align-items: flex-start; }
}
@media (max-width: 720px) {
  .sidebar { padding: 12px 16px; gap: 8px; }
  .brand { font-size: 18px; gap: 8px; }
  .brand img { width: 30px; height: 30px; }
  .tool-disclosure > summary { min-height: 44px; padding: 10px 12px; }
  main { padding: 20px 16px 32px; }
  h1 { font-size: 28px; }
  .page-header { margin-bottom: 18px; }
  .page-intro { font-size: 14px; }
  .eyebrow { font-size: 12px; }
  .next-schedule { padding: 16px; gap: 12px; }
  .next-schedule h2 { font-size: 23px; }
  .next-schedule .button-primary { padding: 10px 14px; gap: 8px; }
  #next-period { font-size: 13px; }
  .record-overview { flex-wrap: wrap; padding: 10px 16px; gap: 4px 12px; }
  .record-overview p { font-size: 12px; }
  .calendar-status { margin: 12px 0 16px; }
  .workspace { display: block; }
  .schedule-panel > .section-top { padding: 16px; }
  .section-top h2 { font-size: 18px; }
  .schedule-row { min-height: 88px; padding: 16px 14px; }
  .schedule-row .name-text { font-size: 18px; }
  .schedule-row .period-text { font-size: 13px; }
  .schedule-list > .detail-panel { margin: 0; border: 0; border-left: 3px solid var(--green); border-bottom: 1px solid var(--line); border-radius: 0; padding: 20px 16px 24px; }
  .detail-title-row h2 { font-size: 26px; }
  .mobile-detail-close { display: inline-flex; align-items: center; }
  .record-fields { grid-template-columns: minmax(0, 1fr); }
  .season-disclosure { padding: 0 16px; }
  .season-disclosure > summary { font-size: 15px; }
  .season-disclosure > summary .muted { display: none; }
  .catalog-workspace { display: block; }
  #catalog-view .page-header { gap: 12px; }
  .header-actions { padding-top: 0; gap: 12px; }
  .catalog-statusbar { margin-bottom: 16px; }
  .pest-panel { padding: 18px 16px; }
  .pest-list { max-height: none; }
  .pest-panel .section-top > .muted { display: inline; }
  .frequent-description { font-size: 13px; }
  .medicine-list { grid-template-columns: minmax(0, 1fr); }
  .medicine-card { padding: 20px; }
  .medicine-card h3 { font-size: 23px; }
  #medicine-dialog { padding: 20px; }
}
