/* 치과 운영 현황판 데모 · /demo/clinic-operations
   운영 화면이라 밝은 바탕을 쓴다. 회사 팔레트는 맨 위 띠(검은 무대·청록)와
   주 행동색(어두운 청록)으로만 잇고, 상태색은 뜻이 있는 자리에만 쓴다.
   폰트는 사이트와 같은 자체 호스팅 Pretendard 3종(400·600·800)이다.
   인라인 스타일이 없어야 운영 CSP(style-src 'self') 아래에서 살아남는다. */
@font-face{font-family:Pretendard;src:url('/fonts/pretendard-400-1.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Pretendard;src:url('/fonts/pretendard-600-1.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Pretendard;src:url('/fonts/pretendard-800-1.woff2') format('woff2');font-weight:800;font-display:swap}

:root{
  color-scheme:light;
  --bg:#f3f6f5;
  --card:#ffffff;
  --surface:#f7faf9;
  --ink:#151a18;
  --ink-2:#39433f;
  --ink-3:#535f5a;
  --muted:#64706b;
  --line:#dde4e0;
  --line-2:#bfc9c4;
  --accent:#186f55;
  --accent-hover:#12594a;
  --accent-soft:#e4f2ec;
  --stage:#08090a;
  --stage-ink:#f4f5f6;
  --stage-muted:#aeb6b3;
  --stage-teal:#9be8d2;

  /* 상태색. dataviz 검사기로 밝은 바탕에서 CVD 분리·3:1 대비를 확인한 값이다.
     회색 둘(해당 없음·미입력)은 뜻이 「없음」이라 일부러 무채색이고, 미입력은 점선으로 한 번 더 가른다. */
  --done:#15803d;  --done-bg:#e3f3e8;  --done-ink:#166534;  --done-track:#c9e6d3;
  --doing:#2563eb; --doing-bg:#e7eefc; --doing-ink:#1e4fa3;
  --todo:#d97706;  --todo-bg:#fcefdc;  --todo-ink:#8a4a0f;  --todo-line:#f0cf9c;
  --stop:#b91c1c;  --stop-bg:#fbe7e7;  --stop-ink:#991b1b;  --stop-line:#efbfbf;
  --na:#a7b0ab;    --na-bg:#eef1ef;    --na-ink:#4d5853;
  --none:#c3ccc7;  --none-ink:#535f5a;
  --bar:#5a6660;

  --r:6px;
  --r-panel:8px;
  --font:Pretendard,"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:120px;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.01em;line-height:1.3;text-wrap:balance}
h1{font-size:17px}
h2{font-size:16px}
h3{font-size:14px}
p{margin:0}
button{font:inherit;color:inherit}
a{color:var(--accent)}
svg{display:block}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--card);padding:10px 14px;border:1px solid var(--line-2);border-radius:var(--r)}
.skip:focus{left:12px;top:12px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
@media (max-width:600px){.wrap{padding:0 14px}}

/* ---------- 짜임새 띠 ---------- */
.brandbar{background:var(--stage);color:var(--stage-muted);font-size:12.5px;line-height:1.5}
.brandbar-in{display:flex;align-items:center;gap:0 18px;min-height:44px;padding-block:2px}
.brandbar-home{display:inline-flex;align-items:baseline;gap:8px;min-height:40px;padding-block:8px;color:var(--stage-ink);text-decoration:none;white-space:nowrap}
.brandbar-mark{font-size:14px;font-weight:800;letter-spacing:-.02em}
.brandbar-sub{padding-left:8px;border-left:1px solid rgb(244 245 246 / .22);color:var(--stage-muted);font-size:11px;font-weight:600;letter-spacing:.06em}
.brandbar-note{flex:1 1 320px;min-width:0}
.brandbar-link{display:inline-flex;align-items:center;min-height:40px;padding:8px 0;color:var(--stage-teal);text-decoration:none;white-space:nowrap;font-weight:600}
.brandbar-link:hover,.brandbar-home:hover .brandbar-mark{text-decoration:underline;text-underline-offset:3px}
@media (max-width:760px){
  .brandbar-in{flex-wrap:wrap;gap:4px 14px}
  .brandbar-note{flex-basis:100%;order:3;color:var(--stage-muted)}
  .brandbar-link{margin-left:auto}
}

/* ---------- header ---------- */
.topbar{background:var(--card);border-bottom:1px solid var(--line)}
.topbar-in{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:baseline;padding:14px 20px;max-width:1200px;margin:0 auto}
@media (max-width:600px){.topbar-in{padding:12px 14px}}
.brand{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;flex:1 1 auto;min-width:0}
.brand small{color:var(--muted);font-size:13px}
.tag{display:inline-block;font-size:12px;line-height:1.5;padding:1px 8px;border:1px solid var(--line-2);border-radius:4px;color:var(--ink-2);white-space:nowrap;background:var(--surface)}
.saveinfo{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* ---------- tabs ---------- */
.tabs{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.tabs-in{display:flex;gap:0;max-width:1200px;margin:0 auto;padding:0 20px;overflow-x:auto;scrollbar-width:none}
.tabs-in::-webkit-scrollbar{display:none}
.tab{appearance:none;background:none;border:0;padding:13px 4px;margin-right:24px;cursor:pointer;color:var(--ink-3);font-size:15px;font-weight:600;border-bottom:2px solid transparent;white-space:nowrap;min-height:46px}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tab:focus-visible{outline-offset:-4px;border-radius:0}
@media (max-width:600px){.tabs-in{padding:0 6px}.tab{padding:12px 10px;margin-right:6px}}

/* ---------- filters ---------- */
.filters{background:var(--card);border-bottom:1px solid var(--line);padding:12px 0 14px}
.frow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.frow+.frow{margin-top:10px}
.frow-gap{margin-top:10px}
.flabel{font-size:12px;color:var(--muted);flex:0 0 auto;margin-right:2px}
.segf{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--card)}
.segf button{appearance:none;background:none;border:0;border-right:1px solid var(--line-2);padding:0 12px;min-height:36px;font-size:13.5px;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.segf button:last-child{border-right:0}
.segf button:hover{background:var(--surface)}
.segf button[aria-pressed="true"]{background:var(--accent);color:#fff}
.segf button .n{font-variant-numeric:tabular-nums;font-size:12px;opacity:.75}
.segf button[aria-pressed="true"] .n{opacity:.9}
.segf button:focus-visible{outline-offset:-3px;border-radius:0}
@media (max-width:600px){
  .segf{width:100%}
  .segf button{flex:1 1 auto;justify-content:center;padding:0 8px;font-size:13px;min-height:40px}
  .segf button:nth-child(4){border-right:0}
  .segf button:nth-child(n+5){border-top:1px solid var(--line-2)}
}
select,.txt{appearance:none;background:var(--card);border:1px solid var(--line-2);border-radius:var(--r);padding:6px 10px;font-size:14px;color:var(--ink);min-height:36px;max-width:100%;font-family:inherit}
select{padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23535f5a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat}
.txt{min-width:150px;flex:1 1 150px;max-width:260px}
.fsel{display:inline-flex;align-items:center;gap:6px}
@media (max-width:600px){
  .fsel{flex:1 1 calc(50% - 4px);min-width:0}
  .fsel select{flex:1 1 auto;min-width:0}
  .txt{max-width:none;flex:1 1 100%}
}
.linkbtn{appearance:none;background:none;border:0;padding:6px 2px;cursor:pointer;color:var(--accent);font-size:14px;text-decoration:underline;text-underline-offset:3px;min-height:36px}
.linkbtn:hover{color:var(--accent-hover)}
.linkbtn[disabled]{color:var(--muted);text-decoration:none;cursor:default}
.fcount{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}

/* ---------- layout ---------- */
main{padding:20px 0 40px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-panel);padding:18px 20px}
@media (max-width:600px){.card{padding:14px}}
.card+.card,.card-gap{margin-top:14px}
.card-hd{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.card-hd .sub{font-size:13px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px;align-items:start}
.grid2+.card{margin-top:14px}
@media (max-width:860px){.grid2{grid-template-columns:1fr}}
.note{font-size:13px;color:var(--ink-3);margin-top:10px}
.empty{padding:28px 14px;text-align:center;color:var(--muted);font-size:14px}
td.empty-cell{color:var(--muted)}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:1.6fr repeat(5,1fr);gap:10px}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(3,1fr)}.kpi.hero{grid-column:1 / -1}}
@media (max-width:600px){.kpis{grid-template-columns:repeat(2,1fr);gap:8px}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r-panel);padding:13px 14px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;min-height:92px;cursor:pointer;appearance:none;font:inherit;color:inherit}
.kpi:hover{border-color:var(--line-2);background:var(--surface)}
.kpi[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.kpi .k{font-size:13px;color:var(--ink-3);display:flex;align-items:center;gap:6px}
.kpi .k svg{width:12px;height:12px;flex:0 0 auto}
.kpi .v{font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.02em}
.kpi .v .u{font-size:14px;font-weight:400;color:var(--ink-3);margin-left:2px;letter-spacing:0}
.kpi .d{font-size:12.5px;color:var(--muted);margin-top:auto;padding-top:4px;line-height:1.4}
.kpi.hero{cursor:default;background:var(--card)}
.kpi.hero:hover{background:var(--card);border-color:var(--line)}
.kpi.hero .v{font-size:48px;letter-spacing:-.03em}
.kpi.hero .v .u{font-size:18px}
.meter{height:6px;background:var(--done-track);border-radius:3px;overflow:hidden;margin-top:8px}
.meter>div{height:100%;width:var(--fill,0%);background:var(--done);border-radius:3px}
.kpi.warnish .v{color:var(--todo-ink)}
.kpi.critish .v{color:var(--stop-ink)}

/* ---------- 결정 안건 ---------- */
.dlist{margin-top:10px;border-top:1px solid var(--line)}
.drow{display:grid;grid-template-columns:minmax(0,1fr) 150px 180px;gap:4px 16px;padding:11px 0;border-bottom:1px solid var(--line);align-items:start}
@media (max-width:760px){.drow{grid-template-columns:1fr}}
.drow .ttl{font-weight:600;font-size:14.5px}
.drow .body{font-size:13.5px;color:var(--ink-2);margin-top:2px}
.drow .meta{font-size:13px;color:var(--ink-3)}
.drow .meta b{font-weight:600;color:var(--ink-2)}
.due{font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink-3)}
.due.soon{color:var(--stop-ink);font-weight:600}

