
/* Layout: 햇살 드는 공방 작업대 — 크림 바탕 위 둥근 카드, 허니 골드 포인트, 에스프레소 글씨. 서류 미리보기만 흰 종이. */
@font-face{font-family:"GmarketSans";src:url("fonts/GmarketSansMedium.woff") format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"Pretendard";src:url("fonts/Pretendard-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Pretendard";src:url("fonts/Pretendard-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Pretendard";src:url("fonts/Pretendard-SemiBold.woff2") format("woff2");font-weight:600 700;font-display:swap}
:root{
  --bg:#FFFDF8; --surface:#FFFFFF; --sunken:#FBF8F1; --ink:#3A352D; --body:#4A453D; --muted:#736D62; --faint:#A8A398;
  --line:#F3EEE4; --line-strong:#E4DED2;
  --accent:#E8AE3C; --accent-ink:#3D2A06; --accent-text:#8A5E12; --accent-soft:#FDF3DE; --butter:#FFF9EA;
  --seal:#B5452F; --seal-soft:#F8E7E2;
  --good:#2F7A4F; --good-soft:#E6F2EA; --warn:#9A6512; --warn-soft:#FBF0D9;
  --info:#36698C; --info-soft:#E5EEF4;
  --shadow:0 2px 12px rgba(122,84,16,.05); --shadow-hover:0 8px 22px rgba(122,84,16,.10);
  --overlay:rgba(60,48,28,.22);
  --doc-paper:#FFFFFF; --doc-ink:#151515; --doc-rule:#8C8C8C; --doc-head:#F1F1F1; --doc-soft:#555555;
  --f-display:'GmarketSans','Pretendard','Apple SD Gothic Neo',sans-serif;
  --f-body:'Pretendard','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;
  --f-num:'GmarketSans','Pretendard',sans-serif;
  --f-en:'Montserrat','GmarketSans',sans-serif;
  --f-hand:'Nanum Pen Script',cursive;
  --f-doc:'Malgun Gothic','맑은 고딕','Pretendard','Apple SD Gothic Neo',sans-serif;
  --r:20px; --ease:cubic-bezier(.2,.7,.3,1);
}
/* 항상 밝은 화면: 기기의 다크 모드와 상관없이 크림 톤으로 보여요 */
:root,:root[data-theme="dark"]{color-scheme:light}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.55;
  padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
h1,h2,h3{text-wrap:balance;margin:0}
.num{font-family:var(--f-num);font-variant-numeric:tabular-nums}

.app{display:grid;grid-template-columns:212px minmax(0,1fr);gap:28px;max-width:1320px;margin:0 auto;padding-block:20px 48px}
.side{position:sticky;top:calc(env(safe-area-inset-top, 0px) + 20px);align-self:start;display:flex;flex-direction:column;gap:20px}
.brand{display:flex;align-items:center;gap:10px;padding:4px 6px}
.stamp{width:34px;height:34px;border:2px solid var(--seal);border-radius:6px;display:grid;place-items:center;color:var(--seal);
  font-family:var(--f-display);font-weight:700;font-size:17px;transform:rotate(-4deg);flex:none}
.brand b{font-family:var(--f-display);font-size:21px;font-weight:700;letter-spacing:-.01em;display:block;line-height:1.1}
.brand small{color:var(--muted);font-size:11.5px;display:block}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{all:unset;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-radius:6px;color:var(--muted);font-weight:500}
.nav button:hover{background:var(--surface);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.nav button:focus-visible{outline:2px solid var(--accent-text)}
.nav .count{font-family:var(--f-num);font-size:12px;color:var(--faint)}
.mode{font-size:12px;color:var(--muted);padding:10px 12px;border:1px dashed var(--line-strong);border-radius:6px;line-height:1.45}
.mode strong{display:block;color:var(--ink);font-weight:600}

main{min-width:0;display:flex;flex-direction:column;gap:24px}
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.page-head h1{font-family:var(--f-display);font-size:28px;font-weight:700;letter-spacing:-.015em}
.page-head p{margin:2px 0 0;color:var(--muted)}
.eyebrow{font-size:12px;color:var(--muted);letter-spacing:.04em;margin:0 0 2px}

.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:6px;border:1px solid var(--line-strong);background:var(--surface);font-weight:500;white-space:nowrap}
.btn:hover{border-color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);border-color:var(--line)}
.btn.danger{color:var(--seal);border-color:var(--seal)}
.btn.small{padding:5px 10px;font-size:13px}
.btn:disabled{opacity:.5;cursor:default}
.icon-btn{border:0;background:transparent;width:36px;height:36px;border-radius:6px;font-size:22px;line-height:1;color:var(--muted)}
.icon-btn:hover{background:var(--sunken);color:var(--ink)}
.linkish{border:0;background:none;padding:0;color:var(--accent-text);font-weight:500;text-decoration:underline;text-underline-offset:3px}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 18px 10px}
.panel-head h2{font-size:16px;font-weight:600}
.panel-head span{color:var(--muted);font-size:12.5px}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.kpi{padding:16px 18px;display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi+.kpi{border-left:1px solid var(--line)}
.k-label{font-size:12.5px;color:var(--muted)}
.k-val{font-family:var(--f-num);font-size:24px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.k-val small{font-family:var(--f-body);font-size:13px;color:var(--muted);margin-left:2px;letter-spacing:0}
.k-sub{font-size:12px;color:var(--faint)}
.kpi.alert .k-val{color:var(--seal)}

/* 상태 파이프라인 */
.pipe{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.pipe button{all:unset;cursor:pointer;padding:12px 16px;display:flex;flex-direction:column;gap:4px;position:relative;min-width:0}
.pipe button+button{border-left:1px solid var(--line)}
.pipe button:hover{background:var(--sunken)}
.pipe button:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}
.pipe .p-n{font-family:var(--f-num);font-size:20px}
.pipe .p-l{font-size:12.5px;color:var(--muted)}

/* 상태 칩: 결재 도장 */
.st{display:inline-block;font-size:12px;font-weight:600;padding:1px 8px;border-radius:4px;border:1px solid;letter-spacing:.02em;white-space:nowrap;line-height:1.6}
.st0{color:var(--muted);border-color:var(--line-strong);background:transparent}
.st1{color:var(--accent-text);border-color:var(--accent);background:var(--accent-soft)}
.st2{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}
.st3{color:var(--seal);border-color:var(--seal);background:var(--seal-soft)}
.st4{color:var(--good);border-color:var(--good);background:var(--good-soft)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.d0{background:var(--faint)} .d1{background:var(--accent)} .d2{background:var(--warn)} .d3{background:var(--seal)} .d4{background:var(--good)}
.tag{display:inline-block;font-size:11px;padding:0 6px;border-radius:3px;background:var(--sunken);color:var(--muted);border:1px solid var(--line);vertical-align:2px;font-weight:500;letter-spacing:.02em}
.warnmark{color:var(--seal);font-weight:600;font-size:12px}

.two{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px;align-items:start}
.list{list-style:none;margin:0;padding:0 6px 8px}
.list li+li{border-top:1px solid var(--line)}
.row-btn{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:10px 12px;border-radius:6px}
.row-btn:hover{background:var(--sunken)}
.row-btn:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}
.row-date{font-size:13px;font-weight:600}
.row-date small{display:block;font-weight:400;color:var(--muted);font-family:var(--f-num);font-size:12px}
.row-main{min-width:0}
.row-main b{font-weight:600;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-main>span{color:var(--muted);font-size:12.5px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row-end{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.muted{color:var(--muted)}
.empty-line{padding:14px 18px 20px;color:var(--muted);margin:0}
.row-wrap{display:flex;align-items:center;gap:4px}
.row-wrap .row-btn{flex:1;min-width:0}
.quick-btn{flex:none;margin-right:6px}
.quick{background:var(--sunken);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.quick-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.quick-head h3{font-size:14px;font-weight:600;margin:0}
.quick-head span{font-size:12.5px}
.quick .cellin,.quick .fld input{background:var(--surface)}
a.btn{text-decoration:none;color:inherit}
.stack{display:flex;flex-direction:column;gap:20px;min-width:0}
.settle{display:flex;flex-direction:column;gap:10px}
.settle-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.toggle{border:1px solid var(--line-strong);background:var(--surface);border-radius:6px;padding:7px 12px;font-weight:500}
.toggle:hover{border-color:var(--ink)}
.toggle.on{border-color:var(--good);color:var(--good);background:var(--good-soft)}
.idline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--sunken);border-radius:6px}
.idline b{font-weight:500;font-size:15px;margin-right:4px}
.cert{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.cert img{width:120px;height:90px;object-fit:cover;border:1px solid var(--line);border-radius:6px;background:#fff;display:block}
.cert-file{width:120px;height:90px;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--sunken);font-family:var(--f-num);color:var(--muted);font-size:13px}
.cert-meta{display:flex;flex-direction:column;gap:6px;min-width:0}
.cert-meta b{font-weight:600;overflow-wrap:anywhere}
.amt{font-family:var(--f-num);font-size:13px;text-align:right;white-space:nowrap;padding-right:6px !important}

.banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-radius:var(--r);background:var(--accent-soft);color:var(--ink);border:1px solid var(--line)}

/* 표 */
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tabs button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;color:var(--muted)}
.tabs button[aria-pressed="true"]{border-color:var(--ink);color:var(--ink);font-weight:600}
.tabs .c{font-family:var(--f-num);font-size:12px;margin-left:4px;color:var(--faint)}
.tablewrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
table.grid{width:100%;border-collapse:collapse;min-width:720px}
table.grid th{font-size:12px;font-weight:500;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--sunken)}
table.grid td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
table.grid tbody tr:last-child td{border-bottom:0}
table.grid tbody tr{cursor:pointer}
table.grid tbody tr:hover td{background:var(--sunken)}
table.grid .r{text-align:right}
table.grid td.num,table.grid .num{font-family:var(--f-num);font-variant-numeric:tabular-nums}

/* 달력 */
.cal-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-head h2{font-family:var(--f-display);font-size:22px;font-weight:700;min-width:140px}
.calwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.cal{display:grid;grid-template-columns:repeat(7,minmax(96px,1fr));min-width:700px}
.cal .wd{font-size:12px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);background:var(--sunken)}
.cal .wd:first-child{color:var(--seal)}
.cell{min-height:104px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:6px 6px 8px;display:flex;flex-direction:column;gap:3px;min-width:0}
.cell:nth-child(7n+7){border-right:0}
.cell.out{background:var(--sunken)}
.cell.out .dn{color:var(--faint)}
.dn{font-family:var(--f-num);font-size:12px;color:var(--muted);padding:0 4px}
.cell.today .dn{color:var(--accent-ink);background:var(--accent);border-radius:4px;align-self:flex-start;padding:0 6px}
.pill{all:unset;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:12px;padding:2px 5px;border-radius:4px;min-width:0}
.pill:hover{background:var(--sunken)}
.pill:focus-visible{outline:2px solid var(--accent-text)}
.pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill.conflict{box-shadow:inset 0 0 0 1px var(--seal)}

/* 모달 */
.overlay{position:fixed;inset:0;background:var(--overlay);display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;z-index:50;
  padding:calc(env(safe-area-inset-top, 0px) + 32px) max(16px, env(safe-area-inset-right, 0px)) calc(env(safe-area-inset-bottom, 0px) + 32px) max(16px, env(safe-area-inset-left, 0px))}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;max-width:720px;padding:22px 24px 24px;display:flex;flex-direction:column;gap:18px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.modal.wide{max-width:900px}
.m-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.m-head h2{font-family:var(--f-display);font-size:24px;font-weight:700;letter-spacing:-.01em}
.meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px 16px;margin:0}
.meta div{min-width:0}
.meta dt{font-size:12px;color:var(--muted)}
.meta dd{margin:0;font-weight:500}
.alert{margin:0;padding:10px 14px;border-radius:6px;background:var(--seal-soft);color:var(--seal);font-weight:500;font-size:13px}
.hint{margin:0;padding:10px 14px;border-radius:6px;background:var(--sunken);color:var(--muted);font-size:13px}

