/* 개발자 안내: 1920×1080 기준 가독성·검색 간격·표 스크롤과 작은 화면 대응. 내용이 긴 표는 내부 스크롤을 유지한다. */
/* ECM screen presentation: 1920 x 1080 baseline, readable at smaller widths.
   Keep business tables intact; scroll their own containers rather than the page.
   Screen-only rules intentionally leave exported/printed documents unchanged. */
@media screen {
  :root { --ecm-font-body:16px; --ecm-font-small:14px; --sidebar:280px; --ecm-header:72px; --ecm-page-gap:32px; }
  html,body { font-size:var(--ecm-font-body); line-height:1.55; }
  body { overflow-wrap:break-word; }
  .Layout_container__Fnqe9 { min-width:0; width:100%; }
  .Layout_container__Fnqe9 #page { width:calc(100% - var(--sidebar)); min-width:0; margin:var(--ecm-header) 0 0 var(--sidebar)!important; padding:var(--ecm-page-gap) var(--ecm-page-gap) 56px!important; overflow:visible; }
  #sidebar { width:var(--sidebar); height:100dvh; padding:16px 14px; gap:20px; }
  #sidebar .Sidebar_logo__QVRmH { min-height:108px; }
  #sidebar .ecm-wordmark { font-size:42px; line-height:1.1; }
  #sidebar .ecm-brand-caption { font-size:11px; letter-spacing:.6px; line-height:1.4; }
  #sidebar .Sidebar_trigger__dH84V { min-height:54px; height:auto; padding:14px!important; gap:11px; font-size:17px!important; line-height:1.4!important; font-weight:600; }
  #sidebar .Sidebar_trigger__dH84V>span:not(.Sidebar_arrow__2lRUh) { white-space:normal; text-align:left; }
  #sidebar .Sidebar_trigger__dH84V img { width:22px; height:22px; }
  #sidebar .Sidebar_arrow__2lRUh { flex:none; width:24px; height:24px; }
  #sidebar .Sidebar_level2__DbbQG.nav-item { min-height:44px; padding:10px 12px 10px 47px; font-size:16px!important; line-height:1.5!important; white-space:normal; word-break:keep-all; }
  #sidebar .nav-item.active { font-weight:650!important; color:var(--ecm-primary); }
  .Header_container__7FxWA { left:var(--sidebar); width:calc(100% - var(--sidebar)); height:var(--ecm-header); padding:0 var(--ecm-page-gap); display:flex; align-items:center; gap:16px; }
  .Header_container__7FxWA .Header_info__Dsk4R { min-width:0; }
  .Header_container__7FxWA .Header_info__Dsk4R .Header_date__yNLov { font-size:14px; color:#695c56; }
  .Header_container__7FxWA .Header_info__Dsk4R .Header_welcome__Lu7oG { font-size:16px; }
  #profile-menu { width:320px; max-width:calc(100vw - 32px); }
  #profile-menu .Header_user-buttons__YDCEk { font-size:15px; line-height:1.5; }
  #profile-menu .Header_user-email__x0nqt { font-size:14px; }
  .ecm-menu-toggle,.ecm-menu-close,.ecm-nav-backdrop { display:none; }
  .BuildTimeFooter_footer__pn_kv { font-size:12px; padding:5px 12px; }
  #page .source-heading { gap:14px; margin-bottom:28px; }
  #page :is(.source-title,.page-heading,.mt-heading,.mtr-heading,.sf-heading) { flex-wrap:wrap; gap:14px; }
  #page :is(.source-title h1,.page-heading h1,.mt-heading h1,.md-page h1,.mtr-heading h1,.sf-heading h1) { font-size:36px; line-height:1.3; letter-spacing:-.7px; }
  #page :is(.source-breadcrumb,.mt-breadcrumb,.md-breadcrumb,.mtr-breadcrumb) { font-size:15px; line-height:1.5; height:auto; }
  #page :is(.source-title>div,.mt-heading>div,.mtr-heading>div) { flex-wrap:wrap; }
  #page :is(.maintenance-page,.mt-page,.md-page,.mtr-page,.sf-page,.system-page,.pd-container,.rp-container) { min-width:0; max-width:100%; font-size:16px; line-height:1.55; }
  #app input { min-width:0; }
  #app :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea),
  #modal-root :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea),
  body :is(.sf-modal,.nb-inspection,.rp-modal) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea) { font-size:16px; min-height:44px; height:auto; line-height:1.5; padding:9px 12px; max-width:100%; }
  #app :is(input[type=checkbox],input[type=radio]) { min-width:0; }
  #app :is(.btn,.sy-button,.mt-button,.md-btn,.mtr-btn,.sf-btn),
  #modal-root :is(.btn,.sy-button,.mt-button,.md-btn,.mtr-btn,.sf-btn),
  body .sf-modal .sf-btn { font-size:16px; min-height:44px; height:auto; line-height:1.4; padding:10px 16px; }
  #app :is(.btn.small,.mt-button.micro,.mtr-btn.small) { font-size:14px; min-height:34px; padding:6px 10px; }
  #app :is(.mt-button.search,.md-copy) { min-width:36px; min-height:36px; padding:5px; }
  #page :is(.table-wrap,.mt-table-scroll,.md-table-scroll,.mtr-scroll,.sf-table-scroll,.sy-table-wrap,.rp-tableWrap,.pd-tableWrap) { min-width:0; max-width:100%; overscroll-behavior-x:contain; scrollbar-width:thin; }
  #page :is(table,th,td) { font-size:15px; line-height:1.5; }
  #page .md-table :is(th,td) { font-size:15px!important; }
  #page :is(.mt-table,.md-table,.mtr-table,.sf-table,.sy-table) :is(th,td) { padding:14px 12px; }
  #page :is(.mt-table,.md-table,.mtr-table,.sf-table,.sy-table) th { font-weight:600; }
  #page :is(.sf-data,.sf-card,.md-card,.sy-card,.mtr-section,.mt-basic) { min-width:0; }
  #page :is(.mt-status,.sf-badge,.badge,.sy-current) { font-size:14px; line-height:1.4; padding:4px 8px; }
  #page :is(.field>label,.field-label,.filters label,.filter-field,.detail-grid dt,.detail-field dt,.key-value dt,.column-choices,.list-summary,.record-count,.toolbar .count,.mt-list-controls>span,.md-total,.sf-total,.mtr-toolbar,.mt-top-worker,.mt-rail-card dt,.mt-history-row small,.mt-empty-small,.md-small,.md-note,.md-help,.sy-muted,.sy-warning,.sy-count,.sy-text-count,.mtr-note,.mtr-table small,.mtr-form-table small,.sf-sub,.sf-flow,.sf-file-name,.sf-modal .sf-desc,.rp-note,.rp-files-top small) { font-size:14px; line-height:1.55; }
  #page :is(.field-help,.field small,.notice,.info-box,.empty p,.settings-card p,.detail-grid dd,.detail-field dd,.key-value dd,.mt-rail-card dd,.md-history-item,.md-history-empty,.sy-channel-note,.sy-info) { font-size:15px; line-height:1.6; }
  #page :is(.mt-filter-field,.md-filter label,.mtr-filter,.sf-filter-field,.sf-label,.sf-value,.sy-label,.md-form-table>label,.md-field-label,.mtr-inline label,.mt-period-type label) { font-size:16px; line-height:1.5; }
  #page :is(.sy-card h4,.md-card h4,.sf-card h4,.mtr-section h2,.mt-basic h2,.mt-inspection-title h2) { font-size:23px; line-height:1.4; }
  #page :is(.tabs,.md-tabs,.mtr-tabs,.sf-tabs,.mt-visit-tabs) { max-width:100%; overflow-x:auto; }
  #page :is(.tabs a,.tabs button,.md-tabs button,.sf-tabs button) { font-size:16px; min-height:44px; flex-shrink:0; }
  #page :is(.pagination,.mt-pagination,.md-pagination,.mtr-pages,.sf-pagination,.sy-pagination) { font-size:15px; flex-wrap:wrap; }
  #page :is(.pagination button,.mt-pagination .mt-button,.md-pagination button,.sf-pagination button,.sy-pagination button) { min-width:40px; width:auto; min-height:40px; height:auto; padding:8px; font-size:15px; }
  #page :is(.mt-list-toolbar,.mt-list-controls,.mt-list-actions,.sf-data-head,.sf-actions,.sf-toolbar,.md-toolbar,.md-actions,.mtr-toolbar,.mtr-toolbar>div,.mtr-section-head,.sf-detail-footer,.mt-top-actions,.mt-detail-footer,.sy-actions) { flex-wrap:wrap; gap:10px; }
  #page :is(.mt-dates,.mt-cycle,.mtr-date-range,.md-inline,.sf-schedule-row,.mt-date-time,.mt-input-button,.rp-form>div) { flex-wrap:wrap; min-width:0; }
  #page .mt-filter-field { width:300px; max-width:100%; flex-shrink:1; }
  #page .mt-filter-group { width:100px; padding-inline:16px; word-break:keep-all; }
  #page .mt-filter-field>span { width:100px; }
  #page .mt-filter-field>:is(input,select) { flex:1; min-width:0; }
  #page .mt-period-type label { padding:9px 12px; }
  #page .mt-presets .mt-button { font-size:14px; }
  #page .mt-filter-items { gap:14px 26px; padding:16px 0; }
  #page .mt-query-actions .reset { min-height:34px; font-size:14px; padding:7px 10px; }
  #page .mt-detail-top { top:var(--ecm-header); }
  #page .mt-rail { top:calc(var(--ecm-header) + 16px); width:320px; max-height:calc(100dvh - var(--ecm-header) - 40px); }
  #page .mt-rail-card h2 { font-size:18px; }
  #page .mt-history nav .mt-button { min-height:36px; font-size:14px; padding:5px; }
  #page .sf-select { max-width:100%; }
  #page .sf-select>button { font-size:16px; min-height:44px; height:auto; padding-block:9px; }
  #page .sf-select:after { top:calc(50% - 5px); }
  #page :is(.md-field-value,.sf-value) { overflow-wrap:anywhere; flex-wrap:wrap; }
  #page .md-page .md-field-value>select { min-width:0; }
  #page .mt-readonly { min-width:0; }
  #page .sf-tabs { flex-wrap:nowrap; }
  #page .sf-tabs button { white-space:nowrap; }
  #page .sf-form-grid { grid-template-columns:180px minmax(0,1fr) 180px minmax(0,1fr); }
  .modal-backdrop { padding:24px; }
  .modal { max-height:calc(100dvh - 48px); }
  .modal-header :is(h2,h3),body .sf-modal h2 { font-size:24px; line-height:1.4; }
  .modal-body { min-height:0; }
  .modal-footer { flex-wrap:wrap; }
  #modal-root :is(label,.field-label,.field>label,.column-choices),body .sf-modal :is(.sf-label,.sf-value) { font-size:16px; line-height:1.5; }
  body :is(.rp-modal,.rp-bd-container,.rp-mt-container) { min-width:0; max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); overflow:auto; }
  body .nb-inspection { font-size:16px; line-height:1.55; }
  body .nb-inspection :is(label,button,summary,.ni-photo strong,.ni-card span) { font-size:16px; line-height:1.5; }
  body .nb-inspection :is(.ni-sub,.ni-hint,.ni-notice,.ni-status,.ni-error,.ni-tag) { font-size:14px; line-height:1.6; }
  body .nb-inspection h2 { font-size:24px; line-height:1.4; }
  body .nb-inspection h3 { font-size:20px; }
  body .nb-inspection .ni-photo input { font-size:14px!important; }
  #page .mt-inspection-table label { font-size:16px!important; }
  #page .mt-inspection-table :is(input,select) { height:auto!important; min-height:44px!important; }
  .auth-screen .auth-card { width:460px!important; max-width:100%!important; padding:40px!important; }
  .auth-card .ecm-auth-brand strong { font-size:46px; }
  .auth-card .ecm-auth-brand>span { font-size:14px; }
  .auth-card h2 { font-size:26px; }
  .auth-card :is(.field>label,p) { font-size:16px; }
  .auth-card .auth-note { font-size:14px!important; }
  .auth-card .auth-submit { min-height:48px!important; }
  /* Home dashboard: keep the source card order and give charts readable labels. */
  #page .pd-container { gap:20px; }
  #page :is(.pd-grid,.pd-controls) { padding:0; gap:20px; }
  #page .pd-topRow { grid-template-columns:minmax(0,1.05fr) minmax(0,1.45fr) minmax(0,1.05fr); }
  #page .pd-midRow { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  #page .pd-bottomRow { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr); }
  #page .pd-card { padding:22px; gap:18px; border-radius:10px; }
  #page .pd-cardTitle { font-size:20px; line-height:1.4; }
  #page :is(.pd-baseDateHint,.pd-cardHint,.pd-cardFootnote,.pd-gradeCount,.pd-areaSub,.pd-legendItem,.pd-statLabel,.pd-rankSub,.pd-rankValue,.pd-rankRate,.pd-rankOpenBadge,.pd-pendingBadge) { font-size:14px; line-height:1.5; color:#73665e; white-space:normal; }
  #page :is(.pd-donutLabel,.pd-gradeSectionTitle,.pd-gradeLabel,.pd-gradeValue,.pd-areaListTitle,.pd-areaName,.pd-areaRate,.pd-chartCaption,.pd-rankName,.pd-rankValue b,.pd-stateBox) { font-size:16px; line-height:1.5; }
  #page .pd-donutRange { font-size:13px; line-height:1.45; text-align:center; color:#73665e; }
  #page .pd-donutSvg { width:106px; height:106px; max-width:100%; }
  #page .pd-donutValue { font-size:20px; }
  #page .pd-gradeRow { grid-template-columns:minmax(110px,1fr) minmax(36px,1fr) auto; gap:10px; }
  #page .pd-gradeLabel { white-space:normal; }
  #page .pd-gradeValue { flex-wrap:wrap; gap:4px; }
  #page .pd-statRow { grid-template-columns:repeat(3,minmax(0,1fr)); }
  #page .pd-statBox { padding:12px; }
  #page .pd-statValue { font-size:26px; line-height:1.3; }
  #page .pd-mapLayout { grid-template-columns:minmax(140px,.85fr) minmax(160px,1fr); }
  #page .pd-mapSvg { min-height:300px; max-height:440px; }
  #page .pd-cardFilter { width:160px; }
  #page .pd-cardHeadRight { flex-wrap:wrap; }
  #page :is(.pd-th,.pd-td) { font-size:15px; padding:12px 10px; }
  #page :is(.pd-period,.pd-radioGroup) { flex-wrap:wrap; }
  #page .pd-period input { width:180px; max-width:100%; }
  #page .pd-radioGroup label { font-size:15px; min-height:44px; display:inline-flex; align-items:center; padding:8px 12px; }
  #page .pd-tabs label { font-size:15px; min-height:44px; display:inline-flex; align-items:center; padding:8px 12px; }
  #page .rp-container .rp-btn { height:auto; min-height:44px; font-size:16px; padding:8px 14px; }
  #page .rp-container :is(.rp-th,.rp-td) { font-size:15px; padding:12px; }
  #page .rp-form>label { font-size:16px; line-height:1.5; }
  #page .rp-month-field>svg { top:calc(50% - 9px); }
}
@media screen and (max-width:1679px) {
  :root { --sidebar:256px; --ecm-page-gap:24px; }
  #page .pd-topRow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page .pd-topRow>.pd-card:last-child { grid-column:1/-1; }
  #page .pd-bottomRow { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page .pd-bottomRow>.pd-card:last-child { grid-column:1/-1; }
  #page .pd-midRow { grid-template-columns:1fr; }
  #page .pd-card { padding:20px; }
  #page .pd-topRow>.pd-card:last-child .pd-regularChart { max-height:260px; }
}
@media screen and (max-width:1200px) {
  :root { --sidebar:240px; --ecm-page-gap:20px; }
  #sidebar .Sidebar_level2__DbbQG.nav-item { padding-left:34px; }
  #page .mt-filters { padding-right:0; }
  #page .mt-query-actions { position:static; flex-direction:row; justify-content:flex-end; padding:12px; }
  #page .mt-query-actions .reset { position:static; }
  #page .mt-detail-split { flex-direction:column; }
  #page .mt-detail-main,#page .mt-rail { width:100%; }
  #page .mt-rail { position:static; max-height:none; }
  #page .md-asset-grid { grid-template-columns:minmax(0,1fr); }
  #page :is(.md-form-table,.sf-form-grid,.rp-form) { grid-template-columns:150px minmax(0,1fr); }
  #page :is(.md-form-table>.wide,.md-form-table>.md-span,.sf-value.wide,.rp-form>.rp-wide) { grid-column:auto; }
  #page .rp-form>[data-placeholder] { grid-column:1/-1!important; }
  #page :is(.mt-info-table,.mtr-form-table) { display:block; }
  #page :is(.mt-info-table,.mtr-form-table) tbody { display:block; }
  #page :is(.mt-info-table,.mtr-form-table) tr { display:grid; grid-template-columns:150px minmax(0,1fr); }
  #page :is(.mt-info-table,.mtr-form-table) :is(th,td) { width:auto!important; max-width:none; min-width:0; }
  #page :is(.mt-info-table,.mtr-form-table) td { height:auto; min-height:64px; overflow:visible; }
  #page :is(.mt-info-table,.mtr-form-table) td[colspan] { grid-column:2; }
  #page .sy-version-grid { grid-template-columns:minmax(0,1fr); }
  #page .sf-filter { grid-template-columns:minmax(0,1fr); gap:16px; }
  #page .sf-filter-divider { display:none; }
  #page .sf-filter>.sf-btn { justify-self:end; }
  #page .pd-topRow { grid-template-columns:minmax(0,1fr); }
  #page .pd-topRow>.pd-card:last-child { grid-column:auto; }
}
@media screen and (max-width:1000px) {
  #page .md-station-layout { grid-template-columns:minmax(0,1fr); }
  #page .md-station-layout .md-pagination { grid-column:auto; }
}
@media screen and (max-width:900px) {
  :root { --ecm-header:64px; --ecm-page-gap:20px; }
  .Layout_container__Fnqe9 #page { width:100%; margin-left:0!important; }
  .Header_container__7FxWA { left:0; width:100%; }
  #sidebar { width:280px; max-width:calc(100vw - 48px); visibility:hidden; transform:translateX(-100%); box-shadow:8px 0 24px #22090116; }
  .ecm-nav-open #sidebar { visibility:visible; transform:translateX(0); }
  .Header_container__7FxWA .ecm-menu-toggle { display:inline-flex; align-items:center; justify-content:center; flex:none; gap:8px; min-height:44px; padding:8px 10px; border:1px solid #d9cfca; border-radius:6px; font-size:16px; line-height:1.4; color:var(--ecm-ink); }
  #sidebar .ecm-menu-close { display:flex; position:absolute; top:10px; right:12px; align-items:center; justify-content:center; gap:6px; min-width:44px; min-height:44px; width:auto; height:auto; padding:8px; font-size:15px; }
  #sidebar .ecm-menu-close>span:first-child { font-size:24px; }
  .ecm-nav-open .ecm-nav-backdrop { display:block; position:fixed; inset:0; z-index:80; border:0; padding:0; background:#22090166; }
  #sidebar .Sidebar_logo__QVRmH { margin-top:16px; }
  .Header_container__7FxWA .Header_info__Dsk4R { gap:10px; }
  .Header_container__7FxWA .Header_date__yNLov,.Header_container__7FxWA .Header_divider__S_kUI { display:none; }
  #page .pd-bottomRow { grid-template-columns:1fr; }
  #page .pd-bottomRow>.pd-card:last-child { grid-column:auto; }
  #page .mt-detail-top { position:static; }
  body .nb-inspection .ni-grid,body .nb-inspection .ni-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #page .sy-preview-grid { grid-template-columns:1fr; }
}
@media screen and (max-width:600px) {
  :root { --ecm-page-gap:16px; }
  #page :is(.source-title h1,.page-heading h1,.mt-heading h1,.md-page h1,.mtr-heading h1,.sf-heading h1) { font-size:28px; }
  #page .pd-card { padding:16px; }
  #page .pd-cardTitle { font-size:19px; }
  #page .pd-controls { gap:12px; }
  #page .pd-period { width:100%; gap:8px; }
  #page .pd-period>label { width:100%; }
  #page .pd-period input { width:calc(50% - 16px); }
  #page .pd-mapLayout { grid-template-columns:minmax(100px,.8fr) minmax(140px,1fr); gap:10px; }
  #page .pd-donutSvg { width:88px; height:88px; }
  #page .pd-donutLabel { font-size:15px; }
  #page .pd-statRow { gap:6px; }
  #page .pd-statBox { padding:10px 8px; }
  #page .pd-statValue { font-size:23px; }
  #page :is(.mt-filter-row,.mt-filter-field,.mtr-filter,.md-filter label,.sf-filter-field) { flex-wrap:wrap; max-width:100%; }
  #page .mt-filter-group { width:100%; padding:12px 0 0; }
  #page .mt-filter-items { width:100%; flex:1 0 100%; padding:10px 0; }
  #page .mt-dates input,#page .mtr-date-range input { width:145px; }
  #page :is(.sf-data,.sf-card,.md-card,.sy-card,.mtr-section,.mt-basic) { padding:16px; }
  #page :is(.md-form-table,.sf-form-grid,.rp-form) { grid-template-columns:1fr; }
  #page :is(.md-form-table,.sf-form-grid,.rp-form)>* { grid-column:1!important; }
  #page :is(.mt-info-table,.mtr-form-table) tr { grid-template-columns:minmax(0,1fr); }
  #page :is(.mt-info-table,.mtr-form-table) td[colspan] { grid-column:1; }
  #page .sy-row { flex-direction:column; }
  #page .sy-label { width:100%; }
  #page .mtr-import-mapping { grid-template-columns:1fr; }
  #page .md-area-picker .md-region-picker { grid-template-columns:minmax(0,1fr); }
  #page .md-region-moves { flex-direction:row; justify-content:center; }
  .modal-backdrop { padding:8px; }
  .modal,.modal.small,.modal.wide { width:100%; max-height:calc(100dvh - 16px); border-radius:10px; }
  .modal-header,.modal-body,.modal-footer { padding:16px; }
  #modal-root .form-grid,body .sf-modal .sf-form-grid { grid-template-columns:1fr; }
  body .sf-modal .sf-form-grid>* { grid-column:1; }
  body .sf-modal { width:calc(100% - 16px); padding:16px; }
  body .nb-inspection .ni-grid,body .nb-inspection .ni-list { grid-template-columns:1fr; }
  body .nb-inspection .ni-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .auth-screen { padding:16px!important; }
  .auth-screen .auth-card { padding:28px!important; }
  .BuildTimeFooter_footer__pn_kv { position:static; align-self:flex-end; }
}
@media print { .ecm-menu-toggle,.ecm-menu-close,.ecm-nav-backdrop { display:none!important; } }