/* ---------- 부서별 막대 ---------- */
.barlist{margin-top:14px;display:flex;flex-direction:column;gap:12px}
.barrow{display:grid;grid-template-columns:92px minmax(0,1fr) 44px;gap:4px 10px;align-items:center}
.barname{font-size:13.5px;color:var(--ink-2);text-align:right;grid-column:1;grid-row:1 / span 2}
.stack{grid-column:2;grid-row:1}
.barmeta{grid-column:2;grid-row:2}
.barpct{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right;grid-column:3;grid-row:1 / span 2;font-weight:600}
@media (max-width:600px){
  .barrow{grid-template-columns:minmax(0,1fr) 44px;gap:4px 8px}
  .barname{text-align:left;grid-column:1;grid-row:1;font-weight:600;color:var(--ink)}
  .barpct{grid-column:2;grid-row:1}
  .stack{grid-column:1 / -1;grid-row:2}
  .barmeta{grid-column:1 / -1;grid-row:3}
}
/* 쌓은 막대. 조각 사이 2px 는 바탕색 틈이지 테두리가 아니다. */
.stack{display:flex;height:16px;gap:2px;background:transparent}
.seg{flex:var(--w,1) 1 0;min-width:3px;height:100%;position:relative;border-radius:2px}
.seg:first-child{border-radius:4px 2px 2px 4px}
.seg:last-child{border-radius:2px 4px 4px 2px}
.seg:only-child{border-radius:4px}
.seg[data-status="done"]{background:var(--done)}
.seg[data-status="doing"]{background:var(--doing)}
.seg[data-status="todo"]{background:var(--todo)}
.seg[data-status="stop"]{background:var(--stop)}
.seg[data-status="na"]{background:var(--na)}
.seg[data-status="none"]{background:transparent;box-shadow:inset 0 0 0 1px var(--none);background-image:repeating-linear-gradient(135deg,transparent 0 5px,var(--none) 5px 6px)}
.seg:hover,.seg:focus-visible{filter:brightness(1.08)}
.barmeta{font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;display:flex;flex-wrap:wrap;gap:2px 12px}
.barmeta b{font-weight:600;color:var(--ink-2)}