.stepper{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.stepper button{all:unset;cursor:pointer;box-sizing:border-box;width:100%;text-align:center;padding:8px 4px;font-size:12.5px;border-radius:4px;color:var(--muted);border:1px solid var(--line)}
.stepper button:hover{border-color:var(--ink)}
.stepper button:focus-visible{outline:2px solid var(--accent-text)}
.stepper .done button{color:var(--ink);background:var(--sunken)}
.stepper .done button::before{content:"✓ ";color:var(--good)}
.stepper .now button{border:2px solid var(--ink);color:var(--ink);font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.actions .spacer{flex:1}

.mini{width:100%;border-collapse:collapse;font-size:13px}
.mini th{font-size:12px;color:var(--muted);font-weight:500;text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
.mini td{padding:7px 8px;border-bottom:1px solid var(--line)}
.mini .r{text-align:right}
.mini tfoot td{border-bottom:0;font-weight:600}
.sect h3{font-size:13px;font-weight:600;margin:0 0 6px;color:var(--muted);letter-spacing:.02em}
.mats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 18px;font-size:13px}
.mats li{border-bottom:1px dotted var(--line-strong)}
.mat{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;width:100%;padding:5px 2px;border-radius:4px}
.mat:hover{background:var(--sunken)}
.mat:focus-visible{outline:2px solid var(--accent-text)}
.mat .m-n{flex:1;min-width:0}
.mat.on .m-n{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.cost{margin:10px 0 0;font-size:13px;color:var(--muted)}
.cost b{color:var(--ink);font-family:var(--f-num);font-weight:500}

/* 체크리스트 */
.ck-head{display:flex;align-items:center;gap:10px;margin-bottom:2px}
.ck-head h3{margin:0}
.bar{flex:1;max-width:240px;height:6px;border-radius:3px;background:var(--sunken);overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}
.bar i{display:block;height:100%;background:var(--good);transition:width .25s}
.ck-group{margin-top:10px}
.ck-stage{margin:0 0 2px;font-size:12.5px;font-weight:600;color:var(--ink);display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ck-stage span{font-weight:400;color:var(--muted);font-size:12px}
.ck-list,.todo{list-style:none;margin:0;padding:0}
.ck{display:flex;align-items:center;gap:2px;border-radius:6px}
.ck:hover{background:var(--sunken)}
.ck-box{all:unset;box-sizing:border-box;cursor:pointer;flex:1;min-width:0;display:flex;align-items:flex-start;gap:10px;padding:7px 8px;border-radius:6px;line-height:1.45}
.ck-box:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}
.box{flex:none;width:18px;height:18px;border:1.5px solid var(--line-strong);border-radius:4px;margin-top:1px;display:grid;place-items:center;background:var(--surface)}
[aria-checked="true"] .box{background:var(--good);border-color:var(--good)}
[aria-checked="true"] .box::after{content:"";width:5px;height:9px;border:solid var(--surface);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.ck.on .ck-t{color:var(--faint);text-decoration:line-through;text-decoration-color:var(--line-strong)}
.ck-del{border:0;background:none;color:var(--faint);width:30px;height:30px;border-radius:6px;font-size:17px;flex:none;opacity:0}
.ck:hover .ck-del,.ck-del:focus-visible{opacity:1}
.ck-del:hover{color:var(--seal)}
@media (hover:none){.ck-del{opacity:.55}}
.ck-add{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.ck-add select,.ck-add input{padding:7px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface)}
.ck-add input{flex:1;min-width:150px}

/* 할 일 */
.todo{padding:0 6px 8px}
.todo-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 72px;align-items:center;gap:6px}
.todo-row+.todo-row{border-top:1px solid var(--line)}
.todo-gig{all:unset;box-sizing:border-box;cursor:pointer;min-width:0;padding:6px 8px;border-radius:6px}
.todo-gig:hover{background:var(--sunken)}
.todo-gig:focus-visible{outline:2px solid var(--accent-text)}
.todo-gig b{font-weight:500;font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.todo-gig span{font-size:12px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.when{font-family:var(--f-num);font-size:12px;text-align:right;padding-right:10px;color:var(--muted);white-space:nowrap}
.when.late{color:var(--seal);font-weight:600}
.when.today{color:var(--accent-text);font-weight:600}
.hc{font-family:var(--f-num);font-size:12px;color:var(--faint);margin-left:8px;font-weight:400}
.more{margin:0;padding:4px 18px 16px;font-size:12.5px;color:var(--muted)}
.panel-foot{padding:0 18px 14px}
.tpl{display:flex;flex-direction:column;gap:6px;padding:4px 18px 18px}
.tpl-row{display:grid;grid-template-columns:92px minmax(0,1fr) 32px;gap:6px;align-items:center}
.tpl-row select,.tpl-row input{padding:7px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);min-width:0;width:100%}
.tpl-note{margin:0 18px 4px;font-size:12.5px;color:var(--muted)}
.rebook-end{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px}

/* 결과보고서 입력 */
.photos{display:flex;flex-wrap:wrap;gap:8px}
.ph{position:relative;margin:0;width:96px;height:72px;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:var(--sunken)}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph-del{position:absolute;top:3px;right:3px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:13px;line-height:1;padding:0}
.ph-add{width:96px;height:72px;border:1px dashed var(--line-strong);border-radius:6px;display:grid;place-items:center;color:var(--muted);font-size:12.5px;cursor:pointer;background:var(--surface)}
.ph-add:hover{border-color:var(--ink);color:var(--ink)}
.lbl-row{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:12.5px;color:var(--muted);font-weight:500}
.fld .lbl-row+textarea{margin-top:0}

/* 결과보고서 종이 */
.r-h{font-size:14px;font-weight:700;margin:20px 0 8px;padding-bottom:4px;border-bottom:2px solid var(--doc-ink)}
table.p-sup.r-tab th{width:76px}
.r-box{border:1px solid var(--doc-rule);padding:10px 12px;min-height:56px;white-space:pre-wrap;font-size:12.5px;line-height:1.75}
.r-empty{color:var(--doc-soft)}
.r-sat{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:13px}
.r-sat b{font-size:18px}
.r-meter{display:inline-block;width:160px;height:8px;background:var(--doc-head);border:1px solid var(--doc-rule)}
.r-meter i{display:block;height:100%;background:var(--doc-ink)}
.r-photos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.r-ph{aspect-ratio:4/3;background-size:cover;background-position:center;border:1px solid var(--doc-rule);background-color:var(--doc-head)}
.r-sign{margin-top:26px;text-align:right;font-size:13px}
.r-sign p{margin:0 0 6px}
.r-seal{display:inline-block;vertical-align:middle;margin-left:6px;color:var(--doc-soft);font-size:11px}
.r-seal img{width:44px;height:44px;object-fit:contain;display:inline-block;vertical-align:middle;opacity:.92}
.mats b{font-family:var(--f-num);font-weight:500}

/* 폼 */
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.fgrid .full{grid-column:1/-1}
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld>span{font-size:12.5px;color:var(--muted);font-weight:500}
.fld input,.fld select,.fld textarea,.cellin{width:100%;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);min-width:0}
.fld textarea{min-height:68px;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus,.cellin:focus{outline:2px solid var(--accent-text);outline-offset:-1px;border-color:transparent}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.edit-rows{width:100%;border-collapse:collapse}
.edit-rows th{font-size:12px;color:var(--muted);font-weight:500;text-align:left;padding:0 4px 4px}
.edit-rows td{padding:3px 4px}
.cellin{padding:6px 8px;font-size:13px}
.cellin.n{text-align:right;font-family:var(--f-num)}
.totals{font-family:var(--f-num);font-size:13px;color:var(--muted);text-align:right;margin:6px 4px 0}
.err{margin:0;color:var(--seal);font-weight:500;font-size:13px}
.radio{display:flex;gap:16px;flex-wrap:wrap;padding-top:4px}
.radio label{display:flex;gap:6px;align-items:center}
.seal-box{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.seal-prev{width:72px;height:72px;border:1px dashed var(--line-strong);border-radius:6px;display:grid;place-items:center;background:#fff;color:#999;font-size:12px}
.seal-prev img{max-width:64px;max-height:64px}
.form-sect{display:flex;flex-direction:column;gap:12px;padding:20px 22px}
.form-sect+.form-sect{border-top:1px solid var(--line)}
.form-sect h2{font-size:15px;font-weight:600}

/* 빈 화면 */
.empty{padding:36px 32px;display:flex;flex-direction:column;gap:14px;max-width:640px}
.empty h2{font-family:var(--f-display);font-size:24px;font-weight:700}
.empty p{margin:0;color:var(--muted)}
.howto{margin:6px 0 0;padding-left:20px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.skel{height:14px;border-radius:4px;background:var(--sunken)}

/* 서류 미리보기 */
.doc-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:6px;overflow:hidden}
.seg button{border:0;background:var(--surface);padding:7px 14px;color:var(--muted);font-weight:500}
.seg button+button{border-left:1px solid var(--line-strong)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--surface)}
.inline{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.inline input{padding:6px 8px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface)}
.doc-scroll{overflow-x:auto;background:var(--sunken);border:1px solid var(--line);border-radius:8px;padding:20px}
.paper{width:794px;min-height:1123px;margin:0 auto;background:var(--doc-paper);color:var(--doc-ink);font-family:var(--f-doc);font-size:12.5px;line-height:1.5;padding:58px 54px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.p-title{text-align:center;font-size:30px;font-weight:700;letter-spacing:.35em;padding-left:.35em;margin-bottom:4px}
.p-no{text-align:center;font-size:11px;color:var(--doc-soft);margin-bottom:26px}
.p-top{display:grid;grid-template-columns:1fr 1.25fr;gap:20px;align-items:start;margin-bottom:16px}
.p-to p{margin:0 0 4px}
.p-date{font-size:13px}
.p-recv{font-size:17px;margin:10px 0 6px !important;border-bottom:1px solid var(--doc-ink);padding-bottom:4px}
.p-recv strong{font-weight:700}
.p-edu{font-size:11.5px;color:var(--doc-soft);margin-top:10px !important}
.p-phrase{margin-top:14px !important;font-size:13px}
table.p-sup,table.p-items{width:100%;border-collapse:collapse}
table.p-sup th,table.p-sup td{border:1px solid var(--doc-rule);padding:5px 7px;font-size:11.5px;text-align:left;vertical-align:middle}
table.p-sup th{background:var(--doc-head);font-weight:600;white-space:nowrap;width:1%}
table.p-sup th.vert{text-align:center;line-height:1.7;width:26px}
.ceo{position:relative;white-space:nowrap;padding-right:44px !important}
.seal-slot{position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--doc-soft);font-size:11px}
.seal-slot img{width:44px;height:44px;object-fit:contain;display:block;opacity:.92}
.p-sum{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;border:2px solid var(--doc-ink);padding:10px 14px;margin-bottom:14px}
.p-sum span:first-child{font-weight:700}
.p-sum strong{font-size:16px}
.p-sum em{font-style:normal;font-size:11px;color:var(--doc-soft);margin-left:auto}
table.p-items th,table.p-items td{border:1px solid var(--doc-rule);padding:6px 7px;font-size:12px;height:28px}
table.p-items thead th{background:var(--doc-head);font-weight:600;text-align:center}
table.p-items td.n{text-align:right;font-variant-numeric:tabular-nums}
table.p-items td.c{text-align:center}
table.p-items tfoot th{background:var(--doc-head);text-align:center;letter-spacing:.4em}
table.p-items tfoot td{font-weight:700;text-align:right}
.p-total{display:flex;justify-content:flex-end;gap:18px;margin-top:8px;font-size:13px}
.p-total b{font-size:15px}
.p-foot{margin-top:22px;border-top:1px solid var(--doc-rule);padding-top:10px;font-size:12px}
.p-foot p{margin:0 0 4px}

#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom, 0px) + 24px);background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:8px;font-size:13.5px;z-index:80;max-width:calc(100% - 32px);box-shadow:0 8px 24px rgba(0,0,0,.2)}

@media (max-width: 980px){
  .two{grid-template-columns:minmax(0,1fr)}
}
@media (max-width: 860px){
  .app{grid-template-columns:minmax(0,1fr);gap:16px;padding-block:12px 40px}
  .side{position:static;gap:12px}
  .nav{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px}
  .nav button{white-space:nowrap;padding:7px 12px}
  .nav .count{display:none}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(3){border-left:0}
  .kpi:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width: 560px){
  .pipe{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}
  .pipe button{padding:10px}
  .fgrid{grid-template-columns:minmax(0,1fr)}
  .modal{padding:18px 16px 20px}
  .row-btn{grid-template-columns:78px minmax(0,1fr) auto;gap:8px;padding:10px 8px}
  .page-head h1{font-size:24px}
  .stepper button{font-size:11.5px;padding:7px 2px}
  .todo-row{grid-template-columns:minmax(0,1fr) auto;gap:0}
  .todo-gig{grid-column:1/-1;grid-row:2;padding:0 8px 8px 36px}
  .todo-gig b,.todo-gig span{display:inline;font-size:12px}
  .todo-gig b::after{content:" · "}
  .when{grid-row:1;grid-column:2}
  .tpl-row{grid-template-columns:78px minmax(0,1fr) 32px}
}
@media (prefers-reduced-motion: reduce){ *{transition:none !important;animation:none !important} }

/* ---------- 로그인·잠금·계정 ---------- */
.app.solo{grid-template-columns:minmax(0,1fr)}
.app.solo .side{display:none}
.app.solo main{align-items:center;padding-top:6vh}
.auth{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px 26px;display:flex;flex-direction:column;gap:16px}
.auth-brand{display:flex;align-items:center;gap:12px}
.auth-brand b{font-family:var(--f-display);font-size:26px;font-weight:700;display:block;line-height:1.1}
.auth-brand small{color:var(--muted);font-size:12.5px}
.auth-brand .stamp{width:42px;height:42px;font-size:21px}
.auth-lead{margin:0;color:var(--muted);line-height:1.6}
.lock-h{font-family:var(--f-display);font-size:24px;font-weight:700}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr}
.auth-form{display:flex;flex-direction:column;gap:12px}
.btn.wide{justify-content:center;width:100%;padding:11px 14px;font-size:15px}
.agree{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.5}
.agree input{margin-top:3px;flex:none}
.agree a,.auth a{color:var(--accent-text)}
.auth-foot{display:flex;justify-content:center}
.pay{margin:0;display:grid;gap:8px;padding:12px 14px;background:var(--sunken);border-radius:8px}
.pay div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px}
.pay dt{color:var(--muted);font-size:12.5px}
.pay dd{margin:0;font-weight:500;overflow-wrap:anywhere}
.plan-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.acct{display:block;margin-top:6px;color:var(--faint);overflow-wrap:anywhere}

/* ---------- 관리자 ---------- */
.admin{max-width:1200px;margin:0 auto;padding-block:20px 48px;display:flex;flex-direction:column;gap:20px;min-width:0}
.admin.solo{align-items:center;padding-top:8vh}
.admin-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}
.admin-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.search{padding:8px 12px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);min-width:0;width:260px;max-width:100%}
.memo{width:100%;min-height:72px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface);resize:vertical}

/* ---------- 약관 페이지 ---------- */
.legal{max-width:720px;margin:0 auto;padding-block:32px 64px;line-height:1.75}
.legal h1{font-family:var(--f-display);font-size:28px;margin-bottom:6px}
.legal h2{font-size:16px;margin:28px 0 8px}
.legal p,.legal li{color:var(--ink);margin:0 0 8px}
.legal .muted{color:var(--muted)}
.legal table{width:100%;border-collapse:collapse;font-size:13.5px;margin:8px 0}
.legal th,.legal td{border:1px solid var(--line-strong);padding:7px 9px;text-align:left;vertical-align:top}
.legal th{background:var(--sunken);font-weight:600}
.legal .fill{background:var(--warn-soft);color:var(--warn);padding:0 4px;border-radius:3px}

.usage{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.usage div{background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.usage span{font-size:12px;color:var(--muted)}
.usage b{font-size:18px;font-weight:500}
.usage small{font-family:var(--f-body);font-size:12px;color:var(--muted);margin-left:2px}
@media (max-width:560px){.usage{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ================= 허니 테마 ================= */
body{color:var(--body);font-size:14.5px;word-break:keep-all;-webkit-font-smoothing:antialiased}
h1,h2,h3,.k-val,.p-n,.btn,.nav button,.tabs button,.seg button,.st{word-break:keep-all}
h1,h2,h3{color:var(--ink);font-weight:500}
.num{font-family:var(--f-num);font-variant-numeric:tabular-nums;font-weight:500}
.hand{font-family:var(--f-hand);font-size:24px;line-height:1.2;color:var(--accent-text);margin:0}
.en{font-family:var(--f-en);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--faint)}

/* 브랜드 */
.brand{gap:12px}
.stamp{width:42px;height:42px;border:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-family:var(--f-display);font-weight:500;font-size:19px;transform:none;position:relative;box-shadow:0 6px 14px -6px rgba(232,174,60,.9)}
.stamp::after{content:"";position:absolute;right:-1px;top:1px;width:10px;height:10px;border-radius:50% 0 50% 0;background:var(--good);transform:rotate(-20deg);box-shadow:0 0 0 2.5px var(--bg)}
.brand b{font-family:var(--f-display);font-weight:500;font-size:22px;letter-spacing:-.04em;color:var(--ink)}
.brand small{font-family:var(--f-en);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-top:3px}

/* 메뉴 */
.nav{gap:4px}
.nav button{border-radius:999px;padding:10px 14px;gap:10px;justify-content:flex-start;color:var(--muted);transition:background .18s var(--ease),color .18s var(--ease)}
.nav button .ic{width:18px;height:18px;flex:none}
.nav button .lbl{flex:1}
.nav button:hover{background:var(--surface);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow);font-weight:600}
.nav .count{font-family:var(--f-num);font-size:11px;color:var(--muted);background:var(--sunken);border-radius:999px;padding:1px 7px;min-width:20px;text-align:center}
.nav button[aria-current="page"] .count{background:rgba(255,255,255,.55);color:var(--accent-ink)}
.mode{border:1px solid var(--line);background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px;color:var(--muted)}
.mode strong{color:var(--accent-text);font-weight:600}

/* 제목 */
.page-head h1{font-family:var(--f-display);font-size:32px;font-weight:500;letter-spacing:-.04em}
.page-head p{color:var(--muted)}
.eyebrow{font-family:var(--f-body);font-size:12.5px;letter-spacing:.01em;color:var(--accent-text);font-weight:600;margin-bottom:4px}
.sprig{width:22px;height:22px;color:var(--good);vertical-align:-3px;margin-left:6px}

/* 버튼 */
.btn{border-radius:999px;padding:9px 18px;border:1.5px solid var(--line-strong);font-family:var(--f-display);font-weight:500;letter-spacing:-.01em;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}
.btn:hover{border-color:var(--accent);background:var(--butter);color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 6px 16px -8px rgba(232,174,60,.95)}
.btn.primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-hover);filter:none;color:var(--accent-ink);background:var(--accent)}
.btn.ghost{border-color:transparent}
.btn.ghost:hover{background:var(--sunken);border-color:transparent}
.btn.danger{color:var(--seal);border-color:var(--seal)}
.btn.danger:hover{background:var(--seal-soft);color:var(--seal);border-color:var(--seal)}
.btn.small{padding:6px 13px;font-size:13px}
.btn:disabled{background:var(--sunken);color:var(--faint);border-color:var(--line);box-shadow:none;transform:none}
.icon-btn{border-radius:50%}
.linkish{color:var(--accent-text);text-decoration-color:var(--accent);text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}

/* 카드 */
.panel{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.panel-head{padding:20px 22px 10px}
.panel-head h2{font-family:var(--f-display);font-size:18px;font-weight:500;letter-spacing:-.03em}
.panel-head span{color:var(--muted)}
.kpis{background:none;border:0;gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px 20px;gap:4px}
.kpi+.kpi{border-left:1px solid var(--line)}
.kpi:first-child{background:var(--accent);border-color:var(--accent)}
.kpi:first-child .k-label,.kpi:first-child .k-sub,.kpi:first-child .k-val small{color:var(--accent-ink);opacity:.75}
.kpi:first-child .k-val{color:var(--accent-ink)}
.k-label{color:var(--muted)}
.k-val{font-family:var(--f-num);font-weight:500;font-size:27px;letter-spacing:-.03em;color:var(--ink)}
.k-sub{color:var(--muted)}
.kpi.alert{background:var(--seal-soft);border-color:var(--seal-soft)}
.pipe{border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);padding:6px;gap:4px}
.pipe button{border-radius:999px;padding:9px 16px;flex-direction:row;align-items:center;justify-content:space-between}
.pipe button+button{border-left:0}
.pipe button:hover{background:var(--butter)}
.pipe .p-n{font-family:var(--f-num);font-weight:500;font-size:18px;color:var(--ink)}
.banner{border:1px solid var(--accent-soft);border-radius:var(--r);background:var(--butter)}

/* 상태 칩 */
.st{border-radius:999px;border:0;padding:3px 11px;font-weight:600;font-size:11.5px}
.st0{background:var(--sunken);color:var(--muted)}
.st1{background:var(--accent-soft);color:var(--accent-text)}
.st2{background:var(--info-soft);color:var(--info)}
.st3{background:var(--seal-soft);color:var(--seal)}
.st4{background:var(--good-soft);color:var(--good)}
.d0{background:var(--faint)} .d1{background:var(--accent)} .d2{background:var(--info)} .d3{background:var(--seal)} .d4{background:var(--good)}
.tag{border-radius:999px;border:0;background:var(--accent-soft);color:var(--accent-text)}
.warnmark{color:var(--seal)}

