  @font-face{
    font-family:'Pretendard Variable';
    font-weight: 45 920;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/PretendardVariable.woff2') format('woff2-variations');
  }
  :root{
    --page-bg:#eef2f5; --surface:#ffffff; --surface-2:#f4f6f8; --surface-3:#e8edf2;
    --border:rgba(38,52,71,.12); --border-strong:rgba(38,52,71,.24);
    --ink:#263447; --ink-secondary:#536b86; --ink-muted:#91a0b0;
    --accent:#ff642f; --accent-soft:#fff0e8; --accent-strong:#dc4f27; --on-accent:#ffffff;
    --accent-2:#263447; --accent-2-soft:#e8edf2;
    --good:#0a7d4a; --good-soft:#e0f3ea; --good-ink:#0a7d4a;
    --warning:#8a6006; --warning-fill:#eab308; --warning-soft:#fdf3d8;
    --critical:#c53434; --critical-soft:#fbe6e4;
    --neutral-fill:#91a0b0; --neutral-soft:#e8edf2;
    --seq-1:#dfe5eb; --seq-2:#b9c4d0; --seq-3:#8490a0; --seq-4:#667284; --seq-5:#536b86; --seq-6:#3d4652;
    --shadow-sm:0 1px 2px rgba(38,52,71,.07); --shadow-md:0 6px 24px rgba(38,52,71,.10);
    --radius-s:8px; --radius-m:14px; --radius-l:20px;
    color-scheme:light;
  }
  @media (prefers-color-scheme:dark){
    :root:not([data-theme="light"]){
      --page-bg:#12181f; --surface:#1b2530; --surface-2:#212c39; --surface-3:#2a3644;
      --border:rgba(255,255,255,.12); --border-strong:rgba(255,255,255,.26);
      --ink:#eef2f5; --ink-secondary:#b9c4d0; --ink-muted:#7f95ad;
      --accent:#ff8b64; --accent-soft:#3a2418; --accent-strong:#ffb08f; --on-accent:#1c1006;
      --accent-2:#c3ccd6; --accent-2-soft:#2a3644;
      --good:#4fd6a0; --good-soft:#123326; --good-ink:#6be0b6;
      --warning:#f0c030; --warning-fill:#eab308; --warning-soft:#3a2f0f;
      --critical:#e2807c; --critical-soft:#3d201f;
      --neutral-fill:#7f95ad; --neutral-soft:#2a3644;
      --seq-1:#26313d; --seq-2:#334252; --seq-3:#4a5a6c; --seq-4:#647686; --seq-5:#7f95ad; --seq-6:#a9b8c8;
      --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 8px 28px rgba(0,0,0,.5);
      color-scheme:dark;
    }
  }
  :root[data-theme="dark"]{
    --page-bg:#12181f; --surface:#1b2530; --surface-2:#212c39; --surface-3:#2a3644;
    --border:rgba(255,255,255,.12); --border-strong:rgba(255,255,255,.26);
    --ink:#eef2f5; --ink-secondary:#b9c4d0; --ink-muted:#7f95ad;
    --accent:#ff8b64; --accent-soft:#3a2418; --accent-strong:#ffb08f; --on-accent:#1c1006;
    --accent-2:#c3ccd6; --accent-2-soft:#2a3644;
    --good:#4fd6a0; --good-soft:#123326; --good-ink:#6be0b6;
    --warning:#f0c030; --warning-fill:#eab308; --warning-soft:#3a2f0f;
    --critical:#e2807c; --critical-soft:#3d201f;
    --neutral-fill:#7f95ad; --neutral-soft:#2a3644;
    --seq-1:#26313d; --seq-2:#334252; --seq-3:#4a5a6c; --seq-4:#647686; --seq-5:#7f95ad; --seq-6:#a9b8c8;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4); --shadow-md:0 8px 28px rgba(0,0,0,.5);
    color-scheme:dark;
  }

  *{box-sizing:border-box;}
  body{
    background:var(--page-bg); color:var(--ink);
    font-family:"Pretendard Variable","Pretendard",system-ui,-apple-system,"Segoe UI",sans-serif;
    padding:0 20px; padding-block:0;
    -webkit-font-smoothing:antialiased;
  }
  .num{ font-variant-numeric:tabular-nums; }
  a{color:var(--accent);}
  h1,h2,h3{text-wrap:balance; margin:0;}
  button{font-family:inherit;}
  .wrap{max-width:1280px; margin:0 auto;}

  /* ---------- header ---------- */
  header.top{
    position:sticky; top:env(safe-area-inset-top,0px); z-index:40;
    background:color-mix(in srgb, var(--page-bg) 88%, transparent);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
    padding-block:14px;
  }
  .top-row{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
  .brand{display:flex; align-items:baseline; gap:10px; flex:1 1 240px; min-width:0;}
  .brand-mark{font-size:22px; line-height:1;}
  .brand h1{font-size:19px; font-weight:700; letter-spacing:-.01em; white-space:nowrap;}
  .brand .tag{font-size:12px; color:var(--ink-muted); border:1px solid var(--border); border-radius:999px; padding:3px 9px; white-space:nowrap;}
  .top-controls{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  select.season-select{
    appearance:none; -webkit-appearance:none;
    background:var(--surface); color:var(--ink); border:1px solid var(--border-strong);
    border-radius:var(--radius-s); padding:8px 34px 8px 12px; font-size:13.5px; font-weight:600;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2357534a' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center; cursor:pointer;
  }
  .btn{
    display:inline-flex; align-items:center; gap:6px; border-radius:var(--radius-s);
    padding:8px 14px; font-size:13.5px; font-weight:600; border:1px solid var(--border-strong);
    background:var(--surface); color:var(--ink); cursor:pointer; white-space:nowrap; text-decoration:none;
  }
  .btn:hover{border-color:var(--accent);}
  .btn.primary{background:var(--accent); color:var(--on-accent); border-color:var(--accent);}
  .btn.primary:hover{background:var(--accent-strong); border-color:var(--accent-strong);}
  .btn.ghost{border-color:transparent; background:transparent;}
  .btn.danger{color:var(--critical); border-color:var(--critical); background:transparent;}
  .btn.outline{background:transparent; border-color:var(--accent); color:var(--accent-strong);}
  .btn.outline:hover{background:var(--accent-soft); border-color:var(--accent);}
  .btn.upload{background:#2f6fed; border-color:#2f6fed; color:#fff;}
  .btn.upload:hover{background:#2554c7; border-color:#2554c7;}
  .btn.upload:disabled, .btn.outline:disabled{opacity:.6; cursor:default;}
  .btn:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible{
    outline:2px solid var(--accent); outline-offset:2px;
  }
  .btn.small{padding:5px 10px; font-size:12px;}
  .btn.ghost.small{color:var(--ink-secondary); padding:6px 10px; font-size:12.5px;}
  .btn.ghost.small:hover{color:var(--ink); background:var(--surface-2); border-color:transparent;}
  .snapshot-note{font-size:12px; color:var(--ink-muted); width:100%; padding-top:2px;}
  .readonly-banner{
    max-width:1280px; margin:12px auto 0; padding:10px 14px; border-radius:var(--radius-s);
    background:var(--warning-soft); color:var(--warning); border:1px solid var(--border); font-size:13px;
    display:none;
  }
  .intake-unmatched-banner{
    padding:10px 14px; border-radius:var(--radius-s);
    background:var(--warning-soft); color:var(--warning); border:1px solid var(--border); font-size:13px;
    margin-bottom:16px; line-height:1.5;
  }
  tr.row-unmatched{background:var(--warning-soft);}
  tr.row-unmatched td{color:var(--ink);}
  .deitem-fix{
    background:var(--surface); border:1px solid var(--warning); border-radius:var(--radius-s);
    padding:6px 8px; font-size:13px; color:var(--warning); font-family:inherit; max-width:260px;
  }

  main{max-width:1280px; margin:0 auto; padding-block:28px 60px;}
  .view{display:flex; flex-direction:column; gap:28px;}

  /* ---------- nav ---------- */
  .nav-row{display:flex; align-items:center; gap:4px; padding-top:10px; margin-top:8px; border-top:1px solid var(--border); overflow-x:auto;}
  .nav-tab{
    display:inline-flex; align-items:center; gap:7px; background:none; border:none; cursor:pointer;
    padding:9px 6px; margin-right:18px; font-size:13.5px; font-weight:600; color:var(--ink-muted);
    border-bottom:2px solid transparent; white-space:nowrap;
  }
  .nav-tab:hover{color:var(--ink);}
  .nav-tab.active{color:var(--ink); border-color:var(--accent);}
  .nav-tab-primary{
    background:var(--accent-soft); color:var(--accent-strong); border-radius:999px;
    padding:9px 14px; margin-right:8px; border-bottom:none;
  }
  .nav-tab-primary:hover{color:var(--accent-strong); background:var(--accent-soft);}
  .nav-tab-primary.active{color:var(--on-accent); background:var(--accent); border-color:transparent;}
  .nav-group-sep{width:1px; align-self:stretch; margin:6px 10px 6px 2px; background:var(--border);}
  .nav-badge{
    display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px;
    background:var(--critical); color:#fff; border-radius:999px; font-size:11px; font-weight:700;
  }
  .nav-tab-primary .nav-badge{background:var(--on-accent); color:var(--accent-strong);}
  .nav-tab-primary.active .nav-badge{background:var(--on-accent); color:var(--accent-strong);}
  .nav-cta-sep{width:1px; align-self:stretch; margin:6px 12px 6px auto; background:var(--border);}
  .nav-tab-cta{
    margin-left:0; margin-right:0; align-self:center; display:inline-flex; align-items:center; gap:7px;
    background:#1D6F42; color:#fff; box-shadow:0 1px 2px rgba(0,0,0,.12);
    padding:9px 18px; border-radius:999px; font-weight:700; font-size:13.5px; border-bottom:none; white-space:nowrap;
  }
  .nav-tab-cta:hover{background:#175A36; color:#fff;}
  .nav-tab-cta.active{background:#175A36; color:#fff;}
  .nav-tab-cta:disabled{opacity:.6; cursor:default;}

  /* ---------- inline edit form ---------- */
  .form-section{display:flex; flex-direction:column; gap:14px; padding-block:20px; border-top:1px solid var(--border);}
  .form-section:first-of-type{padding-top:2px; border-top:none;}
  .form-section h3{font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-muted);}
  .edit-actions{display:flex; justify-content:space-between; gap:10px; padding-top:20px; margin-top:2px; border-top:1px solid var(--border);}
  .edit-actions .right{display:flex; gap:8px;}

  /* ---------- today callout (on dashboard) ---------- */
  .today-filter-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px;}
  .today-filter-chip{
    display:flex; align-items:center; gap:6px; padding:7px 12px; border-radius:999px;
    border:1px solid var(--border); background:var(--surface); cursor:pointer;
    font-size:12.5px; color:var(--ink-secondary); user-select:none;
  }
  .today-filter-chip input{accent-color:var(--accent); cursor:pointer;}
  .today-filter-chip.active{border-color:var(--accent); background:var(--accent-soft); color:var(--ink); font-weight:600;}
  .today-chip-row{display:flex; flex-wrap:wrap; gap:10px;}
  .today-chip{
    display:flex; align-items:center; gap:9px; padding:10px 14px; border-radius:var(--radius-m);
    border:1px solid var(--border); background:var(--surface-2); cursor:pointer; font-size:13px; flex:1 1 170px;
  }
  .today-chip:hover{border-color:var(--accent);}
  .today-chip .n{font-size:19px; font-weight:700; font-variant-numeric:tabular-nums;}
  .today-chip.has-items{background:var(--warning-soft); border-color:transparent;}
  .today-chip.has-items .n{color:var(--warning);}
  .today-chip .lbl{color:var(--ink-secondary); font-weight:600;}

  /* ---------- today lists ---------- */
  .today-list{display:flex; flex-direction:column; gap:8px;}
  .today-item{
    display:flex; justify-content:space-between; align-items:center; gap:12px; padding:11px 14px;
    border:1px solid var(--border); border-radius:var(--radius-s); cursor:pointer;
  }
  .today-item:hover{border-color:var(--accent); background:var(--surface-2);}
  .today-item .ti-main{min-width:0;}
  .today-item .ti-client{font-weight:700; font-size:13.5px;}
  .today-item .ti-name{font-size:12px; color:var(--ink-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:420px;}
  .today-item .ti-side{display:flex; align-items:center; gap:10px; flex:none;}
  .today-item .ti-cm{font-size:12px; color:var(--ink-secondary); white-space:nowrap;}

  /* ---------- section shell ---------- */
  section.card{
    background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-l);
    padding:22px 22px 24px; box-shadow:var(--shadow-sm); scroll-margin-top:190px;
  }
  .section-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:16px; flex-wrap:wrap;}
  .section-head h2{font-size:16px; font-weight:700;}
  .section-head .desc{font-size:12.5px; color:var(--ink-muted);}
  .section-head-right{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
  .qty-input{width:78px; text-align:right; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-s); padding:5px 7px; font-size:13px; color:var(--ink); font-family:inherit;}
  .template-download-box{
    display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    background:var(--accent-soft); border:1.5px solid var(--accent); border-radius:var(--radius-s);
    padding:14px 16px; margin-bottom:14px;
  }
  .template-download-box .tdb-text{font-size:13px; color:var(--ink); line-height:1.5;}
  .template-download-box .tdb-text b{color:var(--accent-strong);}
  .template-download-box .btn.primary{font-size:14px; padding:10px 18px; flex-shrink:0;}
  .grid-2{display:grid; grid-template-columns:1.15fr .85fr; gap:20px;}
  .grid-2b{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  @media (max-width:860px){ .grid-2,.grid-2b{grid-template-columns:1fr;} }

  /* ---------- KPI tiles ---------- */
  .kpi-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius-l); overflow:hidden;}
  .tile{background:var(--surface); padding:16px 16px 15px; display:flex; flex-direction:column; gap:6px; min-width:0;}
  .tile-label{font-size:12px; color:var(--ink-muted); font-weight:600;}
  .tile-value{font-size:22px; font-weight:700; letter-spacing:-.01em;}
  .tile-sub{font-size:12px; color:var(--ink-secondary);}
  .tile.accent{background:var(--accent-soft);}
  .tile.accent .tile-value{color:var(--accent-strong);}

  /* ---------- funnel ---------- */
  .funnel-bar{display:flex; width:100%; height:34px; border-radius:999px; overflow:hidden; border:1px solid var(--border);}
  .funnel-seg{height:100%; min-width:2px; transition:flex-basis .3s;}
  .funnel-legend{display:flex; flex-wrap:wrap; gap:14px; margin-top:14px;}
  .funnel-item{display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--ink-secondary);}
  .dot{width:9px; height:9px; border-radius:50%; flex:none;}
  .funnel-item b{color:var(--ink); font-weight:700;}

  /* ---------- ranked bar list ---------- */
  .rank-list{display:flex; flex-direction:column; gap:9px;}
  .rank-row{display:grid; grid-template-columns:22px minmax(0,1fr) 92px; gap:10px; align-items:center;}
  .rank-idx{font-size:11.5px; color:var(--ink-muted); font-weight:600;}
  .rank-label-wrap{min-width:0;}
  .rank-name{font-size:13px; color:var(--ink); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:4px;}
  .rank-track{height:8px; border-radius:999px; background:var(--surface-2); overflow:hidden;}
  .rank-fill{height:100%; border-radius:999px; background:var(--seq-4);}
  .rank-row.top .rank-fill{background:var(--accent);}
  .rank-row.top .rank-name{font-weight:700;}
  .rank-val{font-size:12.5px; text-align:right; color:var(--ink-secondary); white-space:nowrap;}
  .rank-sub{font-size:11px; color:var(--ink-muted); margin-top:2px;}

  /* ---------- channel chips ---------- */
  .tab-row{display:flex; gap:6px; margin-bottom:14px; border-bottom:1px solid var(--border);}
  .tab-btn{padding:8px 4px; margin-right:14px; font-size:13px; font-weight:600; color:var(--ink-muted); background:none; border:none; border-bottom:2px solid transparent; cursor:pointer;}
  .tab-btn.active{color:var(--ink); border-color:var(--accent);}
  .tab-panel{display:none;}
  .tab-panel.active{display:block;}

  /* ---------- table ---------- */
  .table-controls{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; align-items:center;}
  .search-input{
    flex:1 1 220px; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-s);
    padding:9px 12px; font-size:13.5px; color:var(--ink); font-family:inherit;
  }
  .chip-select{
    background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-s);
    padding:9px 10px; font-size:13px; color:var(--ink); font-family:inherit;
  }
  .table-scroll{overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius-m);}
  table.events{width:100%; border-collapse:collapse; font-size:13px; min-width:920px;}
  table.events th{
    position:sticky; top:0; z-index:9; background:var(--surface-2); text-align:center; font-size:11.5px; color:var(--ink);
    font-weight:700; padding:10px 12px; white-space:nowrap; cursor:default; user-select:none; border-bottom:1px solid var(--border);
  }
  table.events th[data-key]{cursor:pointer;}
  table.events th[data-key]:hover{color:var(--ink);}
  .sort-arrow{display:inline-block; margin-left:4px; font-size:10px; opacity:0.75;}
  table.events td{padding:10px 12px; border-bottom:1px solid var(--border); vertical-align:middle; white-space:nowrap;}
  table.events tbody tr:hover{background:var(--surface-2); cursor:pointer;}
  table.events tbody tr:last-child td{border-bottom:none;}
  table.events tfoot{position:sticky; bottom:0;}
  table.events tfoot td{
    background:var(--surface-3); color:var(--ink); font-weight:700;
    border-top:2px solid var(--border-strong); border-bottom:none;
  }
  .cell-client{font-weight:600;}
  .cell-event{color:var(--ink-secondary); font-size:12px; max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .cell-check{width:34px; padding-left:12px!important; padding-right:0!important;}
  .cell-check input[type="checkbox"], th.cell-check input[type="checkbox"]{width:15px; height:15px; cursor:pointer;}
  td.cell-done{background:var(--neutral-fill); font-weight:600;}
  .bulk-status-bar{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-secondary); margin-bottom:8px;}
  .bulk-status-bar .count{font-weight:700; color:var(--ink);}
  #btnBulkStatusChange{color:var(--accent);}
  #btnBulkEditMaster, #btnBulkDeleteMaster, #btnBulkEditDeItem, #btnBulkDeleteDeItem, #btnBulkEditAllDetail, #btnBulkDeleteAllDetail{background:var(--surface-2); border-color:var(--border);}
  #btnBulkEditMaster:hover, #btnBulkDeleteMaster:hover, #btnBulkEditDeItem:hover, #btnBulkDeleteDeItem:hover, #btnBulkEditAllDetail:hover, #btnBulkDeleteAllDetail:hover{background:var(--surface-3);}
  #btnOrderVerify.btn.primary{background:#7C3AED; border-color:#7C3AED; color:#fff;}
  #btnOrderVerify.btn.primary:hover{background:#6D28D9; border-color:#6D28D9;}
  .badge{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; padding:3px 9px; border-radius:999px; white-space:nowrap;}
  .badge.stage-0{background:var(--neutral-soft); color:var(--ink-secondary);}
  .badge.stage-1{background:var(--accent-soft); color:var(--accent-strong);}
  .badge.stage-2{background:var(--warning-soft); color:var(--warning);}
  .badge.stage-3{background:var(--good-soft); color:var(--good-ink);}
  .badge.new{background:var(--accent-soft); color:var(--accent-strong);}
  .badge.existing{background:var(--neutral-soft); color:var(--ink-secondary);}
  .badge.edit-status-modified{background:var(--critical); color:#fff; font-size:11px; cursor:pointer; font-weight:700;}
  .badge.edit-status-modified:hover{filter:brightness(1.1);}
  .badge.edit-status-confirmed{background:var(--good); color:#fff; font-size:11px; font-weight:700;}
  .edit-log-list{display:flex; flex-direction:column; gap:8px; max-height:320px; overflow-y:auto;}
  .edit-log-entry{padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-s); background:var(--surface-2); font-size:13px;}
  .edit-log-entry .edit-log-meta{color:var(--ink-muted); font-size:12px; margin-bottom:3px;}
  .tile.tile-link{cursor:pointer;}
  .tile.tile-link:hover{filter:brightness(0.97); box-shadow:0 0 0 1.5px var(--accent);}
  .edit-log-empty{color:var(--ink-muted); font-size:13px; padding:6px 0;}
  tr.row-discontinued{background:#EDEDED !important; color:#9A9A9A;}
  tr.row-discontinued td{color:#9A9A9A;}
  .badge.discontinued{background:#B0B0B0; color:#fff; font-size:11px; font-weight:600; margin-left:6px;}
  .discontinue-box{border:1.5px solid var(--critical); background:#FFF5F5; border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; gap:6px;}
  .discontinue-toggle{display:flex; align-items:center; gap:9px; font-weight:700; font-size:14px; cursor:pointer; color:var(--critical); margin:0;}
  .discontinue-toggle input[type="checkbox"]{width:20px; height:20px; accent-color:var(--critical); cursor:pointer;}
  .discontinue-sub{font-size:12px; color:var(--ink-muted); margin-left:29px;}
  .discontinue-toggle.catalog-updated{color:var(--good-ink); font-weight:600; font-size:13px; padding-top:4px; border-top:1px dashed #E5C5C5;}
  .discontinue-toggle.catalog-updated input[type="checkbox"]{accent-color:var(--good);}
  .pending-discontinued-row{display:flex; align-items:center; justify-content:space-between; gap:8px; background:#fff; border:1px solid #F0D9B5; border-radius:6px; padding:6px 10px; font-size:13px;}
  .pending-catalog-label{display:flex; align-items:center; gap:9px; cursor:pointer; font-size:13px; font-weight:600; color:var(--ink-secondary); white-space:nowrap;}
  .pending-catalog-check{width:26px; height:26px; accent-color:var(--good); cursor:pointer;}
  .table-empty{padding:28px; text-align:center; color:var(--ink-muted); font-size:13px;}
  .table-note{font-size:11.5px; color:var(--ink-muted); margin-top:10px;}

  /* ---------- compare ---------- */
  .compare-empty{
    border:1px dashed var(--border-strong); border-radius:var(--radius-m); padding:26px; text-align:center;
    color:var(--ink-muted); font-size:13px; display:flex; flex-direction:column; gap:10px; align-items:center;
  }
  .compare-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px;}
  .compare-card{border:1px solid var(--border); border-radius:var(--radius-m); padding:16px;}
  .compare-card h3{font-size:13.5px; font-weight:700; margin-bottom:10px;}
  .compare-row{display:flex; justify-content:space-between; font-size:12.5px; padding:5px 0; border-bottom:1px solid var(--border);}
  .compare-row:last-child{border-bottom:none;}
  .compare-row span:last-child{font-weight:600; color:var(--ink);}
  .delta{font-size:11px; font-weight:700; margin-left:6px;}
  .delta.up{color:var(--good-ink);}
  .delta.down{color:var(--critical);}

  /* ---------- footer / admin entry ---------- */
  footer.admin-entry{
    max-width:1280px; margin:0 auto 50px; display:flex; justify-content:space-between; align-items:center;
    gap:12px; flex-wrap:wrap; font-size:12px; color:var(--ink-muted); padding-top:6px;
  }

  /* ---------- modal ---------- */
  .modal-backdrop{
    position:fixed; inset:0; background:rgba(10,9,6,.45); display:flex; align-items:flex-start; justify-content:center;
    padding:40px 16px; overflow-y:auto; z-index:100;
  }
  .modal-backdrop[hidden]{display:none;}
  /* 확인(취소/삭제) 모달은 다른 모달(시즌 관리 등) 위에 떠 있어야 하므로 항상 최상단에 표시한다. */
  #confirmModalBackdrop{z-index:200;}
  .modal{
    background:var(--surface); border-radius:var(--radius-l); border:1px solid var(--border); box-shadow:var(--shadow-md);
    width:100%; max-width:560px; padding:22px; display:flex; flex-direction:column; gap:16px;
  }
  .modal.wide{max-width:760px;}
  .modal-head{display:flex; justify-content:space-between; align-items:center;}
  .modal-head h2{font-size:16px; font-weight:700;}
  .modal-close{background:none; border:none; font-size:18px; color:var(--ink-muted); cursor:pointer; padding:4px;}
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .form-grid.one{grid-template-columns:1fr;}
  @media (max-width:520px){.form-grid{grid-template-columns:1fr;}}
  .field{display:flex; flex-direction:column; gap:5px;}
  /* 이벤트 추가/수정 폼: 칸이 너무 넓게 늘어지지 않도록 폭을 제한하고 열을 더 나눈다 */
  #view-edit .card{max-width:900px; margin:0 auto;}
  #eventForm .form-grid{grid-template-columns:repeat(3, 1fr);}
  @media (max-width:760px){ #eventForm .form-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ #eventForm .form-grid{grid-template-columns:1fr;} }
  #eventForm .dt-row{display:flex; gap:6px;}
  #eventForm .dt-row input[type="date"]{flex:1.3; min-width:0;}
  #eventForm .dt-row input[type="time"]{flex:1; min-width:0;}
  .field.span2{grid-column:1/-1;}
  .field label{font-size:12px; font-weight:600; color:var(--ink-secondary);}
  .field input, .field select, .field textarea{
    background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-s);
    padding:8px 10px; font-size:13.5px; color:var(--ink); font-family:inherit;
  }
  .field textarea{resize:vertical; min-height:56px;}
  .field input[readonly]{background:var(--surface-3); color:var(--ink-secondary); cursor:not-allowed;}
  .field .hint{margin-top:-2px;}
  .searchable-select{position:relative;}
  #de_eventSearch{
    width:100%; background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-s);
    padding:9px 12px; font-size:13.5px; color:var(--ink); font-family:inherit;
  }
  .searchable-select-options{
    position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:40;
    background:var(--surface); border:1px solid var(--border-strong); border-radius:var(--radius-s);
    box-shadow:var(--shadow-md); max-height:360px; overflow-y:auto;
  }
  .searchable-select-option{
    padding:9px 12px; font-size:13.5px; color:var(--ink); cursor:pointer; display:flex; align-items:center; gap:6px;
  }
  .searchable-select-option:hover, .searchable-select-option.active{background:var(--accent-soft);}
  .searchable-select-option .muted{color:var(--ink-muted); font-size:12px;}
  .searchable-select-empty{padding:12px; font-size:13.5px; color:var(--ink-muted);}
  .view-value{
    background:var(--surface-3); border:1px solid var(--border); border-radius:var(--radius-s);
    padding:8px 10px; font-size:13.5px; color:var(--ink); min-height:35px; display:flex; align-items:center;
    white-space:pre-wrap; word-break:break-word;
  }
  .view-value.empty{color:var(--ink-muted);}
  #view-eventview .card{max-width:900px; margin:0 auto;}
  #view-eventview .form-grid{grid-template-columns:repeat(3, 1fr);}
  @media (max-width:760px){ #view-eventview .form-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ #view-eventview .form-grid{grid-template-columns:1fr;} }
  .dt-row{display:flex; gap:8px;}
  .dt-row input[type="date"]{flex:1.4; min-width:0;}
  .dt-row input[type="time"]{flex:1; min-width:0;}
  .modal-actions{display:flex; justify-content:space-between; gap:10px; padding-top:4px; border-top:1px solid var(--border); margin-top:2px;}
  .modal-actions .right{display:flex; gap:8px;}
  .hint{font-size:11.5px; color:var(--ink-muted);}

  .manage-tabs{display:flex; gap:6px; margin-bottom:10px;}
  .manage-list{display:flex; flex-direction:column; gap:6px; max-height:220px; overflow-y:auto; margin-bottom:12px; border:1px solid var(--border); border-radius:var(--radius-s); padding:8px;}
  .manage-row{display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:12.5px; padding:5px 6px; border-radius:6px;}
  .manage-row:hover{background:var(--surface-2);}
  .manage-row .mr-name{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .manage-row .mr-val{color:var(--ink-muted); font-size:11.5px; white-space:nowrap;}
  .manage-row button{background:none; border:none; color:var(--critical); cursor:pointer; font-size:12px; padding:2px 6px;}
  .add-row-grid{display:grid; grid-template-columns:1fr 100px 100px auto; gap:8px; align-items:end;}
  @media (max-width:560px){.add-row-grid{grid-template-columns:1fr; }}

  .toast{
    position:fixed; bottom:calc(20px + env(safe-area-inset-bottom,0px)); left:50%; transform:translateX(-50%);
    background:var(--ink); color:var(--page-bg); padding:10px 18px; border-radius:999px; font-size:13px; font-weight:600;
    box-shadow:var(--shadow-md); z-index:200; opacity:0; pointer-events:none; transition:opacity .2s, transform .2s;
  }
  .toast.show{opacity:1; transform:translateX(-50%) translateY(-6px);}

  [hidden]{display:none!important;}