/* ---------- 원인 막대 ---------- */
.hbars{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.hrow{display:grid;grid-template-columns:150px 1fr 36px;gap:10px;align-items:center;appearance:none;background:none;border:0;padding:2px 0;text-align:left;cursor:pointer;color:inherit;border-radius:4px;min-height:36px}
@media (max-width:600px){.hrow{grid-template-columns:118px 1fr 32px;gap:8px}}
.hrow:hover .hfill{background:var(--accent)}
.hrow[aria-pressed="true"] .hfill{background:var(--accent)}
.hrow[aria-pressed="true"] .hname{color:var(--accent);font-weight:600}
.hname{font-size:13.5px;color:var(--ink-2);text-align:right;line-height:1.3}
@media (max-width:600px){.hname{font-size:12.5px}}
.htrack{height:14px;border-left:1px solid var(--line-2);padding-left:2px}
.hfill{height:100%;width:var(--w,0%);background:var(--bar);border-radius:0 4px 4px 0;min-width:4px}
.hval{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right}

.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.lg{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--ink-2)}
.sw{width:11px;height:11px;border-radius:3px;flex:0 0 auto}
.sw[data-status="done"]{background:var(--done)}
.sw[data-status="doing"]{background:var(--doing)}
.sw[data-status="todo"]{background:var(--todo)}
.sw[data-status="stop"]{background:var(--stop)}
.sw[data-status="na"]{background:var(--na)}
.sw[data-status="none"]{background:transparent;box-shadow:inset 0 0 0 1px var(--none);background-image:repeating-linear-gradient(135deg,transparent 0 3px,var(--none) 3px 4px)}