/* 목록·표 */
.list{padding:0 8px 10px}
.row-btn{border-radius:16px;transition:background .18s var(--ease)}
.row-btn:hover{background:var(--butter)}
.row-date{font-family:var(--f-num);font-weight:500;color:var(--ink)}
.row-main b{color:var(--ink)}
.tablewrap{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
table.grid th{background:var(--surface);font-size:11.5px;letter-spacing:.02em;color:var(--muted);border-bottom:1px solid var(--line)}
table.grid tbody tr:hover td{background:var(--butter)}
.tabs{gap:6px}
.tabs button{border:1px solid var(--line);background:var(--surface);padding:7px 15px;color:var(--muted);font-weight:500}
.tabs button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.tabs button[aria-pressed="true"] .c{color:var(--accent-ink);opacity:.75}

/* 달력 */
.cal-head h2{font-family:var(--f-display);font-weight:500;letter-spacing:-.04em}
.calwrap{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.cal .wd{background:var(--surface);color:var(--muted)}
.cell{border-color:var(--line)}
.cell.out{background:var(--sunken)}
.cell.today{background:var(--butter)}
.cell.today .dn{background:var(--accent);color:var(--accent-ink);border-radius:999px}
.pill{border-radius:999px;background:var(--sunken)}
.pill:hover{background:var(--accent-soft)}

/* 모달 */
.modal{border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 60px rgba(46,36,20,.2)}
.m-head h2{font-family:var(--f-display);font-weight:500;letter-spacing:-.04em}
.sect h3{color:var(--ink);font-family:var(--f-display);font-weight:500;font-size:15px;letter-spacing:-.02em}
.stepper{gap:6px}
.stepper button{border-radius:999px}
.stepper .done button{background:var(--good-soft);color:var(--good);border-color:transparent}
.stepper .done button::before{color:var(--good)}
.stepper .now button{border:2px solid var(--accent);color:var(--accent-ink);background:var(--accent)}
.alert{border-radius:14px}
.hint{border-radius:14px;background:var(--butter);color:var(--body)}
.quick{border:1px solid var(--line);border-radius:var(--r);background:var(--sunken)}
.seg{border:0;background:var(--sunken);border-radius:999px;padding:4px;gap:2px}
.seg button{border-radius:999px;background:transparent;color:var(--muted);font-family:var(--f-display);font-weight:500}
.seg button+button{border-left:0}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.mats li{border-bottom-color:var(--line)}

/* 입력 */
.fld input,.fld select,.fld textarea,.cellin,.ck-add select,.ck-add input,.tpl-row select,.tpl-row input,.search,.memo,.inline input{border-radius:12px;border-color:var(--line-strong);background:var(--surface);color:var(--ink)}
.fld input:focus,.fld select:focus,.fld textarea:focus,.cellin:focus{outline:3px solid var(--accent-soft);outline-offset:0;border-color:var(--accent-text)}
.fld>span{color:var(--muted)}

/* 체크리스트 */
.box{border-radius:8px;border-color:var(--line-strong);width:20px;height:20px}
[aria-checked="true"] .box{background:var(--accent);border-color:var(--accent)}
[aria-checked="true"] .box::after{border-color:var(--accent-ink)}
.bar{background:var(--sunken);box-shadow:none;height:8px;border-radius:999px}
.bar i{background:var(--accent);border-radius:999px}
.ck:hover,.todo-gig:hover{background:var(--butter)}
.ck-stage{font-family:var(--f-display);font-weight:500;font-size:14px}
.when.today{color:var(--accent-text)}
.photos .ph,.ph-add{border-radius:14px}
.usage{border:0;border-radius:14px;gap:6px;background:none}
.usage div{border-radius:14px;background:var(--sunken)}

/* 로그인 */
.app.solo main{position:relative}
.auth{border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow-hover);padding:34px 30px;position:relative;overflow:hidden;gap:18px}
.auth::before{content:"";position:absolute;width:240px;height:240px;right:-100px;top:-120px;border-radius:50%;background:var(--accent-soft)}
.auth::after{content:"";position:absolute;width:90px;height:90px;left:-40px;bottom:-40px;border-radius:50%;background:var(--butter)}
.auth>*{position:relative}
.auth-brand b{font-size:30px}
.auth-brand .stamp{width:52px;height:52px;font-size:23px}
.lock-h{font-family:var(--f-display);font-weight:500;font-size:26px;letter-spacing:-.04em}
.pay{border-radius:16px;background:var(--butter)}
.agree a,.auth a{color:var(--accent-text)}
#toast{border-radius:999px;padding:11px 20px;background:var(--ink);color:var(--surface)}

@media (prefers-reduced-motion: reduce){ .btn,.nav button,.row-btn{transition:none} .btn.primary:hover{transform:none} }
@media (max-width: 860px){
  .nav button{padding:8px 13px}
  .nav button .ic{width:16px;height:16px}
  .mode{display:none}
  .kpi+.kpi{border-left:1px solid var(--line)}
  .kpi:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width: 560px){
  .pipe{border-radius:22px}
  .page-head h1{font-size:26px}
  .auth{padding:28px 22px;border-radius:24px}
  .hand{font-size:22px}
}

/* ================= 캐릭터: 꿀비와 단계 그림 ================= */
.bee .bee-wing{fill:var(--surface);stroke:var(--ink);stroke-width:2;opacity:.95}
.bee .bee-body{fill:var(--accent);stroke:var(--ink);stroke-width:2}
.bee .bee-stripe{stroke:var(--ink);stroke-width:3.4;stroke-linecap:round;fill:none}
.bee .bee-line{stroke:var(--ink);stroke-width:2;fill:none;stroke-linecap:round}
.bee .bee-ink{fill:var(--ink)}
.bee .bee-cheek{fill:#F2A99B;opacity:.85}
.bee{display:block;flex:none;overflow:visible}
.bee-sm{width:38px;height:38px}
.bee-md{width:64px;height:64px}
.bee-lg{width:84px;height:84px}
@media (prefers-reduced-motion: no-preference){
  .bee .bee-wing{transform-box:fill-box;transform-origin:50% 100%;animation:flutter 1.6s ease-in-out infinite}
  .bee-sm,.bee-md,.bee-lg{animation:hover 3.2s ease-in-out infinite}
}
@keyframes flutter{0%,100%{opacity:.95}50%{opacity:.6}}
@keyframes hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.greet{display:flex;align-items:center;gap:6px;margin-top:6px}
.greet .hand{background:var(--surface);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:3px 12px 1px;box-shadow:var(--shadow);font-size:21px}
.empty-hero{display:flex;align-items:flex-end;gap:12px}
.bubble{position:relative;background:var(--butter);border-radius:18px 18px 18px 4px;padding:10px 14px;margin:0 0 14px;color:var(--ink);font-size:14px;line-height:1.55}
.cheer{display:flex;align-items:center;gap:16px;padding:20px 22px}
.cheer h2{font-family:var(--f-display);font-weight:500;font-size:20px;letter-spacing:-.03em}
.auth-bee{position:absolute;right:26px;top:22px}
.auth-bee .bee{width:58px;height:58px}

/* 단계 그림 공통 */
.sic{width:100%;height:100%;display:block}
.sic .f1{fill:var(--surface)}
.sic .f2{fill:var(--accent)}
.s0{background:var(--sunken);color:var(--muted)}
.s1{background:var(--accent-soft);color:var(--accent-text)}
.s2{background:var(--info-soft);color:var(--info)}
.s3{background:var(--seal-soft);color:var(--seal)}
.s4{background:var(--good-soft);color:var(--good)}

/* 출강 여정 (홈) */
.journey{display:flex;align-items:stretch;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:14px 10px;overflow-x:auto}
.j-step{all:unset;box-sizing:border-box;cursor:pointer;flex:1 0 76px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border-radius:16px;transition:background .18s var(--ease),transform .18s var(--ease)}
.j-step:hover{background:var(--butter);transform:translateY(-2px)}
.j-step:focus-visible{outline:2px solid var(--accent-text)}
.j-ic{width:52px;height:52px;border-radius:50%;padding:12px;margin-bottom:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.03)}
.j-n{font-size:22px;color:var(--ink);line-height:1}
.j-l{font-size:12.5px;color:var(--muted);font-weight:500}
.j-link{flex:0 1 28px;min-width:12px;align-self:flex-start;margin-top:34px;border-top:2px dashed var(--line-strong)}

/* 상태 칩 아이콘 */
.st{display:inline-flex;align-items:center;gap:4px;padding:3px 10px 3px 7px}
.st-ic{width:14px;height:14px}
.st .sic .f1{fill:none}
.st .sic .f2{fill:currentColor;opacity:.35}

/* 모달 단계 */
.stepper{gap:4px;position:relative}
.stepper button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 2px 8px;border:0;background:transparent;border-radius:16px;color:var(--muted);font-weight:500}
.stepper button:hover{background:var(--butter);border:0}
.sp-ic{width:38px;height:38px;border-radius:50%;padding:9px;background:var(--sunken);color:var(--faint);transition:transform .18s var(--ease)}
.stepper .done button{background:transparent;color:var(--good)}
.stepper .done button::before{content:none}
.stepper .done .sp-ic{background:var(--good-soft);color:var(--good)}
.stepper .now button{background:var(--butter);color:var(--ink);font-weight:600;border:0}
.stepper .now .sp-ic{background:var(--accent);color:var(--accent-ink);transform:scale(1.08);box-shadow:0 6px 14px -6px rgba(232,174,60,.95)}
.stepper .now .sic .f2{fill:var(--surface)}

/* 달력 알약 */
.pill{gap:5px;padding:2px 7px 2px 3px}
.pill-ic{width:18px;height:18px;border-radius:50%;padding:3px;flex:none}

/* 뜯는 달력 날짜 */
.row-btn{grid-template-columns:56px minmax(0,1fr) auto}
.tear{display:flex;flex-direction:column;align-items:center;width:52px;border-radius:14px;overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);line-height:1}
.tear i{display:block;width:100%;text-align:center;background:var(--accent);color:var(--accent-ink);font-style:normal;font-size:10.5px;font-weight:600;padding:3px 0 2px}
.tear b{font-size:20px;color:var(--ink);padding:5px 0 1px;font-weight:500}
.tear em{font-style:normal;font-size:10.5px;color:var(--muted);padding-bottom:5px}
@media (max-width:560px){
  .row-btn{grid-template-columns:52px minmax(0,1fr) auto}
  .j-ic{width:44px;height:44px;padding:10px}
  .j-link{margin-top:30px}
  .auth-bee{right:18px;top:18px}
}

/* ================= 관리자: 캐릭터 버전 ================= */
.admin-hello{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.admin-h1{font-family:var(--f-display);font-weight:500;font-size:32px;letter-spacing:-.04em}
.admin .kpi:first-child{background:var(--accent);border-color:var(--accent)}
.who{display:flex;align-items:center;gap:10px;min-width:0}
.who b{font-weight:600;color:var(--ink)}
.ava{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-weight:500;font-size:15px}
.ava-lg{width:48px;height:48px;font-size:20px}
.a0{background:var(--accent-soft);color:var(--accent-text)}
.a1{background:var(--good-soft);color:var(--good)}
.a2{background:var(--info-soft);color:var(--info)}
.a3{background:var(--seal-soft);color:var(--seal)}
.care{list-style:none;margin:0;padding:0 8px 10px}
.care li+li{border-top:1px solid var(--line)}
.care-row{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border-radius:16px}
.care-row:hover{background:var(--butter)}
.care-row:focus-visible{outline:2px solid var(--accent-text)}
.care-main{min-width:0}
.care-main b{display:block;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.care-main span{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.care-why{font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}
.care-why.warn{background:var(--accent-soft);color:var(--accent-text)}
.care-why.info{background:var(--info-soft);color:var(--info)}
.care-why.seal{background:var(--seal-soft);color:var(--seal)}
.care-act{font-family:var(--f-display);font-weight:500;font-size:12.5px;color:var(--ink);border:1.5px solid var(--line-strong);border-radius:999px;padding:5px 11px;white-space:nowrap}
.care-row:hover .care-act{border-color:var(--accent);background:var(--surface)}
.contact-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;background:var(--butter);border-radius:14px}
.contact-line .num{font-size:15px;color:var(--ink);margin-right:4px}
.honey{display:flex;flex-direction:column;gap:4px}
.combs{display:flex;gap:3px}
.combs i{width:12px;height:13px;background:var(--sunken);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.combs i.on{background:var(--accent)}
.admin .st{padding:3px 10px 3px 7px}
.st .sic .f1{fill:none}
.st .sic .f2{fill:currentColor;opacity:.35}
@media (max-width:640px){
  .care-row{grid-template-columns:34px minmax(0,1fr) auto}
  .care-act{display:none}
  .admin-h1{font-size:26px}
}

/* ================= 클래스별 체크리스트 ================= */
.ck-cat{display:inline-block;margin-left:6px;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);vertical-align:1px;white-space:nowrap;text-decoration:none}
.ck.on .ck-cat{opacity:.6}
.cat-tabs{display:flex;gap:6px;overflow-x:auto;padding:2px 22px 10px;scrollbar-width:thin}
.cat-tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 13px;font-size:13px;color:var(--muted);font-weight:500;cursor:pointer}
.cat-tabs button:hover{border-color:var(--accent);background:var(--butter)}
.cat-tabs button[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.cat-tabs .c{font-family:var(--f-num);font-size:11.5px;opacity:.75}
.cat-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.cat-dot.c-common{background:var(--good)}
.cat-tabs button[aria-selected="true"] .cat-dot{background:var(--accent-ink)}
.preset-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 22px 10px;font-size:12.5px}
.preset-bar .muted{margin-right:2px}
.chipbtn{border:1px dashed var(--line-strong);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:12.5px;color:var(--body);cursor:pointer}
.chipbtn:hover{border-style:solid;border-color:var(--accent);background:var(--butter)}
.tpl-note b{color:var(--ink)}

/* ================= 단가와 부가세 선택 카드 ================= */
.fld input[type="radio"],.fld input[type="checkbox"]{width:auto;padding:0;border:0;background:none}
.tax-set{grid-column:1/-1;border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:8px}
.tax-set legend{padding:0;margin-bottom:8px;font-size:12.5px;color:var(--muted);font-weight:500}
.opt-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.opt{position:relative;display:block;cursor:pointer;min-width:0}
.opt input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.opt-body{display:flex;flex-direction:column;gap:6px;height:100%;padding:14px 16px;border:1.5px solid var(--line-strong);border-radius:16px;background:var(--surface);transition:border-color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)}
.opt:hover .opt-body{border-color:var(--accent);background:var(--butter)}
.opt input:checked+.opt-body{border-color:var(--accent);background:var(--butter);box-shadow:var(--shadow)}
.opt input:focus-visible+.opt-body{outline:3px solid var(--accent-soft);outline-offset:1px;border-color:var(--accent-text)}
.opt-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.opt-top b{font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--ink);letter-spacing:-.02em}
.opt-dot{width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);display:grid;place-items:center}
.opt input:checked+.opt-body .opt-dot{border-color:var(--accent);background:var(--accent)}
.opt input:checked+.opt-body .opt-dot::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-ink)}
.opt-who{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--sunken);color:var(--muted)}
.opt input:checked+.opt-body .opt-who{background:var(--surface);color:var(--accent-text)}
.opt-desc{font-size:13px;color:var(--body);line-height:1.5}
.opt-eg{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:8px;border-top:1px dashed var(--line-strong);font-size:12px;color:var(--muted)}
.opt-eg b{color:var(--ink);font-size:13px}
.opt-arrow{width:14px;height:2px;background:var(--line-strong);position:relative;flex:none}
.opt-arrow::after{content:"";position:absolute;right:-1px;top:-3px;border-left:5px solid var(--line-strong);border-top:4px solid transparent;border-bottom:4px solid transparent}
.tax-note{margin:2px 0 0;font-size:12px}
@media (max-width:760px){ .opt-cards{grid-template-columns:minmax(0,1fr)} }

/* ================= 초대 ================= */
.invite-box{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:16px;background:var(--butter);border:1px dashed var(--accent)}
.invite-box pre{margin:0;white-space:pre-wrap;word-break:keep-all;font-family:var(--f-body);font-size:13px;line-height:1.65;color:var(--body)}
@media (max-width:640px){ .admin .opt-cards{grid-template-columns:minmax(0,1fr)!important} }

/* ================= 밝은 톤 보정 ================= */
.kpi:first-child,.admin .kpi:first-child{background:var(--butter);border-color:var(--accent-soft)}
.kpi:first-child .k-label,.kpi:first-child .k-sub,.kpi:first-child .k-val small{color:var(--accent-text);opacity:1}
.kpi:first-child .k-val{color:var(--ink)}
#toast{background:var(--surface);color:var(--ink);border:1px solid var(--accent);box-shadow:var(--shadow-hover)}
.modal{box-shadow:0 20px 50px rgba(60,48,28,.14)}
.preview-note{background:var(--surface)!important;color:var(--muted)!important;border:1px solid var(--line-strong);opacity:1!important}
.cell.out{background:#FCFAF5}

/* ================= 입력칸 예시 글자 ================= */
input::placeholder,textarea::placeholder{color:var(--faint);opacity:1;letter-spacing:normal;text-transform:none}
input:focus::placeholder,textarea:focus::placeholder{color:transparent}
.code-in{text-transform:uppercase;letter-spacing:.08em;font-family:var(--f-num)}
.pw-wrap{position:relative;display:block}
.pw-wrap input{padding-right:64px}
.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:var(--sunken);color:var(--muted);font-size:12px;font-weight:600;border-radius:999px;padding:5px 10px;cursor:pointer}
.pw-eye:hover{color:var(--ink);background:var(--accent-soft)}
.pw-eye:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}

