






  *{ scrollbar-width:thin; scrollbar-color:transparent transparent; }
  ::-webkit-scrollbar{ width:var(--sb-w); height:var(--sb-w); }
  ::-webkit-scrollbar-track{ background:transparent; }
  ::-webkit-scrollbar-corner{ background:transparent; }
  ::-webkit-scrollbar-thumb{
    background:transparent; border-radius:var(--radius-full);
    border:2px solid transparent; background-clip:content-box;
    transition:background .2s ease;
  }


  .sb-on{ scrollbar-color:var(--sb-thumb) transparent; }
  .sb-on::-webkit-scrollbar-thumb{ background:var(--sb-thumb); background-clip:content-box; }

  #rptStage{ position:fixed; left:-99999px; top:0; display:none; z-index:-1; }
  .rpt-page{ width:735px; padding:0; background:#fff; color:var(--text);
    font-family:'Pretendard','Pretendard Variable',-apple-system,BlinkMacSystemFont,'Malgun Gothic',sans-serif; }
  .rpt-head{ display:flex; justify-content:space-between; align-items:flex-end;
    border-bottom:3px solid #6b82be; padding-bottom:12px; }
  .rpt-org{ font-size:var(--fs-3); font-weight:700; color:#6b7280; letter-spacing:.2px; }
  .rpt-title{ font-size:27px; font-weight:800; margin:3px 0 5px; letter-spacing:-.6px; }
  .rpt-scope{ font-size:var(--fs-3); font-weight:700; color:#6b82be; }
  .rpt-date{ font-size:var(--fs-2); color:#6b7280; font-weight:700; }
  .rpt-headline{ margin:16px 0 4px; padding:13px 18px; background:var(--primary-light); border-left:5px solid #6b82be;
    border-radius:0 var(--radius-md) var(--radius-md) 0; font-size:var(--fs-6); font-weight:800; color:#3f5490; }
  .rpt-kpis{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-4); margin:16px 0 6px; }
  .rpt-kpi{ border:1.5px solid #e5e7eb; border-radius:var(--radius-lg); padding:12px 14px; }
  .rpt-kpi.main{ border-color:#6b82be; border-width:2px; background:var(--primary-light); }
  .rpt-kpi.good{ border-color:#16a34a; }
  .rpt-kpi-label{ font-size:var(--fs-2); font-weight:800; color:#6b7280; margin-bottom:4px; }
  .rpt-kpi-value{ font-size:var(--fs-8); font-weight:800; letter-spacing:-.8px; line-height:1.1; }
  .rpt-kpi.main .rpt-kpi-value{ color:#6b82be; }
  .rpt-kpi-sub{ font-size:var(--fs-1); color:#6b7280; font-weight:700; margin-top:4px; }
  .rpt-d{ font-weight:800; }
  .rpt-d.up{ color:#dc2626; } .rpt-d.down{ color:#6b82be; } .rpt-d.flat{ color:#9ca3af; }
  .rpt-sec{ margin-top:0; }
  .rpt-sec h2{ font-size:var(--fs-6); font-weight:800; margin:0 0 9px; padding-left:9px; border-left:4px solid #6b82be; }
  .rpt-sub{ font-size:var(--fs-3); font-weight:800; color:#6b7280; margin:0 0 6px; }
  .rpt-two{ display:grid; grid-template-columns:1.35fr 1fr; gap:var(--sp-5); align-items:start; }
  table.rpt-table{ width:100%; border-collapse:collapse; font-size:var(--fs-2); font-variant-numeric:tabular-nums; }
  table.rpt-table th{ background:#e4e9f2; color:#374151; font-weight:800; font-size:var(--fs-1);
    padding:7px 8px; border-bottom:1.5px solid #d1d5db; text-align:left; white-space:nowrap; }
  table.rpt-table td{ padding:6.5px 8px; border-bottom:1px solid #e4e9f2; white-space:nowrap; }
  table.rpt-table th.num, table.rpt-table td.num{ text-align:right; }
  table.rpt-table td.strong{ font-weight:800; }
  table.rpt-table tfoot td{ border-top:2px solid #d1d5db; border-bottom:none; font-weight:800; background:var(--primary-light); }
  .rpt-empty{ text-align:center; color:#9ca3af; padding:16px 0; }
  .rpt-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px; vertical-align:-1px; }
  .rpt-rank{ display:inline-block; min-width:17px; height:17px; line-height:17px; text-align:center; border-radius:var(--radius-sm);
    background:#e4e9f2; color:#6b7280; font-size:var(--fs-1); font-weight:800; margin-right:6px; }
  .rpt-bars{ margin-bottom:12px; }
  .rpt-bar-row{ display:grid; grid-template-columns:96px 1fr 64px; align-items:center; gap:var(--sp-3); margin-bottom:6px; }
  .rpt-bar-name{ font-size:var(--fs-1); font-weight:700; }
  .rpt-bar-track{ position:relative; height:19px; }
  .rpt-bar{ position:absolute; left:0; border-radius:var(--radius-xs); }
  .rpt-bar.cur{ top:0; height:11px; }
  .rpt-bar.prev{ top:12px; height:6px; background:#cbd5e1; }
  .rpt-bar-val{ font-size:var(--fs-1); font-weight:800; text-align:right; }
  .rpt-foot{ margin-top:26px; padding-top:10px; border-top:1px solid #e5e7eb;
    font-size:var(--fs-1); color:#9ca3af; font-weight:700; }
  .drop-zone{
    max-width:420px;
    margin:26px auto 0;
    padding:28px 20px;
    border:2px dashed var(--border);
    border-radius:var(--radius-lg);
    background:var(--card);
    color:var(--faint);
    transition:border-color .18s ease, background .18s ease, transform .18s ease;
  }
  .drop-zone .drop-zone-icon{
    font-size:28px;
    margin-bottom:8px;
    transition:transform .18s ease;
  }
  .drop-zone .drop-zone-text{ font-size:var(--fs-5); color:var(--muted); }
  .drop-zone:hover{
    border-color:var(--primary-light);
    background:var(--surface2);
  }
  .drop-zone:hover .drop-zone-icon{ transform:translateY(-3px); }
  .drop-zone.dragover{
    border-color:var(--primary);
    background:var(--primary-light);
    transform:scale(1.02);
    animation:dropPulse 1s ease-in-out infinite;
  }
  .drop-zone.dragover .drop-zone-text{ color:var(--primary-press); }
  @keyframes dropPulse{
    0%,100%{ box-shadow:0 0 0 0 rgba(76,100,166,.18); }
    50%{ box-shadow:0 0 0 8px rgba(76,100,166,.08); }
  }

  .card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius-lg);
    padding:18px 20px;
    margin-bottom:16px;
    box-shadow:var(--shadow-sm);
    transition:box-shadow .15s ease, transform .15s ease;
  }
  .card:hover{
    box-shadow:var(--shadow-md-blue);
    transform:translateY(-1px);
  }
  .card h3{
    font-size:var(--fs-6);
    margin:0 0 14px;
    font-weight:700;
    color:var(--text);
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .card h3 .title-with-icon{
    display:inline-flex;
    align-items:center;
    gap:var(--sp-3);
  }
  .card h3 .count{
    font-size:var(--fs-4);
    color:var(--muted);
    font-weight:500;
  }

  .kpi-card .label{
    font-size:var(--fs-6);
    color:var(--muted);
    font-weight:700;
    margin-bottom:8px;
  }
  .kpi-card .value{
    font-size:30px;
    font-weight:800;
    color:var(--text);
    line-height:1.1;
  }
  .kpi-card .value small{
    font-size:var(--fs-5);
    font-weight:700;
    color:var(--muted);
    margin-left:4px;
  }
  .kpi-card .ref{
    margin-top:10px;
    font-size:var(--fs-4);
    color:var(--muted);
  }
  .progress-bar{
    position:relative;
    margin-top:10px;
    height:14px;
    border-radius:var(--radius-md);
    background:var(--border);
    overflow:hidden;
  }
  .progress-bar .fill{
    position:absolute;
    top:0; left:0;
    height:100%;
    border-radius:var(--radius-md);
    transition:width .3s;
  }
  .progress-bar .fill.expected{ background:#6b82be; z-index:1; }


  .kpi-card.kpi-highlight{
    background:var(--secondary);
    border:none;
    border-radius:var(--radius-xl);
    padding:20px 22px;
    box-shadow:var(--shadow-sm);
  }
  .kpi-card.kpi-highlight:hover{ box-shadow:var(--shadow-md-blue); }
  .kpi-card.kpi-highlight .label{ color:var(--secondary-light); font-weight:700; }
  .kpi-card.kpi-highlight .value{ font-size:36px; font-weight:800; color:#ffffff; letter-spacing:-0.5px; }
  .kpi-card.kpi-highlight .value small{ color:rgba(255,255,255,.65); }
  .value-row{
    display:flex;
    align-items:baseline;
    gap:var(--sp-4);
    flex-wrap:wrap;
  }
  .kpi-achieve-badge{
    font-size:var(--fs-6);
    font-weight:800;
    color:#ffffff;
    background:rgba(255,255,255,.16);
    padding:3px 10px;
    border-radius:var(--radius-full);
  }
  .kpi-card.kpi-highlight .progress-bar{ background:rgba(255,255,255,.18); }
  .kpi-card.kpi-highlight .progress-bar .fill.expected{ background:#ffffff; }
  .kpi-card.kpi-highlight .ref{
    font-size:var(--fs-6);
    font-weight:700;
    color:#ffffff;
    margin-top:10px;
  }

  .chart-wrap{ position:relative; height:220px; }
  .chart-wrap.pie{ height:200px; }
  .chart-wrap.bar{ height:200px; }

    table:not(:where(.paper, .paper *)){
    width:100%;
    border-collapse:collapse;
    font-size:var(--fs-5);
  }
    thead th:not(:where(.paper, .paper *)){
    text-align:left;
    font-size:var(--fs-5);
    color:var(--muted);
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.03em;
    font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
    border-bottom:1px solid var(--border);
    padding:8px 6px;
    position:sticky;
    top:0;
    background:var(--card);
    white-space:nowrap;
  }
    tbody td:not(:where(.paper, .paper *)){
    padding:7px 6px;
    border-bottom:1px solid var(--border-soft);
    color:var(--text);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:140px;
  }
  td.num, th.num{ text-align:right; }
  td.num.pos{ color:var(--positive); font-weight:700; }
  td.num.neg{ color:var(--negative); font-weight:700; }
    tbody tr:nth-child(even) td:not(:where(.paper, .paper *)){ background:var(--bg); }
    tbody tr:hover td:not(:where(.paper, .paper *)){ background:var(--row-hover); }

  .stage-pill{
    display:inline-block;
    padding:3px 9px;
    border-radius:var(--radius-full);
    font-size:var(--fs-4);
    font-weight:700;
    white-space:nowrap;
  }


  .stage-pill.s-new{ background:#eef4fd; color:#3f6ea8; }
  .stage-pill.s-review{ background:#e2edfb; color:#245f9e; }
  .stage-pill.s-order{ background:#d7e6fa; color:var(--stage-80); }
  .stage-pill.s-inspect{ background:#cddffa; color:var(--stage-90); }
  .stage-pill.s-done{ background:#e6f3ef; color:var(--stage-done); }
  .stage-pill.s-drop{ background:#fdece6; color:var(--stage-drop); }
  .stage-pill.s-etc{ background:var(--surface2); color:var(--muted); }
  .table-scroll{
    overflow-x:auto;
  }
  table.cross-table{ min-width:880px; }
  table.cross-table td:first-child, table.cross-table th:first-child{
    position:sticky;
    left:0;
    background:var(--card);
    font-weight:700;
    white-space:nowrap;
    z-index:1;
  }
  .no-rows{
    color:var(--muted);
    text-align:center;
    padding:30px 0;
    font-size:var(--fs-5);
  }
  .note{
    font-size:var(--fs-4);
    color:var(--muted);
    margin:6px 2px 0;
    line-height:1.5;
  }

  .manual-revenue-panel{
    margin-top:10px;
    padding:12px;
    background:var(--surface2);
    border:1px solid var(--border);
    border-radius:var(--radius-md);
  }
  .manual-revenue-panel textarea{
    width:100%;
    min-height:90px;
    box-sizing:border-box;
    font-family:'SFMono-Regular',Consolas,'Liberation Mono',Menlo,monospace;
    font-size:var(--fs-4);
    padding:8px;
    border:1px solid var(--border);
    border-radius:var(--radius-md);
    resize:vertical;
  }
  .manual-revenue-actions{
    display:flex;
    align-items:center;
    gap:var(--sp-3);
    margin-top:8px;
  }
  .manual-revenue-status{
    font-size:var(--fs-3);
    color:var(--muted);
    margin:0 0 8px;
  }
  .manual-revenue-msg{
    font-size:var(--fs-4);
    margin:0;
  }
  .manual-revenue-msg.ok{ color:var(--st-ok); font-weight:700; }
  .manual-revenue-msg.err{ color:var(--st-err); font-weight:700; }

  table.cross-table tr.row-highlight td{ background:var(--surface2); }
  table.cross-table tr.row-highlight td:first-child{ background:var(--surface2); border-left:3px solid var(--primary); }

  table.cross-table tr.prevyear-row{ display:none; }
  table.cross-table tr.prevyear-row.show{ display:table-row; }
  .prevyear-toggle{
    cursor:pointer;
    color:var(--primary);
    font-size:var(--fs-4);
    text-decoration:underline;
    display:inline-block;
    padding:4px 0;
  }
  table.cross-table th:first-child{ font-weight:800; }

  table.cross-table tr.clickable-row{ cursor:pointer; }
  .row-toggle-hint{ font-size:var(--fs-2); color:var(--primary); margin-left:4px; }
  table.cross-table tr.revenue-detail-row, table.cross-table tr.margin-detail-row{ display:none; }
  table.cross-table tr.revenue-detail-row.show, table.cross-table tr.margin-detail-row.show{ display:table-row; }
  table.cross-table tr.detail-sub-row td{ font-size:var(--fs-3); color:var(--muted); background:var(--surface2); font-weight:500; }
  table.cross-table tr.detail-sub-row td:first-child{ padding-left:20px; background:var(--surface2); }
  .breakdown-edit-input{ width:100%; max-width:56px; border:1px solid transparent; border-radius:var(--radius-sm); background:transparent; text-align:right; font:inherit; font-size:var(--fs-3); color:var(--muted); padding:2px 4px; }
  .breakdown-edit-input:hover{ border-color:var(--border); background:var(--card); }
  .breakdown-edit-input:focus{ outline:none; border-color:var(--primary); background:var(--card); color:var(--text); }


  table.review-table thead th{ font-weight:800; }
  table.review-table th:nth-child(1), table.review-table td:nth-child(1){ width:4%; }
  table.review-table th:nth-child(2), table.review-table td:nth-child(2){ width:8%; }
  table.review-table th:nth-child(3), table.review-table td:nth-child(3){ width:14%; }
  table.review-table th:nth-child(4), table.review-table td:nth-child(4){ width:13%; }
  table.review-table th:nth-child(5), table.review-table td:nth-child(5){ width:10%; }
  table.review-table th:nth-child(6), table.review-table td:nth-child(6){ width:6%; }
  table.review-table th:nth-child(7), table.review-table td:nth-child(7){ width:10%; }
  table.review-table th:nth-child(8), table.review-table td:nth-child(8){ width:10%; }
  table.review-table th:nth-child(9), table.review-table td:nth-child(9){ width:10%; }
  table.review-table th:nth-child(10), table.review-table td:nth-child(10){ width:9%; }
  table.review-table th:nth-child(11), table.review-table td:nth-child(11){ width:6%; }

  table.review-table.compact-table th:nth-child(1), table.review-table.compact-table td:nth-child(1){ width:8%; }
  table.review-table.compact-table th:nth-child(2), table.review-table.compact-table td:nth-child(2){ width:15%; }
  table.review-table.compact-table th:nth-child(3), table.review-table.compact-table td:nth-child(3){ width:14%; }
  table.review-table.compact-table th:nth-child(4), table.review-table.compact-table td:nth-child(4){ width:11%; }
  table.review-table.compact-table th:nth-child(5), table.review-table.compact-table td:nth-child(5){ width:6%; }
  table.review-table.compact-table th:nth-child(6), table.review-table.compact-table td:nth-child(6){ width:11%; }
  table.review-table.compact-table th:nth-child(7), table.review-table.compact-table td:nth-child(7){ width:11%; }
  table.review-table.compact-table th:nth-child(8), table.review-table.compact-table td:nth-child(8){ width:10%; }
  table.review-table.compact-table th:nth-child(9), table.review-table.compact-table td:nth-child(9){ width:8%; }
  table.review-table.compact-table th:nth-child(10), table.review-table.compact-table td:nth-child(10){ width:6%; }


  table.review-table.pipeline-review-table th:nth-child(1), table.review-table.pipeline-review-table td:nth-child(1){ width:8%; }
  table.review-table.pipeline-review-table th:nth-child(2), table.review-table.pipeline-review-table td:nth-child(2){ width:16%; }
  table.review-table.pipeline-review-table th:nth-child(3), table.review-table.pipeline-review-table td:nth-child(3){ width:14%; }
  table.review-table.pipeline-review-table th:nth-child(4), table.review-table.pipeline-review-table td:nth-child(4){ width:14%; }
  table.review-table.pipeline-review-table th:nth-child(5), table.review-table.pipeline-review-table td:nth-child(5){ width:16%; }
  table.review-table.pipeline-review-table th:nth-child(6), table.review-table.pipeline-review-table td:nth-child(6){ width:10%; }
  table.review-table.pipeline-review-table th:nth-child(7), table.review-table.pipeline-review-table td:nth-child(7){ width:12%; }
  table.review-table.pipeline-review-table th:nth-child(8), table.review-table.pipeline-review-table td:nth-child(8){ width:10%; }

  table.review-table, table.pipeline-table{ display:flex; flex-direction:column; min-height:0; }
  table.review-table > thead, table.review-table > tbody, table.review-table > tfoot,
  table.pipeline-table > thead, table.pipeline-table > tbody, table.pipeline-table > tfoot{
    display:block;
    width:100%;
    flex:none;
  }
  table.review-table tr, table.pipeline-table tr{
    display:table;
    width:100%;
    table-layout:fixed;
  }
  table.review-table > tbody.scroll-y, table.pipeline-table > tbody.scroll-y{
    flex:1 1 auto;
    min-height:56px;
    height:auto;
    overflow-y:auto;
  }
  table.review-table > tfoot tr.total-row td, table.pipeline-table > tfoot tr.total-row td{
    background:var(--card);
    font-weight:800;
    border-top:2px solid var(--border);
    border-bottom:none;
  }
  table.review-table > tfoot tr.total-row td.total-label, table.pipeline-table > tfoot tr.total-row td.total-label{ color:var(--text); }


  .collapse-toggle{
    cursor:pointer;
    color:var(--primary);
    font-size:var(--fs-4);
    font-weight:700;
    text-decoration:underline;
    white-space:nowrap;
  }



  table.pipeline-table th:nth-child(1), table.pipeline-table td:nth-child(1){ width:8%; }
  table.pipeline-table th:nth-child(2), table.pipeline-table td:nth-child(2){ width:16%; }
  table.pipeline-table th:nth-child(3), table.pipeline-table td:nth-child(3){ width:14%; }
  table.pipeline-table th:nth-child(4), table.pipeline-table td:nth-child(4){ width:14%; }
  table.pipeline-table th:nth-child(5), table.pipeline-table td:nth-child(5){ width:16%; }
  table.pipeline-table th:nth-child(6), table.pipeline-table td:nth-child(6){ width:10%; }
  table.pipeline-table th:nth-child(7), table.pipeline-table td:nth-child(7){ width:12%; }
  table.pipeline-table th:nth-child(8), table.pipeline-table td:nth-child(8){ width:10%; }


  table.pipeline-table tbody tr.excluded td, table.pipeline-review-table tbody tr.excluded td{ background:var(--exclude-bg)!important; }
  table.pipeline-table tbody tr.excluded:hover td, table.pipeline-review-table tbody tr.excluded:hover td{ background:#ffd9a0!important; }

  table.review-table tbody tr.row-selected td{ background:var(--primary-light)!important; }
  table.review-table tbody tr.row-selected:hover td{ background:#d5ddee!important; }

  tr.memo-row td{ background:var(--surface2); padding:8px 10px 10px; }
  tr.memo-row:hover td{ background:var(--surface2)!important; }
  .memo-input{
    width:100%;
    min-height:44px;
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    padding:7px 9px;
    font-size:var(--fs-5);
    font-family:inherit;
    color:var(--text);
    background:var(--card);
    resize:vertical;
  }
  .memo-input:focus{ outline:none; border-color:var(--primary); }




  .tab-badge{ display:inline-block; min-width:12px; padding:1px 7px; margin-left:6px; border-radius:var(--radius-full); background:#dc2626; color:#fff; font-size:var(--fs-2); font-weight:700; vertical-align:1px; }
















.tbar{ position:relative; display:flex; align-items:center; gap:var(--sp-2);
  margin:0 0 var(--sp-3); flex-wrap:wrap; }
.tbar-sp{ flex:1; }
.tbar-q input{
  width:260px; box-sizing:border-box; padding:5px 10px;
  border-width:1px; border-style:solid; border-color:var(--line); border-radius:var(--radius-sm);
  font-family:inherit; font-size:var(--fs-3); color:var(--text); background:var(--card);
}
.tbar-b{
  border-width:1px; border-style:solid; border-color:var(--line); background:var(--card); color:var(--muted);
  border-radius:var(--radius-sm); padding:5px 10px; cursor:pointer;
  font-family:inherit; font-size:var(--fs-2); font-weight:500;


  white-space:nowrap;
}
.tbar-b:hover{ background:var(--row-hover); }
.tbar-b b{ font-weight:800; color:var(--primary); }
.tbar-pop{
  position:absolute; top:34px; z-index:60; min-width:196px; max-width:280px; max-height:340px; overflow:auto;
  background:var(--card); border-width:1px; border-style:solid; border-color:var(--line);
  border-radius:var(--radius-md); box-shadow:0 12px 30px rgba(0,0,0,.14); padding:6px;
}
.tbar-pop-h{ font-size:var(--fs-1); font-weight:800; color:var(--muted); padding:6px 8px 4px; }
.tbar-pop-h.sub{ padding-top:10px; }
.tbar-pop-i{
  display:flex; align-items:center; gap:var(--sp-2); width:100%; text-align:left;
  border:0; background:transparent; padding:5px 8px; border-radius:var(--radius-sm); cursor:pointer;
  font-family:inherit; font-size:var(--fs-3); color:var(--text);
}
.tbar-pop-i:hover{ background:var(--row-hover); }
.tbar-pop-i.as-text{ color:var(--muted); font-size:var(--fs-2); cursor:default; line-height:1.6; }
.tbar-ck{ width:14px; flex:0 0 14px; color:var(--primary); font-weight:800; }




  .ui-pop-back{
    position:fixed; inset:0; z-index:9000; background:var(--scrim);
    display:flex; align-items:center; justify-content:center; padding:var(--sp-5);
  }
  .ui-pop{
    background:var(--card); color:var(--text);
    border-radius:var(--radius-xl); box-shadow:0 22px 60px rgba(22,34,60,.22);
    width:min(460px, 92vw); max-height:80vh; display:flex; flex-direction:column; overflow:hidden;
  }
  .ui-pop-h{
    padding:16px 20px 0; font-size:var(--fs-6); font-weight:700; color:var(--text);
  }
  .ui-pop-b{
    padding:12px 20px 4px; font-size:var(--fs-4); line-height:1.7; color:var(--text-secondary);
    overflow-y:auto; white-space:pre-wrap; word-break:break-word;
  }
  .ui-pop-in{
    margin:8px 20px 0; padding:8px 10px; width:calc(100% - 40px);
    border:1px solid var(--border); border-radius:var(--radius-sm);
    font-family:inherit; font-size:var(--fs-4); color:var(--text); background:var(--card);
  }
  .ui-pop-f{
    display:flex; justify-content:flex-end; gap:var(--sp-3); padding:16px 20px 18px;
  }
  .ui-pop-f .btn{ min-width:84px; justify-content:center; }


  .idle-warn[hidden]{ display:none; }
  .idle-warn-left{ font-weight:700; color:var(--text); font-variant-numeric:tabular-nums; }









  .ui-toasts{
    position:fixed; right:var(--sp-5); bottom:var(--sp-5); z-index:9500;
    display:flex; flex-direction:column-reverse; align-items:flex-end; gap:var(--sp-2);
    max-width:min(360px, calc(100vw - 2 * var(--sp-5))); pointer-events:none;
  }
  .ui-toast{
    display:flex; align-items:center; gap:var(--sp-3); max-width:100%;
    padding:var(--sp-3) var(--sp-4);
    background:var(--text); color:var(--card);
    border-radius:var(--radius-md); box-shadow:var(--shadow-md);
    font-size:var(--fs-4); line-height:1.5; white-space:pre-line; overflow-wrap:anywhere;
    opacity:0; transform:translateY(100%);
    transition:opacity 200ms var(--ease-out), transform 200ms var(--ease-out);
  }
  .ui-toast.on{ opacity:1; transform:none; transition-duration:400ms; }
  .ui-toast-ok{
    flex:none; width:16px; height:16px; border-radius:50%;
    display:grid; place-items:center; font-size:10px; line-height:1;
    background:var(--ok); color:var(--card);
  }
  html.no-motion .ui-toast{ transform:none; }
  @media (prefers-reduced-motion: reduce){ .ui-toast{ transform:none; } }
  @media (max-width:640px){
    .ui-toasts{ left:var(--sp-4); right:var(--sp-4); bottom:calc(76px + env(safe-area-inset-bottom)); max-width:none; align-items:stretch; }
  }
  @media print{ .ui-toasts{ display:none !important; } }









  .ui-empty{ text-align:center; padding:40px 20px; }
  .ui-empty-ic{ width:40px; height:40px; margin:0 auto 12px;
    display:flex; align-items:center; justify-content:center;
    background:var(--sk-bg2); border:1px solid var(--line); border-radius:var(--radius-md);
    color:var(--faint); }
  .ui-empty-ic svg{ width:20px; height:20px; }
  .ui-empty-t{ font-size:var(--fs-5); font-weight:700; color:var(--text); margin:0 0 6px; }
  .ui-empty-d{ font-size:var(--fs-3); color:var(--muted); line-height:1.6; margin:0; }

  .ui-empty-d b{ color:var(--text-secondary); font-weight:700; }
  .ui-empty-btn{ margin-top:14px; display:flex; gap:var(--sp-3); justify-content:center; flex-wrap:wrap; }






  .pgr{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:2px;
    margin-top:var(--sp-3); font-size:var(--fs-3); color:var(--muted); }
  .pgr-b{ min-width:30px; height:30px; padding:0 6px; border:1.5px solid transparent;
    border-radius:var(--radius-full); background:transparent; color:var(--muted);
    font-family:inherit; font-size:var(--fs-3); font-weight:700; font-variant-numeric:tabular-nums; cursor:pointer; }
  .pgr-b:hover:not(:disabled){ background:var(--surface2); color:var(--text); }
  .pgr-b.on{ border-color:var(--primary); color:var(--primary); background:transparent; cursor:default; }
  .pgr-b.ar{ font-size:var(--fs-5); font-weight:400; }
  .pgr-b:disabled{ color:var(--faint); opacity:.5; cursor:default; }
  .pgr-go{ display:inline-flex; align-items:center; gap:4px; margin-left:var(--sp-3); font-size:var(--fs-2); }
  .pgr-in{ width:44px; height:26px; padding:0 4px; text-align:center; font:inherit; font-variant-numeric:tabular-nums;
    border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--card); color:var(--text); }
  .pgr-in:focus{ outline:none; border-color:var(--primary); }
  .pgr-ok{ height:26px; padding:0 8px; font:inherit; cursor:pointer;
    border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--card); color:var(--text); }
  .pgr-ok:hover{ background:var(--surface2); }
  .pgr-n{ margin-left:var(--sp-3); font-size:var(--fs-2); color:var(--muted); font-variant-numeric:tabular-nums; }