/* ---------- 상태 표시 ---------- */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;padding:2px 8px 2px 6px;border-radius:4px;white-space:nowrap;line-height:1.5}
.pill svg{width:11px;height:11px}
.pill.done{background:var(--done-bg);color:var(--done-ink)}
.pill.doing{background:var(--doing-bg);color:var(--doing-ink)}
.pill.todo{background:var(--todo-bg);color:var(--todo-ink)}
.pill.stop{background:var(--stop-bg);color:var(--stop-ink)}
.pill.na{background:var(--na-bg);color:var(--na-ink)}
.pill.none{background:var(--surface);color:var(--none-ink);border:1px dashed var(--line-2)}

/* ---------- 표 ---------- */
.tblwrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line);border-radius:var(--r);-webkit-overflow-scrolling:touch}
.scrollhint{display:none;font-size:12px;color:var(--muted);margin-top:8px}
@media (max-width:760px){.scrollhint{display:block}}
table{border-collapse:collapse;width:100%;font-size:13.5px}
table.w6{min-width:760px}
table.w4{min-width:560px}
table.w7{min-width:900px}
#panel-std table.w7 th:nth-child(1){min-width:112px}
#panel-std table.w7 th:nth-child(4){min-width:124px}
#panel-std table.w7 th:nth-child(2){min-width:130px}
caption{text-align:left;font-size:13px;color:var(--muted);padding:10px 14px 0}
th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{font-size:12.5px;font-weight:600;color:var(--ink-3);background:var(--surface);white-space:nowrap}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
tbody tr:hover{background:var(--surface)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
th[scope="row"]{font-weight:600}
th[scope="row"].plain{font-weight:400}
.cell-sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;font-weight:400}
.badge{display:inline-block;font-size:11.5px;color:var(--ink-3);border:1px solid var(--line-2);border-radius:4px;padding:0 6px;white-space:nowrap;line-height:1.6;background:var(--card)}
.badge.warn{color:var(--todo-ink);border-color:var(--todo-line);background:var(--todo-bg)}