/* ================= 동의 체크박스 (흰 네모 + 꿀색 체크) ================= */
.agree{align-items:flex-start;cursor:pointer}
.agree input{-webkit-appearance:none;appearance:none;flex:none;width:20px;height:20px;margin:1px 0 0;border:1.5px solid var(--line-strong);border-radius:6px;background:var(--surface);display:grid;place-items:center;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease)}
.agree input:hover{border-color:var(--accent)}
.agree input:checked{background:var(--accent);border-color:var(--accent)}
.agree input:checked::after{content:"";width:5px;height:10px;border:solid var(--accent-ink);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}
.agree input:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.req{display:inline-block;font-size:11px;font-weight:600;line-height:1;padding:4px 7px 3px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);vertical-align:1px;margin-right:2px}

/* ================= 동의 묶음 · 사업자 정보 ================= */
.agrees{display:flex;flex-direction:column;gap:9px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--sunken)}
.agree.all{padding-bottom:9px;border-bottom:1px solid var(--line-strong);color:var(--ink);font-weight:600;font-size:13.5px}
.priv-sum{margin:2px 0 0 28px;font-size:11.5px;color:var(--faint);line-height:1.5}
.biz-foot{width:100%;max-width:420px;margin:14px auto 0;text-align:center;font-size:11.5px;color:var(--faint);line-height:1.6}
.biz-foot nav{display:flex;justify-content:center;gap:14px;margin-bottom:4px}
.biz-foot a{color:var(--muted);text-decoration:none}
.biz-foot a:hover{color:var(--accent-text);text-decoration:underline}
.biz-foot b{font-weight:600;color:var(--body)}
.biz-foot p{margin:0;word-break:keep-all}
main .biz-foot{max-width:none}
.biz-head{padding-top:6px;border-top:1px dashed var(--line-strong)}

/* ================= 가입 확인 흐름 ================= */
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;counter-reset:st}
.steps li{position:relative;padding-left:34px;display:flex;flex-direction:column;gap:1px;font-size:13px;color:var(--muted);line-height:1.5}
.steps li::before{counter-increment:st;content:counter(st);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-family:var(--f-num);font-size:12px;display:grid;place-items:center}
.steps li b{color:var(--ink);font-weight:600;font-size:13.5px}
.inv-tag{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--good-soft);color:var(--good);vertical-align:2px;font-family:var(--f-body);letter-spacing:0}
.appr{display:flex;flex-direction:column;gap:2px;background:var(--sunken);border-radius:14px;padding:4px}
.appr .ck-box{font-size:13.5px;color:var(--ink)}
.appr .ck-box:disabled{cursor:default;color:var(--muted)}
.mail summary{cursor:pointer;font-size:13px;color:var(--body);padding:8px 12px;border-radius:12px;background:var(--sunken)}
.mail[open] summary{border-radius:12px 12px 0 0}
.mail pre{margin:0;padding:12px 14px;white-space:pre-wrap;word-break:keep-all;font-family:var(--f-body);font-size:12.5px;line-height:1.7;color:var(--body);background:var(--butter);border-radius:0 0 12px 12px}

/* ================= 달력 선택기 ================= */
.dp-wrap{position:relative;display:block}
.dp-wrap input{padding-right:42px;cursor:pointer}
.dp-wrap input.dp-typed{cursor:text}
.dp-wrap input[readonly]{background:var(--surface)}
.dp-btn{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:10px;background:transparent;color:var(--accent-text);display:grid;place-items:center;cursor:pointer}
.dp-btn:hover{background:var(--butter)}
.dp-btn svg{width:18px;height:18px}
.dp-pop{position:fixed;z-index:90;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 44px rgba(60,48,28,.16);padding:12px;display:flex;flex-direction:column;gap:6px}
.dp-head{display:flex;align-items:center;gap:6px}
.dp-head select{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-family:var(--f-display);font-weight:500}
.dp-nav{width:32px;height:32px;flex:none;border:0;border-radius:50%;background:var(--sunken);color:var(--ink);font-size:18px;line-height:1;cursor:pointer}
.dp-nav:hover{background:var(--accent-soft)}
.dp-wd,.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.dp-wd span{font-size:11px;color:var(--muted);padding:4px 0}
.dp-wd .sun{color:var(--seal)}
.dp-day{border:0;background:none;height:36px;border-radius:50%;font-family:var(--f-num);font-size:13.5px;color:var(--ink);cursor:pointer}
.dp-day:hover{background:var(--butter)}
.dp-day.out{color:var(--faint)}
.dp-day.sun{color:var(--seal)}
.dp-day.today{box-shadow:inset 0 0 0 1.5px var(--accent)}
.dp-day.sel{background:var(--accent);color:var(--accent-ink);font-weight:600}
.dp-day:disabled{color:var(--line-strong);cursor:default;background:none}
.dp-day:focus-visible,.dp-nav:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
.dp-foot{display:flex;justify-content:space-between;align-items:center;padding-top:6px;border-top:1px solid var(--line)}
.quick-top{display:grid;grid-template-columns:minmax(0,200px) minmax(0,140px);gap:12px}
@media (max-width:560px){ .quick-top{grid-template-columns:minmax(0,1fr) minmax(0,110px)} }

/* ================= 체크리스트 쓰는 방식 ================= */
.mode-cards{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}
.mode-cards .opt-body{padding:12px 14px}
.mode-cards .opt-top b{font-size:14px}
.tpl-mode{padding:0 22px 6px}
.tpl-row.is-dup input{border-style:dashed;color:var(--muted)}
.dup-wrap{position:relative;display:block;min-width:0}
.dup-tag{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:11px;font-weight:600;padding:3px 8px;cursor:pointer;white-space:nowrap}
.tpl-row.is-dup input{padding-right:132px}
.chipbtn.base{border-style:solid;border-color:var(--accent);background:var(--butter);color:var(--ink);font-weight:600}
.dup-hint{margin:0 22px 8px}
.sect .dup-hint{margin:0 0 8px}
@media (max-width:760px){ .mode-cards{grid-template-columns:minmax(0,1fr)} .tpl-row.is-dup input{padding-right:10px} .dup-tag{position:static;transform:none;margin-top:4px} }

/* hidden 속성은 어떤 클래스보다 우선 */
[hidden]{display:none!important}
/* 서류 화면 위 막대: 휴대폰에서도 탭과 닫기를 한 줄에 */
@media (max-width:560px){
  .doc-bar{flex-wrap:wrap;column-gap:8px}
  .doc-bar>.seg{flex:1 1 0;min-width:0;order:0}
  .doc-bar>.seg button{flex:1 1 0;padding:7px 6px;white-space:nowrap}
  .doc-bar>[data-act="close"]{order:1;flex:none}
  .doc-bar>span[style*="flex:1"]{display:none}
  .doc-bar>.btn{order:2;flex:1 1 0}
}
/* 목록 줄 안의 작은 표시(예시 태그·시간)는 글자 옆에 붙어 있게 */
.row-main .tag{display:inline-flex;vertical-align:2px;margin-left:4px}
.row-main>span .num{display:inline}

/* ================= 문의 상태 ================= */
:root{--ask:#7A5BA6;--ask-soft:#F1ECF8}
.st-ask{background:var(--ask-soft);color:var(--ask);border-color:var(--ask)}
.s-ask{background:var(--ask-soft);color:var(--ask)}
.stepper{grid-template-columns:repeat(6,minmax(0,1fr))}
.kpi-btn{font:inherit;text-align:left;color:inherit;cursor:pointer;transition:transform .18s var(--ease),border-color .18s var(--ease)}
.kpi-btn:hover{transform:translateY(-2px);border-color:var(--accent)}
.kpi-btn:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}

/* 출강건 입력: 진행 상태 고르기 */
.st-field{margin-bottom:14px}
.st-pick{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.st-opt{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px 7px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);color:var(--muted);font-size:12.5px;font-weight:500;cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}
.st-opt:hover{border-color:var(--accent);background:var(--butter)}
.st-opt.on{border-color:var(--accent);background:var(--butter);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.st-opt:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
.st-opt-ic{width:30px;height:30px;border-radius:50%;padding:6px;display:block}
.st-opt-ic .sic{width:100%;height:100%}
@media (max-width:560px){ .st-pick{grid-template-columns:repeat(3,minmax(0,1fr))} }

/* 수업 시간 */
.time-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px}
.time-pair .tilde{color:var(--faint);font-weight:600}
.dp-wrap input.tp{cursor:pointer;background:var(--surface);padding-right:38px}
.fhint{font-size:12px;color:var(--muted);font-weight:400;margin-top:2px;align-self:flex-start}
button.fhint{color:var(--accent-text)}
.tp-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:2px 2px 4px}
.tp-head b{font-family:var(--f-display);font-weight:500;font-size:14px;color:var(--ink)}
.tp-now{font-family:var(--f-display);font-size:15px;color:var(--accent-text)}
.tp-ap{display:grid;grid-template-columns:1fr 1fr;width:100%}
.tp-ap button{padding:8px 0;font-size:14px}
.tp-lbl{margin:6px 2px 0;font-size:11.5px;color:var(--muted);font-weight:500}
.tp-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
.tp-cell{height:36px;border:0;border-radius:12px;background:var(--sunken);color:var(--ink);font-family:var(--f-num);font-size:14px;cursor:pointer}
.tp-cell:hover{background:var(--accent-soft)}
.tp-cell.sel{background:var(--accent);color:var(--accent-ink);font-weight:600}
.tp-cell:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}

/* 새 기관 · 문의 내용 */
.new-org{border:1.5px dashed var(--accent);border-radius:16px;background:var(--butter);padding:12px 14px 14px}
.new-org-h{margin:0 0 10px;font-size:12.5px;font-weight:600;color:var(--accent-text)}
.inq-sect{border:1px solid var(--ask-soft);background:linear-gradient(180deg,var(--ask-soft),var(--surface) 70%);border-radius:18px;padding:14px 16px 16px}
.inq-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.inq-head h3{margin:0;font-size:15px}
.inq-head p{margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.inq-head p b{color:var(--ask);font-weight:600}
.inq-ic{width:34px;height:34px;flex:none;border-radius:50%;padding:7px;display:block}
.inq-ic .sic{width:100%;height:100%}
.via-chips{display:flex;flex-wrap:wrap;gap:6px}
.chipbtn.on{border-style:solid;border-color:var(--ask);background:var(--ask-soft);color:var(--ask);font-weight:600}
.inq-open{display:inline-block;margin:2px 0 4px;font-size:13.5px}
.inq-box{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--ask-soft)}
.inq-body{min-width:0}
.inq-meta{margin:0;font-size:13px;color:var(--body)}
.inq-meta b{color:var(--ask);font-weight:600}
.inq-note{margin:4px 0 0;font-size:14px;color:var(--ink);white-space:pre-wrap;line-height:1.55}
.org-inq{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.org-inq-btn{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px;border-radius:14px;background:var(--ask-soft);cursor:pointer}
.org-inq-btn:hover{outline:1.5px solid var(--ask)}
.org-inq-btn:disabled{cursor:default;opacity:.7;outline:0}
.org-inq-btn .st{margin-left:4px;vertical-align:1px}
.org-inq-btn .inq-note{font-size:13px}

/* ================= 체크리스트 메뉴 ================= */
.ck-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px;scrollbar-width:none}
.ck-tab{position:relative;flex:none;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-family:var(--f-display);font-weight:500;font-size:14.5px;cursor:pointer}
.ck-tab:hover{border-color:var(--accent)}
.ck-tab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow)}
.ck-tab .c{font-family:var(--f-body);font-size:12px;opacity:.75}
.ck-dot{position:absolute;top:4px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--seal);box-shadow:0 0 0 2px var(--surface)}
.ck-panel{padding-bottom:6px}
.ck-lead{margin:0 22px 12px;font-size:13.5px;color:var(--body)}
.ck-lead b{color:var(--accent-text)}
.ck-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 22px 6px}
.ckg{border:1px solid var(--line);border-radius:18px;padding:12px 12px 8px;background:var(--surface);display:flex;flex-direction:column;gap:6px;min-width:0}
.ckg-head{display:flex;align-items:baseline;gap:8px;padding:0 4px 4px}
.ckg-head b{font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--ink)}
.ckg-head span{font-size:12px;color:var(--muted)}
.ckg-head .c{margin-left:auto;font-family:var(--f-num);background:var(--sunken);border-radius:999px;padding:1px 8px}
.ckg-rows{display:flex;flex-direction:column;gap:6px}
.ckg-empty{margin:0;padding:8px 6px;font-size:13px;color:var(--faint)}
.ck-row{display:grid;grid-template-columns:78px minmax(0,1fr) 30px;gap:6px;align-items:center}
.ck-row select,.ck-row input{padding:7px 8px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--ink);min-width:0;width:100%;font-size:14px}
.ck-row select{font-size:12.5px;color:var(--muted);padding:7px 4px}
.icon-btn.sm{width:30px;height:30px;font-size:18px;display:grid;place-items:center;padding:0}
.icon-btn.sm svg{width:17px;height:17px}
.addline{align-self:flex-start;border:0;background:none;color:var(--accent-text);font-weight:600;font-size:13px;padding:6px 6px;border-radius:10px;cursor:pointer}
.addline:hover{background:var(--butter)}
.ck-pad{padding:0 22px}
.bulk{margin:8px 22px 0;border:1px dashed var(--line-strong);border-radius:14px;background:var(--surface)}
.bulk summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:600;color:var(--body);list-style:none}
.bulk summary::-webkit-details-marker{display:none}
.bulk summary::before{content:"＋";color:var(--accent-text);margin-right:6px}
.bulk[open] summary::before{content:"－"}
.bulk-body{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:0 14px 12px;align-items:start}
.bulk-body textarea{min-height:92px}
.bulk-act{grid-column:1/-1;display:flex;justify-content:flex-end}
.ck-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 22px 0;padding-top:12px;border-top:1px solid var(--line)}
.ck-note{margin:6px 22px 14px;font-size:12px;color:var(--muted)}
.grp-tools{display:flex;gap:8px;flex-wrap:wrap;padding:0 22px 12px}
.grp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 22px}
.grp-card{border:1px solid var(--line);border-radius:18px;padding:12px;background:var(--surface);display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow)}
.grp-card .bulk{margin:4px 0 0}
.grp-head{display:flex;align-items:center;gap:8px;padding-bottom:4px}
.grp-name{flex:1;min-width:0;border:0;border-bottom:1.5px solid transparent;background:none;padding:4px 2px;font-family:var(--f-display);font-size:16px;font-weight:500;color:var(--ink);border-radius:0}
.grp-name:hover{border-bottom-color:var(--line-strong)}
.grp-name:focus{outline:0;border-bottom-color:var(--accent)}
.grp-head .c{font-size:12px;color:var(--muted);white-space:nowrap}
.grp-del-ask{display:flex;gap:4px}
.grp-link{font-size:12.5px;margin-left:4px}
@media (max-width:760px){
  .ck-stages,.grp-grid{grid-template-columns:minmax(0,1fr);padding-left:16px;padding-right:16px}
  .bulk{margin-left:16px;margin-right:16px}
  .grp-card .bulk{margin:4px 0 0}
  .bulk-body{grid-template-columns:minmax(0,1fr)}
  .ck-save{margin-left:16px;margin-right:16px}
  .ck-note,.ck-lead{margin-left:16px;margin-right:16px}
  .grp-tools,.ck-pad{padding-left:16px;padding-right:16px}
}
.nw{white-space:nowrap}
@media (max-width:560px){
  .ck-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .ck-tab{justify-content:center;padding:9px 4px;font-size:13px}
  .ck-tab .c{display:none}
  .ck-panel .panel-head span{display:none}
  .ck-row{grid-template-columns:66px minmax(0,1fr) 28px;gap:5px}
  .ck-stages{padding-left:12px;padding-right:12px}
  .ckg{padding:10px 8px 6px}
}
.ck-save .spacer{flex:1}

