:root{--bg:#f5f7fa;--card:#fff;--line:#d8dde6;--text:#172033;--muted:#667085;--primary:#0f766e;--primary2:#0d9488;--danger:#b42318;--blue:#8ed3e8;--yellow:#fff4b8;}
*{box-sizing:border-box}body{margin:0;font-family:"Malgun Gothic","Apple SD Gothic Neo",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}.topbar{height:58px;background:#111827;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:10}.brand a{color:white;text-decoration:none;font-size:18px;font-weight:800}.topbar nav{display:flex;gap:12px}.topbar nav a{color:#d1d5db;text-decoration:none;padding:8px 10px;border-radius:8px}.topbar nav a:hover{background:#374151;color:#fff}.container{max-width:1440px;margin:0 auto;padding:24px}.footer{text-align:center;color:var(--muted);padding:30px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;gap:16px}.page-title h1{margin:0;font-size:28px}.sub{color:var(--muted);margin:6px 0 0}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:9px;padding:9px 14px;text-decoration:none;cursor:pointer;font-weight:700}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.ghost{background:transparent}.btn:hover{filter:brightness(.98)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:18px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.card.narrow{max-width:720px}.card h2{margin:0 0 14px;font-size:18px}.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.kpi b{display:block;font-size:28px}.kpi span{color:var(--muted)}.table-wrap{overflow:auto}.table-wrap.wide{max-height:calc(100vh - 260px)}table{border-collapse:collapse;width:100%;background:#fff}th,td{border:1px solid var(--line);padding:8px 10px;vertical-align:middle}th{background:var(--blue);font-weight:800;text-align:center;white-space:nowrap}td a{color:#075985;text-decoration:none}.num{text-align:right}.empty{text-align:center;color:var(--muted);padding:28px}.badge{display:inline-flex;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.status-방제완료,.status-보고서작성완료,.status-제출완료{background:#dcfce7;color:#166534;border-color:#bbf7d0}.status-미신청{background:#fef9c3;color:#854d0e;border-color:#fde68a}.status-연락필요{background:#fee2e2;color:#991b1b;border-color:#fecaca}.messages{margin-bottom:14px}.message{padding:12px 14px;border-radius:10px;margin-bottom:8px}.message.success{background:#dcfce7;color:#166534}.message.error{background:#fee2e2;color:#991b1b}.form-stack{display:flex;flex-direction:column;gap:12px}.hint{color:var(--muted);font-size:13px;margin:8px 0}.bullets{line-height:1.8}.filter-row{display:flex;gap:8px;align-items:center}.filter-row input{flex:1}input,select,textarea{border:1px solid var(--line);border-radius:9px;padding:9px 10px;font-family:inherit;font-size:14px;width:100%;background:#fff}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.info-list{display:grid;grid-template-columns:120px 1fr;gap:8px 12px}.info-list dt{font-weight:800;color:#334155}.info-list dd{margin:0}.parcel-list{margin:0;padding-left:22px;line-height:1.9}.small{font-size:12px;color:var(--muted);background:#eef2f7;border-radius:999px;padding:2px 6px}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.form-grid label{font-weight:700;color:#334155}.form-grid label input,.form-grid label select,.form-grid label textarea{margin-top:6px;font-weight:400;color:var(--text)}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end}.upload-row{display:grid;grid-template-columns:180px 1fr 1fr auto;gap:8px;align-items:center}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:14px}.photo-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.photo-card.selected{outline:3px solid var(--primary2)}.photo-card img{width:100%;height:140px;object-fit:cover;display:block;background:#f1f5f9}.file-icon,.file-box{height:140px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;color:#64748b;font-weight:800;text-align:center}.photo-meta{padding:8px;display:flex;flex-direction:column;gap:3px;min-height:58px}.photo-meta span{font-size:12px;color:var(--muted);word-break:break-all}.photo-actions{display:flex;gap:6px;border-top:1px solid var(--line);padding:8px}.photo-actions form{flex:1}.mini{border:1px solid var(--line);border-radius:7px;background:#f8fafc;padding:6px 8px;width:100%;cursor:pointer}.mini.danger{color:var(--danger)}
.report-body{background:#e5e7eb}.report-page{width:210mm;min-height:297mm;margin:18px auto;background:#fff;padding:16mm;box-shadow:0 3px 16px rgba(0,0,0,.18)}.report-head{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #111827;margin-bottom:14px}.report-head h1{text-align:center;flex:1;font-size:26px;letter-spacing:4px}.report-table{width:100%;border-collapse:collapse;margin-top:10px}.report-table th{width:120px;background:#eef2f7}.report-table td{background:#fff}.report-table th,.report-table td{border:1px solid #111827;padding:8px;font-size:13px}.report-section-title{font-size:18px;margin:18px 0 10px;border-left:5px solid #111827;padding-left:8px}.report-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.report-photo-grid figure{margin:0;border:1px solid #111827;padding:3px}.report-photo-grid img{width:100%;height:76mm;object-fit:cover;display:block}.report-photo-grid figcaption{text-align:center;font-size:12px;margin-top:4px}.report-sign{display:flex;justify-content:space-between;margin-top:22px;font-size:14px}.print-hide{display:inline-flex}@media print{body{background:#fff}.topbar,.footer,.print-hide{display:none}.report-page{box-shadow:none;margin:0;width:auto;min-height:auto;padding:0}.report-photo-grid img{height:70mm}}@media(max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.upload-row{grid-template-columns:1fr}.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:12px}.topbar nav{flex-wrap:wrap}.container{padding:14px}.page-title{align-items:flex-start;flex-direction:column}.report-page{width:auto;min-height:auto;margin:0;padding:12px}.report-photo-grid{grid-template-columns:1fr}}

/* v0.2 */
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.card-head h2{margin:0}.sticky-table{position:relative}.sticky-table thead th{position:sticky;top:0;z-index:5;box-shadow:0 2px 0 rgba(0,0,0,.08)}.badge.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.badge.warn{background:#fee2e2;color:#991b1b;border-color:#fecaca}.badge.muted{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.error-text{color:#b42318;background:#fee2e2;border:1px solid #fecaca;padding:8px 10px;border-radius:8px}
@media(max-width:900px){.card-head{align-items:flex-start;flex-direction:column}}


/* v0.3 */
.basic-grid{grid-template-columns:repeat(2,1fr)}
.sticky-table{max-height:calc(100vh - 230px);overflow:auto;border:1px solid var(--line);border-radius:10px}
.sticky-table table{border-collapse:separate;border-spacing:0}
.sticky-table thead th{position:sticky;top:0;z-index:20;background:var(--blue);box-shadow:0 2px 3px rgba(0,0,0,.16)}
.sticky-table th:first-child,.sticky-table td:first-child{border-left:0}
.sticky-table th:last-child,.sticky-table td:last-child{border-right:0}
.table-wrap.wide{max-height:calc(100vh - 230px)}
@media(max-width:900px){.basic-grid{grid-template-columns:1fr}.sticky-table{max-height:calc(100vh - 190px)}}

/* v0.4 */
.photo-edit{display:grid;grid-template-columns:1fr;gap:6px;padding:8px;border-top:1px solid var(--line);background:#fbfdff}
.photo-edit select,.photo-edit input{font-size:12px;padding:7px 8px}
.photo-edit .mini{font-size:12px}

/* v0.5 */
.kpi.link-card{display:block;text-decoration:none;color:var(--text);transition:transform .08s ease, box-shadow .08s ease}
.kpi.link-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.10);border-color:#9ca3af}
.board-head{align-items:flex-start}
.tab-row{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;text-decoration:none;color:#334155;font-weight:700;font-size:13px}
.tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.mini-sticky{max-height:420px}
.photo-edit-label{font-size:12px;color:#334155;font-weight:800;margin-bottom:-2px}
@media(max-width:900px){.tab-row{justify-content:flex-start}.board-head{gap:10px}.mini-sticky{max-height:360px}}

/* v0.6 */
.quick-search{padding:14px 18px}.calendar-filter select{max-width:180px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;padding:0;overflow:hidden}.cal-head{background:var(--blue);font-weight:800;text-align:center;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cal-day{min-height:132px;background:#fff;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px;display:flex;flex-direction:column;gap:5px}.cal-day.muted-day{background:#f8fafc;color:#94a3b8}.cal-day.today{box-shadow:inset 0 0 0 2px var(--primary2);background:#f0fdfa}.cal-date{font-weight:900;color:#334155;margin-bottom:3px}.cal-event{display:block;text-decoration:none;color:#172033;background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #64748b;border-radius:8px;padding:5px 6px;line-height:1.25;font-size:12px}.cal-event b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#64748b}.cal-event .event-type{display:inline-block;color:#fff;background:#64748b;border-radius:999px;padding:1px 5px;margin-bottom:2px;font-size:11px}.cal-event.type-완료{border-left-color:#16a34a;background:#f0fdf4}.cal-event.type-완료 .event-type{background:#16a34a}.cal-event.type-예정{border-left-color:#2563eb;background:#eff6ff}.cal-event.type-예정 .event-type{background:#2563eb}.cal-event.type-실제{border-left-color:#0f766e;background:#f0fdfa}.cal-event.type-실제 .event-type{background:#0f766e}
@media(max-width:900px){.calendar-grid{display:block}.cal-head{display:none}.cal-day{min-height:auto;border:1px solid var(--line);margin-bottom:8px;border-radius:10px}.cal-day.muted-day:empty{display:none}}

/* v0.7 */
.report-photo-frame{height:76mm;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#fff}
.report-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}
.report-edit-gallery{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.report-crop-preview{position:relative;height:220px;overflow:hidden;border:2px dashed #94a3b8;border-radius:8px;background:#f8fafc;display:flex;align-items:center;justify-content:center}
.report-crop-preview img{width:100%;height:100%;object-fit:cover;display:block}
.crop-size-label{position:absolute;left:6px;bottom:6px;background:rgba(15,23,42,.75);color:#fff;border-radius:999px;padding:3px 7px;font-size:11px}
.range-label{font-size:12px;color:#334155;font-weight:800;display:flex;flex-direction:column;gap:3px}
.range-label input[type=range]{padding:0;border:0}
.bulk-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.inline-check{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#334155}
.inline-check input{width:auto}.center{text-align:center}
@media print{.report-photo-frame{height:70mm}}

/* v0.9 calendar scheduling */
.schedule-form { display:grid; grid-template-columns: 180px 1fr 1.5fr auto auto; gap:12px; align-items:end; }
.schedule-form label { display:flex; flex-direction:column; gap:6px; font-weight:700; }
.schedule-form .wide-label { grid-column:auto; }
.schedule-form select { min-height:120px; }
.tiny-btn { font-size:11px; padding:3px 7px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; cursor:pointer; }
.tiny-btn.done { background:#0f766e; color:#fff; border-color:#0f766e; }
.cal-date { display:flex; justify-content:space-between; align-items:center; gap:6px; }
.day-weather { margin:3px 0 5px; font-size:11px; color:#0369a1; line-height:1.25; }
.cal-event-wrap { position:relative; margin-bottom:4px; }
.quick-complete-form { margin:2px 0 4px; }
.event-weather { display:block; margin-top:2px; font-weight:400; color:#0369a1; }
.stacked-actions { display:flex; flex-direction:column; gap:10px; align-items:stretch; }
.stacked-actions > div { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
@media (max-width: 900px) { .schedule-form { grid-template-columns:1fr; } }

/* v0.10 calendar modal and domestic weather scheduling */
.calendar-titlebar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:16px}.calendar-nav-left{justify-self:start}.calendar-nav-right{justify-self:end;display:flex;gap:8px;flex-wrap:wrap}.calendar-month-picker{text-align:center}.month-picker-form{display:flex;justify-content:center;gap:8px;align-items:center}.month-picker-form select{width:auto;min-width:110px;font-size:20px;font-weight:900;text-align:center;border-color:#cbd5e1;background:#fff}.calendar-caption{color:var(--muted);font-size:13px;margin-top:4px}.plus-btn{width:24px;height:24px;border-radius:999px;border:1px solid var(--primary);background:var(--primary);color:#fff;font-size:18px;line-height:18px;font-weight:900;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.plus-btn:hover{filter:brightness(.95)}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:100;display:flex;align-items:center;justify-content:center;padding:18px}.modal-card{width:min(980px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid var(--line);box-shadow:0 18px 70px rgba(0,0,0,.35);padding:18px}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px}.modal-head h2{margin:0}.modal-close{border:0;background:#f1f5f9;border-radius:999px;width:34px;height:34px;font-size:24px;line-height:24px;cursor:pointer}.modal-tabs{display:flex;gap:8px;margin:14px 0}.modal-panel{display:none}.modal-panel.active{display:block}.modal-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:end}.modal-form label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#334155}.modal-form .wide-label{grid-column:span 3}.modal-form select[size]{min-height:170px}.new-target-form{grid-template-columns:repeat(4,1fr)}.new-target-form .span-2{grid-column:span 2}.modal-form .inline-check{flex-direction:row;align-items:center}.modal-form button[type=submit]{align-self:end}@media(max-width:900px){.calendar-titlebar{display:flex;flex-direction:column;align-items:stretch}.calendar-nav-left,.calendar-nav-right{justify-self:auto;justify-content:center}.modal-form,.new-target-form{grid-template-columns:1fr}.modal-form .wide-label,.new-target-form .span-2{grid-column:span 1}.month-picker-form select{font-size:17px;min-width:95px}}

/* v0.11 */
.pesticide-actions{display:flex;gap:6px;align-items:center}.pesticide-actions form{flex:1}.pesticide-actions .mini{min-width:64px}.pesticide-form{grid-template-columns:repeat(2,1fr)}
#pesticide_calc_hint{background:#f8fafc;border:1px dashed var(--line);border-radius:9px;padding:8px 10px}
@media(max-width:900px){.pesticide-form{grid-template-columns:1fr}}

/* v0.12 calendar modal visibility fix */
.modal-backdrop[hidden]{display:none !important;}
body.modal-open{overflow:hidden;}

/* v0.13 캘린더 드래그 이동 */
.cal-event.draggable-event { cursor: grab; }
.cal-event.draggable-event.dragging { opacity: 0.55; cursor: grabbing; }
.calendar-drop-day.drop-hover { outline: 3px dashed rgba(37, 99, 235, .65); outline-offset: -5px; background: rgba(37, 99, 235, .08); }

/* v0.18: 캘린더 사업유형별 색상 및 면적/약병수 표시 */
.cal-event .event-badges{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:2px}
.cal-event .event-badges .event-type{margin-bottom:0}
.cal-event .event-funding{display:inline-block;color:#fff;border-radius:999px;padding:1px 5px;font-size:11px;font-weight:800;line-height:1.35;background:#64748b}
.cal-event .event-main{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#0f172a}
.cal-event .event-main em{font-style:normal;font-weight:900;color:#334155;margin-left:3px;font-size:11px}
.cal-event.funding-subsidy{border-left-color:#059669;background:#ecfdf5;border-color:#bbf7d0}
.cal-event.funding-subsidy .event-funding{background:#059669}
.cal-event.funding-private{border-left-color:#ea580c;background:#fff7ed;border-color:#fed7aa}
.cal-event.funding-private .event-funding{background:#ea580c}
.cal-event.funding-exclude{border-left-color:#64748b;background:#f8fafc;border-color:#cbd5e1}
.cal-event.funding-exclude .event-funding{background:#64748b}
.cal-event.funding-subsidy.type-완료{background:#dcfce7;border-color:#86efac}
.cal-event.funding-private.type-완료{background:#ffedd5;border-color:#fdba74}
.funding-badge.funding-subsidy{background:#dcfce7;color:#065f46;border:1px solid #86efac}
.funding-badge.funding-private{background:#ffedd5;color:#9a3412;border:1px solid #fdba74}
.funding-badge.funding-exclude{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}

/* v0.23 상단 메뉴 위치 변경 */
.topbar{gap:14px;flex-wrap:wrap}.main-nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center;flex:1;justify-content:flex-end}.menu-tools{display:flex;align-items:center;gap:8px}.menu-order-btn{border:1px solid rgba(255,255,255,.28);background:#1f2937;color:#e5e7eb;border-radius:8px;padding:8px 10px;font-weight:800;cursor:pointer;white-space:nowrap}.menu-order-btn:hover{background:#374151;color:#fff}.main-nav.menu-editing a{cursor:move;outline:1px dashed #93c5fd;background:#1f2937}.main-nav a.dragging{opacity:.45}.menu-order-panel.hidden{display:none}.menu-order-panel{position:fixed;inset:0;background:rgba(15,23,42,.44);z-index:250;display:flex;align-items:flex-start;justify-content:flex-end;padding:72px 18px 18px}.menu-order-card{width:min(430px,96vw);max-height:calc(100vh - 100px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 70px rgba(0,0,0,.35);padding:16px}.menu-order-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px}.menu-order-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.menu-order-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:9px 10px;font-weight:800}.menu-order-row-tools{display:flex;gap:6px}.menu-order-row-tools button{width:34px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.menu-order-row-tools button:disabled{opacity:.35;cursor:not-allowed}.menu-order-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}@media(max-width:900px){.main-nav{justify-content:flex-start}.menu-tools{width:100%}.menu-order-btn{width:100%;justify-content:center}.menu-order-panel{align-items:flex-end;justify-content:center;padding:12px}.menu-order-card{width:100%;max-height:86vh}}

/* v0.25 대상자 목록 표 한 줄 표시/행 높이 축소 */
.target-list-table th,
.target-list-table td{
  white-space:nowrap;
  padding:6px 8px;
  line-height:1.25;
}
.target-list-table td{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.target-list-table td.col-address{max-width:220px;}
.target-list-table td.col-note{max-width:260px;}
.target-list-table td.col-pesticide{max-width:180px;}
.target-list-table td.col-owner{max-width:140px;}
.target-list-table .small{margin-left:4px;white-space:nowrap;}
.target-list-table .badge{vertical-align:middle;}

/* v0.26 모바일 상단 메뉴 정리 */
.mobile-menu-toggle{display:none;border:1px solid rgba(255,255,255,.28);background:#1f2937;color:#fff;border-radius:9px;padding:8px 11px;font-weight:900;cursor:pointer;white-space:nowrap}
.mobile-menu-toggle:hover{background:#374151}
.mobile-calendar-fixed-link{display:none;text-decoration:none}
@media(max-width:900px){
  .topbar{
    height:auto !important;
    min-height:56px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:center;
    gap:8px 10px;
    padding:10px 12px;
  }
  .brand{min-width:0;}
  .brand a{font-size:16px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mobile-calendar-fixed-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:8px 12px;
    border-radius:9px;
    border:1px solid rgba(255,255,255,.28);
    background:#0f766e;
    color:#fff;
    font-weight:900;
    font-size:13px;
    line-height:1;
    white-space:nowrap;
    box-shadow:0 2px 8px rgba(0,0,0,.12);
  }
  .mobile-calendar-fixed-link:hover{background:#0d9488;color:#fff;}
  .mobile-calendar-fixed-link.active{background:#14b8a6;border-color:rgba(255,255,255,.48);}
  .mobile-menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;}
  .topbar .main-nav{
    grid-column:1 / -1;
    display:none;
    width:100%;
    max-height:calc(100vh - 120px);
    overflow:auto;
    padding:8px 0 2px;
    border-top:1px solid rgba(255,255,255,.12);
    justify-content:stretch;
    gap:7px;
  }
  .topbar .main-nav.mobile-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .topbar .main-nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:9px 8px;
    background:#1f2937;
    color:#f3f4f6;
    border:1px solid rgba(255,255,255,.09);
    border-radius:10px;
    font-size:13px;
    line-height:1.25;
    text-align:center;
    white-space:normal;
    word-break:keep-all;
  }
  .topbar .main-nav a:hover{background:#374151;color:#fff;}
  .topbar .menu-tools{
    grid-column:1 / -1;
    width:100%;
    display:flex;
  }
  .topbar .menu-order-btn{
    width:100%;
    min-height:38px;
    padding:8px 10px;
  }
  .container{padding:14px 10px;}
  .page-title{align-items:stretch;flex-direction:column;gap:10px;}
  .page-title h1{font-size:22px;}
}
@media(max-width:420px){
  .topbar .main-nav.mobile-open{grid-template-columns:1fr;}
}
@media(max-width:420px){
  .mobile-calendar-fixed-link{padding:8px 9px;font-size:12px;}
  .mobile-menu-toggle{padding:8px 9px;font-size:12px;}
}

/* v0.27 모바일 메뉴 강제 적용 + 캐시 갱신 보강 */
@media screen and (max-width:900px){
  header.topbar{
    height:auto !important;
    min-height:56px !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-auto-rows:auto !important;
    align-items:center !important;
    gap:8px 10px !important;
    padding:10px 12px !important;
    overflow:visible !important;
  }
  header.topbar .brand{grid-column:1 / 2 !important;min-width:0 !important;}
  header.topbar .brand a{font-size:16px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;}
  #mobileMenuToggle.mobile-menu-toggle{
    display:inline-flex !important;
    grid-column:2 / 3 !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:78px !important;
    min-height:38px !important;
  }
  header.topbar #mainNav.main-nav{
    grid-column:1 / -1 !important;
    width:100% !important;
    display:none !important;
    flex:none !important;
    justify-content:stretch !important;
    align-items:stretch !important;
    gap:7px !important;
    padding:8px 0 2px !important;
    margin:0 !important;
    border-top:1px solid rgba(255,255,255,.14) !important;
    max-height:calc(100vh - 120px) !important;
    overflow:auto !important;
  }
  header.topbar #mainNav.main-nav.mobile-open{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  header.topbar #mainNav.main-nav a{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-height:40px !important;
    padding:9px 8px !important;
    background:#1f2937 !important;
    color:#f3f4f6 !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:10px !important;
    font-size:13px !important;
    line-height:1.25 !important;
    text-align:center !important;
    white-space:normal !important;
    word-break:keep-all !important;
  }
  header.topbar .menu-tools{
    grid-column:1 / -1 !important;
    width:100% !important;
    display:none !important;
  }
  header.topbar.menu-open .menu-tools,
  header.topbar:has(#mainNav.mobile-open) .menu-tools{
    display:flex !important;
  }
}
@media screen and (max-width:420px){
  header.topbar #mainNav.main-nav.mobile-open{grid-template-columns:1fr !important;}
}


/* v0.28 월간 일정 목록 한 줄 표시/행 높이 축소 */
.calendar-month-table{
  width:max-content;
  min-width:100%;
}
.calendar-month-table th,
.calendar-month-table td{
  white-space:nowrap;
  padding:6px 8px;
  line-height:1.25;
  vertical-align:middle;
}
.calendar-month-table td{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.calendar-month-table td:nth-child(7){max-width:130px;}  /* 대상자 */
.calendar-month-table td:nth-child(8){max-width:260px;}  /* 주소 */
.calendar-month-table td:nth-child(11){max-width:180px;} /* 약제 */
.calendar-month-table td:nth-child(14){max-width:220px;} /* 날씨 */
.calendar-month-table td:nth-child(16){max-width:260px;} /* 비고 */
.calendar-month-table .badge{vertical-align:middle;}
.calendar-month-table form{margin:0;display:inline-flex;align-items:center;}
.calendar-month-table .tiny-btn{white-space:nowrap;}
@media(max-width:900px){
  .calendar-month-table th,
  .calendar-month-table td{font-size:12px;padding:5px 7px;}
  .calendar-month-table td{max-width:180px;}
  .calendar-month-table td:nth-child(8){max-width:240px;}
}

/* v0.29 메뉴 위치 변경: 버튼 없이 상단 메뉴를 직접 드래그 */
.main-nav a[data-menu-id]{cursor:grab;user-select:none;touch-action:none;}
.main-nav a[data-menu-id]:active{cursor:grabbing;}
.main-nav a.dragging{opacity:.45;filter:brightness(.9);}
.main-nav.menu-dragging-active a{outline:1px dashed rgba(147,197,253,.8);}
.menu-tools,.menu-order-panel,.menu-order-btn{display:none !important;}
.export-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;}
.export-card{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:18px;text-decoration:none;color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.04);}
.export-card:hover{border-color:var(--primary);box-shadow:0 6px 18px rgba(15,23,42,.08);}
.export-card strong{font-size:18px;}
.export-card span{color:var(--muted);line-height:1.45;min-height:40px;}
.export-card b{font-size:26px;color:var(--primary);}
@media(max-width:900px){
  .main-nav a[data-menu-id]{cursor:pointer;touch-action:auto;}
  .export-grid{grid-template-columns:1fr;}
}


/* v0.30 settings hub and calendar daily area total */
.settings-grid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:14px;margin:16px 0;}
.settings-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);min-height:145px;}
.settings-card:hover{border-color:#93c5fd;transform:translateY(-1px);}
.settings-card strong{font-size:18px;color:#0f172a;}
.settings-card span{color:#64748b;line-height:1.45;}
.settings-card b{margin-top:auto;color:#1d4ed8;}
.settings-card.primary-card{background:#eff6ff;border-color:#bfdbfe;}
.workflow-list{line-height:1.9;margin:0;padding-left:22px;}
.cal-date-main{display:flex;align-items:center;gap:6px;min-width:0;}
.day-area-total{display:inline-block;font-style:normal;font-weight:800;font-size:11px;color:#0f766e;background:#ccfbf1;border:1px solid #99f6e4;border-radius:999px;padding:1px 5px;white-space:nowrap;}
@media(max-width:1100px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.settings-grid{grid-template-columns:1fr;}.day-area-total{font-size:10px;padding:1px 4px;}}

/* v0.31 모바일 현장 카메라 촬영 업로드 */
.upload-panel{display:flex;flex-direction:column;gap:8px;}
.camera-upload-row{background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;padding:10px;}
.camera-upload-row input[type="file"]::file-selector-button{font-weight:800;border:0;border-radius:10px;padding:8px 12px;margin-right:10px;background:#dcfce7;color:#166534;cursor:pointer;}
.camera-upload-row input[type="file"]::-webkit-file-upload-button{font-weight:800;border:0;border-radius:10px;padding:8px 12px;margin-right:10px;background:#dcfce7;color:#166534;cursor:pointer;}
.capture-hint{margin-top:0;}
@media(max-width:720px){
  .upload-row{display:grid;grid-template-columns:1fr;gap:8px;align-items:stretch;}
  .upload-row select,.upload-row input,.upload-row button{width:100%;box-sizing:border-box;}
  .camera-upload-row{padding:12px;}
}

/* v0.32 지도 테스트 */
.map-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:16px;align-items:stretch}
.map-panel{display:flex;flex-direction:column;gap:12px;min-width:0}
.compact-card{padding:14px}
.compact-card h2{font-size:1rem;margin:0 0 10px 0}
.map-main{min-height:calc(100vh - 190px)}
.vworld-map{width:100%;height:calc(100vh - 190px);min-height:560px;border:1px solid #d7dee9;border-radius:14px;overflow:hidden;background:#e5e7eb}
.map-search-row{display:flex;gap:8px}
.map-search-row input{flex:1;min-width:0}
.map-search-results{margin-top:8px;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:6px}
.map-result{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:8px;border:1px solid #d7dee9;border-radius:8px;background:#fff;color:#111827;cursor:pointer}
.map-result:hover{background:#f3f4f6}
.map-result span{font-size:.82rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.check-line{display:block;margin:8px 0}
.full-width{width:100%;margin-top:8px}
.small-text{font-size:.82rem}.target-div-icon span{display:block;width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.45)}
.map-popup{min-width:220px}.map-popup table{width:100%;border-collapse:collapse;margin:8px 0}.map-popup th{text-align:left;color:#64748b;font-weight:600;width:74px;padding:2px 4px 2px 0}.map-popup td{padding:2px 0}.popup-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.button.small,.secondary.small{font-size:.82rem;padding:5px 8px;border-radius:8px}.new-target-form label{display:block;margin:6px 0;font-size:.86rem;color:#334155}.new-target-form input,.new-target-form select{width:100%;box-sizing:border-box;margin-top:2px}
@media (max-width: 900px){.map-layout{grid-template-columns:1fr}.map-panel{order:2}.map-main{order:1;min-height:65vh}.vworld-map{height:65vh;min-height:420px}.map-search-row{flex-direction:column}.map-panel .card{margin-bottom:0}}

/* v0.33 Leaflet CSS fallback
   NAS/모바일 환경에서 unpkg Leaflet CSS가 차단되거나 캐시 오류가 나면
   타일 이미지가 절대위치로 배치되지 않고 일반 이미지처럼 흘러내려 보인다.
   아래 필수 Leaflet 배치 스타일을 로컬 CSS에 포함하여 타일/마커/팝업이
   항상 지도 컨테이너 위에 정확히 올라오도록 보강한다. */
.leaflet-container{overflow:hidden;position:relative;outline-offset:1px;font-family:inherit;background:#ddd;touch-action:pan-x pan-y}
.leaflet-map-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane,.leaflet-overlay-pane svg,.leaflet-overlay-pane canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container img.leaflet-tile,.leaflet-container img.leaflet-marker-icon,.leaflet-container img.leaflet-marker-shadow{max-width:none!important;max-height:none!important;width:auto;padding:0}
.leaflet-tile{filter:inherit;visibility:hidden;border:0;user-select:none;-webkit-user-drag:none}
.leaflet-tile-loaded{visibility:inherit}
.leaflet-tile-container{transform-origin:0 0}
.leaflet-zoom-animated{transform-origin:0 0}
.leaflet-zoom-hide{visibility:hidden}
.leaflet-pane{z-index:400;pointer-events:none}
.leaflet-tile-pane{z-index:200}
.leaflet-overlay-pane{z-index:400}
.leaflet-shadow-pane{z-index:500}
.leaflet-marker-pane{z-index:600}
.leaflet-tooltip-pane{z-index:650}
.leaflet-popup-pane{z-index:700}
.leaflet-map-pane canvas{z-index:100}
.leaflet-map-pane svg{z-index:200}
.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-interactive,.leaflet-popup-pane,.leaflet-tooltip-pane,.leaflet-control{pointer-events:auto}
.leaflet-control-container .leaflet-top,.leaflet-control-container .leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}
.leaflet-control{position:relative;z-index:800;float:left;clear:both}
.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-control-zoom a{display:block;width:30px;height:30px;line-height:30px;text-align:center;text-decoration:none;background:#fff;color:#111827;border-bottom:1px solid #d1d5db;font-weight:700}
.leaflet-control-zoom a:first-child{border-top-left-radius:6px;border-top-right-radius:6px}.leaflet-control-zoom a:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-bottom:0}
.leaflet-control-attribution{background:rgba(255,255,255,.82);padding:2px 6px;font-size:11px;border-radius:4px;color:#334155}
.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px;pointer-events:none}
.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:10px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.25)}
.leaflet-popup-content{margin:12px 14px;line-height:1.35;font-size:.9rem;min-width:180px}
.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}
.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;transform:rotate(45deg);background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.2)}
.leaflet-popup-close-button{position:absolute;top:0;right:0;border:0;text-align:center;width:24px;height:24px;font:18px/24px Tahoma,Verdana,sans-serif;color:#6b7280;text-decoration:none;background:transparent}
.leaflet-container a.leaflet-popup-close-button:hover{color:#111827}.leaflet-popup-content p{margin:18px 0}
.leaflet-div-icon{background:transparent;border:0}
.target-div-icon{background:transparent;border:0;z-index:650!important}
.target-div-icon span{position:absolute;left:0;top:0}
.vworld-map .leaflet-marker-pane,.vworld-map .leaflet-popup-pane{z-index:700}

/* v0.34 지도 테스트: 타일 경계선 보정, 대상지 지적 하이라이트, 모바일 길게 누르기 */
.vworld-map .leaflet-tile,
.vworld-map .leaflet-tile-loaded,
.vworld-map .vworld-satellite-tile,
.vworld-map .vworld-hybrid-tile,
.vworld-map .vworld-cadastral-wms{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.vworld-map .leaflet-tile-pane img{
  display:block !important;
  max-width:none !important;
  max-height:none !important;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.vworld-map .leaflet-overlay-pane svg path{
  vector-effect:non-scaling-stroke;
}
.vworld-map .leaflet-pane{will-change:transform;}
.target-div-icon{background:transparent !important;border:0 !important;}
.target-div-icon span{
  display:block;
  width:18px;
  height:18px;
  border:3px solid #fff;
  border-radius:999px;
  box-shadow:0 2px 8px rgba(0,0,0,.45);
}
.new-target-div-icon{background:transparent !important;border:0 !important;}
.new-target-div-icon span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  border:3px solid #fff;
  box-shadow:0 3px 12px rgba(0,0,0,.45);
  font-weight:900;
  font-size:21px;
  line-height:1;
}
.map-panel .check-line{display:flex;gap:8px;align-items:center;margin:7px 0;}
.map-popup.new-target-form{min-width:260px;}
.vworld-map .leaflet-marker-pane,
.vworld-map .leaflet-popup-pane{z-index:900 !important;}
.vworld-map .leaflet-overlay-pane{z-index:450 !important;}
.vworld-map .leaflet-tile-pane{z-index:200 !important;}
@media(max-width:900px){
  .map-popup.new-target-form{min-width:min(280px,80vw);}
  .new-target-div-icon span{width:34px;height:34px;font-size:23px;}
}

/* v0.35 지도 테스트: 좌측 패널 정렬/숨김, 별도 신규 대상지 창, 모바일 길게누르기 보강 */
.map-layout.panel-hidden{grid-template-columns:minmax(0,1fr);}
.map-layout.panel-hidden .map-panel{display:none!important;}
.map-panel-toggle{position:absolute;z-index:1100;right:16px;top:14px;border:0;border-radius:999px;background:rgba(15,23,42,.88);color:#fff;font-weight:800;padding:8px 12px;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer;}
.map-main{position:relative;}
.map-panel .check-line{display:grid!important;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:center;justify-content:start;text-align:left;width:100%;margin:9px 0;}
.map-panel .check-line input{margin:0;justify-self:start;}
.map-panel .check-line span{justify-self:start;text-align:left;line-height:1.2;}
.map-dialog.hidden{display:none!important;}
.map-dialog{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.32);padding:18px;}
.map-dialog-card{width:min(760px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 20px 70px rgba(0,0,0,.34);border:1px solid #d7dee9;}
.map-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #e5e7eb;}
.map-dialog-header h2{margin:0;font-size:1.15rem;}
.dialog-close{border:0;background:transparent;color:#64748b;font-size:28px;line-height:1;cursor:pointer;padding:0 4px;}
.map-dialog-body{padding:16px 18px;display:grid;grid-template-columns:1fr;gap:14px;}
.new-target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;}
.new-target-grid label{display:flex;flex-direction:column;gap:4px;font-size:.88rem;color:#334155;font-weight:700;}
.new-target-grid input,.new-target-grid select{width:100%;box-sizing:border-box;}
.selected-parcel-box{border:1px solid #e5e7eb;background:#f8fafc;border-radius:12px;padding:12px;}
.selected-parcel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.selected-parcel-list{margin:8px 0 0;padding-left:22px;max-height:180px;overflow:auto;}
.selected-parcel-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px dashed #e5e7eb;}
.selected-parcel-list li:last-child{border-bottom:0;}
.selected-parcel-list em{font-style:normal;font-size:11px;color:#0369a1;background:#e0f2fe;border-radius:999px;padding:1px 5px;margin-left:4px;}
.secondary.tiny{font-size:11px;padding:3px 6px;border-radius:7px;}
.map-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid #e5e7eb;background:#f8fafc;}
.vworld-map{touch-action:pan-x pan-y;}
.vworld-map .leaflet-tile{image-rendering:auto;}
.vworld-map .leaflet-tile-pane img{border:none!important;outline:none!important;box-shadow:none!important;}
@media(max-width:900px){
  .map-layout{grid-template-columns:1fr;}
  .map-layout:not(.panel-hidden) .map-panel{order:2;}
  .map-panel-toggle{top:10px;right:10px;font-size:.82rem;padding:7px 10px;}
  .map-dialog{align-items:flex-end;padding:0;}
  .map-dialog-card{width:100vw;max-height:86vh;border-radius:16px 16px 0 0;}
  .new-target-grid{grid-template-columns:1fr;}
  .map-dialog-footer{position:sticky;bottom:0;}
}

/* v0.36 지도 테스트: 신규 대상지 추가창 비차단/이동 가능
   기존 중앙 모달은 지도 전체를 덮어서 지번 추가 클릭이 막혔다.
   이제 배경은 클릭을 통과시키고, 창 카드만 입력을 받는다. */
.map-dialog{
  position:fixed!important;
  inset:0!important;
  z-index:2500!important;
  display:block!important;
  background:transparent!important;
  padding:0!important;
  pointer-events:none!important;
}
.map-dialog.hidden{display:none!important;}
.map-dialog-card{
  position:fixed!important;
  left:360px;
  top:96px;
  width:min(760px,calc(100vw - 24px))!important;
  max-height:calc(100vh - 24px)!important;
  overflow:auto!important;
  pointer-events:auto!important;
  resize:both;
  min-width:340px;
  min-height:320px;
}
.map-dialog-card.dragging{user-select:none;box-shadow:0 22px 80px rgba(0,0,0,.45)!important;}
.map-dialog-header{cursor:move;background:#fff;border-radius:16px 16px 0 0;}
.map-dialog-header *{cursor:inherit;}
.map-dialog-header input,.map-dialog-header button,.map-dialog-header a,.map-dialog-header select{cursor:auto;}
.drag-help{margin:4px 0 0;}
.tiny-text{font-size:.74rem;}
.selected-parcel-box{border-color:#cbd5e1;background:#f8fafc;}
#selectedParcelList li{scroll-margin:80px;}
#parcelPickHint::before{content:'📍 ';}
.vworld-map.parcel-pick-mode{cursor:crosshair;}
@media(max-width:900px){
  .map-dialog{display:block!important;align-items:initial!important;padding:0!important;}
  .map-dialog-card{
    left:10px;
    top:72px;
    width:calc(100vw - 20px)!important;
    max-height:calc(100vh - 88px)!important;
    border-radius:16px!important;
    min-width:0;
    resize:none;
  }
  .map-dialog-header{touch-action:none;}
  .map-dialog-body{padding:12px;}
  .map-dialog-footer{position:sticky;bottom:0;}
}


/* v0.37 지도 테스트: 모바일 신규 대상지 창 축소
   데스크탑은 v0.36 이동형 창을 유지하고, 모바일에서만 지도 화면을 가리지 않도록
   창 높이를 줄이고 내부 스크롤로 입력한다. */
@media(max-width:900px){
  .map-dialog-card{
    top:58px !important;
    left:8px !important;
    right:auto !important;
    width:calc(100vw - 16px) !important;
    max-height:46vh !important;
    min-height:0 !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
    border-radius:14px !important;
  }
  .map-dialog-header{
    flex:0 0 auto !important;
    padding:10px 12px !important;
    gap:8px !important;
  }
  .map-dialog-header h2{
    font-size:1rem !important;
    margin:0 !important;
  }
  .map-dialog-header .small-text{
    margin:2px 0 0 !important;
    line-height:1.25 !important;
  }
  .map-dialog-header .drag-help{
    display:none !important;
  }
  .dialog-close{
    font-size:24px !important;
    line-height:1 !important;
    padding:0 4px !important;
  }
  .map-dialog-body{
    flex:1 1 auto !important;
    overflow:auto !important;
    padding:10px 12px !important;
    gap:10px !important;
    -webkit-overflow-scrolling:touch;
  }
  .new-target-grid{
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
  }
  .new-target-grid label{
    gap:3px !important;
    font-size:.8rem !important;
  }
  .new-target-grid input,
  .new-target-grid select{
    min-height:34px !important;
    padding:6px 8px !important;
    font-size:.9rem !important;
  }
  .selected-parcel-box{
    padding:9px !important;
  }
  .selected-parcel-box .small-text{
    display:none !important;
  }
  .selected-parcel-list{
    max-height:86px !important;
    margin-top:6px !important;
  }
  .selected-parcel-list li{
    padding:3px 0 !important;
    font-size:.82rem !important;
  }
  .map-dialog-footer{
    flex:0 0 auto !important;
    padding:9px 12px !important;
    gap:8px !important;
  }
  #parcelPickHint{
    font-size:.76rem !important;
  }
  #submitNewTargetBtn{
    padding:8px 14px !important;
    white-space:nowrap !important;
  }
}
@media(max-width:420px){
  .new-target-grid{
    grid-template-columns:1fr !important;
  }
  .map-dialog-card{
    max-height:44vh !important;
  }
}
@media(max-height:620px) and (max-width:900px){
  .map-dialog-card{
    max-height:52vh !important;
    top:48px !important;
  }
  .map-dialog-header .small-text{
    display:none !important;
  }
}

/* v0.38 SmartFarm */
.inline-form{display:flex;gap:6px;align-items:center;white-space:nowrap}.inline-form select{max-width:280px}.mt-12{margin-top:12px}.compact-table table{table-layout:auto}.compact-table td,.compact-table th{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.notice{border-left:4px solid #2563eb}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:900px){.grid-2{grid-template-columns:1fr}.inline-form{min-width:520px}}

/* v0.40 SmartFarm 경로 지도 표시 */
.route-popup .popup-label{display:block;margin-top:8px;font-size:12px;font-weight:800;color:#334155;}
.route-popup select{width:100%;margin-top:4px;padding:6px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;}
.leaflet-interactive{cursor:pointer;}

.tiny-btn.danger{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.cal-event-actions{display:flex;gap:4px;align-items:center;justify-content:flex-end;margin-top:4px;}
.cal-event-actions form{margin:0;}
.row-actions-inline{display:flex;gap:4px;align-items:center;justify-content:center;white-space:nowrap;}
.row-actions-inline form{margin:0;}

/* v0.42 완료보고서 포함 항목 선택 */
.report-options-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.report-options-form label{display:flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:9px 12px;font-weight:700;white-space:nowrap}
.report-options-form input[type="checkbox"]{width:16px;height:16px;margin:0}
@media (max-width: 720px){.report-options-form{display:grid;grid-template-columns:1fr 1fr}.report-options-form .btn{grid-column:1/-1}.report-options-form label{font-size:13px}}

/* v0.44 지도 테스트: 팝업 버튼 클릭 활성화 + 기존 대상지 지번 추가 패널 */
.leaflet-popup,
.leaflet-popup-content-wrapper,
.leaflet-popup-content,
.map-popup,
.popup-actions,
.popup-actions a,
.popup-actions button{
  pointer-events:auto!important;
}
.append-parcel-panel{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:2600;
  width:min(420px,calc(100vw - 24px));
  max-height:min(56vh,520px);
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid #d7dee9;
  border-radius:16px;
  box-shadow:0 18px 55px rgba(15,23,42,.28);
  overflow:hidden;
}
.append-parcel-panel.hidden{display:none!important;}
.append-parcel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid #e5e7eb;background:#f8fafc;}
.append-parcel-head strong{display:block;font-size:.98rem;}
.append-parcel-head p{margin:3px 0 0;line-height:1.25;}
.append-parcel-body{padding:10px 14px;overflow:auto;-webkit-overflow-scrolling:touch;}
.append-parcel-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-top:1px solid #e5e7eb;background:#f8fafc;}
.append-parcel-footer button{white-space:nowrap;}
@media(max-width:900px){
  .append-parcel-panel{
    left:8px;
    right:8px;
    bottom:8px;
    width:auto;
    max-height:34vh;
    border-radius:14px;
  }
  .append-parcel-head{padding:9px 11px;}
  .append-parcel-body{padding:8px 11px;}
  .append-parcel-footer{padding:8px 11px;}
}

/* v0.45 mobile call / SMS / navigation */
.mobile-quick-card .quick-action-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sms-preview{margin-top:10px}
.sms-preview pre{white-space:pre-wrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px;font-family:inherit;line-height:1.5}
.warning-text{color:#b45309}
.action-cell{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.inline-form{display:inline;margin:0}
.manager-profile-form input{min-width:0}
.popup-actions-wrap{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.nav-actions{border-top:1px solid #e5e7eb;padding-top:8px}
.map-popup a[href^="tel:"]{color:#0369a1;font-weight:700;text-decoration:none}
@media (max-width: 720px){
  .mobile-quick-card{position:relative}
  .mobile-quick-card .quick-action-row .btn{flex:1 1 auto;justify-content:center;text-align:center}
  .page-title .actions .mobile-action{display:inline-flex}
  .sms-preview pre{max-height:180px;overflow:auto}
  .map-popup .popup-actions-wrap button,
  .map-popup .popup-actions-wrap .button{font-size:12px;padding:6px 8px}
}

.btn.danger, button.danger { background:#b42318; color:#fff; border-color:#b42318; }
.btn.danger:hover, button.danger:hover { filter:brightness(0.95); }
.event-time{display:inline-block;padding:1px 5px;border-radius:999px;background:rgba(0,0,0,.08);font-weight:700;}
.inline-time-form{display:flex;gap:6px;align-items:center;min-width:140px}.inline-time-form input[type=time]{width:92px;padding:5px 6px}.tiny-btn{border:1px solid var(--line);border-radius:6px;background:#fff;padding:5px 7px;font-size:12px;cursor:pointer}.tiny-btn.danger{color:var(--danger);border-color:#fecaca;background:#fff5f5}.tiny-btn.done{color:#166534;border-color:#bbf7d0;background:#f0fdf4}
.event-status-form{min-width:310px;flex-wrap:wrap}.event-status-form select{max-width:110px;padding:5px 6px}.event-status-form input[type=date]{width:128px;padding:5px 6px}

/* v0.55 업무흐름 중심 UI 정리 */
.home-search-card{padding:14px 16px}.home-search-form{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center}.home-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-bottom:18px}.home-kpi{display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;text-decoration:none;color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.04)}.home-kpi span{color:#64748b;font-size:13px;font-weight:800}.home-kpi b{font-size:26px;line-height:1.1}.home-kpi em{font-style:normal;color:#64748b;font-size:12px}.home-kpi.today{border-color:#93c5fd;background:#eff6ff}.home-kpi.warn{border-color:#fecaca;background:#fff7f7}.home-kpi.ok{border-color:#bbf7d0;background:#f0fdf4}.home-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:start}.home-panel{min-height:220px}.task-list{display:flex;flex-direction:column;gap:8px}.target-card{display:flex;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px}.target-card.compact{padding:10px 12px}.target-card-main{min-width:0}.target-card-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.target-card-sub{color:#475569;font-size:13px;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px}.target-card-meta span{background:#f1f5f9;border-radius:999px;padding:2px 7px;font-size:12px;color:#334155}.target-card-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.task-time{background:#111827;color:#fff;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:800}.btn.tiny,.tiny-btn,.btn.small{font-size:12px;padding:5px 8px;border-radius:7px}.issue-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-bottom:12px}.issue-summary-grid span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px;font-size:13px}.issue-summary-grid b{float:right}.settlement-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.settlement-cards>div{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.settlement-cards span{display:block;color:#64748b;font-size:12px;font-weight:800;margin-bottom:5px}.settlement-cards b{font-size:20px}.collapsed-card details summary{cursor:pointer;padding:4px 0}.link-card{text-decoration:none;color:inherit}.badge.warn{background:#fef2f2;color:#991b1b;border-color:#fecaca}.badge.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.badge.muted{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}.funding-badge{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}

.target-overview-card{position:sticky;top:64px;z-index:5}.target-overview-main{display:grid;grid-template-columns:1fr 360px;gap:18px;align-items:start}.overview-title-row{display:flex;align-items:center;gap:8px;font-size:18px}.overview-address{margin:8px 0;color:#475569}.overview-meta-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.overview-meta-grid span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px}.overview-meta-grid b{display:block;font-size:16px}.overview-meta-grid small{color:#64748b}.readiness-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px;display:grid;grid-template-columns:78px 1fr;gap:8px;align-items:center}.readiness-circle{width:68px;height:68px;border-radius:50%;background:#111827;color:white;display:flex;align-items:center;justify-content:center;gap:1px}.readiness-circle b{font-size:24px}.readiness-circle span{font-size:12px}.readiness-box p{margin:0;font-weight:800}.readiness-mini-list{grid-column:1 / -1;display:flex;gap:5px;flex-wrap:wrap}.check-pill{font-size:12px;border:1px solid #e2e8f0;border-radius:999px;padding:3px 7px;background:#fff}.check-pill.ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.check-pill.miss{border-color:#fecaca;background:#fff7f7;color:#991b1b}.overview-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.detail-tab-nav{position:sticky;top:196px;z-index:4;display:flex;gap:8px;flex-wrap:wrap;background:rgba(245,247,251,.95);backdrop-filter:blur(5px);padding:10px 0;margin-bottom:12px}.detail-tab-nav button{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer}.detail-tab-nav button.active{background:#111827;color:#fff;border-color:#111827}.detail-tab-panel[hidden]{display:none!important}.readiness-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.readiness-detail-item{border:1px solid #e2e8f0;border-radius:13px;padding:12px;background:#fff}.readiness-detail-item b{display:block;margin-bottom:4px}.readiness-detail-item.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.readiness-detail-item.miss{background:#fff7f7;border-color:#fecaca;color:#991b1b}.report-action-row{margin-top:12px}.settlement-detail-card .settlement-cards{grid-template-columns:repeat(5,1fr)}

.bulk-actions-details{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:12px}.bulk-actions-details summary{cursor:pointer;padding:14px 16px;display:flex;justify-content:space-between;gap:12px;align-items:center}.bulk-actions-details summary span{color:#64748b;font-size:13px}.bulk-actions-details[open] summary{border-bottom:1px solid var(--line);background:#f8fafc}.row-actions{display:flex;gap:6px;margin-top:4px}.row-actions a{font-size:12px;color:#2563eb}.target-list-table td{vertical-align:top}

@media(max-width:1100px){.home-kpi-grid{grid-template-columns:repeat(2,1fr)}.home-layout{grid-template-columns:1fr}.target-overview-card{position:static}.target-overview-main{grid-template-columns:1fr}.detail-tab-nav{position:sticky;top:0;overflow:auto;flex-wrap:nowrap}.overview-meta-grid{grid-template-columns:repeat(2,1fr)}.readiness-detail-grid,.settlement-cards,.settlement-detail-card .settlement-cards{grid-template-columns:repeat(2,1fr)}.home-search-form{grid-template-columns:1fr}}
@media(max-width:700px){.home-kpi-grid{grid-template-columns:1fr}.target-card{flex-direction:column}.target-card-actions{justify-content:flex-start}.overview-meta-grid,.issue-summary-grid,.readiness-detail-grid,.settlement-cards,.settlement-detail-card .settlement-cards{grid-template-columns:1fr}.readiness-box{grid-template-columns:1fr}.readiness-circle{margin:auto}.home-search-form{grid-template-columns:1fr}.bulk-actions-details summary{align-items:flex-start;flex-direction:column}.target-overview-card{top:auto}}

/* v0.56 사용자 친화/권한 UI */
.user-chip{display:flex;align-items:center;gap:8px;margin-left:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 9px;color:#fff;white-space:nowrap}.user-chip .user-name{font-weight:800;font-size:13px}.logout-link{color:#fff;text-decoration:none;font-size:12px;opacity:.95}.role-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:900;border:1px solid transparent}.role-admin{background:#fee2e2;color:#991b1b;border-color:#fecaca}.role-operator{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.role-guest{background:#f1f5f9;color:#475569;border-color:#cbd5e1}.readonly-banner{position:sticky;top:62px;z-index:9;background:#fffbeb;border:1px solid #facc15;color:#854d0e;border-radius:12px;padding:10px 14px;margin-bottom:14px;font-weight:800}.auth-shell{min-height:calc(100vh - 180px);display:flex;align-items:center;justify-content:center}.auth-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 20px 50px rgba(15,23,42,.12)}.auth-card.wide{width:min(780px,100%)}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand h1{margin:0 0 8px;font-size:28px}.auth-brand p{margin:0;color:var(--muted)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form label{font-weight:800;color:#334155}.auth-form input,.auth-form select{margin-top:6px}.btn.full{width:100%;height:44px}.auth-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;color:var(--muted)}.auth-bottom a{font-weight:800;color:#075985;text-decoration:none}.auth-actions{display:flex;gap:8px;justify-content:flex-end}.pending-box{display:flex;flex-direction:column;gap:6px;background:#f8fafc;border:1px dashed #94a3b8;border-radius:14px;padding:18px;margin-bottom:16px;text-align:center}.badge.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}.badge.warn{background:#fef3c7;color:#92400e;border-color:#fde68a}.badge.danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.inline-form{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px}.inline-form select{width:auto;min-width:92px;padding:5px 8px;border-radius:7px}.user-update-form{padding:4px 0}.detail-tab-nav{position:sticky;top:62px;z-index:8;background:rgba(248,250,252,.92);backdrop-filter:blur(12px);border:1px solid var(--line);box-shadow:0 6px 18px rgba(15,23,42,.06)}.detail-tab-nav button{border-radius:999px}.target-overview-card{border:0;background:linear-gradient(135deg,#ffffff,#f8fbff);box-shadow:0 16px 35px rgba(15,23,42,.08)}.overview-actions{position:sticky;top:112px;z-index:7;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-radius:14px;padding:8px}.card{transition:box-shadow .18s, transform .18s}.card:hover{box-shadow:0 12px 28px rgba(15,23,42,.07)}.form-grid.basic-grid,.form-grid{align-items:end}.form-grid label{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px}.form-grid label input,.form-grid label select,.form-grid label textarea{background:#fff}.quick-action-row .btn,.actions .btn,.overview-actions .btn{min-height:38px}.tiny-btn[disabled],button[disabled]{opacity:.55;cursor:not-allowed}.cal-event-actions{align-items:center}.cal-event-actions>a.tiny-btn{display:inline-flex;text-decoration:none;color:#111827}.home-kpi{border-radius:18px}.home-kpi b{letter-spacing:-.03em}.target-card{border-radius:16px}.report-edit-gallery .photo-card{border-radius:16px;box-shadow:0 6px 18px rgba(15,23,42,.06)}.report-crop-preview{border-radius:12px;overflow:hidden;background:#fff}.calendar-month-table tr:hover,.table-wrap table tbody tr:hover{background:#f8fafc}@media(max-width:900px){.user-chip{width:100%;justify-content:space-between;margin-left:0}.topbar{gap:8px}.readonly-banner{top:0}.detail-tab-nav{top:0;overflow-x:auto;display:flex;flex-wrap:nowrap}.detail-tab-nav button{white-space:nowrap}.overview-actions{position:static}.auth-card{padding:20px}.auth-form.form-grid{display:flex;flex-direction:column}.auth-actions{justify-content:stretch}.auth-actions .btn{flex:1}.form-grid label{padding:9px}}


/* v0.57 가입신청 페이지 레이아웃 정리 */
.auth-shell-register{padding:24px 0}
.auth-card-register{width:min(980px,100%);padding:0;overflow:hidden}
.auth-layout{display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(360px,.95fr)}
.register-intro{padding:38px 34px;background:linear-gradient(180deg,#f8fbff 0%,#f1f5f9 100%);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:20px}
.auth-brand-left{text-align:left;margin:0}
.auth-kicker{display:inline-flex;align-items:center;gap:6px;background:#e0f2fe;color:#075985;border:1px solid #bae6fd;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;margin-bottom:10px}
.auth-brand-left h1{margin:0 0 10px;font-size:36px;letter-spacing:-.03em;line-height:1.15}
.auth-brand-left p{margin:0;color:#475569;line-height:1.7}
.auth-guide{display:flex;flex-direction:column;gap:12px}
.auth-guide-item{background:rgba(255,255,255,.8);border:1px solid #dbeafe;border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;box-shadow:0 6px 18px rgba(15,23,42,.04)}
.auth-guide-item strong{font-size:14px;color:#0f172a}
.auth-guide-item span{font-size:13px;color:#64748b;line-height:1.55}
.register-panel{padding:34px 32px;display:flex;align-items:center;justify-content:center;background:#fff}
.register-form-clean{width:100%}
.auth-grid-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.auth-field{display:flex;flex-direction:column;gap:7px}
.auth-field label{font-weight:800;color:#334155;font-size:14px}
.auth-field input,.auth-field select{height:46px;margin-top:0;border-radius:12px;border:1px solid #cbd5e1;background:#fff;padding:10px 12px}
.auth-field input:focus,.auth-field select:focus{outline:none;border-color:#0ea5e9;box-shadow:0 0 0 3px rgba(14,165,233,.15)}
.auth-field-span-2{grid-column:1 / -1}
.auth-inline-note{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:10px 12px;color:#64748b;font-size:13px;line-height:1.55}
.auth-actions-stretch{justify-content:flex-start;margin-top:4px}
.auth-actions-stretch .btn{min-width:132px;height:44px}
@media(max-width:900px){.auth-card-register{width:min(640px,100%)}.auth-layout{grid-template-columns:1fr}.register-intro{border-right:0;border-bottom:1px solid var(--line);padding:24px 22px}.register-panel{padding:22px}.auth-brand-left h1{font-size:28px}.auth-grid-form{grid-template-columns:1fr}.auth-field-span-2{grid-column:1}.auth-actions-stretch{flex-direction:column}.auth-actions-stretch .btn{width:100%}}

/* v0.58 권한별 표시 항목 설정 */
.permission-guide-card{background:linear-gradient(135deg,#fff,#f8fbff)}
.permission-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.permission-guide-grid>div{background:#fff;border:1px solid #dbeafe;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 22px rgba(15,23,42,.04)}
.permission-guide-grid b{font-size:16px;color:#0f172a}.permission-guide-grid span{color:#64748b;line-height:1.6;font-size:13px}
.permission-matrix{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.permission-row{display:grid;grid-template-columns:1.05fr 1.05fr minmax(220px,1.4fr) 150px 150px;align-items:stretch;border-bottom:1px solid var(--line)}
.permission-row:last-child{border-bottom:0}.permission-row>div,.permission-row>label{padding:10px 12px;border-right:1px solid var(--line);display:flex;align-items:center}.permission-row>div:last-child,.permission-row>label:last-child{border-right:0}
.permission-head{background:#0f172a;color:#fff;font-weight:900}.permission-head>div{border-right:1px solid rgba(255,255,255,.16)}
.permission-major{font-weight:900;color:#0f172a;background:#f8fafc}.permission-sub{font-weight:800;color:#334155;background:#fbfdff}.permission-detail{flex-direction:column!important;align-items:flex-start!important;gap:4px;font-weight:800}.permission-detail code{font-size:11px;color:#64748b;background:#f1f5f9;border-radius:999px;padding:2px 7px;font-family:Consolas,monospace}.child-start{box-shadow:inset 0 2px 0 #e0f2fe}
.perm-toggle{gap:8px;justify-content:center;background:#fff;font-weight:800;color:#334155;cursor:pointer}.perm-toggle input{width:18px;height:18px}.perm-toggle span{font-size:12px}.permission-form .card-head{position:sticky;top:62px;z-index:6;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding-bottom:10px;border-bottom:1px solid var(--line)}
@media(max-width:900px){.permission-guide-grid{grid-template-columns:1fr}.permission-matrix{overflow:auto}.permission-row{grid-template-columns:130px 130px 220px 120px 120px;min-width:720px}.permission-form .card-head{position:static;align-items:flex-start;flex-direction:column}}


/* v0.59 사진/대표사진 관리 보정 */
.report-photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:8px 0 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px}
.report-photo-toolbar .hint{margin:0;flex:1;min-width:280px}
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}
.photo-actions form{min-width:0}
.photo-actions .mini{min-height:36px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.photo-actions .delete-photo-btn,.photo-actions .mini.danger{background:#b42318!important;color:#fff!important;border-color:#b42318!important;text-shadow:none!important}
.photo-actions .delete-photo-btn:hover{filter:brightness(.94)}
.photo-card.selected{outline:3px solid #009688;outline-offset:-3px}
@media(max-width:700px){.photo-actions{grid-template-columns:1fr}.report-photo-toolbar{align-items:stretch}.report-photo-toolbar .btn{width:100%}}

/* v0.62 홈 KPI → 문제 대상 목록 직접 필터 */
.active-issue-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;color:#9a3412}
.active-issue-filter b{display:block;color:#7c2d12;font-size:15px}.active-issue-filter span{display:block;font-size:12px;color:#9a3412;margin-top:2px}.issue-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;color:#334155;text-decoration:none;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900}.chip-link:hover{border-color:#0ea5e9;color:#075985}.chip-link.active{background:#0f766e;color:#fff;border-color:#0f766e}.issue-summary-grid a{display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:9px 10px;font-weight:800}.issue-summary-grid a:hover{border-color:#0ea5e9;background:#eff6ff;color:#075985}.issue-summary-grid a b{font-size:16px;color:#0f172a}
@media(max-width:900px){.active-issue-filter{align-items:stretch;flex-direction:column}.issue-filter-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.chip-link{white-space:nowrap}}


/* v0.63 약제 재고관리 */
.stock-kpi-grid{grid-template-columns:repeat(4,minmax(150px,1fr))}
.stock-actions-grid .card{align-self:start}
.pesticide-stock-form{grid-template-columns:repeat(2,1fr)}
.soft-sep{border:0;border-top:1px solid var(--line);margin:16px 0}
.danger-text{color:#dc2626;font-weight:900}.notice-card{background:#f8fafc;border-style:dashed}.stock-snapshot table{margin-top:12px}
@media(max-width:900px){.stock-kpi-grid{grid-template-columns:repeat(2,1fr)}.pesticide-stock-form{grid-template-columns:1fr}.pesticide-stock-form .span-2{grid-column:span 1}}

.stock-inline-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;color:#334155}.stock-inline-box b{color:#0f172a}.stock-inline-box em{font-style:normal;color:#dc2626;font-weight:900}.stock-inline-box a{font-weight:900;color:#075985;text-decoration:none}.stock-inline-box.stock-warn{background:#fff7ed;border-color:#fdba74}


/* v0.64 공통 사용성 개선 */
/* 목록/테이블은 모바일·데스크탑 모두 한 줄 표시를 기본으로 한다. */
.table-wrap table{min-width:max-content}
.table-wrap table th,.table-wrap table td,
.target-list-table th,.target-list-table td,
.calendar-month-table th,.calendar-month-table td,
.stock-snapshot table th,.stock-snapshot table td,
.pesticide-stock-table th,.pesticide-stock-table td{
  white-space:nowrap!important;
  line-height:1.25;
}
.table-wrap table td,
.target-list-table td,
.calendar-month-table td,
.stock-snapshot table td,
.pesticide-stock-table td{
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:260px;
}
.table-wrap table td.col-address,.target-list-table td.col-address{max-width:360px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* 위험/삭제 버튼은 항상 흰 글자 + 진한 빨간 배경으로 통일 */
.btn.danger,button.danger,.mini.danger,button.mini.danger,.tiny-btn.danger,button.tiny-btn.danger,
.photo-actions .delete-photo-btn,.bulk-delete-btn{
  background:#b42318!important;
  color:#fff!important;
  border-color:#b42318!important;
  text-shadow:none!important;
}
.btn.danger:hover,button.danger:hover,.mini.danger:hover,.tiny-btn.danger:hover{filter:brightness(.94)}
/* 저장 후 현재 위치에서 메시지를 확인할 수 있도록 토스트 표시 */
.toast-messages{position:fixed;right:18px;top:76px;z-index:9999;display:flex;flex-direction:column;gap:8px;max-width:min(420px,calc(100vw - 36px));opacity:0;transform:translateY(-8px);transition:opacity .18s,transform .18s;pointer-events:none}
.toast-messages.show{opacity:1;transform:translateY(0);pointer-events:auto}
.toast-message{box-shadow:0 14px 40px rgba(15,23,42,.2);border:1px solid rgba(15,23,42,.08);cursor:pointer}
.messages{position:relative;z-index:2}
/* 보고서 크롭 미리보기는 원본 이미지를 사용하므로 3배 확대 시에도 가능한 선명하게 렌더링 */
.report-crop-preview img,.report-photo-frame img{image-rendering:auto;transform-style:preserve-3d;will-change:transform}
/* 지도 검색 결과: 클릭은 이동/경계확인만 하고 신규등록 창은 열지 않는다. */
.map-result{gap:3px}
.map-result strong,.map-result span,.map-result em{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-result em{font-style:normal;font-size:.78rem;color:#0f766e;font-weight:900}
@media(max-width:900px){
  .toast-messages{left:12px;right:12px;top:12px;max-width:none}
  .table-wrap table td,.target-list-table td,.calendar-month-table td{max-width:220px}
}

/* v0.65 목록 즉시입력/지도 선택 개선 */
.inline-empty-edit{border:1px dashed #94a3b8;background:#f8fafc;color:#334155;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;min-height:26px}
.inline-empty-edit:hover{border-color:#0ea5e9;background:#e0f2fe;color:#075985}
.selected-target-info{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;margin:8px 0;line-height:1.4}
.route-popup .popup-label{display:flex;flex-direction:column;gap:5px;margin:8px 0;font-weight:800;color:#334155}
.route-popup select{width:100%;min-height:34px}
.map-result em{display:block;font-style:normal;color:#0f766e;font-size:12px;margin-top:3px;font-weight:800}


/* v0.66 지도 팝업/경로 색상 선택 복구 */
.vworld-map .leaflet-popup,
.vworld-map .leaflet-popup-content-wrapper,
.vworld-map .leaflet-popup-content,
.vworld-map .map-popup,
.vworld-map .popup-actions,
.vworld-map .popup-actions a,
.vworld-map .popup-actions button,
.vworld-map .route-popup select,
.vworld-map .route-popup button{pointer-events:auto!important;}
.vworld-map .leaflet-popup-pane{z-index:1200!important;}
.route-color-picker{display:block;margin-top:8px;font-weight:800;color:#334155;}
.route-color-picker select{width:100%;margin-top:6px;}
.route-color-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:7px 0;}
.route-color-swatch{height:30px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;position:relative;}
.route-color-swatch::before{content:"";display:block;width:18px;height:18px;border-radius:999px;background:var(--route-color);box-shadow:0 0 0 2px rgba(255,255,255,.9),0 0 0 3px rgba(15,23,42,.15);}
.route-color-swatch.active{border-color:#0f766e;background:#ecfdf5;box-shadow:0 0 0 2px rgba(15,118,110,.18);}
.route-color-swatch span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
.route-popup .popup-actions .route-color-btn{font-weight:900;}

/* v0.68 SmartFarm 경로 선택 안정화 */
.route-search-results{max-height:260px;overflow:auto;margin-top:8px}
.map-result.route-result strong{display:flex;align-items:center;gap:6px;min-width:0}
.route-dot{width:12px;height:12px;border-radius:999px;display:inline-block;flex:0 0 auto;border:1px solid rgba(15,23,42,.25)}
.vworld-map .leaflet-pane.smartfarmRoutePane,.vworld-map .leaflet-pane.smartfarmRouteHitPane{pointer-events:auto!important}

/* v0.69 SmartFarm/KML 경로 직접 선택·일괄설정 */
.map-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0}.map-mini-grid select{width:100%;min-width:0}.route-select-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}.route-select-tools .small,.route-bulk-actions .small{font-size:12px;padding:7px 8px}.route-select-tools .active{background:#0f766e;color:#fff;border-color:#0f766e}.route-selection-info{padding:7px 8px;border:1px dashed #cbd5e1;border-radius:9px;background:#f8fafc;margin:6px 0}.route-bulk-actions{display:grid;gap:6px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;padding:8px;margin:8px 0}.route-bulk-actions select{width:100%}.map-result.route-result.selected{border-color:#0f766e;background:#ecfdf5;box-shadow:inset 4px 0 0 #0f766e}.vworld-map.route-hover{cursor:pointer!important}.vworld-map.route-box-select-mode{cursor:crosshair!important}.route-legend{display:inline-flex;align-items:center;gap:4px;margin-right:4px;border-radius:999px;padding:2px 6px;font-size:11px;font-weight:900;border:1px solid #cbd5e1;background:#fff}.route-legend::before{content:"";width:18px;height:3px;border-radius:999px;display:inline-block;background:#fff;border:1px solid rgba(15,23,42,.35)}.route-legend.spray::before{background:#d9f99d;border-color:#84cc16}.route-legend.band::before{height:10px;background:rgba(190,242,100,.35);border-color:#bef264}.route-popup table th{white-space:nowrap}.vworld-map path.leaflet-interactive{cursor:pointer!important}
@media(max-width:900px){.map-mini-grid,.route-select-tools{grid-template-columns:1fr}.route-bulk-actions .map-mini-grid{grid-template-columns:1fr 1fr}}

/* v0.70 지도/캘린더 보정 */
.vworld-map path.leaflet-interactive,
.vworld-map .leaflet-interactive{cursor:pointer!important;pointer-events:auto!important;}
.route-band-path{pointer-events:none!important;}
.calendar-touch-dragging{user-select:none;touch-action:none;overflow:hidden;}
.calendar-touch-dragging .calendar-grid{touch-action:none;}
.draggable-event{touch-action:none;}
.draggable-event.dragging{opacity:.65;box-shadow:0 0 0 2px rgba(37,99,235,.35),0 10px 25px rgba(15,23,42,.25);}
.calendar-drop-day.drop-hover{outline:3px solid rgba(37,99,235,.55);outline-offset:-3px;background:rgba(219,234,254,.55)!important;}

/* v0.77 방제사 실제 정산금액 수정권한 표시 */
.readonly-field{display:flex;flex-direction:column;gap:6px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;padding:10px 12px;min-height:54px;justify-content:center}
.readonly-field span{font-size:12px;color:#64748b;font-weight:800}
.readonly-field b{font-size:15px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v0.76 캘린더 카드 안 삭제 버튼은 일정 카드와 어울리도록 연한 배경/빨간 글자 형태로 표시 */
.cal-event-actions .tiny-btn.danger,
.calendar-month-table .tiny-btn.danger,
.cal-event-actions button.tiny-btn.danger,
.calendar-month-table button.tiny-btn.danger{
  background:#fff7f7!important;
  color:#dc2626!important;
  border-color:#fecaca!important;
  text-shadow:none!important;
}
.cal-event-actions .tiny-btn.danger:hover,
.calendar-month-table .tiny-btn.danger:hover,
.cal-event-actions button.tiny-btn.danger:hover,
.calendar-month-table button.tiny-btn.danger:hover{
  background:#fee2e2!important;
  color:#b42318!important;
  border-color:#fca5a5!important;
  filter:none!important;
}


/* v0.81 개인사업 정산 입력 레이아웃 정렬 */
.settlement-detail-card .settlement-cards{
  grid-template-columns:repeat(auto-fit,minmax(165px,1fr)) !important;
  align-items:stretch;
}
.settlement-detail-card .settlement-cards>div{
  min-height:78px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.settlement-detail-card .settlement-cards b{
  font-size:18px;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.settlement-adjust-form{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  align-items:stretch;
  margin-top:14px;
}
.settlement-adjust-form label{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:78px;
}
.settlement-adjust-form label.span-2,.settlement-adjust-form .span-2{
  grid-column:1 / -1;
}
.settlement-adjust-form textarea{
  min-height:70px;
}
@media(max-width:900px){
  .settlement-adjust-form{grid-template-columns:1fr;}
  .settlement-adjust-form label.span-2,.settlement-adjust-form .span-2{grid-column:1;}
}

/* v0.89 시스템 점검/업데이트 */
.system-check-table td{vertical-align:top;}
.status-pill{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap;}
.system-ok{background:#dcfce7;color:#166534;border:1px solid #86efac;}
.system-warn{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;}
.system-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;}
.mono-cell{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px;}
.error-log-list{display:grid;gap:10px;margin-top:12px;}
.error-log-item{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:10px 12px;}
.error-log-item summary{cursor:pointer;line-height:1.4;}
.error-log-list pre,.error-log-item pre{white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e5e7eb;border-radius:10px;padding:12px;max-height:360px;overflow:auto;font-size:12px;line-height:1.45;}
.btn.danger-soft,.danger-soft{background:#fff5f5!important;color:#b42318!important;border:1px solid #fecaca!important;}
.btn.danger-soft:hover,.danger-soft:hover{background:#fee2e2!important;color:#991b1b!important;}


/* v1.19 step31: 모바일 캘린더 스크롤 보호 및 현장 상세 빠른작업 */
.event-drag-handle{display:none;border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:900;color:#334155;line-height:1;touch-action:none;user-select:none}
.event-drag-handle.active{background:#111827;color:#fff;border-color:#111827}
.calendar-touch-dragging{user-select:none;overscroll-behavior:contain}
.field-action-row form{display:inline-flex;margin:0}
.field-action-row .btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.status-action-row{padding-top:8px;border-top:1px dashed #e2e8f0;margin-top:8px}
.mobile-map-card .quick-action-row,.mobile-quick-card .quick-action-row{margin-bottom:8px}
@media(max-width:900px){
  .calendar-grid{overflow:visible}
  .cal-day{min-height:118px}
  .cal-event-wrap{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:start}
  .cal-event{touch-action:pan-y;grid-column:1/2}
  .cal-event-actions{grid-column:1/-1;justify-content:flex-start}
  .event-drag-handle{display:inline-flex;align-items:center;justify-content:center;grid-column:2/3;grid-row:1;min-width:42px;min-height:30px}
  .cal-event.draggable-event{cursor:pointer}
  .field-action-row{display:grid!important;grid-template-columns:1fr 1fr;gap:8px!important}
  .field-action-row .btn,.field-action-row form,.field-action-row form .btn{width:100%}
}
@media(max-width:560px){
  .field-action-row{grid-template-columns:1fr!important}
}

/* v1.20 step32: 모바일 입력 화면 압축 + 자가약제 표시 */
.supply-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:900;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;white-space:nowrap}
.supply-pill.target-supplied{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
@media(max-width:900px){
  body{font-size:13px;}
  .container{padding:10px 8px;}
  .card{padding:12px;margin-bottom:10px;border-radius:12px;}
  .card h2{font-size:16px;margin-bottom:8px;}
  .page-title{margin-bottom:10px;gap:8px;}
  .page-title h1{font-size:19px;line-height:1.25;}
  .sub{font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;}
  .actions .btn{width:100%;min-height:36px;padding:7px 8px;font-size:12px;line-height:1.2;}
  .target-overview-card{padding:10px;}
  .target-overview-main{display:block!important;}
  .overview-title-row{gap:5px;flex-wrap:nowrap;overflow:hidden;}
  .overview-title-row b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .overview-address{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:5px 0 7px;}
  .overview-meta-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;}
  .overview-meta-grid span{min-height:42px;padding:6px 7px!important;border-radius:9px!important;}
  .overview-meta-grid b{font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .overview-meta-grid small{font-size:10px!important;}
  .readiness-box{margin-top:8px;display:grid!important;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:8px!important;}
  .readiness-box p{margin:0;font-size:12px;font-weight:900;}
  .readiness-circle{width:48px!important;height:48px!important;}
  .readiness-circle b{font-size:17px!important;}
  .readiness-mini-list{grid-column:1/-1;display:flex!important;gap:4px;overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:2px;}
  .readiness-mini-list .check-pill{font-size:10px!important;padding:3px 6px!important;white-space:nowrap;flex:0 0 auto;}
  .detail-tab-nav{position:sticky;top:56px;z-index:8;background:#f5f7fa;display:flex;gap:5px;overflow-x:auto;padding:7px 0;margin:0 -2px 8px;}
  .detail-tab-nav button{flex:0 0 auto;min-height:34px;padding:7px 9px;font-size:12px;white-space:nowrap;}
  .mobile-quick-card .card-head,.mobile-map-card .card-head{margin-bottom:8px;}
  .mobile-quick-card .card-head .hint{display:none;}
  .field-action-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;}
  .field-action-row .btn,.field-action-row form,.field-action-row form .btn{width:100%;min-height:35px;padding:7px 8px;font-size:12px;line-height:1.2;}
  .sms-preview summary{font-size:12px;}
  .sms-preview pre{font-size:11px;max-height:120px;overflow:auto;}
  .grid-2{gap:10px;}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .form-grid label{font-size:12px;line-height:1.25;min-width:0;}
  .form-grid label input,.form-grid label select,.form-grid label textarea{margin-top:4px;padding:7px 8px;font-size:13px;min-height:34px;}
  .form-grid .span-2,.form-grid label.span-2,.form-grid .form-actions{grid-column:1/-1!important;}
  .basic-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .basic-grid label.mobile-half{grid-column:span 1!important;}
  .basic-grid label:not(.mobile-half),.basic-grid label.span-2{grid-column:1/-1!important;}
  .stock-inline-box{font-size:12px;padding:8px;gap:6px;}
  .stock-inline-box a{width:100%;}
  .hint{font-size:11px;line-height:1.35;margin:5px 0;}
  .table-wrap table th,.table-wrap table td{padding:6px 7px;font-size:12px;}
}
@media(max-width:380px){
  .overview-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .field-action-row{grid-template-columns:1fr 1fr!important;}
  .actions{grid-template-columns:1fr 1fr;}
}

/* v1.21 step33: 모바일 전체 화면 압축/현장 사용 최적화 */
@media screen and (max-width:900px){
  :root{--mobile-gap:6px;}
  html{font-size:13px;}
  body{font-size:13px;line-height:1.35;-webkit-text-size-adjust:100%;}
  .container{padding:8px 7px 58px!important;}
  .footer{display:none;}
  .card{padding:10px!important;margin-bottom:8px!important;border-radius:11px!important;box-shadow:0 1px 2px rgba(15,23,42,.05)!important;}
  .card:hover{transform:none!important;box-shadow:0 1px 2px rgba(15,23,42,.05)!important;}
  .card h2{font-size:15px!important;margin:0 0 7px!important;line-height:1.25;}
  .card-head{flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin-bottom:7px!important;}
  .card-head .hint{display:none!important;}
  .hint{font-size:10.5px!important;line-height:1.25!important;margin:4px 0!important;}
  .message{padding:8px 10px!important;margin-bottom:5px!important;font-size:12px!important;}

  /* 페이지 상단: 버튼은 세로로 쌓지 않고 가로 스크롤 */
  .page-title{gap:7px!important;margin-bottom:8px!important;}
  .page-title h1{font-size:18px!important;line-height:1.18!important;letter-spacing:-.04em;}
  .sub{font-size:11px!important;line-height:1.25!important;margin-top:3px!important;-webkit-line-clamp:1!important;}
  .page-title .actions,.actions{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:5px!important;
    width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  .page-title .actions::-webkit-scrollbar,.actions::-webkit-scrollbar{display:none;}
  .page-title .actions .btn,.actions .btn{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    min-height:32px!important;
    padding:6px 9px!important;
    font-size:11.5px!important;
    line-height:1.15!important;
    border-radius:8px!important;
    white-space:nowrap!important;
  }

  /* 상단 메뉴: 작은 화면에서도 2열 유지 */
  header.topbar{min-height:48px!important;padding:8px 9px!important;gap:6px 8px!important;}
  header.topbar .brand a{font-size:15px!important;}
  #mobileMenuToggle.mobile-menu-toggle{min-width:68px!important;min-height:34px!important;padding:6px 8px!important;font-size:12px!important;}
  header.topbar #mainNav.main-nav.mobile-open{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:66vh!important;}
  header.topbar #mainNav.main-nav a{min-height:34px!important;padding:7px 6px!important;font-size:12px!important;border-radius:8px!important;}
  .user-chip{padding:5px 7px!important;font-size:11px!important;}
  .user-chip .user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px!important;}
  .role-badge{font-size:10px!important;padding:2px 6px!important;}

  /* 홈 화면: KPI와 검색을 2열 기반으로 압축 */
  .home-search-card{padding:9px!important;}
  .home-search-form{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;}
  .home-search-form input[type="search"]{grid-column:1/-1!important;min-height:34px!important;font-size:13px!important;}
  .home-search-form .btn{min-height:32px!important;padding:6px 7px!important;font-size:11.5px!important;}
  .home-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin-bottom:8px!important;}
  .home-kpi{padding:9px!important;border-radius:11px!important;gap:2px!important;min-height:68px!important;}
  .home-kpi span{font-size:10.5px!important;line-height:1.15!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .home-kpi b{font-size:18px!important;line-height:1.05!important;letter-spacing:-.05em;}
  .home-kpi em{font-size:10px!important;line-height:1.15!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .home-layout{gap:8px!important;}
  .target-card{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:6px!important;padding:8px 9px!important;border-radius:10px!important;}
  .target-card-main{min-width:0!important;}
  .target-card-title{gap:4px!important;flex-wrap:nowrap!important;overflow:hidden!important;}
  .target-card-title strong,.target-card-title b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .target-card-sub{font-size:11px!important;margin-top:2px!important;line-height:1.15!important;}
  .target-card-meta{display:flex!important;gap:4px!important;flex-wrap:nowrap!important;overflow-x:auto!important;margin-top:4px!important;scrollbar-width:none;}
  .target-card-meta::-webkit-scrollbar{display:none;}
  .target-card-meta span{flex:0 0 auto!important;font-size:10px!important;padding:1px 5px!important;}
  .target-card-actions{justify-content:flex-end!important;align-items:center!important;gap:4px!important;flex-wrap:nowrap!important;}
  .target-card-actions .btn,.target-card-actions .tiny-btn{min-height:28px!important;padding:4px 6px!important;font-size:10.5px!important;white-space:nowrap!important;}
  .issue-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;}
  .issue-summary-grid span{padding:6px!important;font-size:11px!important;}

  /* 대상지 상세: 요약 카드와 준비율 압축 */
  .target-overview-card{padding:9px!important;}
  .target-overview-main{display:block!important;}
  .overview-title-row{gap:4px!important;flex-wrap:nowrap!important;min-width:0;}
  .overview-title-row .badge,.overview-title-row .funding-badge,.overview-title-row b{flex:0 0 auto;}
  .overview-title-row b{flex:1 1 auto!important;min-width:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:14px!important;}
  .badge,.small,.supply-pill{font-size:10px!important;padding:2px 6px!important;line-height:1.2!important;}
  .overview-address{font-size:11px!important;margin:3px 0 6px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .overview-meta-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;}
  .overview-meta-grid span{min-height:34px!important;padding:5px 6px!important;border-radius:8px!important;}
  .overview-meta-grid b{font-size:12.5px!important;line-height:1.1!important;}
  .overview-meta-grid small{font-size:9.5px!important;line-height:1.1!important;}
  .readiness-box{margin-top:7px!important;display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:6px!important;align-items:center!important;padding:7px!important;}
  .readiness-circle{width:40px!important;height:40px!important;}
  .readiness-circle b{font-size:15px!important;}
  .readiness-circle span{font-size:10px!important;}
  .readiness-box p{font-size:11px!important;margin:0!important;}
  .readiness-mini-list{grid-column:1/-1!important;display:flex!important;flex-wrap:nowrap!important;gap:4px!important;overflow-x:auto!important;scrollbar-width:none;padding-bottom:1px;}
  .readiness-mini-list::-webkit-scrollbar{display:none;}
  .readiness-mini-list .check-pill{flex:0 0 auto!important;font-size:9.5px!important;padding:2px 5px!important;white-space:nowrap!important;}

  /* 탭/빠른작업: 하단 스크롤보다 버튼 밀도 우선 */
  .detail-tab-nav{position:sticky!important;top:0!important;z-index:30!important;margin:0 -7px 7px!important;padding:5px 7px!important;border-radius:0!important;gap:4px!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none!important;}
  .detail-tab-nav::-webkit-scrollbar{display:none;}
  .detail-tab-nav button{flex:0 0 auto!important;min-height:29px!important;padding:5px 8px!important;font-size:11px!important;line-height:1!important;border-radius:999px!important;}
  .mobile-quick-card .quick-action-row,.mobile-map-card .quick-action-row,.field-action-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;}
  .status-action-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding-top:6px!important;margin-top:6px!important;}
  .field-action-row .btn,.field-action-row form,.field-action-row form .btn{width:100%!important;min-width:0!important;min-height:31px!important;padding:5px 6px!important;font-size:10.8px!important;line-height:1.1!important;text-align:center!important;white-space:normal!important;word-break:keep-all!important;}
  .sms-preview summary{font-size:11px!important;}
  .sms-preview pre{font-size:10.5px!important;line-height:1.35!important;max-height:90px!important;padding:8px!important;}

  /* 입력 폼: 짧은 항목은 항상 2열, 긴 항목만 전체폭 */
  .grid-2{gap:8px!important;}
  .form-grid,.basic-grid,.modal-form,.new-target-form,.settlement-adjust-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;align-items:end!important;}
  .form-grid label,.modal-form label,.new-target-form label,.settlement-adjust-form label{min-width:0!important;padding:6px!important;border-radius:9px!important;font-size:10.8px!important;line-height:1.15!important;}
  .form-grid label input,.form-grid label select,.form-grid label textarea,
  .modal-form label input,.modal-form label select,.modal-form label textarea,
  .new-target-form label input,.new-target-form label select,.new-target-form label textarea{
    margin-top:3px!important;
    min-height:31px!important;
    padding:5px 7px!important;
    font-size:12.5px!important;
    border-radius:8px!important;
  }
  textarea{min-height:48px!important;}
  .form-grid .span-2,.form-grid label.span-2,.form-grid .form-actions,
  .modal-form .wide-label,.new-target-form .span-2,.settlement-adjust-form .span-2,
  .form-grid p.span-2,.form-grid div.span-2{grid-column:1/-1!important;}
  .basic-grid label.mobile-half{grid-column:span 1!important;}
  .basic-grid label:not(.mobile-half),.basic-grid label.span-2{grid-column:1/-1!important;}
  .form-actions{display:flex!important;justify-content:stretch!important;}
  .form-actions .btn,.form-actions button{width:100%!important;min-height:35px!important;}
  .stock-inline-box{font-size:11px!important;padding:7px!important;gap:5px!important;line-height:1.25!important;}
  .stock-inline-box a{font-size:11px!important;}
  .readonly-field{padding:7px 8px!important;min-height:46px!important;border-radius:9px!important;}
  .readonly-field span{font-size:10px!important;}
  .readonly-field b{font-size:12.5px!important;}

  /* 캘린더: 월간 달력은 가로 스크롤로 칸 폭 확보, 세로 길이 축소 */
  .calendar-titlebar{gap:6px!important;margin-bottom:8px!important;}
  .calendar-nav-left,.calendar-nav-right{display:flex!important;gap:5px!important;justify-content:center!important;}
  .calendar-month-picker h1{font-size:18px!important;line-height:1.15!important;}
  .calendar-caption{font-size:10.5px!important;}
  .calendar-filter{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;}
  .calendar-filter input[name="q"]{grid-column:1/-1!important;}
  .calendar-filter select,.calendar-filter input,.calendar-filter .btn,.calendar-funding-tabs .btn{min-height:31px!important;padding:5px 7px!important;font-size:11px!important;}
  .calendar-funding-tabs{display:flex!important;gap:5px!important;overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none!important;padding-bottom:2px;}
  .calendar-funding-tabs::-webkit-scrollbar{display:none;}
  .calendar-funding-tabs .btn{flex:0 0 auto!important;white-space:nowrap!important;}
  .calendar-grid{display:grid!important;grid-template-columns:repeat(7,minmax(124px,1fr))!important;overflow-x:auto!important;margin:0 -7px 8px!important;border-radius:0!important;scrollbar-width:thin!important;}
  .cal-head,.cal-day{min-width:124px!important;}
  .cal-head{padding:6px 4px!important;font-size:11px!important;}
  .cal-day{min-height:94px!important;padding:5px!important;gap:3px!important;}
  .cal-date{font-size:11px!important;margin-bottom:1px!important;}
  .day-area-total{font-size:9px!important;padding:1px 4px!important;}
  .cal-event-wrap{grid-template-columns:minmax(0,1fr) auto!important;gap:3px!important;}
  .cal-event{font-size:10.5px!important;padding:4px 5px!important;border-radius:7px!important;line-height:1.15!important;}
  .cal-event .event-badges{display:none!important;}
  .cal-event .event-main{font-size:10.5px!important;}
  .cal-event .event-main em{font-size:9.5px!important;}
  .event-drag-handle{min-width:34px!important;min-height:25px!important;font-size:10px!important;padding:2px 5px!important;}
  .cal-event-actions{grid-column:1/-1!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:3px!important;justify-content:flex-start!important;scrollbar-width:none;}
  .cal-event-actions::-webkit-scrollbar{display:none;}
  .cal-event-actions .tiny-btn,.cal-event-actions button{min-height:23px!important;padding:3px 5px!important;font-size:9.8px!important;white-space:nowrap!important;}
  .calendar-month-table th,.calendar-month-table td{font-size:10.5px!important;padding:4px 5px!important;}

  /* 표/목록/사진 */
  .table-wrap,.sticky-table{max-height:62vh!important;}
  .table-wrap table th,.table-wrap table td{padding:4px 5px!important;font-size:10.8px!important;line-height:1.18!important;}
  .target-list-table td{max-width:150px!important;}
  .target-list-table td.col-address{max-width:160px!important;}
  .target-list-table td.col-note{max-width:150px!important;}
  .target-list-table td.col-pesticide{max-width:120px!important;}
  .row-actions{display:flex!important;gap:4px!important;flex-wrap:nowrap!important;margin-top:2px!important;}
  .row-actions a{font-size:10px!important;}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;}
  .photo-card{border-radius:9px!important;}
  .photo-card img,.file-icon,.file-box{height:92px!important;}
  .photo-meta{padding:5px!important;min-height:0!important;gap:1px!important;}
  .photo-meta b{font-size:11px!important;}
  .photo-meta span{font-size:10px!important;line-height:1.15!important;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
  .photo-actions{padding:5px!important;gap:4px!important;}
  .photo-edit{padding:5px!important;gap:4px!important;}
  .photo-edit select,.photo-edit input,.photo-edit .mini{font-size:10.5px!important;padding:5px 6px!important;}
  .report-crop-preview{max-height:120px!important;}

  /* 지도/모달 */
  .map-layout{gap:8px!important;}
  .vworld-map{height:62vh!important;min-height:360px!important;border-radius:11px!important;}
  .map-panel .card{padding:9px!important;}
  .map-search-row{display:grid!important;grid-template-columns:1fr auto!important;gap:5px!important;}
  .map-search-row input{min-height:32px!important;}
  .map-search-row .btn{min-height:32px!important;padding:5px 8px!important;font-size:11px!important;}
  .map-dialog-card{max-height:42vh!important;top:52px!important;}
  .map-dialog-header{padding:8px 10px!important;}
  .map-dialog-body{padding:8px 10px!important;}
  .new-target-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;}
  .map-dialog-footer{padding:7px 10px!important;}
}

@media screen and (max-width:430px){
  .overview-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .home-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .mobile-quick-card .quick-action-row,.mobile-map-card .quick-action-row,.field-action-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .status-action-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .form-grid,.basic-grid,.modal-form,.new-target-form,.settlement-adjust-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  header.topbar #mainNav.main-nav.mobile-open{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .calendar-grid{grid-template-columns:repeat(7,minmax(118px,1fr))!important;}
  .cal-head,.cal-day{min-width:118px!important;}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}

@media screen and (max-width:340px){
  .overview-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .form-grid,.basic-grid,.modal-form,.new-target-form,.settlement-adjust-form{grid-template-columns:1fr!important;}
  .basic-grid label.mobile-half{grid-column:1/-1!important;}
}


/* v1.22 step34 calendar mobile/weather/move UX */
.mobile-weekday-strip{display:none;grid-template-columns:repeat(7,1fr);gap:0;background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 6px;overflow:hidden;font-weight:900;text-align:center;color:#334155}
.mobile-weekday-strip span{padding:6px 0;border-right:1px solid var(--line);font-size:12px}.mobile-weekday-strip span:last-child{border-right:0}.mobile-weekday-strip .sun,.cal-head.sun,.weekday-0 .cal-date-main{color:#dc2626!important}.mobile-weekday-strip .sat,.cal-head.sat,.weekday-6 .cal-date-main{color:#2563eb!important}
.day-weather-strip{display:flex;gap:4px;flex-wrap:wrap;margin:2px 0 4px}.day-weather-chip{border:1px solid #bae6fd;background:#f0f9ff;color:#075985;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:900;line-height:1;display:inline-flex;align-items:center;gap:3px;cursor:pointer}.day-weather-chip .w-part{font-size:9px;color:#475569}.day-weather-chip .w-icon{font-size:13px;line-height:1}.day-weather-chip.weather-rain{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.day-weather-chip.weather-humid{background:#ecfeff;border-color:#a5f3fc;color:#0e7490}.day-weather-chip.weather-cloud{background:#f8fafc;border-color:#cbd5e1;color:#475569}.day-weather-chip.weather-sun{background:#fffbeb;border-color:#fde68a;color:#92400e}.day-weather-chip.weather-mixed{background:#fefce8;border-color:#fde68a;color:#854d0e}.weather-modal-card{width:min(420px,94vw)}.weather-modal-text{white-space:pre-wrap;margin:12px 0 0;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;font-family:inherit;line-height:1.55;color:#0f172a}.calendar-move-notice{position:sticky;top:62px;z-index:35;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 8px;padding:8px 10px;border:1px solid #2563eb;background:#eff6ff;color:#1d4ed8;border-radius:12px;font-size:13px}.calendar-move-notice[hidden]{display:none!important}.calendar-select-move .calendar-drop-day.move-selectable{cursor:pointer}.calendar-select-move .calendar-drop-day.move-selectable:hover,.calendar-select-move .calendar-drop-day.move-selectable:focus-within{outline:3px solid rgba(37,99,235,.45);outline-offset:-3px;background:#eff6ff!important}.event-move-btn{background:#fff!important;color:#334155!important;border:1px solid #cbd5e1!important}.event-weather{display:none!important}
@media(hover:hover) and (pointer:fine){.cal-event.draggable-event{cursor:grab}.cal-event.draggable-event.dragging{cursor:grabbing}}
@media screen and (max-width:760px){
  .mobile-weekday-strip{display:grid!important;position:sticky;top:0;z-index:25}
  .calendar-grid{display:block!important;overflow:visible!important;margin:0 0 8px!important;border-radius:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
  .calendar-grid .cal-head{display:none!important}
  .cal-day{min-width:0!important;width:100%!important;min-height:auto!important;margin:0 0 6px!important;border:1px solid var(--line)!important;border-radius:12px!important;padding:6px!important;background:#fff!important;display:flex!important;flex-direction:column!important;gap:4px!important}
  .cal-day.muted-day.no-events{display:none!important}
  .cal-date{display:flex!important;align-items:center!important;justify-content:space-between!important;font-size:12px!important;margin:0!important;padding-bottom:2px!important;border-bottom:1px dashed #e5e7eb!important}
  .plus-btn{width:22px!important;height:22px!important;font-size:15px!important;line-height:15px!important;flex:0 0 auto!important}
  .day-weather-strip{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none!important;margin:3px 0!important}.day-weather-strip::-webkit-scrollbar{display:none}.day-weather-chip{flex:0 0 auto!important;font-size:9.8px!important;padding:3px 6px!important}
  .cal-event-wrap{display:block!important;margin-bottom:4px!important;border:1px solid #e2e8f0!important;border-radius:10px!important;background:#f8fafc!important;padding:4px!important}
  .cal-event{border:0!important;background:transparent!important;padding:2px 3px!important;font-size:11px!important;line-height:1.18!important;touch-action:manipulation!important}
  .cal-event .event-badges{display:none!important}.cal-event span:not(.event-badges){font-size:10px!important;display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.cal-event .event-main{font-size:11.5px!important}.cal-event .event-main em{font-size:10px!important}
  .cal-event-actions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;overflow:visible!important;margin-top:4px!important}.cal-event-actions form{display:block!important;margin:0!important}.cal-event-actions .tiny-btn,.cal-event-actions button{width:100%!important;min-height:25px!important;font-size:10px!important;padding:3px 4px!important;text-align:center!important;justify-content:center!important;white-space:nowrap!important;border-radius:7px!important}
  .calendar-month-table th:nth-child(15),.calendar-month-table td:nth-child(15){display:none!important}
}
@media screen and (max-width:430px){.calendar-grid{display:block!important;grid-template-columns:none!important}.cal-head,.cal-day{min-width:0!important}.mobile-weekday-strip span{font-size:11px!important;padding:5px 0!important}.cal-event-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important}}


/* v1.23 step35: 상세페이지 현장 상단 UI 재배치/모바일 압축 */
.nav-account-chip{display:flex;align-items:center;gap:8px;margin-left:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 9px;color:#fff;white-space:nowrap}.nav-account-chip .user-name{font-weight:800;font-size:13px}.topbar>.user-chip{display:none!important}
.page-detail-actions{align-items:center;justify-content:flex-end;gap:8px}.detail-tab-nav-top{position:static!important;top:auto!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important}.detail-tab-nav-top button{min-height:36px}.field-summary-card{position:sticky;top:64px;z-index:5}.field-summary-layout{display:grid;grid-template-columns:minmax(0,1fr) 126px 360px!important;gap:12px;align-items:stretch}.field-summary-left{min-width:0}.field-summary-grid{border:0;background:transparent;padding:0;text-align:left;width:100%;cursor:pointer}.field-summary-grid:hover span{border-color:#93c5fd;background:#eff6ff}.summary-quick-edit{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-top:8px;padding:9px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px}.summary-quick-edit[hidden]{display:none!important}.summary-quick-edit label{font-weight:800;font-size:12px;color:#334155}.summary-quick-edit input,.summary-quick-edit select{margin-top:3px;min-height:32px;padding:5px 7px;font-size:12px}.summary-edit-actions{display:flex;gap:6px;align-items:end}.field-status-actions{display:flex;flex-direction:column;gap:7px}.complete-toggle{width:100%;height:76px;border:1px solid #cbd5e1;border-radius:14px;background:#f8fafc;color:#111827;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;font-weight:900}.complete-toggle b{font-size:18px}.complete-toggle span{font-size:11px;color:#64748b;margin-top:2px}.complete-toggle.complete-on{background:#16a34a;color:#fff;border-color:#16a34a}.complete-toggle.complete-on span{color:#dcfce7}.field-contact-actions{display:grid;grid-template-columns:1fr;gap:6px}.field-contact-actions .btn{width:100%;min-height:34px;padding:6px 8px}.compact-readiness-box{display:flex!important;flex-direction:column!important;gap:8px}.readiness-title-line{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;width:100%}.readiness-head-actions{display:flex;gap:5px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.readiness-head-actions .btn{min-height:28px;padding:4px 7px;font-size:11px;border-radius:7px}.compact-readiness-box .readiness-mini-list,.readiness-mini-list{display:flex!important;flex-wrap:wrap!important;overflow:visible!important;gap:4px!important}.compact-readiness-box .check-pill,.readiness-mini-list .check-pill{white-space:normal!important;flex:0 1 auto!important;line-height:1.15}.field-map-card{margin-top:0}.map-app-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}.map-app-row .btn{width:100%}.report-card-head{align-items:center}.report-readiness-detail .readiness-detail-grid{margin-top:10px}
@media(max-width:1100px){.field-summary-layout{grid-template-columns:1fr!important}.field-status-actions{display:grid;grid-template-columns:140px 1fr;align-items:stretch}.field-contact-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-quick-edit{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-edit-actions{grid-column:1/-1}.detail-tab-nav-top{overflow-x:auto;display:flex;flex-wrap:nowrap}.detail-tab-nav-top button{flex:0 0 auto}}
@media(max-width:900px){header.topbar #mainNav.main-nav.mobile-open{align-items:stretch}.nav-account-chip{grid-column:1/-1;margin:2px 0 0;justify-content:space-between;border-radius:10px;padding:7px 8px}.page-detail-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;overflow:visible!important;gap:6px!important}.page-detail-actions .detail-tab-nav-top{display:flex!important;overflow-x:auto!important;gap:4px!important;scrollbar-width:none!important}.page-detail-actions .detail-tab-nav-top::-webkit-scrollbar{display:none}.page-detail-actions .detail-tab-nav-top button{min-height:30px!important;padding:5px 8px!important;font-size:11px!important;white-space:nowrap!important}.page-detail-actions>a.btn{min-height:30px!important;padding:5px 8px!important;font-size:11px!important}.field-summary-card{position:static!important;padding:8px!important}.field-summary-layout{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}.overview-address{margin-bottom:4px!important}.overview-meta-grid.field-summary-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important}.overview-meta-grid.field-summary-grid span{padding:5px 4px!important;min-height:34px!important}.overview-meta-grid.field-summary-grid b{font-size:12px!important}.overview-meta-grid.field-summary-grid small{font-size:9px!important}.field-status-actions{display:grid!important;grid-template-columns:86px minmax(0,1fr)!important;gap:5px!important;align-items:stretch!important}.complete-toggle{height:70px!important;border-radius:11px!important}.complete-toggle b{font-size:15px!important}.complete-toggle span{font-size:9.5px!important}.field-contact-actions{grid-template-columns:1fr!important;gap:5px!important}.field-contact-actions .btn{min-height:32px!important;font-size:11px!important;padding:5px!important}.summary-quick-edit{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;padding:7px!important}.summary-quick-edit label{font-size:10.5px!important}.summary-quick-edit input,.summary-quick-edit select{min-height:30px!important;font-size:12px!important;padding:4px 6px!important}.summary-edit-actions{grid-column:1/-1!important}.compact-readiness-box{padding:7px!important}.readiness-title-line{grid-template-columns:auto minmax(0,1fr) auto!important;gap:5px!important}.readiness-title-line .readiness-circle{width:38px!important;height:38px!important}.readiness-title-line p{font-size:11px!important}.readiness-head-actions{gap:3px!important}.readiness-head-actions .btn{min-height:24px!important;padding:3px 5px!important;font-size:9.5px!important}.readiness-mini-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px!important;overflow:visible!important}.readiness-mini-list .check-pill{font-size:9.5px!important;padding:3px 5px!important;white-space:normal!important;min-width:0!important}.mobile-quick-card.field-map-card .card-head{margin-bottom:5px!important}.map-app-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important}.map-app-row .btn{min-height:30px!important;padding:4px 3px!important;font-size:10px!important;white-space:nowrap!important}.detail-tab-nav:not(.detail-tab-nav-top){display:none!important}}
@media(max-width:380px){.overview-meta-grid.field-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.map-app-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.readiness-mini-list{grid-template-columns:1fr!important}.field-status-actions{grid-template-columns:78px 1fr!important}}


/* v1.24 step36 - detail field action layout refinement */
.field-summary-layout{
  grid-template-columns:minmax(0,1fr) 142px 360px!important;
  align-items:stretch!important;
}
.field-summary-info-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  width:100%;
  cursor:pointer;
  outline:none;
}
.field-summary-info-grid:hover .summary-info-cell,
.field-summary-info-grid:focus .summary-info-cell{
  border-color:#93c5fd;
  background:#eff6ff;
}
.summary-info-cell{
  min-width:0;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:12px;
  padding:7px 8px;
  min-height:43px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.summary-info-cell b{
  display:block;
  font-size:14px;
  line-height:1.15;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.summary-info-cell small{
  color:#64748b;
  font-size:11px;
  line-height:1.1;
  margin-top:2px;
}
.summary-pesticide-cell{grid-column:3 / span 1;}
.summary-invoice-cell{grid-column:4 / span 1;}
.field-status-actions{
  gap:5px!important;
  min-width:0;
}
.field-status-actions form{margin:0;}
.complete-toggle{
  height:58px!important;
  min-height:58px!important;
  border-radius:13px!important;
}
.complete-toggle b{font-size:17px!important;}
.complete-toggle span{font-size:10px!important;}
.field-contact-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:5px!important;
}
.field-contact-actions .btn{
  min-height:30px!important;
  padding:5px 6px!important;
  font-size:12px!important;
}
.field-sms-preview{
  margin-top:0;
  border:1px dashed #cbd5e1;
  border-radius:10px;
  padding:4px 6px;
  background:#fff;
}
.field-sms-preview summary{
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  color:#475569;
}
.field-sms-preview pre{
  margin:5px 0 0;
  max-height:86px;
  overflow:auto;
  white-space:pre-wrap;
  font-size:11px;
  line-height:1.35;
}
.map-app-row{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:6px!important;
  overflow:visible!important;
}
.map-app-row .btn{
  min-width:0!important;
  width:100%!important;
  white-space:nowrap!important;
  padding-left:4px!important;
  padding-right:4px!important;
}
#basicEditBlock{
  display:flex;
  flex-direction:column;
  max-height:calc(100dvh - 190px);
  overflow:hidden;
}
#basicEditBlock .card-head{flex:0 0 auto;}
#basicEditBlock .basic-grid{
  overflow-y:auto;
  overscroll-behavior:contain;
  padding-right:3px;
}
@media(max-width:1100px){
  .field-summary-layout{
    grid-template-columns:minmax(0,1fr) 132px!important;
    grid-template-areas:"info status" "ready ready";
  }
  .field-summary-left{grid-area:info;}
  .field-status-actions{grid-area:status!important;display:flex!important;flex-direction:column!important;}
  .compact-readiness-box{grid-area:ready;}
  .field-summary-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .summary-pesticide-cell{grid-column:1 / span 1;}
  .summary-invoice-cell{grid-column:2 / span 1;}
}
@media(max-width:900px){
  .page-detail-actions{grid-template-columns:minmax(0,1fr) auto!important;}
  .field-summary-card{position:sticky!important;top:0!important;z-index:18!important;}
  .field-summary-layout{
    grid-template-columns:minmax(0,1fr) 92px!important;
    grid-template-areas:"info status" "ready ready"!important;
    gap:5px!important;
  }
  .field-summary-left{min-width:0!important;}
  .overview-title-row{gap:4px!important;font-size:12px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .overview-title-row .badge{font-size:9px!important;padding:2px 5px!important;}
  .overview-address{font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .field-summary-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px!important;}
  .summary-info-cell{padding:4px 5px!important;min-height:30px!important;border-radius:8px!important;}
  .summary-info-cell b{font-size:11px!important;}
  .summary-info-cell small{font-size:8.5px!important;margin-top:1px!important;}
  .field-status-actions{display:flex!important;flex-direction:column!important;gap:3px!important;}
  .complete-toggle{height:48px!important;min-height:48px!important;border-radius:9px!important;}
  .complete-toggle b{font-size:13px!important;}
  .complete-toggle span{font-size:8px!important;}
  .field-contact-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px!important;}
  .field-contact-actions .btn{min-height:24px!important;font-size:9.5px!important;padding:3px 2px!important;border-radius:7px!important;}
  .field-sms-preview{padding:2px 4px!important;border-radius:7px!important;}
  .field-sms-preview summary{font-size:8.5px!important;}
  .field-sms-preview pre{font-size:9px!important;max-height:56px!important;}
  .compact-readiness-box{padding:5px!important;}
  .map-app-row{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;}
  .map-app-row .btn{min-height:28px!important;font-size:9.5px!important;padding:3px 2px!important;}
  #basicEditBlock{max-height:calc(100dvh - 176px)!important;}
  #basicEditBlock .basic-grid{max-height:calc(100dvh - 260px)!important;}
}
@media(max-width:380px){
  .map-app-row{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  .field-summary-layout{grid-template-columns:minmax(0,1fr) 84px!important;}
  .map-app-row .btn{font-size:8.8px!important;letter-spacing:-.04em!important;}
}

/* v1.25 step37 - mobile fixed detail header and field action refinement */
.sms-preview-modal[hidden]{display:none!important;}
.sms-preview-modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:18px;}
.sms-preview-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.48);}
.sms-preview-dialog{position:relative;width:min(460px,94vw);max-height:82vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 70px rgba(0,0,0,.35);padding:14px;}
.sms-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:10px;}
.sms-preview-dialog pre{white-space:pre-wrap;margin:0;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;font-family:inherit;font-size:13px;line-height:1.5;color:#0f172a;}
.sms-preview-open{width:100%;min-height:30px;}
.field-status-actions .sms-preview-open{grid-column:1/-1;}

@media(min-width:901px){
  .detail-scroll-area{display:block;overflow:visible;}
}

@media(max-width:900px){
  body.detail-fixed-mobile{overflow:hidden!important;}
  body.detail-fixed-mobile .container{height:calc(100dvh - 56px);overflow:hidden;padding-bottom:8px!important;display:flex;flex-direction:column;gap:6px;}
  body.detail-fixed-mobile .page-title,
  body.detail-fixed-mobile .field-summary-card,
  body.detail-fixed-mobile .detail-fixed-map-card{flex:0 0 auto;}
  body.detail-fixed-mobile .page-title{position:relative!important;z-index:22;background:#f6f7fb;margin:0!important;padding-bottom:0!important;}
  body.detail-fixed-mobile .field-summary-card{position:relative!important;top:auto!important;z-index:21!important;margin:0!important;}
  body.detail-fixed-mobile .detail-fixed-map-card{position:relative!important;z-index:20!important;margin:0!important;padding:6px!important;}
  body.detail-fixed-mobile .detail-scroll-area{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:90px;scrollbar-width:thin;}
  body.detail-fixed-mobile .detail-tab-panel > .grid-2,
  body.detail-fixed-mobile .detail-tab-panel > .grid-3{margin-top:0;}
  body.detail-fixed-mobile .detail-tab-panel .card:first-child{margin-top:0;}

  /* 상단 요약/완료 영역: 완료열을 이전보다 넓게 */
  .field-summary-layout{grid-template-columns:minmax(0,1fr) minmax(168px,42vw)!important;grid-template-areas:"info status" "ready ready"!important;gap:5px!important;align-items:stretch!important;}
  .field-summary-left{grid-area:info!important;min-width:0!important;}
  .field-status-actions{grid-area:status!important;display:grid!important;grid-template-rows:auto auto auto!important;align-content:start!important;gap:4px!important;min-width:0!important;width:100%!important;}
  .field-status-actions form{margin:0!important;display:block!important;width:100%!important;}
  .field-status-actions .complete-toggle{width:100%!important;height:100px!important;min-height:100px!important;border-radius:10px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;}
  .field-status-actions .complete-toggle b{font-size:18px!important;line-height:1.1!important;}
  .field-status-actions .complete-toggle span{font-size:10px!important;line-height:1.15!important;margin-top:3px!important;}
  .field-contact-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;width:100%!important;}
  .field-contact-actions .btn{min-height:34px!important;font-size:12px!important;font-weight:900!important;padding:5px 3px!important;border-radius:8px!important;}
  .field-status-actions .sms-preview-open{min-height:30px!important;font-size:11px!important;font-weight:900!important;padding:4px 6px!important;border-radius:8px!important;}
  .field-summary-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(30px,auto)!important;gap:4px!important;height:auto!important;}
  .summary-pesticide-cell{grid-column:1 / span 1!important;}
  .summary-invoice-cell{grid-column:2 / span 1!important;}
  .summary-info-cell{min-height:30px!important;padding:4px 5px!important;}
  .summary-info-cell b{font-size:11px!important;}
  .summary-info-cell small{font-size:8.5px!important;}

  /* 현장지도 버튼 한 줄 고정 */
  .detail-fixed-map-card .card-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;margin-bottom:4px!important;}
  .detail-fixed-map-card .card-head h2{font-size:13px!important;margin:0!important;white-space:nowrap!important;}
  .detail-fixed-map-card .card-head .hint{display:none!important;}
  .detail-fixed-map-card .map-app-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;overflow:visible!important;width:100%!important;}
  .detail-fixed-map-card .map-app-row .btn{min-width:0!important;width:100%!important;min-height:27px!important;padding:3px 1px!important;font-size:9.2px!important;font-weight:900!important;letter-spacing:-.06em!important;border-radius:7px!important;white-space:nowrap!important;}
  .detail-fixed-map-card > .hint{font-size:9px!important;line-height:1.15!important;margin:4px 0 0!important;display:-webkit-box!important;-webkit-line-clamp:1!important;-webkit-box-orient:vertical!important;overflow:hidden!important;}

  #basicEditBlock{max-height:none!important;overflow:visible!important;}
  #basicEditBlock .basic-grid{max-height:none!important;overflow:visible!important;padding-right:0!important;}

  .sms-preview-dialog{width:min(420px,92vw);}
  .sms-preview-dialog pre{font-size:12px;line-height:1.45;}
}

@media(max-width:430px){
  .field-summary-layout{grid-template-columns:minmax(0,1fr) minmax(156px,43vw)!important;gap:4px!important;}
  .field-status-actions .complete-toggle{height:96px!important;min-height:96px!important;}
  .field-contact-actions .btn{font-size:11px!important;min-height:31px!important;}
  .field-status-actions .sms-preview-open{font-size:10px!important;min-height:28px!important;}
  .detail-fixed-map-card .map-app-row{gap:2px!important;}
  .detail-fixed-map-card .map-app-row .btn{font-size:8.6px!important;min-height:26px!important;padding-left:0!important;padding-right:0!important;}
}

@media(max-width:360px){
  .field-summary-layout{grid-template-columns:minmax(0,1fr) 146px!important;}
  .field-status-actions .complete-toggle{height:92px!important;min-height:92px!important;}
  .detail-fixed-map-card .map-app-row .btn{font-size:8px!important;}
  .overview-title-row .funding-badge{display:none!important;}
}


/* v1.26 step38 - 현장 요약 패널/현장지도 정렬 재정리 */
/* 공통: 현장지도는 제목/안내문 없이 버튼만 간결하게 */
.field-map-card .card-head{display:none!important;}
.field-map-card > .hint{display:none!important;}
.field-map-card{padding:10px 12px!important;}
.map-app-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;overflow:visible!important;width:100%!important;}
.map-app-row .btn{min-width:0!important;width:100%!important;white-space:nowrap!important;text-align:center!important;justify-content:center!important;}

/* 데스크탑: 빈 칸이 생기지 않도록 6개 정보를 3열 x 2줄로 정리 */
@media(min-width:901px){
  .field-summary-card{padding:12px 14px!important;}
  .field-summary-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(210px,240px) minmax(310px,360px)!important;
    grid-template-areas:"info status ready"!important;
    gap:12px!important;
    align-items:stretch!important;
  }
  .field-summary-left{grid-area:info!important;min-width:0!important;}
  .field-status-actions{grid-area:status!important;width:100%!important;min-width:0!important;display:grid!important;grid-template-rows:1fr auto auto!important;gap:6px!important;align-content:stretch!important;}
  .compact-readiness-box{grid-area:ready!important;min-width:0!important;}
  .field-summary-info-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-rows:minmax(44px,auto)!important;
    gap:6px!important;
    height:auto!important;
  }
  .summary-pesticide-cell,.summary-invoice-cell{grid-column:auto!important;}
  .summary-info-cell{min-height:44px!important;padding:7px 9px!important;}
  .field-status-actions .complete-toggle{height:100%!important;min-height:82px!important;border-radius:12px!important;}
  .field-contact-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;}
  .field-contact-actions .btn{min-height:32px!important;font-size:12px!important;padding:5px 6px!important;}
  .field-status-actions .sms-preview-open{min-height:30px!important;font-size:12px!important;padding:5px 6px!important;}
  .readiness-mini-list{max-height:none!important;}
  .field-map-card{margin-top:10px!important;}
  .map-app-row .btn{min-height:32px!important;font-size:12px!important;padding:5px 6px!important;}
}

/* 태블릿/모바일 공통: 현장 요약 패널을 좌측 정보 + 우측 현장 액션으로 고정 */
@media(max-width:900px){
  body.detail-fixed-mobile .container{gap:5px!important;}
  body.detail-fixed-mobile .field-summary-card{padding:8px!important;}
  .field-summary-layout{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(178px,46vw)!important;
    grid-template-areas:"info status" "ready ready"!important;
    gap:5px!important;
    align-items:stretch!important;
  }
  .field-summary-left{grid-area:info!important;min-width:0!important;}
  .field-status-actions{grid-area:status!important;display:grid!important;grid-template-rows:minmax(106px,1fr) auto auto!important;gap:4px!important;width:100%!important;min-width:0!important;align-content:stretch!important;}
  .compact-readiness-box{grid-area:ready!important;}
  .overview-title-row{margin-bottom:1px!important;}
  .overview-address{margin:0 0 4px!important;}
  .field-summary-info-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:minmax(32px,auto)!important;
    gap:4px!important;
    height:auto!important;
  }
  .summary-pesticide-cell{grid-column:1 / span 1!important;}
  .summary-invoice-cell{grid-column:2 / span 1!important;}
  .summary-info-cell{min-height:32px!important;padding:4px 5px!important;border-radius:8px!important;}
  .summary-info-cell b{font-size:11.5px!important;line-height:1.08!important;}
  .summary-info-cell small{font-size:8.5px!important;line-height:1.05!important;}
  .field-status-actions form{height:100%!important;margin:0!important;}
  .field-status-actions .complete-toggle{width:100%!important;height:100%!important;min-height:106px!important;border-radius:12px!important;}
  .field-status-actions .complete-toggle b{font-size:18px!important;}
  .field-status-actions .complete-toggle span{font-size:10px!important;}
  .field-contact-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;width:100%!important;}
  .field-contact-actions .btn{min-height:31px!important;font-size:11px!important;font-weight:900!important;padding:4px 2px!important;border-radius:8px!important;}
  .field-status-actions .sms-preview-open{min-height:29px!important;font-size:10.5px!important;font-weight:900!important;padding:4px 4px!important;border-radius:8px!important;}
  .compact-readiness-box{padding:7px!important;}
  .readiness-mini-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:3px!important;overflow:visible!important;}
  .readiness-mini-list .check-pill{font-size:9.5px!important;padding:3px 5px!important;white-space:normal!important;min-width:0!important;}
  .field-map-card{padding:6px!important;margin:0!important;}
  .detail-fixed-map-card .map-app-row,.map-app-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;overflow:visible!important;width:100%!important;}
  .detail-fixed-map-card .map-app-row .btn,.map-app-row .btn{min-width:0!important;width:100%!important;min-height:27px!important;padding:3px 1px!important;font-size:9px!important;font-weight:900!important;letter-spacing:-.06em!important;border-radius:7px!important;white-space:nowrap!important;}
}

@media(max-width:430px){
  .field-summary-layout{grid-template-columns:minmax(0,1fr) minmax(170px,46vw)!important;gap:4px!important;}
  .field-status-actions{grid-template-rows:minmax(102px,1fr) auto auto!important;gap:3px!important;}
  .field-status-actions .complete-toggle{min-height:102px!important;}
  .field-contact-actions .btn{min-height:30px!important;font-size:10.5px!important;}
  .field-status-actions .sms-preview-open{min-height:28px!important;font-size:10px!important;}
  .detail-fixed-map-card .map-app-row .btn,.map-app-row .btn{font-size:8.4px!important;min-height:26px!important;letter-spacing:-.08em!important;}
}

@media(max-width:370px){
  .field-summary-layout{grid-template-columns:minmax(0,1fr) 156px!important;}
  .field-status-actions{grid-template-rows:minmax(96px,1fr) auto auto!important;}
  .field-status-actions .complete-toggle{min-height:96px!important;}
  .field-status-actions .complete-toggle b{font-size:16px!important;}
  .field-contact-actions .btn{font-size:9.5px!important;min-height:28px!important;}
  .field-status-actions .sms-preview-open{font-size:9.5px!important;min-height:26px!important;}
  .detail-fixed-map-card .map-app-row .btn,.map-app-row .btn{font-size:7.8px!important;}
}


/* v1.27 상세페이지 지도/경로/연락 버튼 보정 */
.detail-schedule-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:8px 14px;border:1px solid #bbf7d0;background:#ecfdf5;color:#047857;border-radius:999px;font-weight:900;text-decoration:none;white-space:nowrap;box-shadow:0 2px 6px rgba(15,23,42,.04)}
.detail-schedule-link:hover{background:#d1fae5;border-color:#86efac;color:#065f46}
.field-contact-actions .btn.disabled,.field-contact-actions .btn[disabled]{opacity:.45!important;filter:grayscale(.35);cursor:not-allowed!important;pointer-events:none!important;background:#f1f5f9!important;color:#64748b!important;border-color:#cbd5e1!important}
#basicEditBlock .card-head{display:flex;align-items:flex-start;gap:10px;flex-wrap:nowrap!important}
#basicEditBlock .card-head h2{white-space:nowrap!important;word-break:keep-all!important;line-height:1.15!important;margin-right:4px!important}
#basicEditBlock .card-head .hint{min-width:0;font-size:12px;line-height:1.25}
.basic-satellite-card{min-height:320px;overflow:hidden}
.basic-satellite-head{align-items:center!important;gap:8px}.basic-satellite-head h2{white-space:nowrap;margin:0}.basic-satellite-head .btn{flex:0 0 auto}
.detail-satellite-map{height:300px;border-radius:14px;overflow:hidden;background:#e5e7eb;border:1px solid #cbd5e1;cursor:pointer;position:relative}.detail-satellite-map .map-placeholder{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px;color:#475569;font-weight:800;background:#f8fafc}.mini-parcel-line{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.mini-parcel-line span{font-size:11px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:3px 7px;color:#334155}.route-jump-row{cursor:pointer}.route-jump-row:hover{background:#ecfeff!important}.route-name-link{font-weight:900;color:#075985;text-decoration:none}.route-name-link:hover{text-decoration:underline}
@media(max-width:900px){
  .detail-schedule-link{min-height:29px!important;padding:5px 9px!important;font-size:11px!important;border-radius:999px!important;background:#ecfdf5!important;color:#047857!important;border-color:#bbf7d0!important}
  .field-contact-actions .sms-action{order:1}.field-contact-actions .phone-action{order:2}
  #basicEditBlock .card-head{align-items:center!important;gap:6px!important}.basic-satellite-card{min-height:auto}.detail-satellite-map{height:210px}.mini-parcel-line{max-height:48px;overflow:hidden}.basic-satellite-head h2{font-size:15px!important}
}
@media(max-width:420px){.detail-satellite-map{height:180px}.basic-satellite-head .btn{min-height:28px!important;padding:4px 7px!important;font-size:10px!important}}


/* v1.28 step40 - 상세페이지 데스크탑 정렬, 보고서/일정입력/위성지도 보정 */
@media(min-width:901px){
  .field-summary-layout{
    grid-template-columns:minmax(0,1fr) minmax(230px,260px) minmax(330px,380px)!important;
    align-items:stretch!important;
  }
  .field-summary-left{display:flex!important;flex-direction:column!important;min-height:100%!important;}
  .field-summary-info-grid{flex:1 1 auto!important;grid-auto-rows:1fr!important;align-content:stretch!important;}
  .summary-info-cell{min-height:56px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;}
  .field-status-actions{height:100%!important;grid-template-rows:1fr auto auto!important;}
  .field-status-actions .complete-toggle{min-height:112px!important;height:100%!important;}
  .field-contact-actions .btn,.field-status-actions .sms-preview-open{min-height:36px!important;}
  .compact-readiness-box{height:100%!important;align-self:stretch!important;}
  .readiness-title-line{flex:0 0 auto!important;}
  .readiness-mini-list{align-content:flex-start!important;}
}
.field-map-card{display:flex!important;align-items:center!important;justify-content:center!important;}
.field-map-card .map-app-row{width:min(100%,980px)!important;margin:0 auto!important;align-items:center!important;}
.field-map-card .map-app-row .btn{min-height:36px!important;align-self:center!important;}
.basic-satellite-card{display:flex!important;flex-direction:column!important;align-self:stretch!important;min-height:520px!important;}
.basic-satellite-card .basic-satellite-head{flex:0 0 auto!important;}
.basic-satellite-card .detail-satellite-map{flex:1 1 auto!important;height:auto!important;min-height:430px!important;cursor:grab!important;}
.basic-satellite-card .detail-satellite-map:active{cursor:grabbing!important;}
.basic-satellite-card .mini-parcel-line{flex:0 0 auto!important;}
.detail-map-open-control{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:8px;padding:5px 8px;font-size:11px;font-weight:900;text-decoration:none;box-shadow:0 2px 8px rgba(15,23,42,.18);margin:8px;}
.detail-map-open-control:hover{background:#f8fafc;color:#075985;}
.report-readiness-detail{display:none!important;}
.report-options-card{margin-top:0!important;}
.report-options-compact{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:8px!important;align-items:center!important;}
.report-options-compact label{display:flex!important;align-items:center!important;gap:7px!important;border:1px solid #e2e8f0;background:#f8fafc;border-radius:12px;padding:8px 10px;font-weight:800;}
.report-options-compact input[type="checkbox"]{width:auto!important;}
.report-options-compact .btn{min-height:38px!important;}
.report-preview-card{overflow:hidden!important;}
.report-preview-frame{width:100%;height:calc(100vh - 260px);min-height:720px;border:1px solid #cbd5e1;border-radius:14px;background:#fff;}
.schedule-entry-form{display:grid;gap:12px;}
.schedule-field-group{border:1px solid #dbeafe;background:linear-gradient(180deg,#ffffff,#f8fbff);border-radius:16px;padding:12px;}
.schedule-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;border-bottom:1px solid #e2e8f0;padding-bottom:8px;}
.schedule-group-head b{font-size:15px;color:#0f172a;}
.schedule-group-head span{font-size:12px;color:#64748b;}
.schedule-group-grid{display:grid;gap:8px;align-items:end;}
.schedule-group-grid.compact-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.schedule-group-grid.compact-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.schedule-group-grid.compact-4{grid-template-columns:repeat(4,minmax(0,1fr));}
.schedule-group-grid label{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:9px;font-weight:800;color:#334155;}
.schedule-group-grid label input,.schedule-group-grid label select,.schedule-group-grid label textarea{margin-top:5px;background:#fff;}
.schedule-group-grid .span-2{grid-column:span 2;}
.schedule-group-grid .span-4{grid-column:1/-1;}
.schedule-save-bar{display:flex;justify-content:flex-end;position:sticky;bottom:8px;z-index:4;background:rgba(246,247,251,.84);backdrop-filter:blur(8px);border-radius:14px;padding:8px;}
.schedule-save-bar .btn{min-width:140px;}
@media(max-width:1100px){
  .schedule-group-grid.compact-3,.schedule-group-grid.compact-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .schedule-group-grid .span-4{grid-column:1/-1;}
  .basic-satellite-card{min-height:360px!important;}
  .basic-satellite-card .detail-satellite-map{min-height:260px!important;}
}
@media(max-width:900px){
  .report-preview-frame{height:70vh;min-height:520px;}
  .schedule-entry-form{gap:8px;}
  .schedule-field-group{padding:9px;border-radius:14px;}
  .schedule-group-head{margin-bottom:7px;padding-bottom:6px;align-items:flex-start;flex-direction:column;gap:2px;}
  .schedule-group-grid.compact-2,.schedule-group-grid.compact-3,.schedule-group-grid.compact-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
  .schedule-group-grid label{padding:7px;font-size:11.5px;}
  .schedule-group-grid label input,.schedule-group-grid label select,.schedule-group-grid label textarea{min-height:32px;padding:6px 7px;font-size:12px;}
  .schedule-save-bar{bottom:0;margin:0 -2px;}
  .basic-satellite-card{min-height:auto!important;}
  .basic-satellite-card .detail-satellite-map{height:230px!important;min-height:230px!important;}
}
@media(max-width:420px){
  .schedule-group-grid.compact-2,.schedule-group-grid.compact-3,.schedule-group-grid.compact-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .schedule-group-grid .span-2,.schedule-group-grid .span-4{grid-column:1/-1;}
  .report-options-compact{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .report-options-compact label{font-size:11px;padding:7px;}
}


/* v1.29 사진/지도/사용자/상단 메뉴 안정화 */
.topbar{z-index:1200!important}.main-nav{align-items:center}.nav-account-chip{margin-left:auto!important;order:999!important}.main-nav a[data-menu-id]{order:1}.mobile-menu-toggle{z-index:1201}.toast-messages{z-index:1300!important}.messages{position:relative;z-index:1}.card,.page-title,.detail-scroll-area{scroll-margin-top:74px}.sticky-table thead th{z-index:3!important}.leaflet-control-container,.leaflet-popup{z-index:500!important}
.unified-upload-panel{display:block}.unified-photo-upload{display:grid!important;grid-template-columns:180px auto auto auto minmax(120px,1fr)!important;align-items:end;gap:8px}.upload-category-label{font-weight:800;color:#334155}.upload-category-label select{margin-top:4px}.sr-only-file{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}.upload-picked-text{align-self:center;color:#64748b;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-edit-details{border-top:1px solid var(--line);padding:8px}.photo-edit-details summary{cursor:pointer;font-weight:900;color:#0f172a;list-style:none}.photo-edit-details summary::-webkit-details-marker{display:none}.photo-edit-details summary::after{content:'열기';float:right;font-size:11px;color:#64748b;border:1px solid #cbd5e1;border-radius:999px;padding:2px 7px}.photo-edit-details[open] summary::after{content:'닫기'}.photo-edit-details .photo-edit{margin-top:8px}.photo-edit input[name="note"]{display:none!important}.photo-actions{align-items:center}
.map-control-card{padding:12px!important}.map-control-card h2{margin-bottom:8px!important}.map-control-section{border:1px solid #e2e8f0;border-radius:10px;padding:8px;margin-top:8px;background:#f8fafc}.map-control-section summary{cursor:pointer;font-weight:900;color:#0f172a}.map-control-section>*:not(summary){margin-top:7px}.map-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 6px}.map-check-grid .check-line{font-size:12px;margin:0}.compact-route-tools{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.compact-route-bulk{display:grid;gap:6px;margin-top:6px}.map-panel .compact-card{margin-bottom:10px!important}.map-panel .muted.small-text{font-size:11px;line-height:1.25}
.admin-user-create-form{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-user-create-card{border-color:#bfdbfe;background:#f8fbff}.tomorrow-panel{border-color:#bbf7d0}.home-search-card{display:none!important}
@media(max-width:900px){.nav-account-chip{order:999!important;margin-top:10px!important}.main-nav.mobile-open .nav-account-chip{margin-top:12px!important;border-top:1px solid rgba(255,255,255,.14);padding-top:10px!important}.unified-photo-upload{grid-template-columns:1fr 1fr 1fr!important}.unified-photo-upload .upload-category-label,.unified-photo-upload .upload-picked-text{grid-column:1/-1}.photo-card img{height:120px}.map-check-grid{grid-template-columns:1fr 1fr}.admin-user-create-form{grid-template-columns:1fr 1fr}.admin-user-create-form .span-2{grid-column:1/-1}.topbar{z-index:1200!important}.container{position:relative;z-index:1}}
@media(max-width:420px){.unified-photo-upload{grid-template-columns:1fr 1fr!important}.unified-photo-upload button[type="submit"]{grid-column:1/-1}.map-check-grid{grid-template-columns:1fr}.admin-user-create-form{grid-template-columns:1fr}}


/* v1.30 step42: 현장관리/캘린더 상단 UI 압축 정리 */
.targets-titlebar-v142{align-items:center;margin-bottom:10px;}
.targets-titlebar-v142 .sub{margin-top:2px;}
.targets-page-actions-v142{gap:6px;}
.targets-control-card-v142{padding:12px 14px;}
.targets-command-strip-v142{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;padding:8px 10px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:12px;}
.targets-command-main-v142{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.targets-command-main-v142 form{display:inline-flex;margin:0;}
.targets-command-main-v142 .btn,.targets-page-actions-v142 .btn{padding:7px 11px;border-radius:9px;font-size:13px;}
.targets-command-hint-v142{font-size:12px;color:#64748b;white-space:nowrap;}
.targets-filter-row-v142{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(130px,.8fr) minmax(120px,.7fr) minmax(120px,.7fr) auto auto;gap:6px;align-items:center;}
.targets-filter-row-v142 input,.targets-filter-row-v142 select,.targets-filter-row-v142 .btn{min-height:34px;padding:7px 9px;font-size:13px;border-radius:8px;}
.targets-bulk-details-v142{margin-bottom:10px;}
.targets-bulk-details-v142 summary{padding:10px 12px!important;}
.targets-bulk-details-v142 summary b{font-size:14px;}
.targets-bulk-details-v142 summary span{font-size:12px!important;}
.targets-bulk-grid-v142{display:grid!important;grid-template-columns:repeat(5,minmax(160px,1fr));gap:8px!important;align-items:stretch!important;margin:0!important;padding:10px!important;}
.targets-bulk-grid-v142>div{display:flex;flex-direction:column;gap:6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:9px;min-width:0;}
.targets-bulk-grid-v142>div>b{font-size:13px;color:#0f172a;}
.targets-bulk-grid-v142 select,.targets-bulk-grid-v142 input{min-height:32px;padding:6px 8px;font-size:12px;border-radius:8px;}
.targets-bulk-grid-v142 .btn{min-height:32px;padding:6px 9px;font-size:12px;border-radius:8px;}
.targets-bulk-grid-v142 .inline-check{font-size:12px;line-height:1.1;}
.targets-bulk-grid-v142 .small,.targets-bulk-grid-v142 .hint{font-size:11px;}

.calendar-titlebar-v142{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;margin-bottom:12px;}
.calendar-titlebar-v142 .calendar-title-text h1{margin:0;font-size:24px;line-height:1.1;}
.calendar-titlebar-v142 .calendar-title-text .sub{margin:3px 0 0;font-size:13px;}
.calendar-month-picker-v142{display:flex;align-items:center;justify-content:center;gap:6px;}
.calendar-month-picker-v142 .month-picker-form{gap:6px;}
.calendar-mobile-arrow{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#111827;text-decoration:none;font-size:24px;font-weight:900;line-height:1;}
.desktop-calendar-nav{justify-self:end;display:flex;gap:6px;flex-wrap:nowrap;}
.desktop-calendar-nav .btn{padding:8px 11px;font-size:13px;border-radius:9px;}

@media(max-width:1100px){
  .targets-filter-row-v142{grid-template-columns:1fr 1fr 1fr 1fr;}
  .targets-bulk-grid-v142{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:900px){
  .targets-titlebar-v142{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;}
  .targets-titlebar-v142 h1{font-size:20px!important;}
  .targets-titlebar-v142 .sub{display:none;}
  .targets-page-actions-v142 .btn{padding:7px 9px;font-size:12px;}
  .targets-command-strip-v142{align-items:stretch;flex-direction:column;padding:8px;margin-bottom:8px;}
  .targets-command-main-v142{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;}
  .targets-command-main-v142 .btn,.targets-command-main-v142 form button{width:100%;padding:7px 5px;font-size:12px;}
  .targets-command-hint-v142{display:none;}
  .targets-filter-row-v142{grid-template-columns:1fr 1fr!important;gap:5px!important;}
  .targets-filter-row-v142 input[type=search]{grid-column:1 / -1;}
  .targets-filter-row-v142 input,.targets-filter-row-v142 select,.targets-filter-row-v142 .btn{font-size:12px!important;min-height:32px!important;padding:6px 7px!important;}
  .targets-bulk-details-v142 summary{padding:9px 10px!important;}
  .targets-bulk-details-v142 summary span{display:none;}
  .targets-bulk-grid-v142{grid-template-columns:1fr!important;padding:7px!important;gap:7px!important;}
  .targets-bulk-grid-v142>div{padding:8px!important;}

  .calendar-titlebar-v142{grid-template-columns:1fr!important;gap:6px!important;margin-bottom:8px!important;text-align:center;}
  .calendar-titlebar-v142 .calendar-title-text{display:none;}
  .calendar-month-picker-v142{display:grid!important;grid-template-columns:38px minmax(0,1fr) 38px;gap:5px!important;align-items:center;}
  .calendar-mobile-arrow{display:inline-flex;}
  .desktop-calendar-nav{display:none!important;}
  .calendar-month-picker-v142 .month-picker-form{display:grid!important;grid-template-columns:1fr 1fr;gap:5px!important;}
  .calendar-month-picker-v142 .month-picker-form select{min-width:0!important;width:100%!important;font-size:16px!important;padding:8px 6px!important;}
  .calendar-filter{margin-top:4px;}
}
@media(max-width:430px){
  .targets-filter-row-v142{grid-template-columns:1fr!important;}
  .targets-command-main-v142{grid-template-columns:repeat(3,minmax(0,1fr));}
  .targets-command-main-v142 .btn,.targets-command-main-v142 form button{font-size:11px;padding-left:4px;padding-right:4px;}
}

/* v1.32 dashboard/summary/calendar compact fixes */
.issue-filter-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.issue-filter-actions .btn.small{min-height:30px;padding:6px 10px}
.summary-funding-progress{font-weight:700}
@media (max-width: 720px){
  .issue-filter-actions{justify-content:flex-start;width:100%}
  .issue-filter-actions .btn.small{flex:1 1 auto;text-align:center}
}


/* v1.33: calendar weather diagnostic */
.calendar-weather-status-card { margin-top: 12px; }
.weather-status-line { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.compact-head { gap:10px; }
.alert.warning { background:#fff7ed; color:#9a3412; border:1px solid #fed7aa; }
.badge.danger { background:#fee2e2; color:#991b1b; border-color:#fecaca; }
.badge.warn { background:#fff7ed; color:#9a3412; border-color:#fed7aa; }
@media (max-width: 720px) {
  .calendar-weather-status-card .card-head { flex-direction:row; align-items:center; }
  .calendar-weather-status-card h2 { font-size:15px; }
  .calendar-weather-status-card .hint { display:none; }
  .weather-status-line .badge { font-size:11px; padding:4px 6px; }
}

/* v1.36 calendar weather refinement */
.day-weather-chip.weather-humid { border-color:#c7d2fe; background:#eef2ff; color:#3730a3; }
.day-weather-chip.weather-rain { border-color:#93c5fd; background:#eff6ff; color:#1d4ed8; }
.day-weather-chip .w-icon { line-height:1; }

/* v1.39 step51 - mobile calendar compact funding/action/gap cleanup */
.mobile-funding-badge{display:none;}
@media screen and (max-width:760px){
  .cal-day.mobile-hide-gap{display:none!important;}
  .cal-event-wrap{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:end!important;column-gap:4px!important;padding:4px!important;margin-bottom:4px!important;border-radius:10px!important;overflow:hidden!important;}
  .cal-event-wrap.funding-subsidy{background:#ecfdf5!important;border-color:#86efac!important;}
  .cal-event-wrap.funding-private{background:#fff7ed!important;border-color:#fdba74!important;}
  .cal-event-wrap.funding-exclude{background:#f8fafc!important;border-color:#cbd5e1!important;}
  .cal-event{grid-column:1/2!important;min-width:0!important;padding:1px 3px!important;display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;column-gap:4px!important;align-items:center!important;}
  .cal-event .mobile-funding-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;grid-column:1/2!important;grid-row:1/3!important;min-width:28px!important;height:18px!important;border-radius:999px!important;font-size:9px!important;font-weight:900!important;color:#fff!important;line-height:1!important;padding:0 5px!important;}
  .cal-event .mobile-funding-badge.funding-subsidy{background:#059669!important;}
  .cal-event .mobile-funding-badge.funding-private{background:#ea580c!important;}
  .cal-event .mobile-funding-badge.funding-exclude{background:#64748b!important;}
  .cal-event .event-main{grid-column:2/3!important;font-size:11px!important;line-height:1.12!important;min-width:0!important;}
  .cal-event span:not(.event-badges):not(.mobile-funding-badge){grid-column:2/3!important;font-size:9.6px!important;line-height:1.12!important;color:#475569!important;}
  .cal-event-actions{grid-column:2/3!important;grid-row:1/2!important;align-self:end!important;justify-self:end!important;display:flex!important;flex-wrap:nowrap!important;gap:2px!important;margin:0!important;overflow:visible!important;}
  .cal-event-actions form{display:inline-flex!important;margin:0!important;}
  .cal-event-actions .tiny-btn,.cal-event-actions button{width:auto!important;min-width:25px!important;min-height:16px!important;height:17px!important;padding:1px 3px!important;font-size:8.5px!important;line-height:1!important;border-radius:5px!important;}
  .cal-event-actions .event-move-btn{min-width:25px!important;}
  .cal-event-wrap:has(.cal-event-actions) .cal-event{padding-right:0!important;}
}
@media screen and (max-width:430px){
  .cal-event-actions .tiny-btn,.cal-event-actions button{min-width:23px!important;font-size:8px!important;padding:1px 2px!important;}
  .cal-event .mobile-funding-badge{min-width:26px!important;font-size:8.5px!important;padding:0 4px!important;}
}

/* v1.40 step52: 상세/보고서 오전·오후 날씨 연계 표시 */
.weather-slot-summary{border:1px solid #dbeafe;background:#f8fbff;border-radius:14px;padding:10px 12px;margin:10px 0 14px}.weather-slot-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.weather-slot-head span{font-size:12px;color:#64748b}.weather-slot-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.weather-slot-pill{border:1px solid #e2e8f0;background:#fff;border-radius:12px;padding:9px 10px;display:flex;flex-direction:column;gap:3px}.weather-slot-pill b{font-size:13px;color:#0f172a}.weather-slot-pill span{font-size:13px;line-height:1.35;color:#334155}.weather-slot-pill small{font-size:12px;color:#64748b}.weather-slot-failed{border-color:#fecaca;background:#fff7f7}.report-weather-cell{white-space:pre-line}.report-weather-main{white-space:pre-line}.report-weather-slots{margin-top:5px;padding-top:5px;border-top:1px dashed #94a3b8;font-size:12px;line-height:1.45}.report-weather-slots div+div{margin-top:2px}@media(max-width:760px){.weather-slot-list{grid-template-columns:1fr}.weather-slot-head{align-items:flex-start;flex-direction:column}}

/* v1.41 step53 - mobile calendar move modal and larger action buttons */
.move-date-modal{z-index:1500!important;align-items:center!important;justify-content:center!important;}
.move-date-card{width:min(420px,94vw)!important;max-height:92vh!important;padding:14px!important;border-radius:18px!important;overflow:auto!important;}
.move-date-head{align-items:flex-start!important;padding-bottom:10px!important;}
.move-date-head h2{font-size:18px!important;line-height:1.2!important;}
.move-date-head .hint{margin:4px 0 0!important;font-size:12px!important;line-height:1.35!important;}
.move-date-toolbar{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;margin:12px 0 9px;}
.move-date-toolbar strong{text-align:center;font-size:18px;color:#0f172a;}
.move-month-btn{min-height:38px!important;border-radius:999px!important;font-size:22px!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.move-weekday-row,.move-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.move-weekday-row span{text-align:center;font-size:11px;font-weight:900;color:#64748b;padding:3px 0;}
.move-weekday-row span:first-child{color:#dc2626;}.move-weekday-row span:last-child{color:#2563eb;}
.move-date-cell{min-height:42px;border:1px solid #dbe3ef;background:#fff;border-radius:10px;font-weight:900;color:#1f2937;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;}
.move-date-cell:hover,.move-date-cell:focus{outline:3px solid rgba(37,99,235,.18);border-color:#2563eb;background:#eff6ff;}
.move-date-cell.muted{color:#94a3b8;background:#f8fafc;}
.move-date-cell.today{border-color:#14b8a6;background:#f0fdfa;color:#0f766e;}
.move-date-cell.current{border-color:#f97316;background:#fff7ed;color:#9a3412;box-shadow:inset 0 0 0 2px rgba(249,115,22,.25);}
.move-date-help{margin:10px 0 0;font-size:12px;color:#64748b;line-height:1.45;}
@media screen and (max-width:760px){
  .cal-event-wrap{grid-template-columns:minmax(0,1fr) 94px!important;align-items:stretch!important;column-gap:6px!important;padding:6px!important;margin-bottom:6px!important;border-radius:12px!important;}
  .cal-event{align-self:stretch!important;min-height:92px!important;padding:7px 6px!important;grid-template-columns:36px minmax(0,1fr)!important;column-gap:7px!important;row-gap:3px!important;align-items:center!important;border-radius:10px!important;}
  .cal-event .mobile-funding-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;place-self:center!important;min-width:34px!important;height:26px!important;min-height:26px!important;border-radius:999px!important;font-size:10px!important;font-weight:900!important;line-height:1!important;padding:0 6px!important;text-align:center!important;vertical-align:middle!important;}
  .cal-event .event-main{font-size:12.5px!important;line-height:1.25!important;white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .cal-event span:not(.event-badges):not(.mobile-funding-badge){font-size:10.5px!important;line-height:1.25!important;white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
  .cal-event-actions{grid-column:2/3!important;grid-row:1/2!important;align-self:stretch!important;justify-self:stretch!important;width:94px!important;height:100%!important;display:grid!important;grid-template-columns:1fr!important;grid-auto-rows:minmax(34px,1fr)!important;gap:4px!important;margin:0!important;overflow:visible!important;}
  .cal-event-actions form{display:flex!important;width:100%!important;height:100%!important;margin:0!important;}
  .cal-event-actions .tiny-btn,.cal-event-actions button{width:100%!important;min-width:0!important;min-height:34px!important;height:100%!important;padding:6px 4px!important;font-size:12px!important;font-weight:900!important;line-height:1!important;border-radius:9px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;white-space:nowrap!important;}
  .cal-event-actions .event-move-btn{min-width:0!important;}
  .cal-event-wrap:has(.cal-event-actions) .cal-event{padding-right:6px!important;}
}
@media screen and (max-width:430px){
  .cal-event-wrap{grid-template-columns:minmax(0,1fr) 86px!important;column-gap:5px!important;padding:5px!important;}
  .cal-event{min-height:88px!important;grid-template-columns:34px minmax(0,1fr)!important;padding:6px 5px!important;}
  .cal-event .mobile-funding-badge{min-width:32px!important;height:25px!important;min-height:25px!important;font-size:9.5px!important;padding:0 5px!important;}
  .cal-event-actions{width:86px!important;gap:3px!important;grid-auto-rows:minmax(32px,1fr)!important;}
  .cal-event-actions .tiny-btn,.cal-event-actions button{min-height:32px!important;font-size:11.5px!important;padding:5px 3px!important;border-radius:8px!important;}
  .move-date-card{width:96vw!important;padding:12px!important;}
  .move-date-cell{min-height:39px;border-radius:9px;font-size:13px;}
}

/* v1.42 step54 - mobile calendar compact card + full-height inline actions */
@media screen and (max-width:760px){
  .cal-event-wrap{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:stretch!important;
    column-gap:4px!important;
    padding:4px!important;
    margin-bottom:4px!important;
    border-radius:10px!important;
    min-height:0!important;
  }
  .cal-event{
    grid-column:1/2!important;
    align-self:stretch!important;
    min-height:0!important;
    height:auto!important;
    padding:3px 4px!important;
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    column-gap:5px!important;
    row-gap:1px!important;
    align-items:center!important;
    border-radius:8px!important;
    line-height:1.12!important;
  }
  .cal-event .mobile-funding-badge{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    align-self:center!important;
    justify-self:center!important;
    grid-column:1/2!important;
    grid-row:1/3!important;
    box-sizing:border-box!important;
    width:auto!important;
    min-width:30px!important;
    height:20px!important;
    min-height:20px!important;
    padding:0 5px 1px!important;
    border-radius:999px!important;
    font-size:9.5px!important;
    font-weight:900!important;
    line-height:20px!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .cal-event .event-main{
    grid-column:2/3!important;
    font-size:11.2px!important;
    line-height:1.16!important;
    min-width:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    display:block!important;
  }
  .cal-event .event-main em{font-size:9.8px!important;}
  .cal-event span:not(.event-badges):not(.mobile-funding-badge){
    grid-column:2/3!important;
    font-size:9.8px!important;
    line-height:1.16!important;
    color:#475569!important;
    min-width:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    display:block!important;
  }
  .cal-event-actions{
    grid-column:2/3!important;
    grid-row:1/2!important;
    align-self:stretch!important;
    justify-self:end!important;
    width:auto!important;
    height:auto!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    justify-content:flex-end!important;
    gap:3px!important;
    margin:0!important;
    overflow:visible!important;
  }
  .cal-event-actions form{
    display:flex!important;
    align-items:stretch!important;
    width:auto!important;
    height:auto!important;
    min-height:100%!important;
    margin:0!important;
  }
  .cal-event-actions .tiny-btn,
  .cal-event-actions button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:34px!important;
    min-width:34px!important;
    height:100%!important;
    min-height:40px!important;
    padding:0 3px!important;
    border-radius:8px!important;
    font-size:10.5px!important;
    font-weight:900!important;
    line-height:1!important;
    text-align:center!important;
    white-space:nowrap!important;
  }
  .cal-event-actions .event-move-btn{min-width:34px!important;}
  .cal-event-wrap:has(.cal-event-actions) .cal-event{padding-right:4px!important;}
}
@media screen and (max-width:430px){
  .cal-event-wrap{column-gap:3px!important;padding:4px!important;}
  .cal-event{grid-template-columns:28px minmax(0,1fr)!important;padding:3px 4px!important;column-gap:4px!important;}
  .cal-event .mobile-funding-badge{
    min-width:28px!important;
    height:19px!important;
    min-height:19px!important;
    font-size:9px!important;
    line-height:19px!important;
    padding:0 4px 1px!important;
  }
  .cal-event-actions{gap:2px!important;}
  .cal-event-actions .tiny-btn,
  .cal-event-actions button{
    width:31px!important;
    min-width:31px!important;
    min-height:38px!important;
    font-size:10px!important;
    border-radius:7px!important;
    padding:0 2px!important;
  }
}

/* v1.43 step55 - mobile target management compact card layout */
.targets-mobile-count-v143{display:none;}
.targets-mobile-list-v143{display:none;}
.targets-mobile-empty-v143{padding:18px 10px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;}
@media(max-width:900px){
  .targets-titlebar-v142{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:6px!important;margin-bottom:6px!important;}
  .targets-title-copy-v143{min-width:0!important;}
  .targets-titlebar-v142 h1{display:flex!important;align-items:center!important;gap:6px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:18px!important;line-height:1!important;margin:0!important;}
  .targets-mobile-count-v143{display:inline-flex!important;align-items:center;justify-content:center;min-height:20px;padding:2px 7px;border-radius:999px;background:#e0f2fe;color:#075985;font-size:11px;font-weight:900;line-height:1;}
  .targets-titlebar-v142 .sub{display:none!important;}
  .targets-page-actions-v142{width:auto!important;display:flex!important;flex-wrap:nowrap!important;overflow:visible!important;padding:0!important;gap:4px!important;justify-content:flex-end!important;}
  .targets-page-actions-v142 .btn{min-height:28px!important;padding:5px 7px!important;font-size:10.5px!important;border-radius:7px!important;}
  .targets-page-actions-v142 .btn:last-child{display:none!important;}

  .targets-control-card-v142{padding:8px!important;margin-bottom:7px!important;}
  .targets-command-strip-v142{border:0!important;background:transparent!important;padding:0!important;margin:0 0 6px!important;}
  .targets-command-main-v142{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:4px!important;}
  .targets-command-main-v142 .btn,.targets-command-main-v142 form button{min-height:30px!important;padding:5px 4px!important;font-size:11px!important;border-radius:7px!important;}
  .issue-filter-chips{margin-bottom:6px!important;gap:4px!important;padding-bottom:2px!important;}
  .chip-link{padding:5px 8px!important;font-size:10.5px!important;min-height:27px!important;}
  .targets-filter-row-v142{display:grid!important;grid-template-columns:1fr auto auto!important;gap:4px!important;align-items:center!important;}
  .targets-filter-row-v142 input[type=search]{grid-column:1/-1!important;min-height:32px!important;font-size:12px!important;}
  .targets-filter-row-v142 select,.targets-filter-row-v142 input[type=date]{min-width:0!important;min-height:29px!important;font-size:10.5px!important;padding:4px 5px!important;border-radius:7px!important;}
  .targets-filter-row-v142 button.btn,.targets-filter-row-v142 a.btn{min-height:29px!important;padding:4px 7px!important;font-size:10.5px!important;border-radius:7px!important;}
  .targets-filter-row-v142 input[name="date_start"],.targets-filter-row-v142 input[name="date_end"]{display:none!important;}

  .targets-bulk-details-v142{margin-bottom:7px!important;}
  .targets-bulk-details-v142 summary{min-height:34px!important;padding:8px 10px!important;border-radius:9px!important;}
  .targets-bulk-details-v142 summary b{font-size:13px!important;}

  .targets-desktop-table-v143{display:none!important;}
  .targets-mobile-list-v143{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;}
  .targets-mobile-card-v143{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;align-items:stretch;background:#fff;border:1px solid #e2e8f0;border-left:5px solid #94a3b8;border-radius:12px;padding:7px 8px;box-shadow:0 1px 2px rgba(15,23,42,.05);}
  .targets-mobile-card-v143.funding-subsidy{border-left-color:#059669;background:linear-gradient(90deg,#ecfdf5 0,#fff 22%);}
  .targets-mobile-card-v143.funding-private{border-left-color:#ea580c;background:linear-gradient(90deg,#fff7ed 0,#fff 22%);}
  .targets-mobile-card-v143.funding-exclude{border-left-color:#64748b;background:linear-gradient(90deg,#f8fafc 0,#fff 22%);}
  .targets-mobile-check-v143{display:flex;align-items:center;justify-content:center;border-radius:9px;background:#f8fafc;border:1px solid #e2e8f0;min-height:100%;}
  .targets-mobile-check-v143 input{width:18px;height:18px;margin:0;}
  .targets-mobile-body-v143{min-width:0;display:flex;flex-direction:column;gap:4px;}
  .targets-mobile-head-v143{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;align-items:center;}
  .targets-mobile-owner-v143{min-width:0;text-decoration:none;color:#0f172a;font-size:14px;line-height:1.15;}
  .targets-mobile-owner-v143 b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .targets-mobile-head-v143 .badge{min-height:22px;align-items:center;justify-content:center;font-size:10px!important;padding:2px 6px!important;line-height:1!important;}
  .targets-mobile-tags-v143{display:flex;align-items:center;gap:3px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;}
  .targets-mobile-tags-v143::-webkit-scrollbar{display:none;}
  .targets-mobile-tags-v143 span{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:20px;padding:2px 6px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:10px;font-weight:900;line-height:1;}
  .targets-mobile-tags-v143 .funding-badge{min-height:20px!important;line-height:1!important;padding:2px 7px!important;font-size:10px!important;}
  .targets-mobile-address-v143{font-size:11px;line-height:1.2;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .targets-mobile-meta-v143{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;}
  .targets-mobile-meta-v143 span{min-width:0;border:1px solid #e2e8f0;background:#f8fafc;border-radius:8px;padding:4px 4px;line-height:1.05;}
  .targets-mobile-meta-v143 small{display:block;color:#64748b;font-size:9px;font-weight:800;margin-bottom:2px;}
  .targets-mobile-meta-v143 b{display:block;min-width:0;color:#111827;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .targets-mobile-note-v143{font-size:10.5px;line-height:1.2;color:#7c2d12;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:4px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .targets-mobile-actions-v143{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-top:1px;}
  .targets-mobile-actions-v143 .btn{min-height:29px!important;padding:4px 2px!important;font-size:10.5px!important;border-radius:7px!important;min-width:0!important;width:100%!important;}
}
@media(max-width:430px){
  .targets-page-actions-v142{display:none!important;}
  .targets-filter-row-v142{grid-template-columns:1fr 1fr!important;}
  .targets-filter-row-v142 input[type=search]{grid-column:1/-1!important;}
  .targets-filter-row-v142 select[name="group"],.targets-filter-row-v142 select[name="status"]{grid-column:auto!important;}
  .targets-filter-row-v142 select[name="funding"]{grid-column:1/-1!important;}
  .targets-filter-row-v142 .btn{width:100%!important;}
  .targets-mobile-meta-v143{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* v1.44 step56 - mobile target filters and selected action menu cleanup */
.chip-mobile-label{display:none;}
.bulk-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;min-width:0;}
.bulk-panel-heading b{font-size:13px;color:#0f172a;line-height:1.15;}
.bulk-panel-heading small{font-size:11px;color:#64748b;font-weight:700;line-height:1.2;text-align:right;}
@media(max-width:900px){
  .targets-control-card-v142 .issue-filter-chips{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:5px!important;
    overflow:visible!important;
    flex-wrap:unset!important;
    padding-bottom:0!important;
    margin-bottom:7px!important;
  }
  .targets-control-card-v142 .chip-link{
    width:100%!important;
    min-width:0!important;
    min-height:31px!important;
    box-sizing:border-box!important;
    padding:5px 4px!important;
    border-radius:9px!important;
    font-size:10.5px!important;
    line-height:1.05!important;
    white-space:normal!important;
    text-align:center!important;
  }
  .targets-control-card-v142 .chip-desktop-label{display:none!important;}
  .targets-control-card-v142 .chip-mobile-label{display:inline!important;}
  .targets-bulk-details-v142{
    border-radius:12px!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .targets-bulk-details-v142 summary{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:6px!important;
    min-height:38px!important;
    padding:9px 10px!important;
    background:#f8fafc!important;
  }
  .targets-bulk-details-v142 summary b{
    font-size:14px!important;
    line-height:1.1!important;
  }
  .targets-bulk-details-v142 summary span{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    max-width:160px!important;
    min-height:22px!important;
    padding:3px 7px!important;
    border-radius:999px!important;
    background:#e0f2fe!important;
    color:#075985!important;
    font-size:10.5px!important;
    font-weight:900!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .targets-bulk-grid-v142{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:8px!important;
    background:#f8fafc!important;
  }
  .targets-bulk-grid-v142>.bulk-panel{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
    padding:9px!important;
    border-radius:12px!important;
    background:#fff!important;
    border:1px solid #dbe3ef!important;
    box-shadow:0 1px 2px rgba(15,23,42,.04)!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.bulk-schedule-panel{order:1;border-color:#bfdbfe!important;background:#eff6ff!important;}
  .targets-bulk-grid-v142>.bulk-panel.bulk-change-panel{order:2;}
  .targets-bulk-grid-v142>.bulk-panel.bulk-report-panel{order:3;}
  .targets-bulk-grid-v142>.bulk-panel.bulk-export-panel{order:4;}
  .targets-bulk-grid-v142>.bulk-panel.bulk-delete-panel{order:5;border-color:#fecaca!important;background:#fff7f7!important;}
  .targets-bulk-grid-v142 .bulk-panel-heading{
    padding-bottom:4px!important;
    border-bottom:1px dashed #dbe3ef!important;
  }
  .targets-bulk-grid-v142 .bulk-panel-heading small{
    max-width:54%!important;
  }
  .targets-bulk-grid-v142 select,
  .targets-bulk-grid-v142 input:not([type="checkbox"]){
    width:100%!important;
    max-width:none!important;
    min-height:34px!important;
    padding:7px 8px!important;
    font-size:12px!important;
    border-radius:8px!important;
  }
  .targets-bulk-grid-v142 .inline-check{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-height:30px!important;
    margin:0!important;
    padding:6px 8px!important;
    border:1px solid #e2e8f0!important;
    background:#f8fafc!important;
    border-radius:9px!important;
    font-size:11.5px!important;
    line-height:1.2!important;
  }
  .targets-bulk-grid-v142 .inline-check input{margin:0!important;flex:0 0 auto!important;}
  .targets-bulk-grid-v142 .btn{
    width:100%!important;
    min-height:36px!important;
    padding:7px 8px!important;
    border-radius:9px!important;
    font-size:12px!important;
    font-weight:900!important;
  }
  .targets-bulk-grid-v142 .bulk-schedule-panel .btn,
  .targets-bulk-grid-v142 .bulk-delete-panel .btn{
    min-height:42px!important;
    font-size:13px!important;
  }
  .targets-bulk-grid-v142 .bulk-report-panel,
  .targets-bulk-grid-v142 .bulk-export-panel{
    grid-template-columns:1fr!important;
  }
  .targets-bulk-grid-v142 .bulk-export-panel .export-btn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}
@media(max-width:430px){
  .targets-control-card-v142 .issue-filter-chips{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:4px!important;
  }
  .targets-control-card-v142 .chip-link{
    min-height:30px!important;
    padding:4px 2px!important;
    font-size:10px!important;
  }
  .targets-bulk-details-v142 summary span{
    max-width:132px!important;
    font-size:10px!important;
    padding-left:6px!important;
    padding-right:6px!important;
  }
  .targets-bulk-grid-v142>.bulk-panel{padding:8px!important;gap:5px!important;}
  .bulk-panel-heading{align-items:center!important;}
  .bulk-panel-heading small{font-size:10px!important;}
}

/* v1.45 step57 - mobile target management compact filter/action UX */
.targets-mobile-issue-select-v145,
.targets-mobile-filter-details-v145,
.targets-bulk-mobile-tabs-v145{display:none;}
@media(max-width:900px){
  /* 모바일에서는 상단 빠른 작업 버튼을 제거하고 검색/선택작업으로 통합 */
  .targets-page-actions-v142,
  .targets-command-strip-v142{display:none!important;}
  .targets-control-card-v142{padding:7px!important;margin-bottom:7px!important;}
  .targets-control-card-v142 .active-issue-filter{padding:7px 8px!important;margin-bottom:6px!important;border-radius:9px!important;}
  .targets-control-card-v142 .active-issue-filter span{display:none!important;}

  /* 문제 버튼 칩은 모바일에서 드롭다운 하나로 통합 */
  .targets-control-card-v142 .targets-issue-chips-v145{display:none!important;}
  .targets-filter-row-v145{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 104px!important;
    gap:5px!important;
    align-items:stretch!important;
  }
  .targets-filter-row-v145 input[type=search]{
    grid-column:1 / -1!important;
    min-height:34px!important;
    padding:7px 9px!important;
    font-size:12.5px!important;
    border-radius:9px!important;
  }
  .targets-mobile-issue-select-v145{
    display:block!important;
    min-width:0!important;
    min-height:32px!important;
    padding:5px 7px!important;
    font-size:11.5px!important;
    border-radius:8px!important;
  }
  .targets-mobile-filter-details-v145{
    display:block!important;
    min-width:0!important;
  }
  .targets-mobile-filter-details-v145 summary{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:32px!important;
    padding:5px 7px!important;
    border:1px solid #cbd5e1!important;
    border-radius:8px!important;
    background:#f8fafc!important;
    color:#334155!important;
    font-size:11.5px!important;
    font-weight:900!important;
    list-style:none!important;
  }
  .targets-mobile-filter-details-v145 summary::-webkit-details-marker{display:none!important;}
  .targets-mobile-filter-grid-v145{
    grid-column:1 / -1!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:5px!important;
    margin-top:5px!important;
    padding:6px!important;
    border:1px solid #e2e8f0!important;
    border-radius:10px!important;
    background:#f8fafc!important;
  }
  .targets-mobile-filter-grid-v145 select,
  .targets-mobile-filter-grid-v145 input[type=date]{
    width:100%!important;
    min-height:31px!important;
    padding:5px 7px!important;
    font-size:11px!important;
    border-radius:8px!important;
  }
  .targets-mobile-filter-grid-v145 select[name="funding"]{grid-column:1 / -1!important;}
  .targets-filter-row-v145 > input[type="date"],
  .targets-filter-row-v145 > select[name="group"],
  .targets-filter-row-v145 > select[name="status"],
  .targets-filter-row-v145 > select[name="funding"]{display:none!important;}
  .targets-filter-row-v145 .btn{
    width:100%!important;
    min-height:32px!important;
    padding:5px 6px!important;
    font-size:11.5px!important;
    border-radius:8px!important;
  }

  /* 선택작업은 모바일 탭 1개 영역만 펼치도록 축소 */
  .targets-bulk-details-v142 summary{min-height:36px!important;padding:8px 10px!important;}
  .targets-bulk-grid-v142{gap:6px!important;padding:7px!important;}
  .targets-bulk-mobile-tabs-v145{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:4px!important;
    order:0!important;
  }
  .targets-bulk-mobile-tabs-v145 button{
    border:1px solid #cbd5e1!important;
    background:#fff!important;
    color:#334155!important;
    border-radius:8px!important;
    min-height:31px!important;
    padding:4px 2px!important;
    font-size:10.5px!important;
    font-weight:900!important;
  }
  .targets-bulk-mobile-tabs-v145 button.active{
    border-color:#2563eb!important;
    background:#dbeafe!important;
    color:#1d4ed8!important;
  }
  .targets-bulk-grid-v142>.bulk-panel{display:none!important;}
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145{display:grid!important;}
  .targets-bulk-grid-v142>.bulk-panel{padding:8px!important;gap:5px!important;border-radius:10px!important;box-shadow:none!important;}
  .targets-bulk-grid-v142 .bulk-panel-heading{padding-bottom:3px!important;margin-bottom:1px!important;}
  .targets-bulk-grid-v142 .bulk-panel-heading b{font-size:12.5px!important;}
  .targets-bulk-grid-v142 .bulk-panel-heading small{font-size:10px!important;max-width:58%!important;}
  .targets-bulk-grid-v142 select,
  .targets-bulk-grid-v142 input:not([type="checkbox"]){min-height:31px!important;padding:5px 7px!important;font-size:11px!important;}
  .targets-bulk-grid-v142 .inline-check{min-height:28px!important;padding:5px 7px!important;font-size:11px!important;border-radius:8px!important;}
  .targets-bulk-grid-v142 .btn{min-height:33px!important;padding:6px 8px!important;font-size:11.5px!important;border-radius:8px!important;}
  .targets-bulk-grid-v142 .bulk-schedule-panel .btn,
  .targets-bulk-grid-v142 .bulk-delete-panel .btn{min-height:36px!important;font-size:12px!important;}
  .targets-bulk-grid-v142 .bulk-export-panel{
    grid-template-columns:1fr 1fr!important;
  }
  .targets-bulk-grid-v142 .bulk-export-panel .bulk-panel-heading,
  .targets-bulk-grid-v142 .bulk-export-panel .inline-check{grid-column:1 / -1!important;}
  .targets-bulk-grid-v142 .bulk-export-panel .export-btn{grid-column:auto!important;}
}
@media(max-width:430px){
  .targets-filter-row-v145{grid-template-columns:minmax(0,1fr) 92px!important;}
  .targets-mobile-filter-grid-v145{grid-template-columns:1fr!important;}
  .targets-bulk-mobile-tabs-v145 button{font-size:10px!important;min-height:30px!important;}
}
@media(min-width:901px){
  .targets-mobile-filter-details-v145{display:contents!important;}
  .targets-mobile-filter-details-v145>summary{display:none!important;}
  .targets-mobile-filter-grid-v145{display:contents!important;}
}

/* v1.46 step58 - desktop target management optimized layout */
@media(min-width:901px){
  .targets-titlebar-v142{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    margin-bottom:8px!important;
  }
  .targets-titlebar-v142 h1{font-size:24px!important;line-height:1.05!important;margin:0!important;}
  .targets-titlebar-v142 .sub{font-size:12.5px!important;margin-top:3px!important;color:#64748b!important;}
  .targets-page-actions-v146{display:flex!important;justify-content:flex-end!important;gap:6px!important;}
  .targets-page-actions-v146 .btn{min-height:34px!important;padding:7px 12px!important;font-size:13px!important;border-radius:9px!important;}

  /* 상단 중복 버튼 영역은 제거하고 검색/필터를 첫 작업 영역으로 사용 */
  .targets-command-strip-v142{display:none!important;}
  .targets-control-card-v142{padding:10px 12px!important;margin-bottom:9px!important;}
  .targets-control-card-v142 .active-issue-filter{margin-bottom:8px!important;padding:9px 11px!important;border-radius:10px!important;}

  /* 데스크탑도 긴 문제 버튼 묶음 대신 문제필터 select 하나로 통합 */
  .targets-control-card-v142 .targets-issue-chips-v145{display:none!important;}
  .targets-mobile-issue-select-v145{display:block!important;}
  .targets-mobile-filter-details-v145{display:contents!important;}
  .targets-mobile-filter-details-v145>summary{display:none!important;}
  .targets-mobile-filter-grid-v145{display:contents!important;}

  .targets-filter-row-v145{
    display:grid!important;
    grid-template-columns:minmax(280px,2.3fr) minmax(145px,.9fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(130px,.75fr) minmax(120px,.7fr) minmax(120px,.7fr) auto auto!important;
    gap:6px!important;
    align-items:center!important;
  }
  .targets-filter-row-v145 input,
  .targets-filter-row-v145 select,
  .targets-filter-row-v145 .btn{
    min-height:34px!important;
    padding:7px 9px!important;
    font-size:12.5px!important;
    border-radius:8px!important;
  }
  .targets-filter-row-v145 input[type="search"]{min-width:0!important;}
  .targets-filter-row-v145 .btn{white-space:nowrap!important;padding-left:12px!important;padding-right:12px!important;}

  /* 선택작업: 데스크탑도 탭형으로 전환해 한 카테고리만 표시 */
  .targets-bulk-details-v142{margin-bottom:8px!important;border-radius:12px!important;}
  .targets-bulk-details-v142 summary{
    min-height:38px!important;
    padding:9px 12px!important;
    border-radius:12px 12px 0 0!important;
  }
  .targets-bulk-details-v142 summary b{font-size:14px!important;}
  .targets-bulk-details-v142 summary span{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:23px!important;
    padding:3px 9px!important;
    border-radius:999px!important;
    background:#e0f2fe!important;
    color:#075985!important;
    font-size:11px!important;
    font-weight:900!important;
  }
  .targets-bulk-grid-v142{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    padding:9px!important;
    background:#f8fafc!important;
  }
  .targets-bulk-mobile-tabs-v145{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:5px!important;
  }
  .targets-bulk-mobile-tabs-v145 button{
    border:1px solid #cbd5e1!important;
    background:#fff!important;
    color:#334155!important;
    border-radius:999px!important;
    min-height:32px!important;
    padding:6px 13px!important;
    font-size:12px!important;
    font-weight:900!important;
    cursor:pointer!important;
  }
  .targets-bulk-mobile-tabs-v145 button.active{
    border-color:#2563eb!important;
    background:#dbeafe!important;
    color:#1d4ed8!important;
  }
  .targets-bulk-grid-v142>.bulk-panel{display:none!important;}
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145{
    display:grid!important;
    gap:7px!important;
    align-items:end!important;
    background:#fff!important;
    border:1px solid #dbe3ef!important;
    border-radius:11px!important;
    padding:10px!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145 .bulk-panel-heading{
    grid-column:1 / -1!important;
    align-items:center!important;
    padding-bottom:4px!important;
    border-bottom:1px dashed #dbe3ef!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145 .bulk-panel-heading b{font-size:13.5px!important;}
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145 .bulk-panel-heading small{font-size:11px!important;}

  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-change-panel{
    grid-template-columns:repeat(5,minmax(0,1fr)) auto!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-schedule-panel{
    grid-template-columns:minmax(240px,1fr) auto!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-report-panel{
    grid-template-columns:repeat(4,minmax(0,1fr)) auto!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-export-panel{
    grid-template-columns:repeat(3,minmax(0,1fr)) auto auto!important;
  }
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-delete-panel{
    grid-template-columns:minmax(260px,1fr) auto!important;
    border-color:#fecaca!important;
    background:#fffafa!important;
  }
  .targets-bulk-grid-v142 select,
  .targets-bulk-grid-v142 input:not([type="checkbox"]){
    width:100%!important;
    max-width:none!important;
    min-height:33px!important;
    padding:6px 8px!important;
    font-size:12px!important;
    border-radius:8px!important;
  }
  .targets-bulk-grid-v142 .inline-check{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-height:33px!important;
    margin:0!important;
    padding:6px 9px!important;
    border:1px solid #e2e8f0!important;
    background:#f8fafc!important;
    border-radius:9px!important;
    font-size:12px!important;
    line-height:1.15!important;
  }
  .targets-bulk-grid-v142 .inline-check input{margin:0!important;flex:0 0 auto!important;}
  .targets-bulk-grid-v142 .btn{
    min-height:33px!important;
    padding:6px 12px!important;
    font-size:12px!important;
    border-radius:8px!important;
    white-space:nowrap!important;
  }

  /* 표 영역은 더 조밀하게 보이되, 긴 내용은 말줄임 유지 */
  .targets-desktop-table-v143{max-height:calc(100vh - 310px);overflow:auto;}
  .target-list-table th,
  .target-list-table td{padding:7px 8px!important;font-size:12px!important;line-height:1.22!important;}
  .target-list-table td.col-owner{max-width:150px!important;}
  .target-list-table td.col-address{max-width:260px!important;}
  .target-list-table td.col-note{max-width:210px!important;}
  .target-list-table td.col-pesticide{max-width:150px!important;}
  .row-actions{gap:5px!important;margin-top:3px!important;}
  .row-actions a{font-size:11px!important;}
}

@media(min-width:901px) and (max-width:1280px){
  .targets-filter-row-v145{
    grid-template-columns:minmax(240px,1.6fr) minmax(135px,.8fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(120px,.7fr) auto auto!important;
  }
  .targets-filter-row-v145 input[name="date_start"],
  .targets-filter-row-v145 input[name="date_end"]{display:none!important;}
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-change-panel{grid-template-columns:repeat(3,minmax(0,1fr)) auto!important;}
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-report-panel{grid-template-columns:repeat(3,minmax(0,1fr)) auto!important;}
  .targets-bulk-grid-v142>.bulk-panel.mobile-active-v145.bulk-export-panel{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}

/* v1.47 step59 - expose bulk action category buttons as a single top row */
.targets-bulk-card-v147{
  padding:8px!important;
  margin-bottom:9px!important;
}
.targets-bulk-shell-v147{
  border:1px solid #dbe3ef!important;
  border-radius:12px!important;
  background:#f8fafc!important;
  overflow:hidden!important;
}
.targets-bulk-topbar-v147{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  gap:8px!important;
  align-items:center!important;
  padding:7px 8px!important;
  border-bottom:1px solid #e2e8f0!important;
  background:#fff!important;
}
.targets-bulk-title-v147{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:0!important;
  white-space:nowrap!important;
}
.targets-bulk-title-v147 b{
  font-size:13.5px!important;
  color:#0f172a!important;
}
.targets-bulk-title-v147 span{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:22px!important;
  padding:2px 8px!important;
  border-radius:999px!important;
  background:#e0f2fe!important;
  color:#075985!important;
  font-size:11px!important;
  font-weight:900!important;
}
.targets-bulk-tabs-v147{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:5px!important;
  align-items:center!important;
  min-width:0!important;
}
.targets-bulk-tabs-v147 button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:31px!important;
  padding:5px 6px!important;
  border:1px solid #cbd5e1!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#334155!important;
  font-size:12px!important;
  font-weight:900!important;
  cursor:pointer!important;
}
.targets-bulk-tabs-v147 button.active{
  border-color:#2563eb!important;
  background:#dbeafe!important;
  color:#1d4ed8!important;
}
.targets-bulk-panels-v147{
  margin:0!important;
  padding:7px!important;
  background:#f8fafc!important;
  border:0!important;
  border-radius:0!important;
}
.targets-bulk-panels-v147>.bulk-panel{
  margin:0!important;
}
@media(min-width:901px){
  .targets-bulk-card-v147{padding:9px!important;}
  .targets-bulk-topbar-v147{
    grid-template-columns:auto minmax(360px,1fr)!important;
    padding:8px 10px!important;
  }
  .targets-bulk-tabs-v147{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(82px,1fr))!important;
    max-width:560px!important;
    margin-left:auto!important;
  }
  .targets-bulk-tabs-v147 button{
    min-height:32px!important;
    border-radius:999px!important;
    font-size:12px!important;
  }
  .targets-bulk-panels-v147{
    padding:8px!important;
  }
  .targets-desktop-table-v143{max-height:calc(100vh - 265px)!important;}
}
@media(max-width:900px){
  .targets-bulk-card-v147{padding:6px!important;margin-bottom:7px!important;}
  .targets-bulk-topbar-v147{
    grid-template-columns:1fr!important;
    gap:5px!important;
    padding:6px!important;
  }
  .targets-bulk-title-v147{
    justify-content:space-between!important;
    gap:5px!important;
  }
  .targets-bulk-title-v147 b{font-size:13px!important;}
  .targets-bulk-title-v147 span{
    min-height:20px!important;
    max-width:190px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    font-size:10.5px!important;
    padding:2px 7px!important;
  }
  .targets-bulk-tabs-v147{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:4px!important;
  }
  .targets-bulk-tabs-v147 button{
    min-height:30px!important;
    padding:4px 2px!important;
    font-size:10.5px!important;
    border-radius:8px!important;
  }
  .targets-bulk-panels-v147{
    padding:6px!important;
  }
}
@media(max-width:390px){
  .targets-bulk-title-v147 span{max-width:150px!important;font-size:10px!important;}
  .targets-bulk-tabs-v147 button{font-size:10px!important;min-height:29px!important;}
}


/* v1.53 step65 - mobile calendar list weekday cleanup */
.mobile-date-weekday{display:none;}
@media screen and (max-width:760px){
  .mobile-weekday-strip{display:none!important;}
  .cal-date-main{display:inline-flex!important;align-items:center!important;gap:5px!important;font-weight:900!important;}
  .mobile-date-weekday{display:inline-flex!important;align-items:center!important;justify-content:center;min-width:20px;height:20px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:900;line-height:1;}
  .weekday-0 .mobile-date-weekday{background:#fee2e2;color:#dc2626!important;}
  .weekday-6 .mobile-date-weekday{background:#dbeafe;color:#2563eb!important;}
}

/* v1.56 step68 - mobile always-visible calendar shortcut beside menu */
@media screen and (max-width:900px){
  header.topbar{
    grid-template-columns:minmax(0,1fr) auto auto !important;
  }
  header.topbar .mobile-calendar-fixed-link{
    display:inline-flex !important;
    grid-column:2 / 3 !important;
    grid-row:1 !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:38px !important;
    min-width:54px !important;
    padding:8px 12px !important;
    border-radius:9px !important;
    border:1px solid rgba(255,255,255,.28) !important;
    background:#0f766e !important;
    color:#fff !important;
    text-decoration:none !important;
    font-size:13px !important;
    font-weight:900 !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
  header.topbar .mobile-calendar-fixed-link:hover{
    background:#0d9488 !important;
    color:#fff !important;
  }
  header.topbar .mobile-calendar-fixed-link.active{
    background:#14b8a6 !important;
    border-color:rgba(255,255,255,.52) !important;
  }
  #mobileMenuToggle.mobile-menu-toggle{
    grid-column:3 / 4 !important;
    grid-row:1 !important;
  }
  header.topbar #mainNav.main-nav{
    grid-column:1 / -1 !important;
  }
}
@media screen and (max-width:420px){
  header.topbar .mobile-calendar-fixed-link{
    min-width:48px !important;
    padding:8px 9px !important;
    font-size:12px !important;
  }
  #mobileMenuToggle.mobile-menu-toggle{
    min-width:68px !important;
    padding:8px 9px !important;
    font-size:12px !important;
  }
}


/* v1.57 step69 - pesticide 1~4 selectable slot UI */
.pesticide-slot-panel{border:1px solid var(--line,#d8dee9);border-radius:12px;padding:10px;background:#fbfdff;width:100%;box-sizing:border-box;}
.pesticide-slot-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-size:.9rem;}
.pesticide-slot-head span{font-size:.82rem;color:#64748b;}
.pesticide-slot-grid{display:grid;gap:6px;}
.pesticide-slot-labels,.pesticide-slot-row{display:grid;grid-template-columns:34px minmax(120px,1.4fr) 74px 74px 92px 96px;gap:6px;align-items:center;}
.pesticide-slot-labels{font-size:.74rem;color:#64748b;font-weight:700;padding:0 2px;}
.pesticide-slot-row .slot-no{display:flex;align-items:center;justify-content:center;height:34px;border-radius:8px;background:#eef2f7;font-weight:800;color:#475569;}
.pesticide-slot-row select,.pesticide-slot-row input{min-width:0;width:100%;height:34px;font-size:.82rem;padding:4px 6px;box-sizing:border-box;}
.pesticide-slot-row input[readonly]{background:#f8fafc;color:#334155;}
.pesticide-slot-total{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:.82rem;color:#475569;}
.pesticide-slot-total b{color:#0f172a;}
.pesticide-slot-total small{flex-basis:100%;color:#64748b;}
.pesticide-slot-panel-compact{padding:7px;border-radius:10px;}
.pesticide-slot-panel-compact .pesticide-slot-head{margin-bottom:5px;}
.pesticide-slot-panel-compact .pesticide-slot-labels{display:none;}
.pesticide-slot-panel-compact .pesticide-slot-row{grid-template-columns:26px minmax(100px,1fr) 62px 62px 78px 82px;gap:4px;}
.pesticide-slot-panel-compact .pesticide-slot-row select,.pesticide-slot-panel-compact .pesticide-slot-row input{height:30px;font-size:.76rem;padding:3px 4px;}
@media(max-width:900px){
  .pesticide-slot-labels{display:none;}
  .pesticide-slot-row{grid-template-columns:28px 1fr 66px 64px;}
  .pesticide-slot-row [data-slot-price],.pesticide-slot-row [data-slot-amount]{display:none;}
  .pesticide-slot-total{font-size:.78rem;}
}


/* v1.58 약제 종류 수 + 팝업 선택 */
.pesticide-plan-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0}
.pesticide-plan-control label{display:flex;align-items:center;gap:6px;font-weight:700}
.pesticide-plan-control select{min-width:76px}
.pesticide-plan-summary{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.pesticide-plan-summary span{display:inline-flex;gap:3px;align-items:center;border:1px solid var(--border,#d6dbe1);border-radius:999px;padding:4px 8px;background:#fff;font-size:.85rem}
.pesticide-plan-summary .empty{color:#777;background:#f8fafc}
.pesticide-plan-summary em{font-style:normal;color:#64748b}
.pesticide-plan-modal[hidden]{display:none!important}
.pesticide-plan-modal{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.pesticide-plan-dialog{width:min(980px,100%);max-height:86vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(0,0,0,.25);padding:14px}
.pesticide-plan-dialog-head,.pesticide-plan-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.pesticide-plan-grid{display:grid;gap:6px}.pesticide-plan-grid .pesticide-slot-labels,.pesticide-plan-grid .pesticide-slot-row{grid-template-columns:42px minmax(180px,1.6fr) 78px 110px 110px 110px}
.pesticide-plan-grid input[readonly]{background:#f8fafc}
@media(max-width:760px){.pesticide-plan-modal{align-items:flex-end;padding:0}.pesticide-plan-dialog{max-height:92vh;border-radius:16px 16px 0 0}.pesticide-plan-grid .pesticide-slot-labels{display:none}.pesticide-plan-grid .pesticide-slot-row{display:grid;grid-template-columns:30px 1fr 70px;gap:6px;border:1px solid #e5e7eb;border-radius:12px;padding:8px}.pesticide-plan-grid .pesticide-slot-row input,.pesticide-plan-grid .pesticide-slot-row select{min-width:0}.pesticide-plan-grid .pesticide-slot-row [data-slot-count],.pesticide-plan-grid .pesticide-slot-row [data-slot-price],.pesticide-plan-grid .pesticide-slot-row [data-slot-amount]{grid-column:2 / 4}}

/* v1.65 step77 - 상세 상단 중복 제거 및 요약 빠른수정 팝업 */
.detail-clean-title h1{margin-bottom:4px!important;}
.detail-clean-title .sub{font-size:15px!important;line-height:1.35!important;color:#64748b!important;}
.compact-summary-head{margin-bottom:8px!important;}
.compact-summary-head .summary-tap-hint{font-size:12px;color:#64748b;font-weight:800;margin-left:auto;white-space:nowrap;}
.summary-quick-edit-modal[hidden]{display:none!important;}
.summary-quick-edit-modal{position:fixed;inset:0;z-index:2147483000;display:block!important;}
.summary-quick-backdrop{position:absolute;inset:0;z-index:0;background:rgba(15,23,42,.50);backdrop-filter:blur(2px);}
.summary-quick-dialog{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,calc(100vw - 28px));height:auto;max-height:min(90dvh,760px);background:#fff;border:1px solid #dbe4ef;border-radius:22px;box-shadow:0 24px 80px rgba(15,23,42,.28);display:flex;flex-direction:column;overflow:hidden;}
.summary-quick-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex:0 0 auto;}
.summary-quick-head b{display:block;font-size:18px;color:#0f172a;line-height:1.2;}
.summary-quick-head small{display:block;margin-top:4px;color:#64748b;font-size:12px;line-height:1.25;}
.summary-quick-body{padding:14px 18px;overflow:auto;-webkit-overflow-scrolling:touch;min-height:0;flex:1 1 auto;overscroll-behavior:contain;}
.summary-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.summary-quick-grid label{font-weight:900;color:#334155;font-size:13px;}
.summary-quick-grid input,.summary-quick-grid select{margin-top:5px;width:100%;min-height:40px;border:1px solid #cbd5e1;border-radius:11px;padding:8px 10px;background:#fff;font-size:14px;}
.summary-quick-pesticides{margin-top:12px;border-top:1px dashed #cbd5e1;padding-top:12px;}
.summary-quick-pesticides .pesticide-slot-panel{margin:0!important;}
.summary-quick-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #e2e8f0;background:#f8fafc;flex:0 0 auto;}
body.summary-quick-open{overflow:hidden;}
@media(max-width:900px){
  .detail-clean-title h1{font-size:25px!important;line-height:1.15!important;}
  .detail-clean-title .sub{font-size:13px!important;}
  .compact-summary-head .summary-tap-hint{display:none!important;}
  .summary-quick-dialog{left:8px;right:8px;top:8px;bottom:8px;transform:none;width:auto;height:auto;max-height:none;border-radius:16px;}
  .summary-quick-head{padding:14px 16px 10px;}
  .summary-quick-head b{font-size:17px;}
  .summary-quick-body{padding:12px 14px;}
  .summary-quick-grid{grid-template-columns:1fr 1fr;gap:8px;}
  .summary-quick-grid label{font-size:12px;}
  .summary-quick-grid input,.summary-quick-grid select{min-height:38px;font-size:13px;border-radius:10px;padding:7px 8px;}
  .summary-quick-actions{padding:10px 14px;}
  .summary-quick-actions .btn{flex:1 1 0;min-height:42px;}
}
@media(max-width:430px){
  .summary-quick-grid{grid-template-columns:1fr;}
  .summary-quick-dialog{left:6px;right:6px;top:6px;bottom:6px;border-radius:14px;}
}

/* v1.66 step78: 상세 상단 제목 옆 상태/사업유형 배지 배치 및 모바일 지도 경량화 */
.detail-title-main{min-width:0;}
.detail-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0;}
.detail-title-line h1{margin:0!important;line-height:1.15;}
.detail-title-badges{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap;}
.detail-title-badge{font-size:clamp(11px, .48em, 13px)!important;padding:.22em .62em!important;line-height:1.05!important;vertical-align:middle;white-space:nowrap;}
.summary-head-clean{min-height:auto!important;margin-bottom:7px!important;}
.summary-head-clean .summary-tap-hint{margin-left:0!important;}
@media(max-width:900px){
  .detail-title-line{gap:6px;align-items:flex-start;}
  .detail-title-line h1{font-size:24px!important;max-width:100%;}
  .detail-title-badges{gap:4px;padding-top:1px;}
  .detail-title-badge{font-size:11px!important;padding:3px 7px!important;}
  .basic-satellite-card{display:none!important;}
}


/* v1.67 step79: 상세페이지 일정 버튼 제거, 액션 열 높이 정렬, 모바일 준비율 고정 제거 */
.detail-schedule-link{display:none!important;}
.field-summary-card .field-summary-layout{align-items:stretch!important;}
.field-summary-left,.field-status-actions{align-self:stretch!important;}
.field-status-actions{height:100%!important;}
.field-status-actions form{margin:0!important;}
.field-status-actions .complete-toggle{width:100%!important;}
@media(min-width:901px){
  .field-summary-card .field-summary-layout{grid-template-columns:minmax(0,1fr) minmax(230px,260px) minmax(330px,380px)!important;}
  .field-summary-left{display:flex!important;flex-direction:column!important;}
  .field-summary-info-grid{flex:1 1 auto!important;}
  .field-status-actions{display:grid!important;grid-template-rows:minmax(0,1fr) auto auto!important;gap:6px!important;min-height:100%!important;}
  .field-status-actions .complete-toggle{height:100%!important;min-height:0!important;}
  .field-contact-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .field-contact-actions .btn,.field-status-actions .sms-preview-open{min-height:36px!important;}
}
@media(max-width:900px){
  .page-detail-actions{grid-template-columns:1fr!important;}
  .page-detail-actions .detail-tab-nav-top{width:100%!important;}
  .field-summary-card .compact-readiness-box{display:none!important;}
  .field-summary-card .field-summary-layout{
    grid-template-columns:minmax(0,1fr) minmax(170px,46vw)!important;
    grid-template-areas:"info status"!important;
    align-items:stretch!important;
  }
  .field-summary-left{display:flex!important;flex-direction:column!important;height:100%!important;}
  .field-summary-info-grid{flex:1 1 auto!important;}
  .field-status-actions{height:100%!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto auto!important;align-content:stretch!important;}
  .field-status-actions form{height:100%!important;min-height:0!important;}
  .field-status-actions .complete-toggle{height:100%!important;min-height:0!important;}
  body.detail-fixed-mobile .detail-scroll-area{padding-bottom:70px!important;}
  #basicEditBlock{max-height:calc(100dvh - 126px)!important;}
  #basicEditBlock .basic-grid{max-height:calc(100dvh - 204px)!important;}
}
@media(max-width:430px){
  .field-summary-card .field-summary-layout{grid-template-columns:minmax(0,1fr) minmax(156px,44vw)!important;}
}
@media(max-width:370px){
  .field-summary-card .field-summary-layout{grid-template-columns:minmax(0,1fr) 144px!important;}
}

/* v1.68 step80: 보고서 준비율 카드 접기/펼치기 */
.readiness-toggle-card .readiness-collapsible-body{display:block;}
.readiness-toggle-card.readiness-collapsed{gap:0!important;}
.readiness-toggle-card.readiness-collapsed .readiness-collapsible-body{display:none!important;}
.readiness-toggle-btn{white-space:nowrap;}
@media(max-width:900px){
  .field-summary-card .compact-readiness-box{display:flex!important;}
  .field-summary-card .field-summary-layout{
    grid-template-columns:minmax(0,1fr) minmax(170px,46vw)!important;
    grid-template-areas:"info status" "ready ready"!important;
    align-items:stretch!important;
  }
  .readiness-toggle-card{padding:6px!important;}
  .readiness-toggle-card.readiness-collapsed{padding:5px 6px!important;}
  .readiness-toggle-card.readiness-collapsed .readiness-title-line .readiness-circle{width:30px!important;height:30px!important;font-size:10px!important;}
  .readiness-toggle-card.readiness-collapsed .readiness-title-line p{font-size:11px!important;margin:0!important;}
  .readiness-toggle-card.readiness-collapsed .readiness-head-actions .btn{min-height:22px!important;padding:2px 5px!important;font-size:9px!important;}
}
@media(max-width:430px){
  .field-summary-card .field-summary-layout{grid-template-columns:minmax(0,1fr) minmax(156px,44vw)!important;}
}
@media(max-width:370px){
  .field-summary-card .field-summary-layout{grid-template-columns:minmax(0,1fr) 144px!important;}
}

/* v1.70 step82: detail page cleanup - no quick popup, safer basic edit scroll/save */
.field-summary-info-grid{cursor:default!important;}
.field-summary-info-grid:hover .summary-info-cell{border-color:inherit!important;background:inherit!important;}
#basicEditBlock{overflow:hidden!important;}
#basicEditBlock .basic-grid{min-width:0;box-sizing:border-box;}
#basicEditBlock .basic-grid > *{min-width:0;box-sizing:border-box;}
#basicEditBlock input,#basicEditBlock select,#basicEditBlock textarea{max-width:100%;box-sizing:border-box;}
#basicEditBlock .pesticide-slot-panel{max-width:100%;overflow:hidden;}
#basicEditBlock .pesticide-slot-grid{max-width:100%;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;padding-bottom:2px;}
#basicEditBlock .basic-sticky-save{position:sticky!important;bottom:0!important;z-index:30!important;margin:6px -2px -2px!important;padding:12px 2px 2px!important;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 24%,#fff 100%)!important;border-top:1px solid #e2e8f0!important;box-shadow:0 -12px 22px rgba(15,23,42,.08)!important;}
#basicEditBlock .basic-sticky-save .btn{width:100%;min-height:44px;font-weight:900;}
.detail-section-guide{margin:0 0 10px;color:#64748b;font-size:12px;line-height:1.35;}

@media(max-width:900px){
  #basicEditBlock{display:flex!important;flex-direction:column!important;max-height:calc(100dvh - var(--detail-fixed-height, 250px) - 10px)!important;}
  #basicEditBlock .card-head{flex:0 0 auto!important;}
  #basicEditBlock .basic-grid{flex:1 1 auto!important;overflow-y:auto!important;overflow-x:hidden!important;max-height:none!important;padding-right:4px!important;padding-bottom:78px!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  #basicEditBlock .basic-sticky-save{bottom:0!important;margin-left:-1px!important;margin-right:-1px!important;padding:12px 1px 1px!important;}
  #basicEditBlock .pesticide-slot-panel{padding:7px!important;}
  #basicEditBlock .pesticide-slot-grid{overflow-x:hidden!important;}
  #basicEditBlock .pesticide-slot-row{grid-template-columns:28px 1fr 64px 62px!important;gap:4px!important;border:1px solid #e5e7eb;border-radius:10px;padding:6px;}
  #basicEditBlock .pesticide-slot-row [data-slot-price],#basicEditBlock .pesticide-slot-row [data-slot-amount]{display:none!important;}
  #basicEditBlock .pesticide-slot-row select,#basicEditBlock .pesticide-slot-row input{height:31px!important;font-size:12px!important;}
}

/* v1.71 step83: 주소/지번 통합 카드 + 저장 알림 정리 */
.address-compact-panel{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:10px;
  min-width:0;
}
.address-compact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0;}
.address-compact-head b{display:block;color:#334155;margin-bottom:4px;}
.address-compact-head span{display:block;color:#111827;font-weight:600;line-height:1.35;word-break:keep-all;overflow-wrap:anywhere;}
.address-edit-details{margin-top:8px;border-top:1px dashed #cbd5e1;padding-top:8px;}
.address-edit-details summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:6px 10px;font-weight:800;color:#334155;font-size:13px;}
.address-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px;}
.address-edit-grid label{background:#fff!important;border:1px solid #e5e7eb!important;border-radius:10px!important;padding:8px!important;font-weight:800;color:#334155;}
.address-edit-grid label input,.address-edit-grid label textarea{margin-top:6px;}
.address-edit-full{grid-column:1/-1;}
.toast-messages{z-index:99999!important;}
@media(max-width:900px){
  .address-compact-panel{padding:8px;}
  .address-compact-head span{font-size:12px;line-height:1.3;}
  .address-edit-details summary{width:100%;justify-content:center;min-height:32px;font-size:12px;}
  .address-edit-grid{grid-template-columns:1fr!important;gap:6px;}
}

/* v1.72 step84: 요약카드 탭 효과 제거 + 주소 카드 compact 수정 */
.field-summary-info-grid,
.field-summary-grid{
  cursor:default!important;
}
.field-summary-info-grid:hover .summary-info-cell,
.field-summary-info-grid:focus .summary-info-cell,
.field-summary-info-grid:focus-within .summary-info-cell,
.field-summary-info-grid:active .summary-info-cell,
.field-summary-grid:hover span,
.field-summary-grid:focus span,
.field-summary-grid:focus-within span,
.field-summary-grid:active span{
  border-color:#e2e8f0!important;
  background:#f8fafc!important;
}
.address-compact-head{
  align-items:center!important;
}
.address-compact-text{
  min-width:0;
  flex:1 1 auto;
}
.address-compact-head b{
  margin-bottom:3px!important;
}
.address-compact-head span{
  display:block;
  padding-right:4px;
}
.address-edit-toggle{
  flex:0 0 auto;
  align-self:center;
  white-space:nowrap;
  min-width:58px;
}
.address-edit-details[hidden]{display:none!important;}
.address-edit-details{
  margin-top:8px!important;
  border-top:1px dashed #cbd5e1!important;
  padding-top:8px!important;
}
.address-edit-grid{
  margin-top:0!important;
}
@media(max-width:900px){
  .address-compact-head{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
  }
  .address-edit-toggle{
    min-height:30px!important;
    padding:4px 10px!important;
    font-size:12px!important;
  }
}


/* v1.73 step85 - 약제 목록 카드 버튼 배치 및 JS 출력 오류 보정 */
.pesticide-plan-control{
  display:grid!important;
  grid-template-columns:minmax(150px,260px) 1fr auto;
  align-items:stretch!important;
  gap:8px!important;
  margin:8px 0!important;
}
.pesticide-plan-control .pesticide-kind-count-card{
  display:grid!important;
  grid-template-columns:auto minmax(72px,1fr);
  align-items:center!important;
  gap:10px!important;
  margin:0!important;
  padding:8px 10px!important;
  min-height:58px;
  border:1px solid #d8dee9;
  border-radius:12px;
  background:#fff;
  box-sizing:border-box;
  font-weight:900!important;
}
.pesticide-kind-title{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;color:#0f172a;min-width:40px;white-space:nowrap;}
.pesticide-kind-title span{display:block;}
.pesticide-plan-control .pesticide-kind-count-card select{min-width:0!important;width:100%;height:40px;margin:0!important;}
.pesticide-plan-control .pesticide-mix-edit-btn{
  align-self:stretch;
  min-height:58px;
  padding:0 16px;
  white-space:nowrap;
  border-radius:12px;
}
.pesticide-plan-control .pesticide-plan-help{grid-column:1 / -1;color:#64748b;font-size:.78rem;line-height:1.25;}
@media(max-width:760px){
  .pesticide-plan-control{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;}
  .pesticide-plan-control .pesticide-kind-count-card{min-height:56px;padding:7px 9px!important;}
  .pesticide-plan-control .pesticide-mix-edit-btn{min-height:56px;padding:0 12px;font-size:13px;}
  .pesticide-plan-control .pesticide-plan-help{font-size:11px;}
}
@media(max-width:390px){
  .pesticide-plan-control{grid-template-columns:1fr!important;}
  .pesticide-plan-control .pesticide-mix-edit-btn{width:100%;}
}

/* v1.74 step86 - 기본정보 순서 및 약제목록 행 배치 보정 */
.pesticide-plan-control{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:stretch!important;
  gap:8px!important;
  margin:8px 0!important;
}
.pesticide-plan-control .pesticide-kind-count-card{
  grid-column:1!important;
  width:100%!important;
  max-width:none!important;
  min-height:58px!important;
}
.pesticide-plan-control .pesticide-mix-edit-btn{
  grid-column:2!important;
  align-self:stretch!important;
  min-height:58px!important;
  height:auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  margin:0!important;
}
.pesticide-plan-control .pesticide-plan-help{
  grid-column:1 / -1!important;
}
@media(max-width:390px){
  .pesticide-plan-control{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .pesticide-plan-control .pesticide-mix-edit-btn{
    width:auto!important;
    padding-left:10px!important;
    padding-right:10px!important;
    font-size:12px!important;
  }
}

/* v1.79 step91: 기존 사용자 정보 편집 UI */
.admin-user-edit-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(140px,1fr));
  gap:8px;
  min-width:320px;
}
.admin-user-edit-grid label,.user-role-state-box label{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:12px;
  color:#64748b;
  font-weight:700;
}
.admin-user-edit-grid input,.user-role-state-box select{
  width:100%;
  border:1px solid #dbe4ee;
  border-radius:10px;
  padding:8px 10px;
  font-size:13px;
  background:#fff;
  color:#0f172a;
}
.user-role-state-box{
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:150px;
}
.user-update-form{margin-top:4px;}
@media(max-width:720px){
  .admin-user-edit-grid{grid-template-columns:1fr;min-width:240px;}
  .sticky-table table{min-width:760px;}
}

/* v1.80 step92 - mobile past completed calendar days collapse */
.past-day-toggle{display:none;}
@media screen and (max-width:760px){
  .cal-day.mobile-past-collapsed:not(.mobile-expanded) .day-weather-strip,
  .cal-day.mobile-past-collapsed:not(.mobile-expanded) .cal-event-wrap{
    display:none!important;
  }
  .cal-day.mobile-past-collapsed:not(.mobile-expanded){
    background:#f8fafc!important;
    border-style:dashed!important;
  }
  .past-day-toggle{
    display:flex!important;
    width:100%;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    border:1px solid #cbd5e1;
    background:#fff;
    color:#334155;
    border-radius:10px;
    padding:8px 10px;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
  }
  .past-day-toggle b{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:42px;
    min-height:24px;
    padding:3px 8px;
    border-radius:999px;
    background:#e0f2fe;
    color:#075985;
    font-size:11px;
  }
  .cal-day.mobile-expanded .past-day-toggle b{background:#f1f5f9;color:#475569;}
}

/* v1.82 step94: calendar top add button */
.calendar-top-add-mobile-row{display:none;margin:0 0 10px 0;text-align:center;}
.calendar-top-add-btn{white-space:nowrap;}
.schedule-date-field input[type="date"]{min-height:42px;}
@media(max-width:900px){
  .calendar-top-add-mobile-row{display:block;}
  .desktop-calendar-nav .calendar-top-add-btn{display:none!important;}
  .calendar-top-add-mobile-row .calendar-top-add-btn{width:100%;max-width:420px;}
}
/* v1.84 step96: 로그인 유지 체크박스 */
.remember-login-row{display:flex!important;align-items:center;gap:8px;font-weight:700!important;color:#475569!important;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px 12px;line-height:1.2}.remember-login-row input{width:18px;height:18px;margin:0!important}.remember-login-row span{display:inline-block}

/* v1.86 사진 업로드 체감속도 개선: 병렬 업로드 진행률 */
.photo-upload-progress{margin-top:10px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#f8fafc}
.photo-upload-progress-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:#0f172a}
.photo-upload-progress-track{height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-top:8px}
.photo-upload-progress-track i{display:block;height:100%;border-radius:999px;background:#0f766e;transition:width .18s ease}
@media(max-width:900px){.photo-upload-progress-head{font-size:12px}.photo-upload-progress{padding:9px}}

/* step102: 약제 종류 선택과 약제 선택/수정 버튼을 같은 행에 배치 */
.pesticide-plan-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pesticide-plan-control .pesticide-kind-count-card{margin:0;}
.pesticide-plan-control .pesticide-mix-edit-btn{white-space:nowrap;height:34px;align-self:center;}
.pesticide-plan-control .pesticide-plan-help{flex-basis:100%;}
@media(max-width:760px){.pesticide-plan-control{gap:6px}.pesticide-plan-control .pesticide-kind-count-card{flex:1 1 auto}.pesticide-plan-control .pesticide-mix-edit-btn{height:32px}}


/* v1.91 step103 - 모바일 기본정보 행 배치 및 약제 카드 버튼 정렬 */
@media(max-width:900px){
  #basicEditBlock .basic-grid label.mobile-half{grid-column:span 1!important;}
  #basicEditBlock .basic-grid label.mobile-half.span-2{grid-column:span 1!important;}
}
.pesticide-plan-control{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;}
.pesticide-plan-control .pesticide-kind-count-card{min-width:0!important;}
.pesticide-plan-control .pesticide-mix-edit-btn{width:auto!important;white-space:nowrap!important;align-self:stretch!important;}
.pesticide-plan-control .pesticide-plan-help{grid-column:1/-1!important;}
@media(max-width:420px){
  .pesticide-plan-control{grid-template-columns:minmax(0,1fr) auto!important;}
  .pesticide-plan-control select{min-width:62px!important;}
  .pesticide-plan-control .pesticide-mix-edit-btn{font-size:11px!important;padding:5px 7px!important;}
}


/* v1.92 step104 - 모바일 요약/기본 약제목록: 종류 선택과 선택/수정 버튼 강제 같은 행 */
#basicEditBlock .pesticide-plan-control,
.detail-tab-panel#tab-overview .pesticide-plan-control{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:stretch!important;
  gap:6px!important;
  width:100%!important;
}
#basicEditBlock .pesticide-plan-control .pesticide-kind-count-card,
.detail-tab-panel#tab-overview .pesticide-plan-control .pesticide-kind-count-card{
  grid-column:1!important;
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
#basicEditBlock .pesticide-plan-control .pesticide-mix-edit-btn,
.detail-tab-panel#tab-overview .pesticide-plan-control .pesticide-mix-edit-btn{
  grid-column:2!important;
  width:auto!important;
  min-width:74px!important;
  max-width:96px!important;
  white-space:normal!important;
  line-height:1.15!important;
  padding:6px 8px!important;
  margin:0!important;
  align-self:stretch!important;
  min-height:52px!important;
}
#basicEditBlock .pesticide-plan-control .pesticide-plan-help,
.detail-tab-panel#tab-overview .pesticide-plan-control .pesticide-plan-help{
  grid-column:1 / -1!important;
}
@media(max-width:360px){
  #basicEditBlock .pesticide-plan-control,
  .detail-tab-panel#tab-overview .pesticide-plan-control{grid-template-columns:minmax(0,1fr) 82px!important;}
  #basicEditBlock .pesticide-plan-control .pesticide-kind-title,
  .detail-tab-panel#tab-overview .pesticide-plan-control .pesticide-kind-title{min-width:34px!important;font-size:12px!important;}
  #basicEditBlock .pesticide-plan-control .pesticide-mix-edit-btn,
  .detail-tab-panel#tab-overview .pesticide-plan-control .pesticide-mix-edit-btn{font-size:11px!important;padding:5px 6px!important;}
}

/* v1.93 step105: 모바일 지도/경로 주소검색 패널 넘침 보정
   - 기존 .inline-form 모바일 min-width:520px 규칙이 지도 검색행에도 적용되어
     주소검색 입력창/버튼이 카드 밖으로 밀리는 문제를 방지한다. */
.map-panel .inline-form.map-search-row{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  white-space:normal!important;
}
.map-panel .map-search-row input,
.map-panel .map-search-row button,
.map-panel .map-control-section input,
.map-panel .map-control-section select,
.map-panel .map-control-section button{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media screen and (max-width:900px){
  .map-panel{width:100%!important;max-width:100%!important;overflow:hidden!important;}
  .map-panel .card{width:100%!important;max-width:100%!important;box-sizing:border-box!important;overflow:hidden!important;}
  .map-panel .map-search-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 58px!important;
    gap:5px!important;
    align-items:stretch!important;
  }
  .map-panel .map-search-row input{
    width:100%!important;
    min-height:32px!important;
    padding:5px 7px!important;
    font-size:12px!important;
  }
  .map-panel .map-search-row button,
  #mapSearchBtn{
    width:100%!important;
    min-height:32px!important;
    padding:5px 6px!important;
    font-size:11px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
  .map-panel .map-mini-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media screen and (max-width:360px){
  .map-panel .map-search-row{grid-template-columns:minmax(0,1fr) 52px!important;}
  .map-panel .map-search-row input{font-size:11.5px!important;padding-left:6px!important;padding-right:6px!important;}
  .map-panel .map-search-row button,#mapSearchBtn{font-size:10.5px!important;padding-left:4px!important;padding-right:4px!important;}
}

/* v1.94 step106: 현장 빠른수정 약제카드 행 고정
   요약/기본 페이지에서는 약제종류 선택과 약제 선택/수정 버튼을 항상 같은 행에 둔다. */
#tab-overview #basicEditBlock .pesticide-plan-control,
#basicEditBlock .pesticide-plan-control{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) clamp(82px,24vw,108px)!important;
  align-items:stretch!important;
  gap:6px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
#tab-overview #basicEditBlock .pesticide-plan-control .pesticide-kind-count-card,
#basicEditBlock .pesticide-plan-control .pesticide-kind-count-card{
  grid-column:1!important;
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
#tab-overview #basicEditBlock .pesticide-plan-control .pesticide-mix-edit-btn,
#basicEditBlock .pesticide-plan-control .pesticide-mix-edit-btn{
  grid-column:2!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  white-space:normal!important;
  line-height:1.12!important;
  align-self:stretch!important;
  justify-content:center!important;
  padding:5px 6px!important;
  margin:0!important;
}
#tab-overview #basicEditBlock .pesticide-plan-control .pesticide-plan-help,
#basicEditBlock .pesticide-plan-control .pesticide-plan-help{
  grid-column:1 / -1!important;
}

/* v1.96: 캘린더 날짜별 지도 보기 버튼 */
.cal-date-actions{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;}
.day-map-btn{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 6px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#334155;text-decoration:none;font-size:11px;font-weight:800;line-height:1;}
.day-map-btn:hover{background:#f1f5f9;color:#0f172a;}
.map-date-filter-notice{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 10px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a8a;font-size:12px;}
.map-date-filter-notice .tiny-btn{white-space:nowrap;}
@media (max-width: 720px){
  .day-map-btn{min-height:24px;padding:3px 7px;font-size:11px;}
  .cal-date-actions{gap:3px;}
  .map-date-filter-notice{font-size:12px;padding:7px 8px;}
}

/* v1.99: 게스트 캘린더 월별 완료량 요약 */
.guest-month-summary-card { margin-top: 16px; }
.guest-month-summary-cards em { display:block; margin-top:4px; color:var(--muted); font-style:normal; font-size:12px; }
.guest-month-summary-card .empty { margin-top: 12px; }