/* ---------- 부서 체크리스트 ---------- */
.help{margin-top:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.help summary{cursor:pointer;padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:8px}
.help summary::-webkit-details-marker{display:none}
.help summary::before{content:"";width:6px;height:6px;border-right:1.5px solid var(--ink-3);border-bottom:1.5px solid var(--ink-3);transform:rotate(-45deg);transition:transform .15s;flex:0 0 auto}
.help[open] summary::before{transform:rotate(45deg)}
.help-body{padding:2px 14px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 18px}
.help-item{font-size:13px;color:var(--ink-2);line-height:1.45}
.help-item .pill{margin-right:4px}
.help-foot{grid-column:1 / -1;font-size:12.5px;color:var(--muted);padding-top:4px;border-top:1px solid var(--line)}

.tasklist-wrap{margin-top:14px}
.grouphd{position:sticky;top:46px;z-index:5;background:var(--bg);padding:14px 0 6px;font-size:13px;font-weight:600;color:var(--ink-3);display:flex;align-items:baseline;gap:8px}
.grouphd b{color:var(--ink);font-size:14px}
.tasklist{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card)}
.task{padding:14px 16px;border-bottom:1px solid var(--line);background:var(--card)}
@media (max-width:600px){.task{padding:12px}}
.task:last-child{border-bottom:0}
.task.unset{background:#fffdf5}
.task.flag{box-shadow:inset 3px 0 0 var(--stop)}
.task-top{display:flex;flex-wrap:wrap;gap:3px 8px;align-items:baseline}
.task-name{font-weight:600;font-size:15px}
.task-cat{font-size:12.5px;color:var(--muted)}
.task-what{font-size:13px;color:var(--ink-3);margin-top:3px}
.task-ctl{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-top:10px}

.seg5{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--card);position:relative}
.seg5 input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.seg5 label{padding:0 12px;font-size:13.5px;cursor:pointer;color:var(--ink-2);border-right:1px solid var(--line-2);user-select:none;min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.seg5 label:last-of-type{border-right:0}
.seg5 label:hover{background:var(--surface)}
.seg5 label svg{width:11px;height:11px;color:var(--line-2)}
.seg5 input:checked+label{font-weight:600}
.seg5 input:focus-visible+label{outline:2px solid var(--accent);outline-offset:-3px}
.seg5 input[value="done"]:checked+label{background:var(--done-bg);color:var(--done-ink)}
.seg5 input[value="doing"]:checked+label{background:var(--doing-bg);color:var(--doing-ink)}
.seg5 input[value="todo"]:checked+label{background:var(--todo-bg);color:var(--todo-ink)}
.seg5 input[value="stop"]:checked+label{background:var(--stop-bg);color:var(--stop-ink)}
.seg5 input[value="na"]:checked+label{background:var(--na-bg);color:var(--na-ink)}
.seg5 input:checked+label svg{color:currentColor}
@media (max-width:600px){
  .seg5{display:grid;grid-template-columns:repeat(5,1fr);width:100%}
  .seg5 label{padding:0 4px;font-size:12.5px;gap:4px;min-height:44px}
  .seg5 label svg{width:10px;height:10px}
}

.numfield{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink-2)}
.numfield-in{display:inline-flex;align-items:center;gap:6px}
.numfield input{width:82px;text-align:right;font-variant-numeric:tabular-nums;border:1px solid var(--line-2);border-radius:var(--r);padding:6px 9px;font-size:15px;min-height:40px;background:var(--card);color:var(--ink);font-family:inherit}
@media (max-width:600px){.numfield{width:100%;justify-content:space-between}.numfield input{width:110px}}

