:root{
  --bg:#ede4d7; --card:#f8f3ec; --card2:#efe7db; --line:#dccdba; --text:#834a2d; --sub:#7a5c4a;
  --blue:#834a2d; --blue-line:#834a2d; --blue-txt:#834a2d; --blue-soft:#e6d8c6; --orange:#a84e0c; --orange-soft:#fbe3cd;
  --green:#1f7a3f; --red:#b83232; --track:#e4d8c7;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--text);
  font-family:Pretendard,"Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;font-size:15px}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);
  border-radius:10px;padding:11px 12px;width:100%;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--blue-line)}
.wrap{max-width:690px;margin:0 auto;padding:0 16px 100px}

/* 헤더 */
.live{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--sub);padding-top:12px}
.live .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}
.live b{color:var(--green);font-weight:800}
.live .clock{color:var(--text);font-weight:700}
.head{display:flex;justify-content:space-between;align-items:center;margin:10px 0 16px}
.head h1{font-size:19px;margin:0;font-weight:800;letter-spacing:-.3px;display:flex;align-items:center;gap:8px}
.head-logo{height:38px;display:block}
.login-logo{width:190px;display:block;margin:0 auto 12px}
.head .who{font-size:12.5px;color:var(--sub)}

/* 카드 */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 16px;margin-bottom:12px}
.card-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card-h .t{font-weight:800;font-size:15px;display:flex;align-items:center;gap:6px}
.link{color:var(--blue-txt);font-size:13px;font-weight:600;padding:4px 6px}
.sub{color:var(--sub);font-size:12.5px}
.empty{color:var(--sub);font-size:13.5px;padding:8px 0;text-align:center}