/* ================= 일정 달력 ================= */
.cal-head{gap:6px;margin-bottom:2px}
.cal-head h2{min-width:0;margin:0 4px;text-align:center}
.cal-nav{width:36px;height:36px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 2px}
.cal-nav:hover{border-color:var(--accent);background:var(--butter)}
.cal-nav:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
.cal-sum{margin-left:auto;font-size:13px}
.cal .wd.sun{color:var(--seal)}
button.dn{all:unset;box-sizing:border-box;font-family:var(--f-num);font-size:12px;color:var(--muted);padding:0 4px;align-self:flex-start;border-radius:999px;cursor:default}
.cell.sun:not(.out) .dn{color:var(--seal)}
.cell.today button.dn{color:var(--accent-ink);background:var(--accent);padding:0 6px}
.dots{display:none}
.cal-day{display:none}
@media (max-width:760px){
  .cal-head{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;align-items:center;row-gap:6px}
  .cal-head h2{font-size:20px}
  .cal-head .btn{grid-column:1/-1;justify-self:center;order:5}
  .cal-sum{grid-column:1/-1;margin:0;text-align:center;font-size:12.5px}
  .calwrap{overflow:visible;padding:6px 6px 8px}
  .cal{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:2px}
  .cal .wd{border:0;padding:4px 0 6px;text-align:center;font-size:11.5px}
  .cell{position:relative;min-height:0;height:52px;border:0;padding:0;background:none!important;align-items:center;justify-content:flex-start;gap:0}
  .cell .pill{display:none}
  button.dn{position:absolute;inset:0;width:100%;height:100%;display:flex;justify-content:center;padding:6px 0 0;border-radius:14px;font-size:15px;color:var(--ink);cursor:pointer}
  button.dn:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}
  .cell.out button.dn{color:var(--line-strong)}
  .cell.sun:not(.out) button.dn{color:var(--seal)}
  .cell.today button.dn{background:none;color:var(--accent-text);font-weight:700;padding:6px 0 0;box-shadow:inset 0 0 0 1.5px var(--accent)}
  .cell.sel button.dn{background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:0 6px 14px -8px rgba(232,174,60,.95)}
  .dots{display:flex;position:absolute;left:0;right:0;bottom:8px;justify-content:center;align-items:center;gap:3px;pointer-events:none}
  .dots i{width:6px;height:6px;border-radius:50%;background:currentColor}
  .dots b{font-size:9px;font-weight:700;color:var(--muted);line-height:1}
  .dots em{font-style:normal;font-size:10px;font-weight:800;color:var(--seal);line-height:1}
  .cell.sel .dots i{box-shadow:0 0 0 1.5px var(--surface)}
  .cell.sel .dots b{color:var(--accent-ink)}
  .cell.out .dots{opacity:.45}
  .cal-day{display:block;margin-top:12px}
  .cal-day .panel-head h2{font-size:17px}
  .cal-day .panel-foot{padding:4px 16px 16px}
}
@media (max-width:760px){
  .cal-page{flex-direction:row;align-items:center;justify-content:space-between}
  .cal-page p{display:none}
  .cal-page .btn{padding:8px 14px;font-size:13.5px}
  button.dn{padding:4px 0 0;align-items:flex-start;background:none!important;box-shadow:none!important}
  .dnum{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;transition:background .15s var(--ease)}
  button.dn:hover .dnum{background:var(--butter)}
  .cell.today .dnum{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent-text);font-weight:700}
  .cell.sel .dnum{background:var(--accent)!important;color:var(--accent-ink);font-weight:700;box-shadow:0 6px 14px -8px rgba(232,174,60,.95)}
  .dots{bottom:5px}
  .cell.sel .dots i{box-shadow:none}
  .cell.sel .dots b{color:var(--muted)}
}

/* ================= 출강리스트: 상태 바로 바꾸기 ================= */
.st-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 2px;border-radius:999px;cursor:pointer;transition:background .15s var(--ease),box-shadow .15s var(--ease)}
.st-btn:hover{background:var(--butter);box-shadow:inset 0 0 0 1.5px var(--accent)}
.st-btn:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
.st-btn[aria-expanded="true"]{background:var(--butter);box-shadow:inset 0 0 0 1.5px var(--accent)}
.st-caret{width:12px;height:12px;color:var(--muted);flex:none}
.st-pop{padding:8px;gap:2px}
.st-pop-h{margin:2px 6px 6px;font-size:11.5px;font-weight:600;color:var(--muted)}
.st-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:7px 8px;border-radius:12px;font-size:14px;color:var(--ink);cursor:pointer;text-align:left}
.st-item:hover,.st-item:focus-visible{background:var(--butter);outline:0}
.st-item.on{font-weight:600;background:var(--sunken)}
.st-item-ic{width:28px;height:28px;border-radius:50%;padding:5px;flex:none;display:block}
.st-item-ic .sic{width:100%;height:100%}
.st-now{margin-left:auto;font-size:11px;font-weight:600;color:var(--accent-text);background:var(--accent-soft);border-radius:999px;padding:1px 7px}

/* 새 출강건: 문의·견적 두 갈래 */
.st-pick.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.st-opt.wide{flex-direction:row;align-items:center;gap:10px;padding:12px 14px;text-align:left}
.st-opt.wide .st-opt-ic{width:36px;height:36px;padding:7px;flex:none}
.st-opt-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-opt-t b{font-family:var(--f-display);font-weight:500;font-size:15px;color:var(--ink)}
.st-opt-t small{font-size:12px;color:var(--muted);font-weight:400;line-height:1.4}
.st-field .fhint{margin-top:6px}

/* 휴대폰: 표 대신 카드 */
.gcards{display:none}
@media (max-width:760px){
  .gtable{display:none}
  .gcards{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}
  .gcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
  .gcard-main{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;width:100%;padding:12px 14px 8px}
  .gcard-main:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px}
  .gcard-main .row-main>span+span{margin-top:1px}
  .gcard-foot{display:flex;align-items:center;gap:8px;padding:8px 10px 10px 14px;border-top:1px dashed var(--line)}
  .gcard-foot>b{font-size:15px;color:var(--ink)}
  .gcard-settle{flex:1;min-width:0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px 2px}
  .tabs button{flex:none}
  .st-pick.two{grid-template-columns:minmax(0,1fr)}
}

/* ================= 기관 찾기 ================= */
.fld>label{font-size:12.5px;color:var(--muted);font-weight:500}
.org-wrap{position:relative;display:block}
.org-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--faint);pointer-events:none}
.fld input.org-q{padding-left:36px}
.org-st{font-size:12px;color:var(--muted);margin-top:2px;min-height:1em}
.org-st.ok{color:var(--good)}
.org-st.ok::before{content:"✓ ";font-weight:700}
.org-st.new{color:var(--accent-text);font-weight:600}
.org-st.new::before{content:"+ "}
.org-pop{padding:6px;gap:2px;max-height:min(420px,70vh);overflow-y:auto}
.op-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;padding:8px 10px;border-radius:12px;text-align:left;cursor:pointer;color:var(--ink)}
.op-item.act,.op-item:hover{background:var(--butter)}
.op-item.cur{box-shadow:inset 0 0 0 1.5px var(--accent)}
.op-ic{width:32px;height:32px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--sunken);color:var(--body);font-family:var(--f-display);font-size:14px}
.op-ic.plus{background:var(--accent);color:var(--accent-ink);font-size:20px;line-height:1}
.op-new b{color:var(--accent-text)}
.op-t{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.op-t b{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op-t b mark{background:var(--accent-soft);color:inherit;border-radius:3px;padding:0 1px}
.op-t small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.op-cur{font-size:11px;font-weight:600;color:var(--accent-text);background:var(--accent-soft);border-radius:999px;padding:1px 7px;flex:none}
.op-note{margin:4px 8px 4px;font-size:12px;color:var(--muted)}
.org-contact{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:12px 14px 14px}
.org-contact.is-new{border:1.5px dashed var(--accent);background:var(--butter)}
.org-contact .new-org-h{color:var(--muted)}
.org-contact.is-new .new-org-h{color:var(--accent-text)}
.list-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.search-wrap{position:relative;display:inline-block;flex:0 1 340px;min-width:0}
.search-wrap svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--faint);pointer-events:none}
.search-wrap .search{width:100%;padding:10px 12px 10px 36px;font-size:14px}
.search-wrap .search:focus{outline:3px solid var(--accent-soft);border-color:var(--accent-text)}
@media (max-width:560px){ .search-wrap{flex:1 1 100%} }