.why{margin-top:10px;padding:10px 12px;background:var(--todo-bg);border:1px solid var(--todo-line);border-radius:var(--r);display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.why .lb{font-size:13px;color:var(--todo-ink);font-weight:600;flex:0 0 auto}
.why select{flex:0 1 auto;border-color:#e2b98e;min-width:160px}
.why .since{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}
.why input[type=date]{border:1px solid #e2b98e;border-radius:var(--r);padding:5px 8px;font-size:14px;min-height:40px;background:var(--card);color:var(--ink);font-family:inherit}
.why input[type=text]{flex:1 1 200px;min-width:150px;max-width:460px;border:1px solid #e2b98e;border-radius:var(--r);padding:6px 10px;font-size:14px;min-height:40px;background:var(--card);color:var(--ink);font-family:inherit}
.why.stopish{background:var(--stop-bg);border-color:var(--stop-line)}
.why.stopish .lb{color:var(--stop-ink)}
.why.stopish select,.why.stopish input{border-color:#e0adad}
@media (max-width:600px){
  .why select{flex:1 1 100%}
  .why .since{width:100%}
  .why .since input{flex:1 1 auto}
}

.savebar{position:sticky;bottom:0;z-index:15;margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;box-shadow:0 -1px 0 var(--line),0 6px 18px rgb(21 26 24 / .07)}
.savebar .status{font-size:13.5px;color:var(--ink-3);flex:1 1 160px;font-variant-numeric:tabular-nums}
.savebar .status.bad{color:var(--stop-ink);font-weight:600}
.savebar .acts{display:flex;gap:8px;flex:0 0 auto;margin-left:auto}
@media (max-width:520px){.savebar .acts{width:100%;margin-left:0}.savebar .acts .btn{flex:1 1 0}}
.btn{appearance:none;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--r);padding:9px 18px;font-size:14.5px;font-weight:600;cursor:pointer;min-height:42px}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.btn[disabled]{background:var(--surface);border-color:var(--line);color:var(--muted);cursor:default}
.btn.ghost{background:var(--card);color:var(--ink-2);border-color:var(--line-2);font-weight:400}
.btn.ghost:hover{background:var(--surface);color:var(--ink)}

/* ---------- 바닥 ---------- */
.demofoot{border-top:1px solid var(--line);background:var(--card);color:var(--ink-3);font-size:13px}
.demofoot-in{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;justify-content:space-between;min-height:56px;padding-block:12px}
.demofoot a{display:inline-flex;align-items:center;min-height:44px;padding:0 2px;white-space:nowrap;font-weight:600;text-decoration:none}
.demofoot a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- 툴팁 · 알림 ---------- */
.tip{position:fixed;left:var(--x,0);top:var(--y,0);z-index:70;background:var(--ink);color:#fff;font-size:12.5px;line-height:1.45;padding:7px 10px;border-radius:5px;pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity .12s;max-width:260px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tip.on{opacity:1;transform:none}
.tip b{font-weight:600}
.toast{position:fixed;left:50%;bottom:88px;transform:translateX(-50%) translateY(6px);background:var(--ink);color:#fff;padding:11px 18px;border-radius:6px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:60;max-width:calc(100% - 28px);text-align:center;box-shadow:0 6px 20px rgb(21 26 24 / .2);line-height:1.4}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

@media (max-width:360px){
  .seg5 label{padding:0 3px;font-size:12px;gap:3px;white-space:normal;line-height:1.15;text-align:center}
  .savebar .acts .btn{padding:8px 10px;font-size:13.5px}
}

@media (prefers-reduced-motion:reduce){.toast,.tip,.help summary::before{transition:none}}
@media (forced-colors:active){
  .seg,.sw,.hfill,.meter>div{forced-color-adjust:none}
  .tab[aria-selected="true"]{border-bottom-color:Highlight}
}
@media print{
  .brandbar,.tabs,.filters,.savebar,.scrollhint,.demofoot{display:none}
  body{background:#fff}
  .card,.kpi{border-color:#999;break-inside:avoid}
  #panel-input,#panel-std{display:block!important}
}