.btn{background:var(--blue);color:#fff;font-weight:800;border-radius:10px;padding:10px 16px}
.btn.big{padding:0 20px;height:52px;font-size:15.5px;min-width:96px}
.btn.sm{padding:7px 11px;font-size:13px;border-radius:9px}
.btn.gray{background:var(--card2);color:var(--text);border:1px solid var(--line)}
.btn.red{background:#f6dcd8;color:var(--red)}
.btn.block{width:100%;padding:13px}

.att{display:flex;align-items:center;justify-content:space-between;gap:12px}
.att .t{font-weight:800;font-size:16px;margin-bottom:4px}
.att.on .t{color:var(--green)}

.prog{display:flex;align-items:center;gap:14px;margin:10px 0}
.prog .l{font-weight:700;font-size:14px;white-space:nowrap}
.bar{flex:1;height:8px;border-radius:5px;background:var(--track);position:relative;overflow:visible}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:5px;background:var(--blue-line);min-width:8px;display:block}
.bar i.zero{display:none}
.prog .n{color:var(--sub);font-size:13px;width:40px;text-align:right}

.sch{display:flex;align-items:center;gap:12px;padding:10px 0}
.sch .k{width:84px;color:var(--sub);font-size:13px;white-space:nowrap}
.sch .ti{flex:1;font-weight:700}
.sch.done .ti{color:var(--sub);text-decoration:line-through}

.chip{display:inline-block;font-size:11px;font-weight:800;padding:2px 6px;border-radius:6px;vertical-align:middle;margin-left:4px}
.chip.short{background:var(--orange-soft);color:var(--orange)}
.chip.in{background:var(--blue-soft);color:var(--blue-txt)}
.chip.oq{background:#e6d8c6;color:#834a2d}
.chip.gray{background:var(--card2);color:var(--sub)}

.st{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--line)}
.st:first-of-type{border-top:0;padding-top:4px}
.st .nm{font-weight:700;font-size:14.5px}
.st .meta{color:var(--sub);font-size:12.5px;margin-top:4px}
.st .inc{color:var(--blue-txt);font-size:13px;font-weight:700;margin-top:6px}
.st .r{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.st .q{color:var(--orange);font-weight:800;font-size:15px}
.st .q.ok{color:var(--text)}
.st .b{color:var(--sub);font-size:12.5px}
.st .r .btn{margin-top:6px}

/* 체크 */
.seg{display:flex;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:12px}
.seg button{flex:1;padding:9px;border-radius:9px;font-weight:700;color:var(--sub);font-size:14px}
.seg button.on{background:var(--card2);color:var(--text)}
.seg-ic{margin-right:6px;font-size:15px}
.seg3 button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;font-size:14px}
.seg3 button .seg-ic{margin-right:4px}
.seg3 button small{font-size:11.5px;color:var(--sub);font-weight:600}
.hours{display:flex;gap:8px;margin-bottom:12px;overflow-x:auto;scrollbar-width:none}
.hours::-webkit-scrollbar{display:none}
.hours button{flex:1 1 0;min-width:54px;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:10px 4px;
  display:flex;flex-direction:column;align-items:center;gap:3px}
.hours button b{font-size:17px}
.hours button span{font-size:12.5px;color:var(--sub)}
.hours button.on{background:var(--blue);border-color:var(--blue)}
.hours button.on b,.hours button.on span{color:#fff}
.hours button.done:not(.on) span{color:var(--blue-txt);font-weight:700}
.seg button:not(.on) .seg-ic{opacity:.55;filter:grayscale(.6)}
.ck{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.ck:first-child{border-top:0}
.ck .box{width:24px;height:24px;border-radius:7px;border:2px solid #b39c85;flex-shrink:0;display:grid;place-items:center}
.ck.on .box{background:var(--blue);border-color:var(--blue)}
.ck.on .box:after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}
.ck .tt{flex:1;font-size:14.5px}
.ck.on .tt{color:var(--sub);text-decoration:line-through}
.ck .by{font-size:11.5px;color:var(--sub);text-align:right}
.ck .x{color:var(--sub);padding:4px 6px;font-size:16px}
.datebar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.datebar .d{font-weight:800;font-size:16px}
.datebar button{padding:6px 12px;font-size:20px;color:var(--sub)}
.datebar button:disabled{opacity:.2;cursor:default}
.datepick{position:relative;cursor:pointer;padding:6px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card)}
.datepick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}
.past-note{text-align:center;font-size:12.5px;color:var(--orange);margin:-4px 0 10px}
.past-note .link{font-size:12.5px;padding:0 4px}

/* 재고 */
.tools{display:flex;gap:8px;margin-bottom:12px}
.tools input{flex:1}
.cats{display:flex;gap:6px;overflow-x:auto;margin-bottom:12px;padding-bottom:2px}
.cats button{white-space:nowrap;padding:7px 12px;border-radius:20px;border:1px solid var(--line);font-size:13px;color:var(--sub);background:var(--card)}
.cats button.on{background:var(--blue-soft);color:var(--blue-txt);border-color:#c9ad93}
#catbar{position:sticky;top:0;z-index:5;background:var(--bg);margin:0 -16px 8px;padding:8px 16px;scrollbar-width:none}
#catbar::-webkit-scrollbar{display:none}
.cat-div{flex:0 0 1px;background:var(--line);margin:4px 2px}
.cat-sec{scroll-margin-top:58px}
.cat-h{display:flex;align-items:center;gap:6px;font-weight:800;font-size:15px;margin:16px 2px 8px}
.cat-h span{font-size:12px;font-weight:700;color:var(--sub);background:var(--card2);border-radius:10px;padding:1px 8px}
.cat-sec:first-of-type .cat-h{margin-top:4px}
.ck-thumb{width:40px;height:40px;object-fit:cover;border-radius:8px;flex-shrink:0;border:1px solid var(--line)}
.cam{display:block;width:100%;max-height:62vh;object-fit:cover;border-radius:12px;background:#000;margin-top:4px}
.ck-photo{display:block;width:100%;max-height:60vh;object-fit:contain;border-radius:12px;margin-top:12px;background:#000}
.chk{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text);margin-top:10px;cursor:pointer}
.chk input{width:18px;height:18px;margin:0;accent-color:var(--blue)}
.ck.on .tt .chip{display:none}
.ck .tt .note{display:block;font-size:12.5px;color:var(--blue-txt);margin-top:4px;line-height:1.45}
.ck.on .tt .note{opacity:.6;text-decoration:none}
.ck.cam-req:not(.on) .box:after{content:"📷";font-size:13px}
.cat-h.done{color:var(--sub)}
.cat-h.done span{background:var(--blue-soft);color:var(--blue-txt)}
.stepper{display:flex;align-items:center;gap:6px}
.stepper button{width:32px;height:32px;border-radius:9px;background:var(--card2);border:1px solid var(--line);font-size:17px;font-weight:700}

/* 달력 */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal .w{font-size:12px;color:var(--sub);padding:4px 0}
.cal .w:first-child,.cal .day.sun .n{color:var(--red)}
.cal .day.sat .n{color:#2a6cc0}
.cal .day{height:50px;cursor:pointer;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:14px}
.cal .day.out{opacity:.25}
.cal .day.today{border:1px solid var(--blue-line)}
.cal .day.sel{background:var(--blue);}
.cal .day.sel .n{color:#fff}
.cal .dots{display:flex;gap:2px;height:5px}
.cal .dots i{width:5px;height:5px;border-radius:50%;background:#e8963f}
.cal .dots i.ev{background:var(--blue-txt)}
.cal .dots i.xp{background:var(--red)}
.cal .dots i.xd{background:#a8957f}
.sch.exp:not(.done) .k{color:var(--red)}
.late{color:var(--red);font-weight:700;font-size:12px;white-space:nowrap}
.sch.late-row .k{color:var(--red);font-weight:700}
.cal-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--sub)}
.cal-legend span{display:flex;align-items:center;gap:5px}
.cal-legend i{width:8px;height:8px;border-radius:50%;background:#e8963f;display:inline-block}
.cal-legend i.ev{background:var(--blue-txt)} .cal-legend i.xp{background:var(--red)} .cal-legend i.xd{background:#a8957f}
button.chip{border:0;cursor:pointer}
.cal .day.sel .dots i{background:#fff}

/* 메모 */
.memo{padding:14px 0;border-top:1px solid var(--line)}
.memo:first-child{border-top:0;padding-top:0}
.memo .bd{white-space:pre-wrap;line-height:1.5;font-size:14.5px}
.memo .ft{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.memo .ft .acts button{color:var(--sub);font-size:12.5px;padding:3px 6px}
.memo.pin .bd:before{content:"📌 "}

.row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0;padding-top:0}
.menu .row{cursor:pointer}
.att-row{cursor:pointer}

/* 하단 탭 */
.nav{position:fixed;left:0;right:0;bottom:0;background:#f8f3ec;border-top:1px solid var(--line);
  display:flex;justify-content:space-around;padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:10}
.nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:#7a5c4a}
.nav .ic{width:52px;height:30px;border-radius:15px;display:grid;place-items:center}
.nav svg{width:20px;height:20px;stroke:#7a5c4a;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nav button.on{color:var(--blue-txt)}
.nav button.on .ic{background:var(--blue-soft)}
.nav button.on svg{stroke:var(--blue-txt)}

/* 시트 */
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:20}
.sheet{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:560px;max-height:88vh;overflow:auto;
  background:var(--card);border:1px solid var(--line);border-radius:18px 18px 0 0;padding:20px 18px calc(20px + env(safe-area-inset-bottom));z-index:21}
.sheet h3{margin:0 0 16px;font-size:17px}
.sheet label{display:block;font-size:12.5px;color:var(--sub);margin:12px 0 6px}
.sheet .two{display:flex;gap:8px}
.sheet .two>*{flex:1}
.sheet .acts{display:flex;gap:8px;margin-top:18px}
.sheet .acts .btn{flex:1;padding:13px}
.sheet-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.sheet-h h3{margin:0;font-size:19px}
.sheet-x{width:42px;height:42px;border-radius:50%;background:var(--card2);color:var(--text);font-size:18px;display:grid;place-items:center}
.btn.del-btn{background:var(--orange-soft);color:var(--orange)}
.sheet .two label{min-height:2.6em;display:flex;align-items:flex-end}
.si-list{margin-top:10px}
.si{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:var(--bg)}
.si.on{border-color:#c9ad93;background:#f3e7d8}
.si-top{display:flex;gap:10px;align-items:flex-start;cursor:pointer;font-size:14px}
.si-top input{width:20px;height:20px;margin:2px 0 0;flex-shrink:0;accent-color:var(--blue)}
.si-in{display:none;margin-top:10px;grid-template-columns:1fr 1fr;gap:8px 6px}
.si.on .si-in{display:grid}
.si-f{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--sub);position:relative}
.si-f input{padding:8px 26px 8px 8px;font-size:14px}
.si-f em{position:absolute;right:8px;bottom:9px;font-style:normal;font-size:12px;color:var(--sub)}
.si-calc{grid-column:1/-1;font-size:12.5px;line-height:1.5}
.si-save{position:sticky;bottom:-20px;background:var(--card);padding:10px 0 4px;margin-top:6px}
b.pos{color:var(--green)} b.neg{color:var(--red)}
.fold{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:0 12px}
.fold summary{cursor:pointer;padding:12px 0;font-size:14px;font-weight:700;list-style:none;display:flex;align-items:center;gap:6px}
.fold summary::-webkit-details-marker{display:none}
.fold summary:after{content:"▾";margin-left:auto;color:var(--sub);transition:transform .2s}
.fold[open] summary:after{transform:rotate(180deg)}
.fold summary .sub{font-weight:400;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fold[open]{padding-bottom:12px}
.fold[open] > label:first-of-type{margin-top:0}
.card.add-fold{padding:0 16px}
.card.add-fold[open]{padding-bottom:16px}
.card.add-fold summary{font-weight:800;font-size:15px;padding:16px 0}
.pay-tot{display:flex;justify-content:space-around;text-align:center}
.pay-tot div{display:flex;flex-direction:column;gap:4px}
.pay-tot b{font-size:18px}
.pay{cursor:pointer}
.pay-net{font-size:17px;color:var(--blue-txt)}
.pay-rows{margin-top:10px;border-top:1px solid var(--line);padding-top:8px;font-size:13.5px}
.pay-rows div{display:flex;justify-content:space-between;padding:3px 0}
.add-extra{justify-content:flex-start !important}
.add-extra .link{padding:2px 0;font-size:13px}
.pay-rows .sum{border-top:1px dashed var(--line);margin-top:4px;padding-top:6px;font-weight:700}
.pay-rows .ded{color:var(--sub)}
.pre-btns{display:flex;gap:6px;flex-wrap:wrap}
.ins-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.ins-grid .chk{margin-top:6px}
.pay-rows .tot{font-weight:800;border-top:1px dashed var(--line);margin-top:4px;padding-top:6px}
.adj-row{display:flex;gap:6px}
.adj-row input{flex:1;min-width:0}
.adj-row .btn{padding:10px 11px;white-space:nowrap;font-size:13.5px}
a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
/* 발주 추천 */
.chip.soon{background:#f8edc8;color:#7a5c00}
.rec{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.rec.off{opacity:.45}
.rec.picked .rec-n{color:var(--blue-txt)}
.rec-l{min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px}
.rec-l .sub{font-size:12px}
.rec-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.rec-r .rec-n{min-width:52px;text-align:center;font-size:13.5px}
.rec-r .rec-a{font-size:12px}
.rec-foot{position:sticky;bottom:-20px;background:var(--card);border-top:1px solid var(--line);margin-top:12px;padding:12px 0 6px}
.rec-sum{display:flex;justify-content:space-between;align-items:center;font-size:15px}
.rec-sum b{font-size:19px;color:var(--blue-txt)}
.rec-foot .acts .btn{padding:12px 6px;font-size:13.5px}
.unit-box{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font-size:13px;line-height:1.5}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:#834a2d;color:#fff;padding:11px 18px;border-radius:22px;font-size:14px;z-index:30;box-shadow:0 4px 18px rgba(0,0,0,.4)}

/* 로그인 */
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login .box{width:100%;max-width:320px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 22px;text-align:center}
.login h1{font-size:16px;margin:0 0 20px;color:var(--sub);font-weight:700}
.login select,.login input{margin-bottom:10px;text-align:center}
.install-btn{margin-top:10px;font-weight:700}
.err{color:var(--red);font-size:13px;min-height:18px;margin-bottom:6px}

/* 직원 급여 카드 · 세금 설정 */
.wcard{margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card2)}
.wc-t{font-weight:800;font-size:15px;margin-bottom:8px}
.wc-line{display:flex;align-items:center;gap:8px;margin-top:8px}
.wc-line select,.wc-line input{margin:0;min-width:0}
.wc-k{flex:0 0 44px;font-weight:700;font-size:14px}
.wc-row{padding:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0 4px}
.wc-note{margin-top:10px;line-height:1.7;font-size:12px}
#hourOpts .chk{margin-top:6px}
.tax-panel{margin:8px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.tax-panel .tr{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.tax-panel .tr span:last-child{color:var(--sub);text-align:right}
select.mini{width:auto;display:inline-block;margin:0 0 0 4px;padding:4px 6px;font-size:13px}
/* 급여명세서 */
.slip-sum{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--card2);line-height:1.6}
.slip-net{display:flex;justify-content:space-between;align-items:baseline;margin:6px 0 2px}
.slip-net b{font-size:24px}
.slip-h{font-weight:800;margin:16px 0 6px;font-size:15px}
.slip-box{border:1px solid var(--line);border-radius:14px;padding:4px 12px}
.slip-r{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.slip-r:last-child{border-bottom:0}
.slip-r.b{font-weight:700}
.slip-r.sub2{padding-left:10px}
.slip-r.sub2 b{font-weight:600;font-size:13.5px}
.slip-r.tot{font-weight:800}
.slip-a{display:flex;align-items:center;gap:6px;white-space:nowrap}
.slip-x{width:24px;height:24px;border-radius:50%;background:var(--orange-soft);color:var(--orange);font-size:12px;line-height:24px;padding:0}
.slip-net2{border:0;margin-top:8px;padding:12px 4px;font-weight:800}
.slip-net2 b{font-size:20px}
.slip-add{margin:6px 0;border-style:dashed}
.slip-exf{padding:8px 0}
.slip-exf input{margin:0}
.slip-exl{display:flex;gap:8px;align-items:center;margin-top:6px}
.slip-exl input{flex:1;min-width:0}

/* 근무표 */
.sch-h{display:flex;justify-content:space-between;align-items:center;gap:8px;cursor:pointer}
.sch-h .sub{margin-left:4px}
.sch-r{display:flex;align-items:center;gap:8px;margin-top:8px}
.sch-r .chk{flex:0 0 46px;margin:0;gap:6px}
.sch-r{gap:6px}.sch-r input[type=time]{flex:1;min-width:0;margin:0;padding:10px 6px;font-size:14.5px}
.sch-bulk{margin-top:12px;padding:10px 8px 12px;border-radius:12px;background:var(--card2)}
.sch-bulk .sch-r{margin:0 0 10px}
/* 출퇴근 기록 추가 */
.att-card{border:1px solid var(--line);border-radius:14px;padding:12px}
.att-cal{background:var(--card2);border-radius:12px;padding:8px;margin-top:6px}
.att-cal .datebar{margin-bottom:4px}
.att-cal .day.fut{opacity:.35;pointer-events:none}
.att-cal .day.out{visibility:hidden}
.att-cal .dots i,.att-dot{background:var(--orange)}
.att-cal .day.sel .dots i{background:#fff}
.att-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle;margin-right:2px}
.hm{display:flex;align-items:center;gap:4px}
.hm select{flex:1;min-width:0;margin:0}

/* 고르기 칸 (목록 + 새로 입력) */
.combo{display:flex;flex-direction:column;gap:6px;min-width:0}
.combo select,.combo input{margin:0;width:100%;min-width:0}

/* 반복 일정 */
.rep-seg{margin:0}
.wk-chips{display:flex;gap:6px;margin-top:8px}
.wk-chip{flex:1;margin:0}
.wk-chip input{display:none}
.wk-chip span{display:block;text-align:center;padding:9px 0;border-radius:10px;border:1px solid var(--line);background:var(--card);font-weight:700;color:var(--sub);cursor:pointer}
.wk-chip input:checked + span{background:var(--blue,#834a2d);border-color:transparent;color:#fff}
#repM select{margin-top:8px}

/* 텔레그램 알림 */
.tg-steps{margin:4px 0 0 18px;padding:0;line-height:1.7;font-size:14px}
.tg-grid{display:grid;grid-template-columns:1fr 52px 52px;gap:10px 6px;align-items:center}
.tg-grid .h{font-size:12.5px;color:var(--sub);text-align:center;font-weight:700}
.tg-grid > div:not(.h){font-size:14px;line-height:1.35}
.tg-grid > div .sub{display:block;font-size:12px;margin-top:2px}
.tg-tg{display:flex;justify-content:center;margin:0}
.tg-tg input{display:none}
.tg-tg span{width:40px;height:24px;border-radius:12px;background:var(--line);position:relative;cursor:pointer;transition:.15s}
.tg-tg span:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}
.tg-tg input:checked + span{background:var(--blue)}
.tg-tg input:checked + span:after{left:19px}

/* 메모 태그 */
.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.tag-row button{cursor:pointer}
.memo-tag{color:var(--blue-txt);font-weight:700}

/* 메모 날짜·사진 */
.memo-tools{display:flex;gap:8px;align-items:center;margin-top:10px}
.memo-date{flex:1;display:flex;align-items:center;gap:6px;margin:0}
.memo-date input{margin:0;flex:1;min-width:0}
.memo-pic{margin:0;cursor:pointer;white-space:nowrap}
.memo-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.memo-thumbs:empty{display:none}
.memo-thumbs img{width:76px;height:76px;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer}
.memo-thumbs .mt{position:relative}
.memo-thumbs .mt button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:#000a;color:#fff;font-size:11px;padding:0;line-height:22px}
.memo-d{display:inline-block;margin-bottom:6px}
.memo-big{width:100%;border-radius:12px}

/* 홈 날씨 카드 */
.wx-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.wx-now{display:flex;gap:10px;align-items:center}
.wx-e{font-size:34px;line-height:1}
.wx-t{font-size:24px}
.wx-asof{font-size:11.5px;white-space:nowrap}
.wx-row{margin-top:8px;font-size:14px}
.wx-row.rain{color:#2a6cc0;font-weight:700}
.wx-para{margin-top:10px;padding:10px 12px;border-radius:12px;display:flex;flex-direction:column;gap:2px;font-size:14px}
.wx-para span{font-size:12.5px;opacity:.85}
.wx-para .later{opacity:1;font-weight:700;margin-top:2px}
.wx-para.ok{background:#dcefe0;color:#1f7a3f}
.wx-para.warn{background:var(--orange-soft);color:var(--orange)}
.wx-para.close{background:#f6dcd8;color:#b83232}
.wx-hours{display:flex;gap:6px;overflow-x:auto;margin-top:10px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.wx-hours > div{flex:0 0 52px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-radius:10px;background:var(--card2);font-size:13px}
.wx-hours .p{font-size:11px;color:var(--sub)}
.wx-hours .g{font-size:10.5px;color:var(--sub)}
.wx-hours .wet .p{color:#2a6cc0;font-weight:700}
.wx-hours .windy .g{color:#b83232;font-weight:700}
.wx-fold{margin-top:10px}
.wx-fold summary{cursor:pointer;font-size:13.5px;color:var(--sub);font-weight:700;list-style:none;display:flex;align-items:center;gap:6px}
.wx-fold summary::-webkit-details-marker{display:none}
.wx-fold summary:after{content:"▾";margin-left:auto;transition:transform .2s}
.wx-fold[open] summary:after{transform:rotate(180deg)}
/* 매장 음악 (위쪽 이름 줄 아래) */
.music{display:flex;margin:-8px 0 14px;min-width:0}.music:empty{display:none}
.mu{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;overflow:hidden;font-size:13px;color:var(--sub);border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.mu b{white-space:nowrap;font-size:12.5px}.mu-on{color:#1f7a3f}.mu-stop{color:#b83232}.mu.off{opacity:.7}
.mu-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* 급여명세서 이미지 저장·공유 */
.slip-btns{display:flex;gap:8px;margin-top:10px}
.slip-btns .btn{flex:1}
.btn.kakao{background:#fee500;color:#191919}

/* 급여 엑셀 */
.pay-tools{display:flex;justify-content:space-between;align-items:center;margin:-4px 2px 10px}
.xl-all{display:flex;gap:14px;margin-bottom:6px}
.xl-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);margin:0}
.xl-row .sub{display:block;margin-top:2px}

/* 앱 달력으로 날짜 고르기 */
.dcal-btn{width:100%;text-align:left;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--sub);font-size:15px}
.dcal-btn.on{color:var(--text);font-weight:700}
.dcal .att-cal{margin-top:8px}
.dcal .datebar button{min-width:34px}
.dcal .day{cursor:pointer}
.dcal .day.fut{opacity:.3;pointer-events:none}

/* 입고 예정 등록 전 실제 구매 내역 확인 */
.buy{padding:10px 0;border-top:1px solid var(--line)}
.buy .buy-h{display:flex;align-items:center;gap:10px;margin:0;font-size:14px;color:var(--text)}
.buy-h b{flex:1;min-width:0}
.buy-a{font-weight:700;color:var(--blue-txt);flex-shrink:0}
.buy-f{display:flex;gap:10px;margin-top:8px}
.buy-f>div{flex:1;min-width:0}
.buy-f .sub{display:block;font-size:12px;margin-bottom:4px}
.buy-f .stepper input{flex:1;min-width:0;width:100%;text-align:center;padding:6px 2px}
.buy-f .stepper button{flex-shrink:0}
.buy-p{display:flex;align-items:center;gap:6px}
.buy-p input{flex:1;min-width:0;width:100%;padding:6px 8px;text-align:right}
.buy-p em{font-style:normal;font-size:13px;color:var(--sub)}
.buy-s{margin-top:6px;font-size:12px}
.buy.off .buy-f,.buy.off .buy-s{display:none}
.buy.off .buy-h b{color:var(--sub);font-weight:500}
.buy-more{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.buy-more summary{font-size:14px;font-weight:700;cursor:pointer;padding-bottom:8px}
.sheet .buy-save{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:13px;color:var(--text)}
.sheet .buy-save[hidden]{display:none}