/* 서류에 넣을 내용 */
.quick-top{grid-template-columns:minmax(0,200px) minmax(0,140px) minmax(0,1fr)}
.doc-show-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:40px}
.chipbtn.tog{display:inline-flex;align-items:center;gap:6px;border-style:solid;padding:6px 12px;font-size:13px;color:var(--muted)}
.chipbtn.tog .tog-box{width:15px;height:15px;border-radius:5px;border:1.5px solid var(--line-strong);background:var(--surface);display:inline-grid;place-items:center}
.chipbtn.tog.on{border-color:var(--accent);background:var(--butter);color:var(--ink);font-weight:600}
.chipbtn.tog.on .tog-box{background:var(--accent);border-color:var(--accent)}
.chipbtn.tog.on .tog-box::after{content:"";width:7px;height:4px;border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);transform:translateY(-1px) rotate(-45deg)}
@media (max-width:760px){ .quick-top{grid-template-columns:minmax(0,1fr) minmax(0,110px)} .doc-show{grid-column:1/-1} }
.fgrid-gap{display:block}
@media (max-width:560px){ .fgrid-gap{display:none} }
/* 기관: 휴대폰은 카드 */
.ocards{display:none}
@media (max-width:760px){
  .otable{display:none}
  .ocards{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}
  .ocard{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:40px minmax(0,1fr) 14px;gap:12px;align-items:center;width:100%;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
  .ocard:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
  .ocard .op-ic{width:40px;height:40px;font-size:16px;background:var(--butter);color:var(--accent-text)}
  .ocard-go{color:var(--faint);font-size:20px}
  .ocards .no-hit .empty-line{padding:18px 4px}
}
.search-wrap .search::-webkit-search-cancel-button{filter:grayscale(1);opacity:.5;cursor:pointer}

/* 로고: 꿀비 */
.stamp.logo{display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,#FFE3A3 0 62%,#FFF3D6 63%);box-shadow:0 6px 14px -8px rgba(232,174,60,.9),inset 0 0 0 1px rgba(232,174,60,.18);overflow:visible;font-size:0}
.stamp.logo::after{content:none}
.stamp.logo .bee{width:86%;height:86%;margin-top:-1px;animation:none}
.stamp.logo .bee .bee-wing{animation:none;transform-box:view-box;transform-origin:0 0}
.brand .stamp.logo{width:44px;height:44px}
.auth-brand .stamp.logo{width:56px;height:56px}

/* ================= 실적 ================= */
.stat-year{display:flex;align-items:center;gap:8px}
.stat-year h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:22px;letter-spacing:-.03em;min-width:84px;text-align:center}
.cal-nav:disabled{opacity:.35;cursor:default}
.stat-hint{margin:0}
.stat-two{align-items:stretch}
.stat-panel{display:flex;flex-direction:column}
.vchart{display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px;padding:8px 22px 4px 12px;height:236px}
.vaxis{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding-bottom:22px;font-size:11px;color:var(--muted);font-family:var(--f-num)}
.vaxis span{line-height:1;transform:translateY(-50%)}
.vaxis span:last-child{transform:translateY(50%)}
.vplot{position:relative;min-width:0}
.vgrid{position:absolute;inset:0 0 22px 0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.vgrid i{display:block;border-top:1px solid var(--line)}
.vgrid i:last-child{border-top-color:var(--line-strong)}
.vcols{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.vcol{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:22px;outline:0;cursor:default;border-radius:10px}
.vcol:hover,.vcol:focus-visible{background:var(--butter)}
.vcol:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-text)}
.vbar{position:relative;width:min(22px,64%);min-height:0;border-radius:4px 4px 0 0;display:flex;flex-direction:column;gap:2px}
.vbar.one{background:#CF8F1C}
.vbar .seg{display:block;min-height:2px}
.vbar .seg.paid{background:#CF8F1C}
.vbar .seg.due{background:#3E87C9}
.vbar .seg:first-of-type{border-radius:4px 4px 0 0}
.vval{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:4px;font-size:11.5px;font-weight:600;color:var(--ink);white-space:nowrap;font-family:var(--f-num)}
.vx{position:absolute;bottom:0;height:20px;line-height:20px;font-size:11.5px;color:var(--muted);font-family:var(--f-num)}
.vx em{font-style:normal}
.vcol.cur .vx{color:var(--accent-text);font-weight:700}
.legend{display:flex;gap:14px;padding:0 22px 2px;font-size:12.5px;color:var(--body)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;border-radius:3px;display:inline-block}
.sw.paid{background:#CF8F1C}.sw.due{background:#3E87C9}
.stat-table{margin:6px 22px 16px}
.stat-table summary{cursor:pointer;font-size:12.5px;color:var(--muted);font-weight:500;padding:4px 0}
.stat-table .tablewrap{margin-top:6px;box-shadow:none;max-height:260px;overflow:auto}
.hbars{list-style:none;margin:0;padding:6px 22px 18px;display:flex;flex-direction:column;gap:12px}
.hbars li{display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:4px;column-gap:10px;outline:0;border-radius:10px;padding:4px 6px;margin:0 -6px}
.hbars li:hover,.hbars li:focus-visible{background:var(--butter)}
.hbars li:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-text)}
.hb-name{font-size:14px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-val{font-size:14px;color:var(--ink);text-align:right}
.hb-track{height:12px;border-radius:0 4px 4px 0;background:var(--sunken);overflow:hidden}
.hb-track i{display:block;height:100%;background:#CF8F1C;border-radius:0 4px 4px 0}
.hb-sub{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap}
.tablewrap.flat{margin:4px 22px 18px;box-shadow:none}
.tablewrap.flat tr.cur td{background:var(--butter);font-weight:600}
.tablewrap.flat tr[data-act]{cursor:pointer}
#tipbox{position:fixed;z-index:95;pointer-events:none;background:var(--ink);color:#fff;font-size:12.5px;padding:6px 10px;border-radius:10px;box-shadow:0 8px 20px rgba(40,30,10,.2);max-width:260px;white-space:normal;line-height:1.4}
#tipbox[hidden]{display:none}
@media (max-width:760px){
  .vchart{padding:6px 12px 2px 4px;grid-template-columns:34px minmax(0,1fr);height:210px}
  .vx em{display:none}
  .vval{font-size:10.5px}
  .legend,.hbars{padding-left:16px;padding-right:16px}
  .stat-table,.tablewrap.flat{margin-left:16px;margin-right:16px}
  .stat-year h2{font-size:19px;min-width:70px}
}

/* ================= 정산: 증빙·메모 ================= */
.settle-l{font-size:12.5px;color:var(--muted);font-weight:500;min-width:30px}
.proof-chips{display:flex;flex-wrap:wrap;gap:6px}
.settle-note{margin:0;font-size:12.5px}
.settle-memo{margin-top:2px}
.settle-memo textarea{min-height:56px}

/* ================= 체크리스트 접기 ================= */
.ck-toggle{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer}
.ck-toggle:hover{border-color:var(--accent);background:var(--butter)}
.ck-toggle:focus-visible{outline:2px solid var(--accent-text);outline-offset:1px}
.ck-toggle-top{display:flex;align-items:center;gap:10px}
.ck-toggle-top h3{margin:0}
.ck-toggle .bar{flex:1}
.ck-more,.ck-less{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;font-weight:600;color:var(--accent-text);white-space:nowrap}
.ck-more svg,.ck-less svg{width:12px;height:12px}
.ck-less{margin-left:auto;border:0;background:none;padding:4px 8px;border-radius:999px;cursor:pointer}
.ck-less:hover{background:var(--butter)}
.ck-next{font-size:13px;color:var(--body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-next b{font-weight:600;color:var(--ink)}
@media (min-width:981px){ .stat-two{grid-template-columns:repeat(2,minmax(0,1fr))} }
.vbar.stk{gap:2px}
.tablewrap.flat table.grid,.stat-table table.grid{min-width:0}
.vbar.one,.vbar .seg:first-child{border-radius:4px 4px 0 0}
.vbar .seg:not(:first-child){border-radius:0}
@media (max-width:560px){
  .tablewrap.flat th,.tablewrap.flat td{padding:9px 8px;font-size:13.5px}
  .tablewrap.flat th:nth-child(4),.tablewrap.flat td:nth-child(4){display:none}
  .tablewrap.flat .tag{display:none}
}
.ck-more{margin-left:auto}

/* ================= 할 일 ================= */
.td-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.td-stat{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 16px;border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;text-align:left;transition:border-color .15s var(--ease),transform .15s var(--ease)}
.td-stat:hover{transform:translateY(-2px);border-color:var(--accent)}
.td-stat:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.td-stat.on{border-color:var(--accent);background:var(--butter)}
.td-n{font-family:var(--f-num);font-size:28px;line-height:1.1;color:var(--ink)}
.td-l{font-family:var(--f-display);font-size:15px;color:var(--ink)}
.td-sub{font-size:12px;color:var(--muted)}
.td-stat.late .td-n{color:var(--seal)}
.td-stat.today .td-n{color:var(--accent-text)}
.td-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.td-filter{font-size:13.5px;color:var(--muted)}
.td-filter b{color:var(--ink);font-family:var(--f-num)}
.td-filter .linkish{margin-left:6px;font-size:13px}
.tg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.tg-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:6px 6px 8px;display:flex;flex-direction:column;min-width:0}
.tg-card.late{border-color:var(--seal-soft);box-shadow:inset 3px 0 0 var(--seal),var(--shadow)}
.tg-head{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border-radius:14px}
.tg-head:hover{background:var(--butter)}
.tg-head:focus-visible{outline:2px solid var(--accent-text)}
.tear.sm{width:46px;box-shadow:none}
.tear.sm b{font-size:17px;padding:4px 0 1px}
.tg-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.tg-left{font-size:12px;color:var(--muted);white-space:nowrap}
.tg-left b{color:var(--ink);font-size:14px}
.tg-prog{display:flex;align-items:center;gap:8px;padding:0 12px 6px 70px;font-size:12px}
.tg-prog .bar{flex:1;max-width:none}
.tg-list{list-style:none;margin:0;padding:0 4px;border-top:1px solid var(--line)}
.tg-row{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;align-items:center;gap:6px}
.tg-row+.tg-row{border-top:1px dashed var(--line)}
.tg-st{font-size:11px;font-weight:600;color:var(--muted);background:var(--sunken);border-radius:999px;padding:2px 8px;white-space:nowrap}
.tg-row .when{padding-right:6px}
.tg-more{align-self:flex-start;margin:4px 0 0 8px;border:0;background:none;color:var(--accent-text);font-weight:600;font-size:13px;padding:6px 8px;border-radius:10px;cursor:pointer}
.tg-more:hover{background:var(--butter)}
@media (max-width:1100px){ .tg-grid{grid-template-columns:minmax(0,1fr)} }
@media (max-width:560px){
  .td-sum{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .td-stat{padding:10px 6px;align-items:center;text-align:center;border-radius:16px}
  .td-n{font-size:22px}
  .td-l{font-size:12.5px}
  .td-sub{display:none}
  .tg-head{grid-template-columns:46px minmax(0,1fr) auto;gap:10px;padding:8px 6px}
  .tg-prog{padding-left:62px}
  .tg-row{grid-template-columns:minmax(0,1fr) auto 56px}
  .tg-st{display:none}
}

/* ================= 관리자: 이용 이력 ================= */
.real{font-weight:400;color:var(--muted);font-size:.86em}
.u-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.u-head h3{margin:0}
.u-head .seg button{padding:5px 12px;font-size:12.5px}
.u-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.u-kpis>div{background:var(--sunken);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.u-kpis span{font-size:12px;color:var(--muted)}
.u-kpis b{font-size:20px;color:var(--ink);font-weight:500}
.u-kpis b small{font-size:12px;color:var(--muted);margin-left:2px}
.u-kpis .u-last{font-size:14.5px;font-weight:600;font-family:var(--f-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-kpis small.muted{font-size:11.5px}
.u-cap{margin:14px 0 6px;font-size:12.5px;font-weight:600;color:var(--body)}
.u-weeks{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;align-items:end}
.u-wk{display:flex;flex-direction:column;align-items:center;gap:3px}
.u-bar{width:100%;max-width:26px;height:64px;background:var(--sunken);border-radius:6px;display:flex;align-items:flex-end;overflow:hidden}
.u-bar i{display:block;width:100%;background:#CF8F1C;border-radius:4px 4px 0 0}
.u-wk b{font-size:12.5px;color:var(--ink)}
.u-wk em{font-style:normal;font-size:10.5px;color:var(--muted);white-space:nowrap}
.u-wk.now em{color:var(--accent-text);font-weight:700}
.u-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.u-feats li{display:grid;grid-template-columns:110px minmax(0,1fr) 36px;gap:8px;align-items:center;font-size:13px}
.u-track{height:8px;background:var(--sunken);border-radius:0 4px 4px 0;overflow:hidden}
.u-track i{display:block;height:100%;background:#CF8F1C;border-radius:0 4px 4px 0}
.u-feats b{text-align:right;color:var(--ink)}
.u-note{margin:12px 0 0;font-size:12px}
@media (max-width:560px){ .u-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} .u-feats li{grid-template-columns:92px minmax(0,1fr) 30px} }
.care-main b .real,.who b .real,h2 .real{display:inline;font-size:.86em}

/* ================= 요금제·워터마크 ================= */
.paper{position:relative}
.wm{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:5;display:flex;flex-direction:column;justify-content:space-around;align-items:center}
.wm span{display:block;white-space:nowrap;transform:rotate(-28deg);font-family:var(--f-display);font-weight:700;font-size:64px;letter-spacing:-.02em;color:rgba(200,64,40,.17);line-height:1}
.wm.lock span{color:rgba(90,80,70,.2)}
@media print{ .paper.no-print{display:none!important} }
.plan-note{margin:0;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.5}
.plan-note.trial{background:#FDECE8;color:#8A3A28}
.plan-note.lock{background:var(--sunken);color:var(--body);border:1.5px dashed var(--line-strong)}
.plan-note b{font-weight:700}
.plan-meter{display:flex;align-items:center;gap:10px;margin:0;font-size:12.5px;color:var(--muted)}
.plan-meter b{color:var(--ink)}
.pm-bar{width:90px;height:6px;border-radius:999px;background:var(--sunken);overflow:hidden;flex:none}
.pm-bar i{display:block;height:100%;background:var(--accent)}
.plan-box{margin:4px 0 12px}
.plan-now{margin:0 0 8px;font-size:14px}
.plan-now b{color:var(--ink)}
.plan-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.plan-list li{border:1.5px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:var(--surface)}
.plan-list li.on{border-color:var(--accent);background:var(--butter)}
.plan-list b{font-family:var(--f-display);font-weight:500;font-size:14.5px;color:var(--ink)}
.plan-list span{font-size:13px;color:var(--body)}
.plan-list small{font-size:11.5px;color:var(--muted)}
@media (max-width:560px){ .plan-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
.fld input.locked{background:var(--sunken);color:var(--body);cursor:default}
.plan-tag{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:1px 7px;border-radius:999px;vertical-align:2px;background:var(--sunken);color:var(--muted)}
.plan-tag.basic{background:#EAF2FB;color:#2F6699}
.plan-tag.standard{background:var(--accent-soft);color:var(--accent-text)}
.plan-tag.pro{background:#3A352D;color:#FFE3A3}
.plan-tag.trial{background:#FDECE8;color:#8A3A28}
.biz-edit{display:flex;align-items:flex-end;gap:8px;margin:0 0 10px}
.biz-edit .fld{flex:1}

/* ================= 메뉴 잠금 ================= */
.nav button.locked{opacity:.78}
.nav-lock{margin-left:auto;display:inline-grid;place-items:center;width:20px;height:20px;color:var(--faint)}
.nav-lock svg{width:14px;height:14px}
.lock-panel{position:relative;overflow:hidden;min-height:420px;display:grid;place-items:center;padding:28px 16px}
.lock-ghost{position:absolute;inset:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;filter:blur(3px);opacity:.55}
.lock-ghost i{display:block;border-radius:18px;background:linear-gradient(180deg,var(--butter),var(--sunken))}
.lock-ghost i:nth-child(n+4){height:160px}
.lock-card{position:relative;max-width:420px;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 50px -24px rgba(60,48,28,.45);padding:24px 24px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.lock-card h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:20px}
.lock-card ul{margin:2px 0 4px;padding-left:18px;font-size:14px;line-height:1.7;color:var(--body)}
.lock-badge{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0;font-size:12px;font-weight:700;color:var(--accent-text);background:var(--accent-soft);padding:4px 10px;border-radius:999px}
.lock-badge svg{width:13px;height:13px}
.lock-card .btn{margin-top:6px}
.lock-inline{display:flex;align-items:center;gap:14px;padding:18px 20px}
.lock-inline>svg{width:22px;height:22px;color:var(--accent-text);flex:none}
.lock-inline div{flex:1;min-width:0}
.lock-inline b{font-family:var(--f-display);font-weight:500;font-size:16px;color:var(--ink)}
.lock-inline p{margin:4px 0 0;font-size:13px;color:var(--muted)}
.plan-feats{margin:8px 0 0;padding-left:18px;font-size:12.5px;color:var(--body);line-height:1.6}
.pro-badge{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:1px 7px;border-radius:999px;background:#3A352D;color:#FFE3A3;vertical-align:2px}
.pro-tease{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;background:var(--sunken);font-size:13px;color:var(--body)}
.pro-tease svg{width:15px;height:15px;color:var(--muted);flex:none}
.pro-tease span{flex:1}

/* ================= 정산 관리 ================= */
.sr-sect.late{border-color:var(--seal-soft)}
.sr-sect.late .panel-head h2{color:var(--seal)}
.sr-list{list-style:none;margin:0;padding:0 14px 10px;display:flex;flex-direction:column;gap:10px}
.sr{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:8px}
.sr.late{border-color:var(--seal-soft);box-shadow:inset 3px 0 0 var(--seal)}
.sr-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.sr-org{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0;border-radius:8px}
.sr-org:focus-visible{outline:2px solid var(--accent-text)}
.sr-org b{font-weight:600;font-size:15px;color:var(--ink)}
.sr-org span{font-size:12.5px;color:var(--muted)}
.sr-amt{font-size:17px;color:var(--ink);white-space:nowrap}
.sr-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sr-st{font-size:12.5px;color:var(--body);background:var(--sunken);border-radius:999px;padding:3px 10px}
.sr-st.pre{color:var(--accent-text);background:var(--accent-soft)}
.sr-due{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.sr-due .dp-wrap{width:172px}
.sr-due input{padding:6px 34px 6px 10px;font-size:13px;border:1px solid var(--line-strong);border-radius:10px;width:100%}
.sr-dd{font-size:12.5px;font-weight:700;color:var(--body)}
.sr-dd.late{color:var(--seal)}
.sr-dd.soon{color:var(--accent-text)}
.sr-log{display:flex;align-items:center;gap:6px;margin:0;font-size:12.5px;color:var(--body);background:var(--butter);border-radius:10px;padding:6px 10px}
.sr-log svg{width:14px;height:14px;color:var(--muted);flex:none}
.sr-act{display:flex;gap:6px;flex-wrap:wrap}
.sr-logbox{border-top:1px dashed var(--line);padding-top:8px}
.sr-logbox ul{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.sr-logbox li{display:flex;gap:8px}
.sr-logbox li b{font-weight:600;white-space:nowrap;color:var(--ink);font-family:var(--f-num)}
.st-head{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 10px 8px}
.st-head .op-ic{width:40px;height:40px;background:var(--butter);color:var(--accent-text)}
.st-left{font-size:12.5px;color:var(--muted);text-align:right}
.st-left b{color:var(--ink);font-size:15px}
.st-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:6px 6px}
.st-row+.st-row{border-top:1px dashed var(--line)}
.st-gig{all:unset;cursor:pointer;display:flex;gap:8px;align-items:baseline;min-width:0;font-size:13px}
.st-gig b{font-weight:600;white-space:nowrap}
.st-gig span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.toggle.sm{padding:4px 10px;font-size:12px;border-radius:999px;white-space:nowrap}

/* ================= PRO: 인건비·순이익 ================= */
.as-list{display:flex;flex-direction:column;gap:6px}
.as-row{display:grid;grid-template-columns:minmax(0,1fr) 130px auto 30px;gap:6px;align-items:center}
.as-row.cost{grid-template-columns:minmax(0,1fr) 130px 30px}
.as-row input{padding:7px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);min-width:0;width:100%;font-size:14px}
.as-pay{position:relative;display:block}
.as-pay input{text-align:right;padding-right:26px;font-family:var(--f-num)}
.as-pay em{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-style:normal;font-size:12px;color:var(--muted)}
.pf-box{margin-top:12px;border-radius:16px;background:var(--butter);padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.pf-row{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--body)}
.pf-row b{font-weight:500;color:var(--ink)}
.pf-row.net{margin-top:4px;padding-top:8px;border-top:1px solid var(--line-strong);font-size:15px}
.pf-row.net b{font-weight:700;font-size:17px}
.pf-row.net.neg b{color:var(--seal)}
.pf-rate{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.pf-rate .bar{flex:1;max-width:none}
@media (max-width:560px){ .as-row{grid-template-columns:minmax(0,1fr) 104px 30px} .as-row .toggle{grid-column:1/2;justify-self:start;grid-row:2} .as-row .icon-btn{grid-row:1;grid-column:3} }

/* ================= 사업일기 ================= */
.diary-cta{display:flex;align-items:center;gap:10px;width:100%;border:1.5px dashed var(--accent);background:var(--butter);border-radius:16px;padding:12px 14px;font-size:14px;color:var(--body);cursor:pointer;text-align:left}
.diary-cta:hover{background:var(--accent-soft)}
.diary-cta svg{width:20px;height:20px;color:var(--accent-text);flex:none}
.diary-cta b{color:var(--accent-text)}
.diary-cta.done{border-style:solid;border-color:var(--line);background:var(--surface)}
.dy-month{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;flex-wrap:wrap;background:var(--butter);border-color:var(--accent-soft)}
.dy-month>div{display:flex;align-items:center;gap:12px}
.dy-month b{font-family:var(--f-display);font-weight:500;font-size:16px;color:var(--ink)}
.dy-month p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.dy-mh{margin:6px 2px 8px;font-family:var(--f-display);font-weight:500;font-size:17px;color:var(--ink)}
.dy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dy-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;min-width:0}
.dy-card:hover{border-color:var(--accent)}
.dy-card:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
.dy-date{font-size:12px;color:var(--accent-text);font-weight:600}
.dy-card b{font-family:var(--f-display);font-weight:500;font-size:16px;color:var(--ink)}
.dy-ex{font-size:13px;color:var(--body);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.dy-gig{margin-top:4px;font-size:11.5px;color:var(--muted);background:var(--sunken);border-radius:999px;padding:2px 8px}
#dy-body{min-height:240px;line-height:1.7}
@media (max-width:760px){ .dy-list{grid-template-columns:minmax(0,1fr)} }

/* ================= PRO: 수익 분석 ================= */
.stat-tabs{padding-bottom:16px}
.stat-tabs .pro-badge{margin-left:0}
.pf-stack{display:flex;gap:2px;height:22px;margin:6px 22px 12px;border-radius:6px;overflow:hidden;background:var(--sunken)}
.pfs{display:block;min-width:3px;outline:0}
.pfs:focus-visible{box-shadow:inset 0 0 0 2px var(--ink)}
.pfs.net,.sw.net{background:#CF8F1C}
.pfs.mat,.sw.mat{background:#3E87C9}
.pfs.staff,.sw.staff{background:#9CC3E6}
.pfs.etc,.sw.etc{background:#B9B0A2}
.pf-legend{flex-wrap:wrap;row-gap:6px;padding-bottom:14px}
.pf-legend b{font-weight:700;color:var(--ink)}
.pf-legend em{font-style:normal;color:var(--muted);font-size:12px}
.pf-bars .hb-track{grid-column:1/-1}
.pf-bars .hb-sub{grid-column:1/-1;text-align:left;white-space:normal}
.pf-bars .hb-sub b{color:var(--ink)}
.num.neg,.hb-val.neg{color:var(--seal)}
.panel-head .seg{flex:none}
.pf-list{max-height:520px;overflow:auto}
.pf-list .row-btn{grid-template-columns:minmax(0,1fr) auto}
.pf-sub{font-size:12px;color:var(--muted)}
.pf-ghost{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px;filter:blur(2px);opacity:.5;pointer-events:none}
.pf-ghost i{height:96px;border-radius:18px;background:linear-gradient(180deg,var(--butter),var(--sunken))}
.pf-ghost i.w{grid-column:1/-1;height:220px}
@media (max-width:760px){ .pf-stack{margin-left:16px;margin-right:16px} .pf-ghost{grid-template-columns:repeat(2,1fr)} .panel-head:has(.seg){flex-wrap:wrap;gap:8px} }
.sr-sect .panel-head h2{white-space:nowrap}
@media (max-width:560px){ .sr-sect .panel-head{flex-wrap:wrap;row-gap:2px} .sr-sect .panel-head>span{width:100%} .sr-top{gap:8px} .sr-amt{font-size:16px} }

/* ================= 사이드바 로그아웃 ================= */
.mode-out{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:10px;padding:7px 10px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);color:var(--muted);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease)}
.mode-out svg{width:15px;height:15px}
.mode-out:hover{background:var(--seal-soft);color:var(--seal);border-color:var(--seal-soft)}

/* ================= 기관 입력 안내 ================= */
.org-st b{font-weight:600;color:var(--accent-text)}
.op-guide{display:flex;align-items:flex-start;gap:10px;margin:2px 2px 6px;padding:10px 12px;border-radius:12px;background:var(--butter);border:1px dashed var(--accent)}
.op-guide .op-t small{display:block;margin-top:2px;color:var(--body);font-size:12px;line-height:1.5}
.op-guide em{font-style:normal;font-weight:600;color:var(--accent-text)}

/* ================= 문의 영역 열고 닫기 ================= */
.inq-open{display:inline-flex;align-items:center;gap:6px;margin:4px 0 6px;padding:8px 14px;border:1.5px dashed var(--line-strong);border-radius:999px;background:var(--surface);color:var(--body);font-size:13.5px;cursor:pointer}
.inq-open:hover{border-color:var(--ask);color:var(--ask);background:var(--ask-soft)}
.inq-open span{font-weight:700}
.inq-open small{color:var(--ask);font-size:12px}
.inq-head>div{flex:1;min-width:0}
.inq-close{flex:none;display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:5px 10px 5px 12px;font-size:12.5px;color:var(--muted);cursor:pointer}
.inq-close span{font-size:16px;line-height:1}
.inq-close:hover{color:var(--ink);border-color:var(--ink)}
.inq-keep{margin:-4px 0 10px;font-size:12px;color:var(--muted)}

/* ================= 입금 잠금 (STANDARD부터) ================= */
.st-item.locked{color:var(--faint);cursor:not-allowed}
.st-item.locked .st-item-ic{opacity:.45}
.st-lock{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;letter-spacing:.03em;color:var(--accent-text);background:var(--accent-soft);border-radius:999px;padding:2px 8px}
.st-lock svg{width:11px;height:11px}
.st-opt.locked{opacity:.55;cursor:not-allowed;position:relative}
.st-opt.locked .st-lock{position:absolute;top:4px;right:4px;margin:0;padding:2px}
.stepper li.locked button{opacity:.5;cursor:not-allowed}
.stepper li.locked .sp-ic svg{width:15px;height:15px}

/* ================= DC 할인 ================= */
.dc-box{margin:10px 0 2px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--butter);display:flex;flex-direction:column;gap:8px}
.dc-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dc-l{font-weight:600;font-size:13.5px;color:var(--ink)}
.dc-in{width:150px}
.dc-in input{text-align:right;padding:7px 26px 7px 10px;border:1px solid var(--line-strong);border-radius:10px;width:100%;background:var(--surface);font-family:var(--f-num)}
.dc-sugg{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px}
.dc-tease{display:flex;align-items:center;gap:8px;margin:10px 0 2px;padding:8px 12px;border-radius:12px;background:var(--sunken);font-size:12.5px;color:var(--body)}
.dc-tease svg{width:14px;height:14px;color:var(--muted);flex:none}
.dc-tease span{flex:1}
table.p-items tr.p-dc td{color:#9b2c1f}
table.mini tr.dc-row td{color:var(--seal)}

/* ================= MASTER 서류 양식 ================= */
.pro-badge.master{background:linear-gradient(135deg,#3A352D,#6B4E1A);color:#FFE3A3}
.tpl-pick{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.tpl-pick-l{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--ink);margin-right:2px}
.tpl-opt{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);text-align:left;cursor:pointer;min-width:0}
.tpl-opt b{display:block;font-size:13.5px}
.tpl-opt small{display:block;font-size:11.5px;color:var(--muted)}
.tpl-opt.on{border-color:var(--accent);background:var(--butter)}
.tpl-sw{width:30px;height:38px;border-radius:4px;border:1px solid #cfcfcf;background:#fff;flex:none;position:relative;overflow:hidden}
.tpl-sw::before{content:"";position:absolute;left:5px;right:5px;top:6px;height:3px;background:#333}
.tpl-sw::after{content:"";position:absolute;left:5px;right:5px;top:14px;bottom:6px;border:1px solid #999;border-width:1px 0}
.tpl-sw.modern{border-top:5px solid #E8AE3C}
.tpl-sw.modern::before{right:12px;background:#3A352D}
.tpl-sw.classic{border:3px double #333}
.tpl-sw.classic::after{background:repeating-linear-gradient(#fff 0 3px,#bbb 3px 4px)}
/* 모던: 꿀색 띠, 왼쪽 정렬 제목, 가로줄 위주 표 */
.paper.tpl-modern{border-top:12px solid #E8AE3C;padding-top:46px}
.paper.tpl-modern .p-title{text-align:left;letter-spacing:.08em;padding-left:0;font-size:32px;color:#2E2A24}
.paper.tpl-modern .p-no{text-align:left;color:#9A7B3E}
.paper.tpl-modern .p-recv{border-bottom:2px solid #E8AE3C}
.paper.tpl-modern table.p-sup th,.paper.tpl-modern table.p-sup td{border-color:#E7DCC6}
.paper.tpl-modern table.p-sup th{background:#FFF6E2;color:#6B4E1A}
.paper.tpl-modern .p-sum{border:0;border-radius:10px;background:#FFF3D6;padding:12px 16px}
.paper.tpl-modern .p-sum strong{color:#6B4E1A}
.paper.tpl-modern table.p-items th,.paper.tpl-modern table.p-items td{border-width:0 0 1px;border-color:#E7DCC6}
.paper.tpl-modern table.p-items thead th{background:#3A352D;color:#fff;border-color:#3A352D}
.paper.tpl-modern table.p-items tfoot th,.paper.tpl-modern table.p-items tfoot td{background:#FFF6E2;border-bottom:2px solid #E8AE3C}
.paper.tpl-modern .p-total b{color:#6B4E1A}
.paper.tpl-modern .p-foot{border-top:2px solid #E8AE3C}
/* 클래식: 이중 테두리, 공문 느낌의 명조 제목, 굵은 선 표 */
.paper.tpl-classic{outline:3px double #222;outline-offset:-26px}
.paper.tpl-classic .p-title{font-family:'Batang','바탕','Nanum Myeongjo','AppleMyungjo',serif;font-size:32px;letter-spacing:.5em;text-decoration:underline double;text-underline-offset:8px}
.paper.tpl-classic .p-recv{font-family:'Batang','바탕','Nanum Myeongjo','AppleMyungjo',serif;border-bottom:2px solid #111}
.paper.tpl-classic table.p-sup th,.paper.tpl-classic table.p-sup td,.paper.tpl-classic table.p-items th,.paper.tpl-classic table.p-items td{border-color:#222}
.paper.tpl-classic table.p-sup,.paper.tpl-classic table.p-items{border:2px solid #111}
.paper.tpl-classic table.p-sup th,.paper.tpl-classic table.p-items thead th,.paper.tpl-classic table.p-items tfoot th{background:#E6E6E6}
.paper.tpl-classic .p-sum{border:3px double #111}
.paper.tpl-classic .p-foot{border-top:3px double #222}

/* ================= 사업 우선순위 (PRO) ================= */
.pl-head{align-items:flex-end}
.pl-eyebrow{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:12.5px;font-weight:600;color:var(--accent-text)}
.pl-eyebrow .pro-badge{margin:0}
.pl-notify{white-space:nowrap}
.pl-notify[aria-pressed="true"]{color:var(--good);border-color:var(--good-soft);background:var(--good-soft)}
.pl-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.pl-kpis.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.pl-k1{background:var(--butter);border-color:var(--accent-soft)}
.pl-tabs{padding-top:4px}
.pl-num{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:8px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-family:var(--f-num);font-size:12px;vertical-align:2px}
.pl-late{margin:0 0 14px}
.pl-late .linkish{color:var(--seal);font-weight:600}
.pl-two{margin-top:0}
.pl-empty{display:flex;align-items:center;gap:18px;padding:24px 22px}
.pl-empty h2{font-family:var(--f-display);font-weight:500;font-size:19px}
.pl-empty p{margin:6px 0 12px;color:var(--body);line-height:1.65}
.pl-hint{margin:0 0 12px}
.prio{display:inline-flex;align-items:center;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 8px;line-height:1.5;white-space:nowrap}
.prio.p1{background:#F8E1DC;color:#A63A26}
.prio.p2{background:#FBEBC8;color:#7A5410}
.prio.p3{background:#E3EEF7;color:#2F628A}
.prio.p4{background:#EFECE6;color:#6E675C}
.tk-list{list-style:none;margin:0;padding:0 12px 10px;display:flex;flex-direction:column;gap:6px}
.tk{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px 8px 8px 6px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.tk:hover{border-color:var(--line-strong)}
.tk.doing{box-shadow:inset 3px 0 0 var(--info)}
.tk.hold{opacity:.7}
.tk.done .tk-main b{text-decoration:line-through;color:var(--muted);font-weight:500}
.tk-check{all:unset;cursor:pointer;display:grid;place-items:center;width:30px;height:30px;border-radius:10px}
.tk-check:focus-visible{outline:2px solid var(--accent-text)}
.tk-check .box{width:20px;height:20px;border:2px solid var(--line-strong);border-radius:7px;background:var(--surface);position:relative;transition:background .15s var(--ease),border-color .15s var(--ease)}
.tk-check:hover .box{border-color:var(--accent)}
.tk-check[aria-checked="true"] .box{background:var(--good);border-color:var(--good)}
.tk-check[aria-checked="true"] .box::after{content:"";position:absolute;left:5.5px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.tk-main{all:unset;cursor:pointer;min-width:0;display:flex;flex-direction:column;gap:4px;border-radius:8px;padding:2px 0}
.tk-main:focus-visible{outline:2px solid var(--accent-text)}
.tk-main b{font-weight:600;font-size:14px;color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
.tk-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.st-chip{font-size:11.5px;font-weight:600;border-radius:999px;padding:1px 8px}
.st-chip.doing{background:var(--info-soft);color:var(--info)}
.st-chip.hold{background:var(--sunken);color:var(--muted)}
.due-tag{font-size:12px;font-weight:600;color:var(--body)}
.due-tag.soon{color:var(--accent-text)}
.due-tag.late{color:var(--seal)}
.due-tag.muted{color:var(--faint);font-weight:500}
.pj-tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--body);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pj-tag i,.pj-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.pj-dot{margin-right:4px;vertical-align:1px}
.rt-tag{font-size:11px;color:var(--ask);background:var(--ask-soft);border-radius:999px;padding:1px 7px}
.tk-star{all:unset;cursor:pointer;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--faint)}
.tk-star svg{width:20px;height:20px}
.tk-star:hover{color:var(--accent);background:var(--butter)}
.tk-star.on{color:#E8A21C}
.tk-star:focus-visible{outline:2px solid var(--accent-text)}
.tk-st{border:1px solid var(--line-strong);border-radius:10px;padding:5px 6px;font-size:12.5px;background:var(--surface);max-width:92px}
.top3 .tk{border-color:var(--accent-soft);background:linear-gradient(90deg,var(--butter),var(--surface) 60%)}
.top3 .tk.done{background:var(--surface)}
.pl-sugg{margin:0 12px 12px;padding:10px 0 0;border-top:1px dashed var(--line-strong)}
.pl-sugg-h{margin:0 0 8px 4px;font-size:12.5px;color:var(--muted)}
.pl-sugg .tk-list{padding:0}
.pl-sugg .tk{border-style:dashed;background:var(--surface)}
.prio-group{padding:2px 0 4px}
.prio-h{display:flex;align-items:center;gap:8px;margin:4px 16px 8px;font-size:12.5px;color:var(--muted)}
.pj-list{display:flex;flex-direction:column;gap:10px;padding:0 14px 14px}
.pj-list.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pj-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:inset 4px 0 0 var(--pj)}
.pj-card:hover{border-color:var(--line-strong)}
.pj-card:focus-visible{outline:2px solid var(--accent-text)}
.pj-card.is-done{opacity:.75}
.pj-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.pj-top b{font-weight:600;font-size:14.5px;color:var(--ink)}
.pj-pct{font-size:15px;color:var(--ink)}
.pj-bar{height:8px;border-radius:999px;background:var(--sunken);overflow:hidden}
.pj-bar i{display:block;height:100%;border-radius:999px;background:var(--pj)}
.pj-sub{font-size:12px;color:var(--muted)}
.pj-next{font-size:12.5px;color:var(--body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pl-tools{flex-wrap:wrap;gap:10px}
.pl-pjf{flex:1;min-width:0}
.chipbtn.on .pj-dot{margin-right:4px}
.pl-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
.pl-board .panel{margin:0}
.pl-col .tk{grid-template-columns:30px minmax(0,1fr)}
.pl-col .tk-st{grid-column:2;justify-self:start;margin-top:2px}
.pl-col.s-doing .panel-head h2{color:var(--info)}
.pl-col.s-done .panel-head h2{color:var(--good)}
.pl-done{padding:4px 0}
.pl-done summary{cursor:pointer;padding:12px 18px;font-size:13.5px;color:var(--muted);font-weight:500}
.rt-list{list-style:none;margin:0;padding:6px 12px 12px;display:flex;flex-direction:column;gap:6px}
.rt-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px}
.rt-list li.off{opacity:.65}
.rt-main{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0}
.rt-main b{font-weight:600;font-size:14px}
.rt-when{font-size:12px;font-weight:700;color:var(--ask);background:var(--ask-soft);border-radius:999px;padding:1px 8px}
.rp-note .rp-lines{margin:0;padding:0 22px 16px 38px;display:flex;flex-direction:column;gap:6px;line-height:1.6;color:var(--body)}
.rp-note .rp-lines b{color:var(--ink)}
.rp-bars{display:flex;align-items:flex-end;gap:6px;height:190px;padding:10px 18px 26px;position:relative}
.rp-bars.month{gap:2px}
.rp-col{flex:1;position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;outline:0;border-radius:6px}
.rp-col:hover,.rp-col:focus-visible{background:var(--butter)}
.rp-bar{display:block;width:70%;max-width:34px;min-height:2px;background:#CF8F1C;border-radius:5px 5px 2px 2px;position:relative}
.rp-bars.month .rp-bar{width:80%}
.rp-bar em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:3px;font-style:normal;font-size:11.5px;font-weight:600;font-family:var(--f-num);color:var(--ink)}
.rp-x{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:11.5px;color:var(--muted);font-family:var(--f-num);white-space:nowrap}
.rp-col.cur .rp-x{color:var(--accent-text);font-weight:700}
.rp-prio{display:flex;gap:12px;flex-wrap:wrap;padding:0 22px 16px;font-size:13px}
.rp-prio>span{display:inline-flex;align-items:center;gap:6px}
.hb-name .pj-dot{margin-right:6px}
.pl-fab{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(env(safe-area-inset-bottom,0px) + 24px);z-index:40;display:inline-flex;align-items:center;gap:6px;padding:13px 20px 13px 16px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:14.5px;box-shadow:0 10px 26px -8px rgba(122,84,16,.55);cursor:pointer;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}
.pl-fab span{font-size:20px;line-height:1}
.pl-fab:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(122,84,16,.6)}
#main:has(.pl-fab){padding-bottom:80px}
.pl-strip{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 14px;padding:11px 16px;border:1px solid var(--accent-soft);border-radius:16px;background:var(--butter);text-align:left;font-size:13.5px;color:var(--body);cursor:pointer}
.pl-strip svg{width:18px;height:18px;color:var(--accent-text);flex:none}
.pl-strip span{flex:1;min-width:0}
.pl-strip b{color:var(--ink)}
.pl-strip em{font-style:normal;color:var(--seal);font-weight:600}
.pl-strip-go{flex:none!important;font-size:18px;color:var(--accent-text)}
.pl-strip:hover{border-color:var(--accent)}
/* 중요도 × 긴급도 고르기 */
.pm{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:6px;align-items:stretch;max-width:520px}
.pm-corner{display:block}
.pm-ch,.pm-rh{font-size:11.5px;color:var(--muted);display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.3}
.pm-rh{justify-content:flex-end;padding-right:4px;white-space:nowrap}
.pm-cell{display:flex;flex-direction:column;align-items:center;gap:1px;padding:9px 4px;border:1.5px solid transparent;border-radius:12px;cursor:pointer;transition:transform .12s var(--ease),box-shadow .12s var(--ease)}
.pm-cell b{font-size:13px}
.pm-cell small{font-size:11px;opacity:.75;font-family:var(--f-num)}
.pm-cell.p1{background:#F8E1DC;color:#A63A26}
.pm-cell.p2{background:#FBEBC8;color:#7A5410}
.pm-cell.p3{background:#E3EEF7;color:#2F628A}
.pm-cell.p4{background:#EFECE6;color:#6E675C}
.pm-cell:hover{transform:translateY(-1px)}
.pm-cell.on{border-color:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.9) inset,0 4px 12px -4px currentColor}
.tk-stseg{flex-wrap:wrap}
.toggle svg{width:15px;height:15px;vertical-align:-2px}
.pj-colors{display:flex;gap:8px;flex-wrap:wrap;padding-top:4px}
.pj-color{width:30px;height:30px;border-radius:50%;border:3px solid var(--surface);background:var(--c);box-shadow:0 0 0 1px var(--line-strong);cursor:pointer}
.pj-color.on{box-shadow:0 0 0 2px var(--ink)}
.rt-wd{margin-top:8px}
.rt-md{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:13.5px}
.rt-md select{padding:6px 8px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface)}
@media (max-width:900px){ .pl-board{grid-template-columns:repeat(2,minmax(0,1fr))} .pl-kpis.four{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){
  .pl-kpis{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pl-kpis .pl-k1{grid-column:1/-1}
  .pj-list.grid{grid-template-columns:minmax(0,1fr)}
  .pl-board{grid-template-columns:minmax(0,1fr)}
  .pl-head{align-items:flex-start;flex-wrap:wrap}
  .pl-fab{right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);padding:12px 18px 12px 14px}
  .pl-empty{flex-direction:column;align-items:flex-start}
  .tk-list{padding:0 10px 10px}
  .pm-rh{font-size:10.5px}
  .tpl-opt{flex:1 1 140px}
}
.plan-tag.master{background:linear-gradient(135deg,#3A352D,#6B4E1A);color:#FFE3A3}
.master-panel .panel-head h2 .plan-tag{vertical-align:3px}
.ok-line{margin:8px 0 0;padding:8px 12px;border-radius:10px;background:var(--good-soft);color:var(--good);font-size:13px;font-weight:500}
.master-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.op-guide .op-t b,.op-guide .op-t small{white-space:normal;overflow:visible;text-overflow:clip}
.op-new .op-t small{white-space:normal}
@media (max-width:760px){ .pl-tabs{display:flex;overflow-x:auto;scrollbar-width:none;gap:6px} .pl-tabs::-webkit-scrollbar{display:none} .pl-tabs .ck-tab{flex:none;padding:9px 14px} }

/* ================= 초대 코드 (관리자) ================= */
.inv-list{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:10px}
.inv-row{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:6px}
.inv-row.off,.inv-row.end{background:var(--sunken)}
.inv-row.off .inv-code,.inv-row.end .inv-code{color:var(--muted)}
.inv-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inv-code{font-size:18px;letter-spacing:.08em;color:var(--ink)}
.inv-cond{font-size:12.5px;font-weight:700;color:var(--accent-text);background:var(--accent-soft);border-radius:999px;padding:2px 10px}
.inv-st{margin-left:auto;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px}
.inv-st.on{color:var(--good);background:var(--good-soft)}
.inv-st.off{color:var(--muted);background:var(--line)}
.inv-st.end{color:var(--seal);background:var(--seal-soft)}
.inv-meta{margin:0;font-size:12.5px;color:var(--muted)}
.inv-row .actions{margin:2px 0 0;gap:6px;flex-wrap:wrap}
.inv-form{border:1.5px dashed var(--accent);border-radius:18px;padding:14px 16px;background:var(--butter)}
.inv-form h3{margin:0 0 10px;font-size:15px}
.inv-code-in{display:flex;gap:6px}
.inv-code-in input{flex:1;min-width:0;text-transform:uppercase;letter-spacing:.08em}
.inv-period{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.inv-period input{width:84px}
.inv-period select{width:auto}
.inv-quick{display:inline-flex;gap:4px;flex-wrap:wrap;margin-left:4px}
.inv-how{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.inv-how .opt{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer}
.inv-how .opt b{font-size:13.5px}
.inv-how .opt small{font-size:12px;color:var(--muted)}
.inv-how .opt.on{border-color:var(--accent);background:var(--accent-soft)}
.inv-preview{margin:12px 0 4px;padding:10px 12px;border-radius:12px;background:var(--surface);font-size:13px;color:var(--body)}
.inv-apply{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--good-soft);font-size:13px}
@media (max-width:560px){ .inv-how{grid-template-columns:minmax(0,1fr)} .inv-st{margin-left:0} }
/* 관리자 초대 코드 · 좁은 화면 */
.panel-head h2{white-space:nowrap}
@media (max-width:560px){
  .panel-head{flex-wrap:wrap;row-gap:4px}
  .inv-form .seg{display:grid;grid-template-columns:1fr 1fr;border-radius:14px;width:100%}
  .inv-form .seg button{white-space:nowrap;padding:8px 6px}
}
/* 강사료 */
.fee-sect{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface)}
.fee-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.fee-head h3{margin:0}
.fee-off{margin:2px 0 0;font-size:12.5px;color:var(--muted);line-height:1.55}
.fee-in{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:4px 0 2px}
.fee-num{flex:0 1 170px;min-width:120px}
.fee-num .as-pay input{width:100%}
.fee-op{font-size:18px;color:var(--muted);padding-bottom:9px}
.fee-eq{display:flex;flex-direction:column;gap:2px;margin-left:auto;text-align:right;padding-bottom:4px}
.fee-eq span{font-size:12px;color:var(--muted)}
.fee-eq b{font-size:18px;font-family:var(--f-num);color:var(--ink)}
.fee-how{margin-top:10px}
.fee-wh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.fee-wh-l{font-size:13px;font-weight:600;color:var(--ink)}
.fee-wh+.fhint{display:block;margin-top:6px}
.fee-tag{display:inline-block;font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--info-soft);color:var(--info);vertical-align:1px;white-space:nowrap;font-family:var(--f-body);letter-spacing:0}
.fee-tag.doc{background:var(--accent-soft);color:var(--accent-text)}
.fee-line{margin:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.fee-line b{font-size:16px}
.fee-line .muted{font-size:12.5px}
.fee-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}
.fee-grid>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;background:var(--sunken)}
.fee-grid>div.net{background:var(--butter)}
.fee-grid span{font-size:12px;color:var(--muted)}
.fee-grid b{font-size:16px;color:var(--ink)}
.fee-grid small{font-size:11.5px;color:var(--muted)}
.fee-pay{width:100%;text-align:center}
.fee-doc{margin:10px 0 2px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fee-plus{display:block;font-size:11.5px;font-weight:500;color:var(--info);font-family:var(--f-body);white-space:nowrap}
.gcard-foot .fee-plus{display:inline;margin-left:6px}
.sr-fee{margin:2px 0 0;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--body)}
.sr-fee.done{color:var(--good)}
.fee-sr .sr-amt{color:var(--info)}
@media (max-width:560px){
  .fee-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fee-grid>div.net{grid-column:1/-1}
  .fee-eq{margin-left:0;text-align:left;width:100%;flex-direction:row;align-items:baseline;gap:8px}
  .fee-num{flex:1 1 120px}
  .fee-wh .seg{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
  .fee-wh .seg button{white-space:nowrap;padding:7px 4px;font-size:12.5px}
}
.fee-num.hrs .as-pay input{padding-right:40px}
/* 출강리스트 찾기 (PRO) */
.gl-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gl-search{flex:1 1 260px;min-width:0;position:relative;display:flex;align-items:center}
.gl-search svg{position:absolute;left:14px;width:17px;height:17px;color:var(--muted);pointer-events:none}
.gl-search input{width:100%;padding:10px 38px 10px 40px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);font-size:14.5px}
.gl-search input::-webkit-search-cancel-button{display:none}
.gl-x{position:absolute;right:8px;width:26px;height:26px;border-radius:50%;border:0;background:var(--sunken);color:var(--muted);font-size:16px;line-height:1;cursor:pointer}
.gl-month{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gl-mnav{display:inline-flex;align-items:center;gap:6px}
.gl-mnav b{font-family:var(--f-display);font-weight:500;font-size:15.5px;min-width:96px;text-align:center}
.gl-mnav .cal-nav{width:32px;height:32px}
.gl-sum{margin:-2px 2px 0;font-size:13px;color:var(--muted)}
.gl-sum b{color:var(--ink)}
.gl-none{padding:18px 4px}
.gl-lock{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px dashed var(--line-strong);border-radius:999px;font-size:13px;color:var(--body);background:var(--surface);align-self:flex-start;max-width:100%}
.gl-lock svg{width:14px;height:14px;color:var(--muted);flex:none}
.gl-lock .pro-badge{margin-left:2px}
@media (max-width:560px){ .gl-month{width:100%;justify-content:space-between} .gl-mnav b{min-width:84px;font-size:14.5px} }
/* 서류: 받는 곳 이름·하단 문구 (PRO) */
.doc-pro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:10px;align-items:start}
.doc-pro .fld>span .pro-badge{margin-left:4px}
.doc-pro.locked input[disabled]{background:var(--sunken);color:var(--muted)}
.chipbtn.tog.is-locked{opacity:.6;cursor:not-allowed}
@media (max-width:760px){ .doc-pro{grid-template-columns:minmax(0,1fr)} }
/* 보조강사: 기관 직접 지급 */
.as-row:not(.cost){display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.as-row:not(.cost)>input{flex:1 1 140px;width:auto}
.as-row:not(.cost) .as-pay{flex:0 0 130px}
.as-row:not(.cost) .icon-btn{margin-left:auto}
.as-direct-note{flex:0 0 auto;font-size:12.5px;color:var(--info);background:var(--info-soft);border-radius:999px;padding:6px 12px}
.as-dir{padding:5px 10px!important;font-size:12.5px!important}
.as-help{margin:6px 0 0;font-size:12px}
.as-tag{font-size:12px;color:var(--info);background:var(--info-soft);border-radius:999px;padding:3px 10px;white-space:nowrap}
@media (max-width:560px){ .as-row:not(.cost) .as-pay{flex:1 1 110px} .as-row:not(.cost)>input{flex-basis:100%} .as-row:not(.cost) .icon-btn{margin-left:0} .as-row .toggle{grid-column:auto;grid-row:auto} .as-row .icon-btn{grid-row:auto;grid-column:auto} }
/* 작성 중 내용 이어서 */
.draft-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border-radius:14px;background:var(--info-soft);color:var(--ink);font-size:13px}
.draft-bar svg{width:18px;height:18px;color:var(--info);flex:none}
.draft-bar>span{display:flex;flex-direction:column;gap:1px;flex:1 1 200px;min-width:0}
.draft-bar small{font-size:12px;color:var(--muted)}
.draft-bar .linkish{font-size:13px}
#biz-form>.draft-bar{margin:14px 16px 0}
/* 일정: 휴대폰 */
.cal-swipe,.cal-agenda{display:none}
.ci-list{list-style:none;margin:0;padding:0 8px 4px;display:flex;flex-direction:column;gap:6px}
.ci{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.ci:hover,.ci:focus-visible{border-color:var(--accent);background:var(--butter)}
.ci.conflict{border-color:var(--seal)}
.ci-time{display:flex;flex-direction:column;font-size:15px;font-weight:600;color:var(--ink);line-height:1.2}
.ci-time small{font-size:11.5px;font-weight:500;color:var(--muted)}
.ci-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.ci-prog{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}
.ci-org{font-size:13px;color:var(--body);word-break:keep-all;overflow-wrap:anywhere}
.ci-meta{font-size:12px;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}
.ci-st{padding-top:1px}
@keyframes calInL{from{opacity:0;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes calInR{from{opacity:0;transform:translateX(-28px)}to{opacity:1;transform:none}}
.cal.slide-l{animation:calInL .22s var(--ease)}
.cal.slide-r{animation:calInR .22s var(--ease)}
@media (prefers-reduced-motion: reduce){ .cal.slide-l,.cal.slide-r{animation:none} }
@media (max-width:760px){
  .calwrap{touch-action:pan-y}
  .cell{height:48px}
  .cal-swipe{display:block;margin:6px 0 0;text-align:center;font-size:11.5px;color:var(--faint)}
  .cal-day{margin-top:10px}
  .cal-day .ci-list{padding:0 10px 6px}
  .cal-agenda{display:block;margin-top:12px}
  .cal-agenda .panel-head span{font-size:12px}
  .ag-day{display:grid;grid-template-columns:44px minmax(0,1fr);gap:6px;padding:6px 10px 8px 8px;border-top:1px dashed var(--line)}
  .ag-day:first-of-type{border-top:0}
  .ag-day .ci-list{padding:0}
  .ag-date{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:0;padding:8px 0;border-radius:12px;height:max-content}
  .ag-date b{font-size:18px;font-weight:600;color:var(--ink);line-height:1.1}
  .ag-date span{font-size:11px;color:var(--muted)}
  .ag-day.today .ag-date b{color:var(--accent-text)}
  .ag-day.sel .ag-date{background:var(--accent)}
  .ag-day.sel .ag-date b,.ag-day.sel .ag-date span{color:var(--accent-ink)}
  .ag-day.past .ci{opacity:.75}
  .ci{grid-template-columns:46px minmax(0,1fr);padding:10px 11px}
  .ci-st{grid-column:2;padding-top:2px}
}
.gl-x[hidden]{display:none}
/* 사업 우선순위: 프로젝트·반복 업무 폴더 */
.fd-sect .panel-head span{font-size:12.5px}
.fd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;padding:4px 16px 18px}
.fd{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:block;padding-top:12px;min-width:0}
.fd-tab{position:absolute;top:0;left:0;width:46%;height:20px;border-radius:12px 14px 0 0;background:color-mix(in srgb,var(--pj) 38%,var(--surface))}
.fd-body{position:relative;display:flex;flex-direction:column;gap:6px;min-height:150px;padding:14px 15px 13px;border-radius:4px 16px 16px 16px;background:color-mix(in srgb,var(--pj) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--pj) 30%,var(--line));transition:transform .15s var(--ease),box-shadow .15s var(--ease)}
.fd:hover .fd-body{transform:translateY(-2px);box-shadow:0 10px 22px -14px color-mix(in srgb,var(--pj) 70%,transparent)}
.fd:focus-visible .fd-body{outline:2px solid var(--accent-text);outline-offset:2px}
.fd-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.fd-ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--surface);color:color-mix(in srgb,var(--pj) 80%,var(--ink))}
.fd-ic svg{width:18px;height:18px}
.fd-when{font-size:11.5px;font-weight:600;color:color-mix(in srgb,var(--pj) 70%,var(--ink));background:var(--surface);border-radius:999px;padding:2px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%}
.fd-name{font-size:15px;font-weight:600;color:var(--ink);line-height:1.35;word-break:keep-all;overflow-wrap:anywhere}
.fd-sub{font-size:12.5px;color:var(--body)}
.fd-bar{display:block;height:6px;border-radius:999px;background:color-mix(in srgb,var(--pj) 18%,var(--surface));overflow:hidden;margin-top:auto}
.fd-bar i{display:block;height:100%;border-radius:999px;background:var(--pj)}
.fd-bar.big{height:8px;margin:2px 0 4px}
.fd-foot{font-size:12px;color:var(--muted)}
.fd.is-done .fd-body{opacity:.7}
.fd.loose .fd-body{border-style:dashed}
.fd-new .fd-tab{background:var(--sunken)}
.fd-new .fd-body{align-items:center;justify-content:center;background:var(--surface);border:1.5px dashed var(--line-strong);color:var(--muted)}
.fd-new .fd-name{color:var(--muted);font-weight:500}
.fd-plus{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--sunken);font-size:22px;color:var(--muted)}
.fd-add{margin:2px 0 6px}
.fd-crumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--muted);scroll-margin-top:80px}
.fd-crumb b{color:var(--ink);font-weight:600}
.fd-back{all:unset;cursor:pointer;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--body);font-size:13.5px}
.fd-back:hover{border-color:var(--accent)}
.fd-open{padding:16px 18px;display:flex;flex-direction:column;gap:8px;background:color-mix(in srgb,var(--pj) 10%,var(--surface));border-color:color-mix(in srgb,var(--pj) 28%,var(--line))}
.fd-ohead{display:flex;align-items:center;gap:12px}
.fd-oic{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--surface);color:color-mix(in srgb,var(--pj) 80%,var(--ink));flex:none}
.fd-oic svg{width:24px;height:24px}
.fd-otitle{flex:1;min-width:0}
.fd-otitle h2{margin:0;font-family:var(--f-display);font-weight:500;font-size:19px;letter-spacing:-.02em;word-break:keep-all}
.fd-otitle p{margin:2px 0 0;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.fd-opct{font-size:22px;font-weight:600;color:var(--ink)}
.fd-note{margin:0;font-size:13px;color:var(--body);white-space:pre-wrap}
.fd-next{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.fd-next .chipbtn{cursor:default;font-size:12.5px}
.fd-group+.fd-group{margin-top:4px}
.fd-gh{margin:12px 18px 2px;font-size:12.5px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:4px}
@media (max-width:560px){
  .fd-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:2px 12px 14px}
  .fd-body{min-height:136px;padding:12px 12px 11px}
  .fd-name{font-size:14px}
  .fd-when{max-width:100%}
  .fd-top{flex-wrap:wrap}
  .fd-open .actions .btn{flex:1 1 auto}
}
/* 서류 창: 항목 추가 위로, 부가세·비고 */
.quick .q-add{margin-top:6px;gap:10px;align-items:center;flex-wrap:wrap}
.quick .q-add .fhint{margin:0}
.quick .q-foot{margin-top:10px;align-items:center}
.doc-pro.tax-note{margin-top:12px}
.tax-seg{flex-wrap:wrap}
.tax-seg button{white-space:nowrap}
.doc-pro textarea{min-height:58px;resize:vertical}
.doc-pro.locked textarea{background:var(--sunken)}
/* 종이 서류: 비고 */
.p-note{margin:10px 0 0;border:1px solid var(--doc-rule,#999);padding:6px 10px;font-size:11.5px;line-height:1.55}
.p-note b{display:block;font-size:11px;margin-bottom:2px}
.p-note p{margin:0;white-space:pre-wrap}
/* 실적: 교육 인원 */
.stat-seg{margin-left:auto}
.stat-seg button{padding:5px 12px;font-size:12.5px}
.stat-kpis .kpi-ppl .k-val{color:var(--ink)}
/* 비교견적서 */
.cmp-rule{margin:0}
.cmp-title{display:flex;align-items:center;gap:6px;font-family:var(--f-display);font-size:17px}
.cmp-top{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,110px)!important}
.cmp-make{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:10px;align-items:end;padding:4px 18px 16px}
.cmp-list{border-top:1px solid var(--line)}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;padding:4px 16px 16px}
.pt-card{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.pt-card:hover,.pt-card:focus-visible{border-color:var(--accent);background:var(--butter)}
.pt-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.pt-t small{font-size:12px;color:var(--muted)}
.consent{display:flex;gap:10px;align-items:flex-start;margin:12px 0 0;padding:12px 14px;border-radius:14px;background:var(--info-soft);font-size:13px;line-height:1.5;cursor:pointer}
.consent input{margin-top:3px;width:18px;height:18px;flex:none;accent-color:var(--accent)}
@media (max-width:760px){
  .cmp-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .cmp-top .fld:first-child{grid-column:1/-1}
  .cmp-make{grid-template-columns:minmax(0,1fr);padding:4px 14px 14px}
}
