:root{
  --bg:#eef1f5; --panel:#fff; --line:#d5dbe3; --line2:#e7ebf0; --text:#1f2933; --sub:#5f6b7a; --muted:#8a95a3;
  --navy:#1d3557; --navy2:#264b77; --blue:#2563eb; --blue-l:#e8f0fe; --sel:#dbe8ff; --red:#c62828; --green:#2e7d32; --amber:#b26a00;
  --head:#f3f5f8; --sub-row:#fff7e0; --tot-row:#e9f2ff; --edit:#fffde8;
  --font: "Malgun Gothic","맑은 고딕","Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:13px/1.45 var(--font)}
button,input,select,textarea{font:inherit;color:inherit}
.hidden{display:none!important}

/* ---------- 로그인 ---------- */
#login{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1d3557,#3a5f8f)}
.login-box{width:380px;background:#fff;border-radius:10px;padding:30px 32px;box-shadow:0 18px 50px rgba(0,0,0,.3)}
.login-box h1{margin:0 0 4px;font-size:20px;color:var(--navy)}
.login-box .sub{color:var(--sub);margin-bottom:22px;font-size:12px}
.login-box label{display:block;font-size:12px;color:var(--sub);margin:12px 0 4px}
.login-box input{width:100%;height:38px;border:1px solid var(--line);border-radius:6px;padding:0 10px}
.login-box button{width:100%;height:40px;margin-top:20px;border:0;border-radius:6px;background:var(--navy);color:#fff;font-weight:bold;cursor:pointer}
.login-err{color:var(--red);margin-top:12px;font-size:12px;white-space:pre-line;min-height:16px}

/* ---------- 레이아웃 ---------- */
#app{display:grid;grid-template-rows:44px auto 1fr;grid-template-columns:1fr;height:100vh}
#top{display:flex;align-items:center;gap:14px;background:var(--navy);color:#fff;padding:0 14px}
#top .brand{font-weight:bold;font-size:15px;letter-spacing:-.2px;white-space:nowrap;flex-shrink:0}
#top .brand small{font-weight:normal;opacity:.7;margin-left:6px;font-size:11px}
#top .sp{flex:1}
#top .user{font-size:12px;opacity:.9}
#menubar .mquick{flex:0 0 auto;display:flex;align-items:center;gap:6px}
#quick,#menubar .qbtn{height:34px;border-radius:6px;border:2px solid var(--blue);background:#eef4ff;color:var(--navy);font-size:15px;font-weight:bold;padding:0 10px;min-width:180px;cursor:pointer}
#menubar .qbtn,#quick{min-width:0;width:180px;white-space:nowrap}#menubar .qbtn:hover{background:#dbe7ff}
#quick optgroup{font-style:normal;color:#1e3a8a;font-size:13px}#quick option{color:#111;font-weight:normal;font-size:14px}
#top button{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:5px;padding:4px 10px;cursor:pointer;font-size:12px}
#menubar{display:flex;align-items:stretch;gap:8px;background:#fff;border-bottom:1px solid var(--line);padding:0 8px;min-width:0;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.mbar{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.mbar::-webkit-scrollbar{display:none}
.mtop{flex:0 0 auto;background:none;border:0;border-bottom:3px solid transparent;padding:9px 15px 7px;font-size:20px;font-weight:bold;color:#374151;cursor:pointer;white-space:nowrap;font-family:inherit}
.mtop:hover{background:var(--blue-l);color:var(--navy)}
.mtop.cur{color:var(--navy);border-bottom-color:var(--blue)}
.mtop.open{background:var(--navy);color:#fff;border-bottom-color:var(--navy)}
#menubar .msearch{flex:0 0 220px;display:flex;align-items:center}
#menubar .msearch input{width:100%;height:28px;border:1px solid var(--line);border-radius:5px;padding:0 8px;font-family:inherit}
.mdrop{position:fixed;z-index:60;background:#fff;border:1px solid var(--line);border-top:2px solid var(--navy);border-radius:0 0 6px 6px;box-shadow:0 8px 24px rgba(15,23,42,.18);min-width:250px;max-width:calc(100vw - 12px);max-height:calc(100vh - 110px);overflow:auto;padding:4px 0}
.mdrop.search{min-width:320px}
.mdrop a{display:flex;align-items:center;gap:6px;padding:7px 14px;color:var(--text);text-decoration:none;cursor:pointer;white-space:nowrap}
.mdrop a .nm{flex:1}
.mdrop a:hover,.mdrop a.hit{background:var(--blue-l)}
.mdrop a.active{background:var(--sel);font-weight:bold}
.mdrop a .pid{color:var(--muted);font-size:10px}
.mdrop a .grp{color:var(--muted);font-size:11px}
.mdrop .msep{height:1px;background:var(--line);margin:4px 10px}
.mdrop .empty{padding:10px 14px;color:var(--muted)}
#main{display:flex;flex-direction:column;min-width:0;min-height:0}
#tabs{display:flex;gap:2px;padding:6px 8px 0;background:var(--bg);overflow-x:auto;flex:0 0 auto;border-bottom:1px solid var(--line)}
#tabs .tab{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#dfe5ec;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;cursor:pointer;white-space:nowrap;font-size:12px}
#tabs .tab.active{background:#fff;font-weight:bold;color:var(--navy)}
#tabs .tab .x{border:0;background:none;cursor:pointer;color:var(--muted);padding:0 2px;font-size:14px;line-height:1}
#views{flex:1;min-height:0;position:relative;background:#fff}
.view{position:absolute;inset:0;display:flex;flex-direction:column;min-height:0}
.home{padding:30px;color:var(--sub);overflow:auto}
.home h2{color:var(--navy);margin:0 0 8px}
.home .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:20px}
.home .card{border:1px solid var(--line);border-radius:8px;padding:12px 14px;cursor:pointer;background:#fafbfd}
.home .card:hover{border-color:var(--blue);background:var(--blue-l)}
.home .card b{display:block;color:var(--navy);margin-bottom:4px}

/* ---------- 화면 공통 ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:3px;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--head);align-items:center;flex:0 0 auto}
.toolbar .tb{border:1px solid var(--line);background:#fff;border-radius:4px;padding:4px 9px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:4px}
.toolbar .tb .k{font-size:10px;color:var(--muted)}
.toolbar .tb:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.toolbar .tb:disabled{opacity:.38;cursor:default}
.toolbar .tb.primary:not(:disabled){background:var(--navy);color:#fff;border-color:var(--navy)}
.toolbar .tb.danger:not(:disabled){color:var(--red)}
.toolbar .sep{width:1px;height:20px;background:var(--line);margin:0 4px}
.toolbar .title{font-weight:bold;color:var(--navy);margin-right:10px;font-size:13px}
.toolbar .mode{margin-left:auto;font-size:12px;padding:2px 8px;border-radius:10px}
.toolbar .mode.AD{background:#e8f5e9;color:var(--green)} .toolbar .mode.UP{background:#fff3e0;color:var(--amber)}
.body{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;padding:8px;overflow:auto}
.row{display:flex;gap:8px;min-height:0}
.col{display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0}
.grow{flex:1;min-height:0;min-width:0}
.box{border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;flex-direction:column;min-height:0;min-width:0}
.box>.bt{padding:5px 10px;font-weight:bold;font-size:12px;color:var(--navy);background:#f7f9fb;border-bottom:1px solid var(--line2);border-radius:6px 6px 0 0;display:flex;align-items:center;gap:8px}
.box>.bt .r{margin-left:auto;font-weight:normal;color:var(--sub)}
.box>.bb{padding:8px 10px}
.filters{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fafbfc}
.f{display:flex;align-items:center;gap:6px}
.f>label.l{color:var(--sub);font-size:12px;white-space:nowrap}
input.i,select.i,textarea.i{height:28px;border:1px solid #c9d1db;border-radius:4px;padding:0 7px;background:#fff;min-width:0}
textarea.i{height:auto;padding:5px 7px;resize:vertical}
input.i:focus,select.i:focus,textarea.i:focus{outline:2px solid #b7cdfa;border-color:var(--blue)}
input.i:disabled,select.i:disabled,textarea.i:disabled{background:#f4f6f8;color:#4b5563}
input.i[readonly]{background:#f7f8fa}
input.num{text-align:right}
.btn{border:1px solid var(--line);background:#fff;border-radius:4px;padding:4px 10px;cursor:pointer;height:28px;font-size:12px;white-space:nowrap}
.btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.btn.blue{background:var(--blue);color:#fff;border-color:var(--blue)} .btn.blue:hover:not(:disabled){color:#fff;opacity:.9}
.btn.navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn:disabled{opacity:.45;cursor:default}
.radios{display:flex;gap:10px;align-items:center}
.radios label,.chk{display:flex;align-items:center;gap:3px;cursor:pointer;white-space:nowrap}
.form{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:7px 14px;padding:10px}
.form .fi{display:grid;grid-template-columns:var(--lw,92px) 1fr;align-items:center;gap:6px;min-width:0}
.form .fi.span2{grid-column:span 2} .form .fi.span3{grid-column:span 3} .form .fi.full{grid-column:1/-1}
.form .fi>label{color:var(--sub);font-size:12px;text-align:right;white-space:nowrap}
.form .fi>.ctl{display:flex;gap:4px;align-items:center;min-width:0}
.form .fi>.ctl>.i{flex:1}
.form .fi.req>label::before{content:"* ";color:var(--red)}
.form .gtitle{grid-column:1/-1;font-weight:bold;color:var(--navy);border-bottom:1px solid var(--line2);padding:6px 0 3px;margin-top:4px;font-size:12px}
.note{color:var(--sub);font-size:12px}
.warnbox{background:#fff8e1;border:1px solid #ffe082;color:#6d4c00;border-radius:6px;padding:8px 10px;font-size:12px;white-space:pre-line}
.sum-bar{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:6px 10px;background:#f7f9fb;border:1px solid var(--line2);border-radius:6px}
.sum-bar .s{display:flex;gap:6px;align-items:baseline} .sum-bar .s span{color:var(--sub);font-size:12px} .sum-bar .s b{font-size:14px;color:var(--navy);min-width:60px;text-align:right}

/* ---------- 그리드 ---------- */
.grid{flex:1;min-height:80px;overflow:auto;position:relative;border-top:0}
.grid table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;table-layout:fixed}
.grid th{position:sticky;top:0;z-index:2;background:var(--head);border-bottom:1px solid var(--line);border-right:1px solid var(--line2);padding:5px 6px;font-weight:bold;font-size:12px;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;user-select:none}
.grid th.sortable{cursor:pointer} .grid th .srt{color:var(--blue);margin-left:2px;font-size:10px}
.grid td{border-bottom:1px solid var(--line2);border-right:1px solid #f0f2f5;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:26px}
.grid tbody tr:nth-child(even) td{background:#fbfcfd}
.grid tbody tr:hover td{background:#f1f6ff}
.grid tbody tr.sel td{background:var(--sel)!important}
.grid tr.subtotal td{background:var(--sub-row)!important;font-weight:bold}
.grid tr.total td{background:var(--tot-row)!important;font-weight:bold}
.grid tr.total td{position:sticky;bottom:0}
.grid tr.subtotal td{position:static}
.grid td.r,.grid th.r{text-align:right} .grid td.c,.grid th.c{text-align:center}
.grid td.neg{color:var(--red)}
.grid td.edit{background:var(--edit)!important;padding:0}
.grid td.edit input,.grid td.edit select{width:100%;height:25px;border:0;background:transparent;padding:0 6px;outline:none}
.grid td.edit input:focus,.grid td.edit select:focus{background:#fff;box-shadow:inset 0 0 0 2px var(--blue)}
.grid td.edit input.num{text-align:right}
.grid td.chkc{text-align:center}
.grid .rn{color:var(--muted);text-align:center;background:#f7f8fa!important}
.grid .empty{padding:24px;text-align:center;color:var(--muted)}
.grid td .lnk{color:var(--blue);cursor:pointer;text-decoration:underline}
.grid td.hl{background:#ffe0c0!important}
.grid-foot{display:flex;gap:10px;align-items:center;padding:4px 8px;border-top:1px solid var(--line2);font-size:12px;color:var(--sub);background:#fafbfc;border-radius:0 0 6px 6px}
.grid-foot .sp{flex:1}
.tag{display:inline-block;padding:0 6px;border-radius:9px;font-size:11px;line-height:17px;background:#eef1f5;color:#4b5563}
.tag.ok{background:#e6f4ea;color:var(--green)} .tag.warn{background:#fff3e0;color:var(--amber)} .tag.red{background:#fdecea;color:var(--red)} .tag.blue{background:#e8f0fe;color:var(--blue)}

/* ---------- 모달 ---------- */
.modal-back{position:fixed;inset:0;background:rgba(15,23,42,.38);display:flex;align-items:center;justify-content:center;z-index:100}
.modal{background:#fff;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;max-width:96vw;max-height:92vh}
.modal .mh{padding:10px 14px;font-weight:bold;color:var(--navy);border-bottom:1px solid var(--line);display:flex;align-items:center}
.modal .mh .x{margin-left:auto;border:0;background:none;font-size:18px;cursor:pointer;color:var(--muted)}
.modal .mb{padding:12px 14px;overflow:auto;min-height:0;display:flex;flex-direction:column;gap:8px}
.modal .mf{padding:10px 14px;border-top:1px solid var(--line);display:flex;gap:6px;justify-content:flex-end}
.modal .msg{white-space:pre-line;line-height:1.6;max-width:520px}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#1f2937;color:#fff;padding:9px 16px;border-radius:6px;z-index:200;font-size:13px;opacity:0;transition:opacity .2s;pointer-events:none;white-space:pre-line}
#toast.show{opacity:.95}
#busy{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),#60a5fa);z-index:300;transform:scaleX(0);transform-origin:left;transition:transform .3s}
#busy.on{transform:scaleX(.8);transition:transform 4s}

/* 일마감 달력 */
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:620px}
.days .d{border:1px solid var(--line);border-radius:6px;padding:8px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;user-select:none}
.days .d.on{background:#e3ecff;border-color:var(--blue)}
.days .d .n{font-weight:bold} .days .d .s{font-size:11px;color:var(--sub)}
.days .d.x{background:#fff3e0}
.days .hd{text-align:center;color:var(--sub);font-size:12px}
.tree{overflow:auto;padding:6px}
.tree .node{padding:3px 6px;cursor:pointer;border-radius:4px;white-space:nowrap}
.tree .node:hover{background:var(--blue-l)} .tree .node.sel{background:var(--sel);font-weight:bold}
.tree .kids{margin-left:16px;border-left:1px dotted var(--line);padding-left:4px}

@media (max-width:900px){
  #menubar .msearch{flex-basis:130px}
  .row{flex-direction:column}
}

/* ---------- 인쇄 ---------- */
@media print{ body{background:#fff} }
@media (max-width:600px){ #top .brand small{display:none} #top .brand{font-size:14px} #quick{min-width:0;width:110px;font-size:12px}#menubar .qbtn{width:72px;font-size:12px;padding:0 4px} #top .user{display:none} #top button{padding:4px 7px} #menubar .msearch{flex-basis:96px} }
.grid td.ok{color:var(--green);font-weight:bold} .grid td.muted{color:var(--muted);text-decoration:line-through}
.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
@media(max-width:1650px){.mtop{padding:9px 9px 7px}#quick{min-width:0;width:136px;font-size:14px;padding:0 4px}#menubar .qbtn{width:136px;font-size:14px}#menubar .msearch{flex-basis:150px}}

/* 거래명세서 작성 */
.body.stw{display:flex;flex-direction:column;gap:8px}
.stw-head{background:#f7f9fb;border:1px solid var(--line2);border-radius:6px;padding:8px 10px;display:flex;gap:14px;align-items:stretch}
.stw-headL{flex:1 1 auto;min-width:0}
.stw-big{flex:0 0 auto;display:flex;gap:10px;align-items:center;margin-left:auto}
.stw-bigbtn{min-width:130px;height:68px;font-size:20px!important;font-weight:bold;border-radius:8px!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.stw-bigbtn small{font-size:11px;font-weight:normal;opacity:.8}
.stw-lbl{color:var(--navy);min-width:62px;display:inline-block}
.stw-cust{width:360px;height:30px;font-size:15px;font-weight:bold;background:#e8f0ff;border:2px solid var(--blue)!important}
.stw-btns{gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center}
.stw-k{margin-left:5px;font-size:10px;color:var(--muted);font-weight:normal}
.stw-state{margin-left:10px;font-weight:bold;font-size:12px;padding:2px 8px;border-radius:10px}
.stw-state.new{background:#e6f4ea;color:#1b7a3a} .stw-state.lock{background:#fde8e8;color:#c62828}
.stw-grid{flex:1 1 auto;min-height:260px}
.stw-foot{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.stw-box{background:#f7f9fb;border:1px solid var(--line2);border-radius:6px;padding:6px 10px;display:flex;flex-direction:column;gap:4px;flex:0 0 auto}
.stw-f{display:flex;align-items:center;gap:6px} .stw-f>span{width:72px;font-size:12px;color:var(--sub);text-align:right}
.stw-f input{width:130px;height:26px;text-align:right;border:1px solid var(--line);border-radius:4px;padding:0 6px}
.stw-box:last-child .stw-f input{width:100%;text-align:left}
.stw-ro{background:#fff} .stw-ro.neg{color:#c62828}
.stw-total{background:#e53935!important;color:#fff!important;font-weight:bold;font-size:15px}

.grid td.qprice input,.grid td.qprice{color:#c62828;font-weight:bold}

/* 프로세스 권한 (간편) */
.perm-tree{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.perm-group{border:1px solid var(--line2);border-radius:6px;background:#fafbfd}
.perm-gt{display:block;padding:7px 10px;font-weight:bold;color:var(--navy);border-bottom:1px solid var(--line2);background:#eef3fb;cursor:pointer}
.perm-items{display:flex;flex-direction:column;padding:6px 10px;gap:3px}
.perm-item{cursor:pointer;padding:2px 0} .perm-item.fixed{color:#888}

.mdrop a.locked{color:#9aa3af}.mdrop a.locked:hover{background:#f5f5f5}

/* 년령별 현황 옵션 패널 */
.aging-opt{flex:0 0 230px;background:#c7cdf7;border:1px solid #9aa3e8;border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:8px;align-self:flex-start;font-size:12.5px}
.aging-box{background:#d9ddfb;border:1px solid #aab1ee;border-radius:5px;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.aging-box>b{color:#1e2a78;border-bottom:1px solid #8b93d8;padding-bottom:2px}

/* 표의 체크칸: 셀 전체가 클릭 영역, 체크박스 크게 */
.grid td.chkc{cursor:pointer;text-align:center;padding:0}.grid td.chkc input[type=checkbox]{width:18px;height:18px;cursor:pointer;vertical-align:middle;margin:0}.grid td.chkc:hover{background:#e6efff!important}
.grid th input[type=checkbox]{width:16px;height:16px;vertical-align:middle;cursor:pointer}

.fit-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:6px 10px;border-radius:6px;border:1px solid}
.fit-bar.ok{background:#eef8f0;border-color:#9ccfa6}.fit-bar.ok .st{color:#1e7a34}
.fit-bar.bad{background:#fff4ec;border-color:#f0b58a}.fit-bar.bad .st{color:#c0392b}
.fit-bar .btn{height:26px;line-height:26px;padding:0 10px}
/* 수정전자세금계산서 */
.mod-tt{font-weight:bold;color:var(--navy);font-size:14px}.mod-tt .red,.red{color:#c0392b}
.mod-kv{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center}
.mod-kv .kv{display:flex;gap:6px;align-items:center}.mod-kv .kv>span:first-child{color:var(--sub);font-size:12px}
.mod-kv .kv.nts b{color:#1e7a34;letter-spacing:.3px}.mod-kv .kv.red b{color:#c0392b;font-weight:normal}
.mod-info{display:flex;flex-direction:column;gap:4px;padding:4px 2px}
.mod-rs{display:grid;grid-template-columns:20px 150px 1fr;align-items:center;gap:4px;padding:3px 4px;border-radius:4px;cursor:pointer}
.mod-rs:hover{background:#f2f6fb}.mod-rs span{color:#5b6ea3;font-size:12.5px}.mod-rs:has(input:checked){background:#e8f0fb}
.mod-help{border:1px solid var(--line2);border-radius:6px;padding:6px 10px;background:#fbfcfe;color:#2f3d8a;font-size:12.5px;display:flex;flex-direction:column;gap:2px;min-height:60px}
.mod-d{flex:1 1 0;min-width:0;border:1px solid var(--line2);border-radius:6px;padding:8px;gap:6px}
.mod-dt{font-weight:bold;color:#c0392b}
.mod-sum{display:flex;gap:12px}.mod-sum b{color:var(--navy)}.mod-sum b.red{color:#c0392b}
.btn .kbd{margin-left:5px;font-size:10.5px;font-weight:normal;color:var(--sub);background:#eef2f7;border:1px solid #d5dce6;border-radius:3px;padding:0 4px;line-height:15px}
/* ===== 핸드폰 전용 화면 (mobile.js) ===== */
body.m-mode{background:#f2f5f9}
#m-app{min-height:100vh;font-size:16px}
.m-head{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:6px;background:var(--navy,#1f3a5f);color:#fff;padding:10px 10px;padding-top:max(10px,env(safe-area-inset-top))}
.m-head .sp{flex:1}.m-title{font-weight:bold;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}
.m-back{background:none;border:0;color:#fff;font-size:20px;padding:2px 8px 2px 0}
.m-hbtn{white-space:nowrap;flex:0 0 auto;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:6px;padding:5px 8px;font-size:12.5px}
.m-body{padding:12px 12px 90px}
.m-hello{font-size:18px;font-weight:bold;margin:6px 2px 14px}.m-hello small{display:block;font-size:13px;color:#667;font-weight:normal;margin-top:2px}
.m-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.m-tile{background:#fff;border:1px solid #dde3ec;border-radius:12px;padding:18px 8px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.m-tile .ic{font-size:30px}.m-tile:active{background:#eaf1fb}
.m-search{display:flex;gap:6px;margin-bottom:10px}.m-search input{flex:1;min-width:0;font-size:16px;padding:10px;border:1px solid #c9d2de;border-radius:8px}
.m-search .btn{font-size:15px;padding:0 16px;height:auto}
.m-list{display:flex;flex-direction:column;gap:8px}
.m-card{background:#fff;border:1px solid #dde3ec;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.m-card.tap:active{background:#eef4fc}.m-card.flat{margin-bottom:8px}
.m-ttl{font-weight:bold;font-size:15.5px;word-break:break-all}.mono{font-family:Consolas,monospace}
.m-sub{color:#667;font-size:13px}.m-sub.neg,.m-note.neg{color:#c0392b}
.m-line{display:flex;justify-content:space-between;gap:10px;font-size:14px}.m-line span{color:#667}.m-line b{text-align:right}
.m-line.ok b{color:#1d4ed8}.m-line.neg b{color:#c0392b}.m-line.pay b{color:#1e7a34}
.m-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.m-no{color:#667;font-size:13px;white-space:nowrap}
.m-empty{color:#889;text-align:center;padding:24px 0}.m-note{color:#667;font-size:13px;margin:4px 2px 8px}
.m-bar{display:flex;gap:6px;align-items:center;margin-bottom:8px}.m-bar input[type=date]{flex:1;min-width:0;font-size:15px;padding:8px;border:1px solid #c9d2de;border-radius:8px}
.m-bar .btn{height:auto;padding:8px 12px;font-size:15px}
.m-seg{display:flex;border:1px solid #1d4ed8;border-radius:8px;overflow:hidden;margin-bottom:8px}.m-seg button{flex:1;border:0;background:#fff;color:#1d4ed8;padding:8px 10px;font-size:15px}.m-seg button.on{background:#1d4ed8;color:#fff}

.m-wide{width:100%;height:auto!important;padding:11px!important;font-size:15.5px!important;margin-bottom:8px;text-align:left}
.m-big{text-align:center;font-size:17px!important;padding:14px!important}
.m-sum{font-size:14px;color:#334;margin:2px 2px 8px;font-weight:bold}.m-sum.big{font-size:16px;color:#1f3a5f;background:#fff;border-radius:8px;padding:10px;border:1px solid #dde3ec}
.m-sec{font-weight:bold;color:#1f3a5f;margin:14px 2px 6px;font-size:14px}
.m-actions{display:flex;gap:8px;margin:10px 0}.m-actions .btn{flex:1;height:auto;padding:12px 6px;font-size:15.5px}
.m-actions.sticky{position:fixed;left:0;right:0;bottom:0;margin:0;background:#fff;padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-top:1px solid #dde3ec;z-index:40}
.m-form{display:flex;flex-direction:column}.m-form>label{font-size:13px;color:#667;margin:8px 2px 3px}
.m-form>input,.m-form>textarea{font-size:16px;padding:10px;border:1px solid #c9d2de;border-radius:8px;background:#fff}
.m-grid3{display:grid;grid-template-columns:1fr 1.3fr 1.3fr;gap:6px;margin:4px 0}.m-grid3 label{display:flex;flex-direction:column;font-size:12px;color:#667;gap:2px}
.m-grid3 input{font-size:16px;padding:8px;border:1px solid #c9d2de;border-radius:6px;width:100%;min-width:0;box-sizing:border-box}.m-grid3 input.num{text-align:right}
.m-amt{font-size:16px;padding:8px 2px;text-align:right;font-weight:bold}
.m-x{background:#fff;border:1px solid #e0b4b4;color:#c0392b;border-radius:6px;padding:2px 9px;font-size:15px}
.m-led{background:#fff;border:1px solid #e3e8ef;border-radius:8px;padding:7px 10px;margin-bottom:5px;font-size:14px}
#m-back-mobile{position:fixed;left:12px;bottom:12px;z-index:9000;background:#1d4ed8;color:#fff;border:0;border-radius:22px;padding:10px 16px;font-size:15px;box-shadow:0 4px 12px rgba(0,0,0,.25)}
body.m-mode .modal{max-width:96vw}
@media (max-width:760px){ #menubar{flex-wrap:wrap} #menubar .mbar{order:3;flex:1 1 100%;overflow-x:auto;white-space:nowrap} }
/* 빈 날짜칸(입고예정일 등)에 mm/dd/yyyy 표시 안 함 */
.stw-grid input[type=date][data-empty]:not(:focus)::-webkit-datetime-edit{color:transparent}

/* 우측 상단 [목록] 버튼: 크게 */
#menubar .qbtn.lbtn{font-size:19px;letter-spacing:4px;width:120px;height:38px}
@media(max-width:1650px){#menubar .qbtn.lbtn{width:96px;font-size:17px}}
@media (max-width:600px){#menubar .qbtn.lbtn{width:60px;font-size:14px;letter-spacing:1px}}
/* 견적의뢰서: [발주서 만들기] 버튼 */
.stw-bigbtn.green{background:#1e8e5a;border-color:#1e8e5a;color:#fff}.stw-bigbtn.green:hover{background:#177548}
.rfq-big .stw-bigbtn{min-width:104px;font-size:17px!important;padding:0 10px}
