/* J-BIZ PARTNERS CRM */
:root{
  --navy:#0c2448; --navy2:#0a1d3b; --blue:#1f63e0; --blue-d:#1a53c0; --blue-l:#eaf2ff; --blue-ll:#f3f7ff;
  --ink:#0f1d33; --ink2:#2b3a52; --muted:#6b7890; --line:#e5eaf2; --line2:#eef2f7; --bg:#f3f6fb; --card:#fff;
  --green:#16a34a; --green-l:#e8f7ee; --red:#e5484d; --red-l:#fdecec; --orange:#f97316; --orange-l:#fff1e6;
  --purple:#7c3aed; --purple-l:#f1ebff; --teal:#0d9488; --teal-l:#e3f6f3; --pink:#db2777; --pink-l:#fdebf3;
  --indigo:#4f46e5; --indigo-l:#eceafe; --cyan:#0891b2; --cyan-l:#e2f5fa; --gray-l:#f1f4f8; --yellow:#eab308;
  --radius:14px; --shadow:0 1px 2px rgba(16,34,68,.04),0 4px 14px rgba(16,34,68,.04);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  color:var(--ink);background:var(--bg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.02em}
.hand{font-family:"Nanum Pen Script",cursive}
svg.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
svg.i.sm{width:14px;height:14px} svg.i.lg{width:22px;height:22px} svg.i.xl{width:28px;height:28px}

/* ── layout ── */
.app{display:flex;min-height:100vh}
.side{width:224px;flex:none;background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);color:#fff;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:22px 14px 16px}
.brand{display:flex;gap:10px;align-items:flex-start;padding:0 8px 18px}
.brand-mark{width:34px;height:40px}
.brand-name{font-weight:800;font-size:19px;line-height:1.05;letter-spacing:.01em}
.brand-sub{color:#8fb4ff;font-size:12.5px;margin:10px 0 0 10px;line-height:1.5}
.nav{display:flex;flex-direction:column;gap:2px;margin-top:10px;overflow-y:auto}
.nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:10px;color:#dbe6fa;font-size:15px;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nav a.on{background:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(31,99,224,.35)}
.nav a .cnt{margin-left:auto;background:var(--red);color:#fff;font-size:11px;font-weight:700;border-radius:10px;padding:1px 7px}
.side-card{margin-top:auto;border-radius:12px;overflow:hidden;position:relative;height:210px;
  background:linear-gradient(180deg,#34507e 0%,#6f8bb5 55%,#b9c9df 100%);padding:22px 18px}
.side-card p{margin:0;font-size:15px;line-height:1.6;font-weight:600;position:relative;z-index:1}
.side-card small{display:block;margin-top:18px;font-size:11px;opacity:.85;position:relative;z-index:1;border-top:2px solid #fff;width:14px;padding-top:6px;white-space:nowrap}
.side-card svg{position:absolute;left:0;right:0;bottom:0;width:100%}
.main{flex:1;min-width:0;padding:20px 26px 40px}
.topbar{display:flex;align-items:flex-start;gap:18px;margin-bottom:18px}
.topbar .ttl{flex:1;min-width:0}.topbar .ttl h1{font-size:30px}
.topbar .ttl p{margin:4px 0 0;color:var(--muted);font-size:14.5px}
.topbar .grow{flex:1}
.search{flex:none;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:9px 14px;width:320px;color:var(--muted)}
.search input{border:0;outline:0;flex:1;background:transparent;color:var(--ink)}
.bell{position:relative;padding:8px;color:var(--ink2);cursor:pointer;background:none;border:0}
.bell .dot{position:absolute;top:2px;right:2px;background:var(--red);color:#fff;font-size:10px;font-weight:700;
  min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.me{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative}
.me .nm{font-weight:700;font-size:14.5px;white-space:nowrap}.me .co{color:var(--muted);font-size:12.5px;white-space:nowrap}
.avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;
  font-weight:700;font-size:13px;flex:none;letter-spacing:-.03em}
.avatar.sm{width:28px;height:28px;font-size:11px}.avatar.xs{width:22px;height:22px;font-size:10px}
.dropdown{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 12px 32px rgba(16,34,68,.14);min-width:220px;z-index:50;display:none;padding:6px}
.dropdown.open{display:block}
.dropdown a,.dropdown button{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:8px;border:0;background:none;cursor:pointer}
.dropdown a:hover,.dropdown button:hover{background:var(--gray-l)}
.notif-pop{width:380px;right:-60px}
.notif-item{display:flex;gap:10px;padding:10px 12px;border-radius:8px}
.notif-item.unread{background:var(--blue-ll)}
.notif-item .t{font-size:13px;font-weight:600}.notif-item .s{font-size:12px;color:var(--muted)}

/* ── common ── */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-h{display:flex;align-items:center;gap:10px;padding:18px 20px 10px}
.card-h h3{font-size:17.5px;display:flex;align-items:center;gap:8px}
.card-h .more{margin-left:auto;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:2px}
.card-b{padding:6px 20px 18px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.between{justify-content:space-between}
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}
.muted{color:var(--muted)}.small{font-size:12.5px}.xs{font-size:11.5px}.b{font-weight:700}.right{text-align:right}.nowrap{white-space:nowrap}
.red{color:var(--red)}.green{color:var(--green)}.blue{color:var(--blue)}.orange{color:var(--orange)}
.hide{display:none!important}
.pre{white-space:pre-wrap}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink2);
  padding:9px 16px;border-radius:9px;font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--gray-l)}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-d)}
.btn.danger{color:var(--red);border-color:#f5c2c4}.btn.danger:hover{background:var(--red-l)}
.btn.green{background:var(--green);border-color:var(--green);color:#fff}
.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:8px}
.btn.ghost{border-color:transparent;background:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
.iconbtn{border:0;background:none;padding:4px;border-radius:6px;cursor:pointer;color:var(--muted)}
.iconbtn:hover{background:var(--gray-l);color:var(--ink)}

.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:7px;font-size:12.5px;font-weight:600;white-space:nowrap}
.badge.blue{background:var(--blue-l);color:var(--blue)}.badge.purple{background:var(--purple-l);color:var(--purple)}
.badge.green{background:var(--green-l);color:var(--green)}.badge.teal{background:var(--teal-l);color:var(--teal)}
.badge.pink{background:var(--pink-l);color:var(--pink)}.badge.orange{background:var(--orange-l);color:#c2410c}
.badge.red{background:var(--red-l);color:var(--red)}.badge.gray{background:var(--gray-l);color:var(--muted)}
.badge.indigo{background:var(--indigo-l);color:var(--indigo)}.badge.cyan{background:var(--cyan-l);color:var(--cyan)}
.badge.solid-red{background:var(--red);color:#fff}
.pill{border-radius:20px}
.delta{font-size:13px;font-weight:600;color:var(--green)}.delta.down{color:var(--red)}

.table{width:100%;border-collapse:collapse}
.table th{font-size:12.5px;color:var(--muted);font-weight:600;text-align:left;padding:10px 10px;border-bottom:1px solid var(--line);background:#fafbfd;white-space:nowrap}
.table td{padding:12px 10px;border-bottom:1px solid var(--line2);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--blue-ll)}
.table.compact td{padding:9px 10px}

.progress{height:8px;background:#eef1f6;border-radius:8px;overflow:hidden;flex:1}
.progress>span{display:block;height:100%;border-radius:8px;background:var(--blue)}

/* forms */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-size:13px;font-weight:600;color:var(--ink2)}
.field label .req{color:var(--red);margin-left:2px}
.field .hint{font-size:12px;color:var(--muted)}
.input,select.input,textarea.input{width:100%;border:1px solid #d9e0ea;border-radius:9px;padding:9px 12px;background:#fff;outline:0}
.input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(31,99,224,.12)}
textarea.input{min-height:84px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.form-grid .span2{grid-column:span 2}.form-grid .span3{grid-column:span 3}
.check{display:flex;align-items:center;gap:8px;cursor:pointer}
.check input{width:17px;height:17px;accent-color:var(--blue)}
.req-box{border:2px solid var(--red);background:#fff7f7;border-radius:12px;padding:14px 16px}
.req-box h4{color:var(--red);font-size:14.5px;margin-bottom:8px;display:flex;gap:6px;align-items:center}

.flash{padding:12px 16px;border-radius:10px;margin-bottom:14px;font-weight:500;white-space:pre-line;display:flex;gap:10px;align-items:flex-start}
.flash.success{background:var(--green-l);color:#166534;border:1px solid #bfe8cd}
.flash.error{background:var(--red-l);color:#9f1d22;border:1px solid #f5c2c4}
.flash.warning{background:#fff8e6;color:#8a5a00;border:1px solid #f6dc9a}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#1f2937;color:#fff;padding:12px 18px;
  border-radius:10px;z-index:100;white-space:pre-line;max-width:520px;box-shadow:0 12px 30px rgba(0,0,0,.25)}
.toast.error{background:#b42318}

.modal-bg{position:fixed;inset:0;background:rgba(15,29,51,.45);z-index:80;display:none;align-items:center;justify-content:center;padding:20px}
.modal-bg.open{display:flex}
.modal{background:#fff;border-radius:16px;width:560px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.modal-h{display:flex;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-h h3{font-size:17px}.modal-h .iconbtn{margin-left:auto}
.modal-b{padding:18px 22px}.modal-f{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}

.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tabs a{padding:8px 14px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--ink2);display:flex;gap:6px;align-items:center}
.tabs a.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.tabs a .n{font-size:11.5px;background:rgba(0,0,0,.07);padding:0 6px;border-radius:8px}
.tabs a.on .n{background:rgba(255,255,255,.25)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:14px;background:#eef2f8;color:var(--ink2);font-size:12px;font-weight:600}
.empty{padding:28px;text-align:center;color:var(--muted)}

/* ── banner ── */
.banner{position:relative;border-radius:16px;overflow:hidden;background:linear-gradient(100deg,#e7f0fd 0%,#dbe9fb 45%,#cfe1f8 100%);
  border:1px solid #dbe6f5;min-height:142px;display:flex;align-items:center;padding:24px 30px;margin-bottom:16px}
.banner .b-left{position:relative;z-index:2;max-width:52%}
.banner .b-left h2{font-size:27px;line-height:1.35;color:#0e1f3d}
.banner .b-left p{margin:8px 0 0;color:var(--ink2);font-size:14px}
.banner .b-art{position:absolute;left:40%;top:0;bottom:0;width:280px;z-index:1}
.banner .b-hand{position:absolute;left:62%;top:26px;z-index:2;font-size:30px;line-height:1.15;color:#1b2a44;transform:rotate(-8deg)}
.banner .b-hand:after{content:"";display:block;width:90px;height:2px;background:#1b2a44;margin:6px 0 0 30px;border-radius:2px;transform:rotate(-8deg)}
.banner .b-right{position:absolute;right:30px;bottom:24px;z-index:2;text-align:right;color:var(--ink2)}
.banner .b-right .big{font-size:17px;font-weight:700;color:var(--ink)}
.banner.compact{min-height:110px}
.banner .b-icon{width:104px;height:104px;border-radius:22px;background:#d7e6fc;display:flex;align-items:center;justify-content:center;color:var(--blue);flex:none;margin-right:26px;position:relative;z-index:2}
.banner .b-quote{position:absolute;right:30px;top:50%;transform:translateY(-50%);z-index:2;font-size:16px;color:var(--ink2);line-height:1.6}
.banner .b-quote:before{content:"“";font-size:30px;color:#6b86b3;margin-right:6px;vertical-align:-6px}
.banner .b-quote:after{content:"”";font-size:24px;color:#6b86b3}

/* KPI */
.kpi{display:flex;align-items:center;gap:18px;padding:22px}
.kpi .ic{width:72px;height:72px;border-radius:18px;display:flex;align-items:center;justify-content:center;flex:none}
.kpi .ic svg{width:32px;height:32px}
.kpi .lbl{font-size:14.5px;color:var(--ink2);font-weight:600}
.kpi .val{font-size:30px;font-weight:800;letter-spacing:-.02em;display:flex;align-items:baseline;gap:10px}
.kpi .val small{font-size:14px;font-weight:600}
.kpi .sub{font-size:13px;color:var(--muted)}
.ic.blue{background:var(--blue-l);color:var(--blue)}.ic.orange{background:#ffeee6;color:#f0633a}
.ic.teal{background:#e2f4f7;color:#0e7490}.ic.green{background:var(--green-l);color:var(--green)}
.ic.purple{background:var(--purple-l);color:var(--purple)}.ic.red{background:var(--red-l);color:var(--red)}
.ic.indigo{background:var(--indigo-l);color:var(--indigo)}

/* alert strip */
.alert-panel{border:2px solid #f7b4b6;background:linear-gradient(180deg,#fff6f6,#fff);border-radius:var(--radius);margin-bottom:16px}
.alert-panel .card-h h3{color:#b42318}
.alert-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:4px 20px 18px}
.alert-col{background:#fff;border:1px solid #f4d4d5;border-radius:12px;padding:12px 14px;min-height:92px}
.alert-col h4{font-size:13.5px;display:flex;align-items:center;gap:6px;margin-bottom:6px}
.alert-col h4 .n{margin-left:auto;background:var(--red);color:#fff;border-radius:10px;font-size:12px;padding:0 8px}
.alert-col h4 .n.zero{background:#cbd5e1}
.alert-col a.it{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:4px 0;border-bottom:1px dashed #f1dcdc}
.alert-col a.it:last-child{border-bottom:0}
.alert-col a.it:hover{color:var(--blue)}
.ok-panel{border:1px solid #bfe8cd;background:var(--green-l);color:#166534;border-radius:var(--radius);padding:14px 20px;margin-bottom:16px;display:flex;gap:10px;align-items:center;font-weight:600}

/* dashboard lists */
.todo{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line2)}
.todo:last-child{border-bottom:0}
.todo .box{width:20px;height:20px;border:2px solid #c7d0dd;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none;background:#fff}
.todo .box.on{background:var(--blue);border-color:var(--blue);color:#fff}
.todo .t{font-weight:600;font-size:14px}.todo .s{font-size:12.5px;color:var(--muted)}
.todo.done .t{text-decoration:line-through;color:var(--muted)}
.dd{min-width:58px;text-align:center;font-weight:700;font-size:13px;padding:8px 6px;border-radius:9px}
.dd.r{background:var(--red-l);color:var(--red)}.dd.o{background:var(--orange-l);color:#ea580c}.dd.y{background:#fff7e0;color:#ca8a04}.dd.g{background:var(--gray-l);color:var(--muted)}
.hint-box{background:var(--cyan-l);color:#0e7490;border-radius:10px;padding:12px 14px;display:flex;gap:10px;align-items:center;font-size:13px}

/* kanban */
.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}
.kanban-wrap{overflow-x:auto;padding-bottom:6px}
.kanban{display:grid;grid-template-columns:repeat(6,minmax(128px,1fr));gap:8px;align-items:start;min-width:840px}
.col{border-radius:14px;padding:8px;min-height:300px;border:1px solid transparent}
.col.consult{background:#f2f5fa}.col.docs{background:#eef4ff}.col.prepare{background:#ecf8f3}
.col.submit{background:#fff7ea}.col.review{background:#fff0f0}.col.done{background:#eef9f1}
.col.drop{border-color:var(--blue);box-shadow:inset 0 0 0 2px rgba(31,99,224,.25)}
.col-h{display:flex;align-items:center;gap:8px;padding:4px 6px 10px}
.col-h h4{font-size:15px;white-space:nowrap}.col-h .n{font-size:13px;font-weight:700;padding:1px 9px;border-radius:10px;background:#fff}
.col.docs .n{color:var(--blue)}.col.prepare .n{color:var(--green)}.col.submit .n{color:#c2410c}.col.review .n{color:var(--red)}.col.done .n{color:var(--green)}
.col-h a{margin-left:auto;color:var(--muted)}
.kcard{background:#fff;border-radius:11px;padding:11px 10px;margin-bottom:10px;border:1px solid var(--line);box-shadow:0 1px 3px rgba(16,34,68,.05);cursor:grab;display:block}
.kcard:hover{border-color:#bcd0f3}
.kcard.alert{border-color:#f4b6b8;box-shadow:0 0 0 2px #fde1e2}
.kcard .nm{font-weight:700;font-size:14px;margin-bottom:7px;word-break:keep-all}
.kcard .ln{font-size:12px;color:var(--ink2);margin-top:7px}
.kcard .meta{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink2);margin-top:5px}
.kcard .meta svg{color:var(--muted)}
.kcard .flag{margin-left:auto}
.kcard.dragging{opacity:.5}
.side-panel .it{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.side-panel .it .t{font-weight:700;font-size:14px}.side-panel .it .s{font-size:12px;color:var(--muted)}
.sched{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--line2);font-size:13px}
.sched .d{width:44px;color:var(--muted);flex:none}.sched .d.red{color:var(--red);font-weight:700}

/* customer detail */
.cust-head{display:flex;gap:22px;align-items:flex-start;padding:22px}
.logo-tile{width:96px;height:96px;border-radius:20px;background:var(--blue-l);display:flex;align-items:center;justify-content:center;color:var(--blue);flex:none;font-size:34px;font-weight:800}
.info-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13.5px}
.info-grid dt{color:var(--muted)}.info-grid dd{margin:0;font-weight:600}
.timeline .ev{display:grid;grid-template-columns:120px 34px 90px 1fr;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line2);font-size:13.5px}
.timeline .ev .ico{width:28px;height:28px;border-radius:8px;background:var(--blue-l);color:var(--blue);display:flex;align-items:center;justify-content:center}

/* steps */
.steps{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:4px 0 8px}
.step{flex:1;min-width:120px;text-align:center;position:relative}
.step .no{display:inline-block;background:var(--blue-l);color:var(--blue);font-weight:700;font-size:12px;border-radius:12px;padding:1px 8px;position:absolute;left:8px;top:0}
.step .circ{width:62px;height:62px;border-radius:50%;background:var(--blue-l);color:var(--blue);margin:8px auto 10px;display:flex;align-items:center;justify-content:center}
.step .circ svg{width:28px;height:28px}
.step.done .circ{background:var(--blue);color:#fff}
.step.cur .circ{background:#fff;border:3px solid var(--blue);box-shadow:0 0 0 5px rgba(31,99,224,.12)}
.step.late .circ{border-color:var(--red);color:var(--red)}
.step .nm{font-weight:700;font-size:14.5px}.step .ds{font-size:12.5px;color:var(--muted)}
.step .dt{font-size:12px;margin-top:4px}
.step-arrow{align-self:center;color:#b8c4d6;margin-top:-30px}

.checklist .ci{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2)}
.checklist .ci .box{width:20px;height:20px;border:2px solid #c7d0dd;border-radius:5px;cursor:pointer;flex:none;background:#fff;display:flex;align-items:center;justify-content:center}
.checklist .ci .box.on{background:var(--blue);border-color:var(--blue);color:#fff}
.checklist .ci.miss .nm{color:var(--red);font-weight:600}
.checklist .ci.locked{opacity:.55}
.list-check{list-style:none;margin:0;padding:0}
.list-check li{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:14px}
.list-check li .cb{width:20px;height:20px;border-radius:5px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;margin-top:1px}
.list-check li .cb.off{background:#fff;border:2px solid #c7d0dd}
.kv{display:grid;grid-template-columns:24px 90px 1fr;gap:10px 8px;font-size:14px;align-items:center}
.kv .k{color:var(--muted)}.kv svg{color:var(--muted)}
.faq .q{display:flex;gap:12px;align-items:flex-start;margin-top:12px}
.faq .qa{width:24px;height:24px;border-radius:6px;background:var(--blue-l);color:var(--blue);font-weight:800;display:flex;align-items:center;justify-content:center;flex:none;font-size:13px}
.faq .qa.a{background:none;color:var(--ink)}
.quote{background:var(--blue-l);color:var(--blue-d);border-radius:10px;padding:14px 18px;font-size:15px;font-weight:600}

/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cal .h{padding:8px;font-size:12.5px;font-weight:700;color:var(--muted);background:#fafbfd;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}
.cal .d{min-width:0;overflow:hidden;min-height:118px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;background:#fff}
.cal .d.other{background:#fafbfd;color:#aab4c3}
.cal .d.today{background:#f3f8ff}
.cal .d .n{font-size:12.5px;font-weight:700;margin-bottom:4px}
.cal .d.today .n{color:#fff;background:var(--blue);border-radius:10px;display:inline-block;padding:0 7px}
.cal .ev{display:block;font-size:11.5px;padding:2px 6px;border-radius:5px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal .ev.done{text-decoration:line-through;opacity:.55}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--navy) 0%,#123a73 60%,#1f63e0 100%);padding:20px}
.login-card{background:#fff;border-radius:20px;padding:40px;width:420px;max-width:100%;box-shadow:0 30px 60px rgba(0,0,0,.25)}

@media (max-width:1400px){.alert-cols{grid-template-columns:repeat(2,1fr)}}
@media (max-width:1250px){.board-grid{grid-template-columns:1fr!important}}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr}.search{width:200px}}
@media (max-width:860px){
  .side{display:none}.main{padding:14px}.g2,.g3,.g4{grid-template-columns:1fr}
  .topbar{flex-wrap:wrap}.search{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .span2,.form-grid .span3{grid-column:span 1}
  .banner .b-art,.banner .b-hand,.banner .b-right,.banner .b-quote{display:none}.banner .b-left{max-width:100%}
  .mobile-nav{display:flex!important}
}
.mobile-nav{display:none;gap:6px;overflow-x:auto;margin-bottom:12px}
.mobile-nav a{padding:7px 12px;background:#fff;border:1px solid var(--line);border-radius:18px;white-space:nowrap;font-size:13px}
.mobile-nav a.on{background:var(--blue);color:#fff}
.banner .art-left{position:absolute;left:0;top:0;bottom:0;width:340px}.banner .art-left .b-art{left:40px}
.grid>*{min-width:0}
.logo-tile svg.i{width:46px;height:46px}
.b-icon svg.i{width:48px;height:48px}
.banner .art-mid .b-art{left:50%}
.alert-col{min-width:0}.alert-col a.it>span:first-child{min-width:0}
@media (max-width:860px){
  .alert-cols{grid-template-columns:1fr}
  .grid[style],.board-grid,section.grid{grid-template-columns:1fr!important}
  .card-b,.card{overflow-x:auto}
  .cust-head{flex-wrap:wrap}.row.wrap>.input{width:100%!important}
  .modal .form-grid{grid-template-columns:1fr!important}
  .timeline .ev{grid-template-columns:90px 30px 60px 1fr}
}

/* 특이사항 */
.special-box{background:#fff1f0;border:1px solid #f5b5b0;border-left:5px solid #e5484d;border-radius:12px;padding:12px 16px;color:#7a1c1c}
.special-box.empty{background:#fff;border-color:var(--line);border-left-color:#f5b5b0;color:var(--muted);padding:8px 16px}
.special-box .sb-ic{color:#e5484d;margin-top:2px}
.special-box .sb-t{font-weight:700;font-size:13px;color:#c62828}
.special-box .sb-b{white-space:pre-wrap;font-size:14.5px;font-weight:600;margin-top:2px;line-height:1.55}
.special-box .sb-form{display:none;margin-top:10px}
.special-box.editing .sb-form{display:block}
.special-box .sb-form textarea{min-height:70px;margin-bottom:8px;background:#fff}
.special-flag{display:inline-flex;align-items:center;gap:3px;background:#fff1f0;color:#c62828;border:1px solid #f5b5b0;border-radius:6px;padding:1px 6px;font-size:11.5px;font-weight:700;max-width:100%;overflow:hidden;white-space:nowrap}

/* 항목 관리 */
.items-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}
.items-nav{padding:10px 8px;position:sticky;top:12px;max-height:calc(100vh - 40px);overflow:auto}
.items-nav a{display:block;padding:7px 10px;border-radius:8px;font-size:13.5px;color:var(--text)}
.items-nav a:hover{background:var(--bg)}
.items-nav a.on{background:var(--blue-l,#eaf1ff);color:var(--blue);font-weight:700}
.it-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line2);border-radius:10px;margin-bottom:6px;background:#fff}
.it-row.dragging{opacity:.4;border-style:dashed}
.it-grip{cursor:grab;color:var(--muted);font-weight:700;letter-spacing:-2px;user-select:none;padding:0 4px}
.it-label{flex:1;min-width:120px;max-width:360px}
.it-orig{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:760px){.items-wrap{grid-template-columns:1fr}.items-nav{position:static;max-height:none}.it-orig{display:none}}

/* 화면 글자 바꾸기 모드 */
body.term-edit [data-term-hit]{outline:2px dashed #f59e0b;outline-offset:2px;cursor:text}
.term-bar{position:fixed;right:18px;bottom:18px;z-index:9999;background:#111827;color:#fff;border-radius:12px;padding:10px 14px;display:flex;gap:10px;align-items:center;box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:13px}
.term-bar button{background:#f59e0b;color:#111;border:0;border-radius:8px;padding:6px 10px;font-weight:700;cursor:pointer}
.term-pop{position:fixed;z-index:10000;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.2);padding:12px;width:300px}
.term-pop .row{gap:6px;justify-content:flex-end;margin-top:8px}
@media (max-height:980px){.side-card{display:none}}
@media (max-width:760px){.next-picker{grid-template-columns:1fr !important}}

/* 화면 편집: 목록 편집 팝업 · 표시 */
.list-pop{position:fixed;z-index:10000;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.22);padding:14px;width:420px;max-width:calc(100vw - 24px);max-height:calc(100vh - 40px);overflow:auto}
.lp-row{display:flex;align-items:center;gap:6px;padding:4px 0}
.lp-row.dragging{opacity:.4}
.lp-row .lp-label{flex:1;min-width:0;padding:7px 10px}
body.term-edit [data-opt-group]{outline:2px solid #f59e0b !important;outline-offset:2px;cursor:pointer;position:relative}
body.term-edit [data-edit-link]{outline:2px dashed #2563eb;outline-offset:3px;cursor:pointer}
body.term-edit .edit-toggle{background:#f59e0b;color:#111;border-color:#f59e0b}
.edit-toggle{white-space:nowrap}
@media (max-width:760px){.edit-toggle{display:none}}
.special-box .row>div{text-align:left}
.cf-chip{display:inline-block;background:#f1f5f9;border:1px solid var(--line2);border-radius:6px;padding:1px 6px;font-size:11.5px;margin:2px 4px 0 0;color:var(--text)}
.fd-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;border:1px solid var(--line2);border-radius:10px;margin-bottom:6px;background:#fff}
.fd-row.dragging{opacity:.4}
.fd-row .fd-label{width:170px}.fd-row .fd-type{width:150px}.fd-row .fd-opts{flex:1;min-width:180px}.fd-row .fd-scope{width:130px}
.rule-row{display:flex;gap:10px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line2);cursor:pointer}
.rule-row input[type=checkbox]{margin-top:4px;width:18px;height:18px;flex:none}
.brand-logo{max-width:44px;max-height:44px;object-fit:contain;border-radius:6px}

/* 화면 배치 */
.blk-hidden{display:none!important}
body.term-edit .blk-hidden{display:block!important;opacity:.35}
body.term-edit section.blk-hidden.grid{display:grid!important}
.blk-edit{position:relative;outline:1px dashed #94a3b8;outline-offset:4px}
.blk-bar{grid-column:1/-1;align-self:start;display:flex;justify-content:space-between;align-items:center;gap:8px;background:#111827;color:#fff;border-radius:8px;padding:4px 6px 4px 10px;margin-bottom:6px;font-size:12px;user-select:none}
.blk-grip{cursor:grab;touch-action:none;flex:1;padding:4px 0}
.blk-hide{background:#374151;color:#fff;border:0;border-radius:6px;padding:3px 10px;font-size:12px;cursor:pointer}
.blk-pressing{transform:scale(.99);transition:transform .3s}
.blk-dragging{opacity:.85;outline:2px solid var(--blue);box-shadow:0 12px 30px rgba(0,0,0,.2);z-index:5}
.blk-dragging .blk-grip{cursor:grabbing}

/* 고객 목록 일괄 변경 바 */
.bulk-bar{position:sticky;top:8px;z-index:20;display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#eef4ff;border:1px solid #c7d8fb;border-radius:12px;padding:10px 14px;margin-bottom:12px;box-shadow:0 4px 14px rgba(31,99,224,.12)}
.bulk-bar[hidden]{display:none}

/* ── 전체 정리 (2026-10-01) ── */
body{word-break:keep-all;overflow-wrap:break-word}             /* 한글 단어·금액이 중간에서 안 끊기게 */
.table th.right,.table td.right{text-align:right}            /* 숫자 칸: 제목과 값 오른쪽 정렬 맞춤 */
.table th.center,.table td.center{text-align:center}
.card-b:has(> .table){overflow-x:auto}                        /* 표가 넓으면 카드 안에서 가로 스크롤 */
.kpi>div:last-child{min-width:0}
.kpi .val{white-space:nowrap;font-size:clamp(18px,1.6vw,30px)!important}
.kpi .sub{word-break:keep-all}
/* 검색해서 고르는 선택 목록 */
.ss-wrap{position:relative}
.ss-native{position:absolute!important;opacity:0;pointer-events:none;width:1px!important;height:1px!important;bottom:0;left:12px}
.ss-input{width:100%;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
.ss-list{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 4px);max-height:280px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px rgba(15,23,42,.14);padding:4px}
.ss-opt{padding:9px 12px;border-radius:7px;cursor:pointer;font-size:14px}
.ss-opt.act,.ss-opt:hover{background:var(--blue-ll)}
.ss-opt.on{font-weight:700;color:var(--blue)}
.ss-opt.empty-opt{color:var(--muted)}
.ss-none{padding:12px;color:var(--muted);font-size:13px}
.table th.left,.table td.left{text-align:left}
.table td.center form.row,.table td.center .row{justify-content:center}
.table td.right+td,.table th.right+th{padding-left:22px}        /* 금액 바로 옆 칸이 붙어 보이지 않게 */
/* 칸반·표 보기 전환 */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.seg a{padding:8px 14px;font-size:13.5px;font-weight:600;color:var(--ink2)}
.seg a.on{background:var(--blue);color:#fff}
.board-table tr.row-alert td:first-child{box-shadow:inset 3px 0 0 var(--red)}
/* 고객 상세 (업무 순서 배치) */
.cd-head{padding:16px 22px}
.cd-line{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:10px;font-size:14px}
.cd-line em,.fund-grid em,.money3 em{font-style:normal;color:var(--muted);font-size:12.5px;margin-right:6px}
.cd-follow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--blue-ll);margin-bottom:8px}
.cd-follow.bad{background:#fff1f1;outline:1px solid #fecaca}
.cd-todo .sched.late .ellipsis{color:var(--red)}
.fund-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px}
.fund-grid>div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line2);border-radius:10px;background:#fbfcfe}
.fund-grid .span2{grid-column:span 2}
.fund-grid b{font-size:15px}
.money3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.money3>div{display:flex;flex-direction:column;gap:2px}
.money3 b{font-size:16px;white-space:nowrap}
.cd-more summary{cursor:pointer;padding:16px 22px;font-weight:700;display:flex;align-items:center;gap:8px;list-style:none}
.cd-more summary::-webkit-details-marker{display:none}
.cd-more[open] summary{border-bottom:1px solid var(--line2)}
.cd-info{grid-template-columns:110px 1fr 110px 1fr!important}
@media (max-width:900px){.fund-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cd-info{grid-template-columns:90px 1fr!important}}
/* 정책자금 신청 진행 */
.fsteps{display:flex;margin:2px 0 8px}
.fst{flex:1;text-align:center;position:relative;font-size:12.5px;color:var(--muted)}
.fst .dot{width:26px;height:26px;border-radius:50%;margin:0 auto 5px;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;position:relative;z-index:1}
.fst:before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--line)}
.fst:first-child:before{display:none}
.fst.done{color:var(--ink2)}.fst.done .dot{background:var(--blue);border-color:var(--blue);color:#fff}.fst.done:before,.fst.cur:before{background:var(--blue)}
.fst.cur{color:var(--blue);font-weight:700}.fst.cur .dot{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 4px var(--blue-l)}
.fund-cols{display:grid;grid-template-columns:1.15fr 1.15fr .8fr;gap:16px}
.fc-h{font-size:12.5px;font-weight:700;color:var(--muted);margin-bottom:6px}
.fund-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fund-kv.one{grid-template-columns:1fr}
.fund-kv>div{border:1px solid var(--line2);border-radius:10px;padding:8px 12px;background:#fbfcfe;display:flex;flex-direction:column;gap:2px;min-width:0}
.fund-kv em{font-style:normal;color:var(--muted);font-size:12px}.fund-kv b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fund-kv .span2{grid-column:span 2}.fund-kv .span2 b{white-space:normal}
.fund-kv .hl{background:var(--green-l);border-color:#bfe8cd}.fund-kv .bad{background:#fff6f6;border-color:#f6cdcf}
.fund-more summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:6px;list-style:none}
.fund-more summary::-webkit-details-marker{display:none}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip-ck{cursor:pointer}.chip-ck input{display:none}
.chip-ck span{display:inline-block;padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12.5px}
.chip-ck input:checked+span{background:var(--red-l);border-color:#f3b3b6;color:var(--red);font-weight:700}
.fchips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.fchips a{padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12.5px;white-space:nowrap}
.fchips a.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}
.fchips a.rej.on{background:var(--red);border-color:var(--red)}
.fh-table tr.rej td{background:#fffafa}.fh-table tr.sum td{background:var(--blue-ll);font-weight:700}
@media (max-width:900px){.fund-cols{grid-template-columns:1fr}.fsteps{flex-wrap:wrap;row-gap:10px}.fst{flex:0 0 25%}}
.board-table tr.rej td{background:#fffafa}
.fund-cols.two{grid-template-columns:1fr 1fr}
.fund-kv .warn{background:#fff8eb;border-color:#f6d9a8}
.col.f-plan{background:#f2f5fa}.col.f-applied{background:#eef4ff}.col.f-review{background:#f1efff}.col.f-approved{background:#e9f7f5}.col.f-paid{background:#eef9f1}
.fund-tools{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line2);padding-top:10px}
.ck-compact .ci{padding:6px 0}
.ck-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.ck-grid .ci{padding:4px 0;min-width:0}
@media (max-width:900px){.ck-grid{grid-template-columns:1fr}}
.board-search{position:relative;display:flex;align-items:center}
.board-search svg{position:absolute;left:10px;color:var(--muted)}
.board-search .input{width:180px;padding-left:30px}
/* 사전정보 접수 */
.mb8{margin-bottom:8px}
.intake-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.ikv{display:grid;grid-template-columns:110px 1fr;gap:9px 12px;margin:0;font-size:14px}
.ikv dt{color:var(--muted)}.ikv dd{margin:0;min-width:0;word-break:break-all}
.intake-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.intake-grid .field.wide{grid-column:1/-1}
.intake-grid .lbl{font-size:13px;font-weight:600;color:var(--ink2)}
.ci-card .ikv{grid-template-columns:96px 1fr}
@media (max-width:900px){.intake-cols,.intake-grid{grid-template-columns:1fr}}
.intake-grid .chip-ck input:checked+span{background:var(--blue-l);border-color:#9fbef7;color:var(--blue)}
/* ── 읽기 편하게: 본문 폭 제한·여백 (2026-10) ── */
:root{--muted:#5f6b82}
body{font-size:14.5px;line-height:1.6}
.main{padding:26px 40px 64px}
.main-in{max-width:1400px;margin:0 auto}
.main-in.narrow{max-width:1160px}
.topbar{margin-bottom:24px}
.topbar .ttl h1{font-size:28px}
.card-h{padding:20px 24px 12px}
.card-b{padding:6px 24px 22px}
.grid{gap:20px}
.mb16{margin-bottom:20px}
.table th{padding:11px 14px}
.table td{padding:14px 14px}
.table.compact td{padding:10px 14px}
.tabs{gap:8px}
.filters{margin:16px 0 18px;gap:10px}
.flash{margin-bottom:18px}
.cd-head{padding:20px 26px}
.cd-line{gap:8px 26px}
.kpi{padding:22px 24px}
@media (max-width:1100px){.main{padding:20px 22px 48px}}
@media (max-width:860px){.main{padding:14px}.card-h{padding:16px 16px 10px}.card-b{padding:6px 16px 16px}}
.side{line-height:1.5}
/* 간단 계약 등록 */
.qk .qk-in{font-size:16px;padding:12px 14px}
.qk-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.qk-chips{display:flex;flex-wrap:wrap;gap:8px}
.qk-chips label{position:relative;cursor:pointer}
.qk-chips input{position:absolute;opacity:0;pointer-events:none}
.qk-chips span{display:inline-block;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:14.5px;font-weight:500}
.qk-chips input:checked+span{background:var(--blue-l);border-color:#9fbef7;color:var(--blue);font-weight:700}
.lc-res span{min-width:84px;text-align:center}
.lc-won-btn{display:inline-block;padding:10px 16px;border-radius:999px;border:1px solid #9ad3ad;background:#e7f6ec;color:var(--green);font-size:14.5px;font-weight:700;min-width:84px;cursor:pointer}
.lc-res input:checked+span.lc-won{background:#e7f6ec;border-color:#9ad3ad;color:var(--green)}
.lc-res input:checked+span.lc-end{background:#f1f2f4;border-color:#c9ccd2;color:#555}
tr.rej td{background:#fff6f6}
.t-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.t-stats a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.t-stats b{font-size:24px;font-weight:800}.t-stats span{font-size:12.5px;color:var(--muted)}
.t-stats a.red{border-color:#f5c2c4;background:#fff6f6}.t-stats a.red b{color:var(--red)}
.todo.late .t{color:var(--red)}
.cat-tabs{display:flex;gap:6px;flex-wrap:wrap}
.c-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.c-acts .btn{flex:0 0 auto}
.btn.orange-b{border-color:#f3c48b;background:#fff7ec;color:#b45309}
.pay-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--line2);flex-wrap:wrap}
.qk-save{width:100%;justify-content:center;padding:14px;font-size:16px;margin-top:6px}
.qk-dup{display:flex;flex-direction:column;gap:10px}
.qk-pick{width:100%;justify-content:flex-start;text-align:left;padding:14px;flex-wrap:wrap;gap:6px}
.qk-ok{display:flex;gap:14px;align-items:center;color:var(--green)}.qk-ok div{color:var(--ink)}
@media (max-width:560px){.qk-two{grid-template-columns:1fr}}
/* ── 휴대폰: 아래 탭 + 단순 화면 ── */
.bnav,.bnav-sheet,.m-only{display:none}
@media (max-width:860px){
  .mobile-nav{display:none!important}
  .main{padding:12px 12px calc(84px + env(safe-area-inset-bottom))!important}
  .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px rgba(16,34,68,.06)}
  .bnav a,.bnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;color:var(--muted);
    background:none;border:0;padding:4px 0;position:relative;font-weight:600}
  .bnav a.on,.bnav button.on{color:var(--blue)}
  .bnav svg.i{width:22px;height:22px}
  .bnav-add svg.i{background:var(--blue);color:#fff;border-radius:12px;width:40px;height:30px;padding:5px 9px;margin-top:-2px}
  .bnav-add span{color:var(--blue)}
  .bnav-dot{position:absolute;top:0;left:calc(50% + 4px);background:var(--red);color:#fff;font-style:normal;font-size:10px;
    border-radius:9px;padding:0 5px;min-width:16px;line-height:16px}
  .bnav-sheet:not([hidden]){display:flex;position:fixed;inset:0;z-index:70;background:rgba(12,36,72,.35);align-items:flex-end}
  .bnav-panel{background:#fff;width:100%;border-radius:18px 18px 0 0;padding:14px 12px calc(18px + env(safe-area-inset-bottom));
    display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:75vh;overflow:auto}
  .bnav-panel a,.bnav-panel button{display:flex;align-items:center;gap:10px;padding:13px 12px;border-radius:10px;background:var(--gray-l);
    font-size:14.5px;font-weight:600;border:0;width:100%;text-align:left}
  .bnav-panel a.on{background:var(--blue-l);color:var(--blue)}
  .bnav-panel .cnt{margin-left:auto;background:var(--red);color:#fff;font-size:11px;border-radius:10px;padding:1px 7px}
  .bnav-panel form{grid-column:1/-1}
  /* 숨김: 배너·숫자 카드·화면편집·내 정보 글씨 */
  .banner,[data-block=banner],[data-block=kpi],.edit-toggle,.me>div,.me>svg{display:none!important}
  .topbar{gap:10px;margin-bottom:14px}.topbar .ttl h1{font-size:22px}.topbar .ttl p{display:none}
  .search{order:5;width:100%;padding:10px 12px}
  .card{border-radius:12px}
  .table th,.table td{padding:11px 10px}
  .btn{min-height:40px}
  .m-only{display:flex}
  .cd-head .row.wrap>.btn:not(.primary),.cd-head .row.wrap>a.btn{display:none}
  .m-actions{gap:8px;margin-top:12px}.m-actions .btn{flex:1;justify-content:center;padding:12px}
}
@media (max-width:860px){
  .tbl-cust th:nth-child(1),.tbl-cust td:nth-child(1),.tbl-cust th:nth-child(3),.tbl-cust td:nth-child(3),
  .tbl-cust th:nth-child(6),.tbl-cust td:nth-child(6),.tbl-cust th:nth-child(7),.tbl-cust td:nth-child(7){display:none}
  .tbl-lead th:nth-child(1),.tbl-lead td:nth-child(1),.tbl-lead th:nth-child(4),.tbl-lead td:nth-child(4),
  .tbl-lead th:nth-child(5),.tbl-lead td:nth-child(5){display:none}
  .lc-res span{min-width:0;padding:12px 14px}
  .filters .input{width:100%!important}
}
@media (max-width:860px){
  .todo{flex-wrap:wrap;gap:6px 10px;align-items:flex-start}
  .todo>div[style*="width:92px"]{width:auto!important}
  .todo>div[style*="flex:1"]{flex:1 0 100%!important;order:5;padding-left:30px}
  .todo>div[style*="width:130px"],.todo .iconbtn[title^="구글"]{display:none!important}
  .todo .t{white-space:normal}
  .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .tabs::-webkit-scrollbar{display:none}.tabs a{white-space:nowrap;flex:none}
  .filters select,.filters>.btn{display:none}
}
.flash.info{background:var(--blue-ll);color:var(--ink2);border:1px solid #cfe0fb}.flash[hidden]{display:none!important}
/* 고객 화면: 진행 단계 · 한 줄 안내 · 업체 정보 3칸 */
.cd-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line2)}
.cs{display:flex;gap:10px;align-items:flex-start;min-width:0}
.cs i{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:13px;font-weight:700;
  background:var(--gray-l);color:var(--muted);border:2px solid var(--line)}
.cs div{display:flex;flex-direction:column;min-width:0}.cs b{font-size:14px}.cs span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs.done i{background:var(--green);border-color:var(--green);color:#fff}
.cs.cur i{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 4px var(--blue-l)}.cs.cur b{color:var(--blue)}
.cs.bad i{background:var(--red);border-color:var(--red);color:#fff}.cs.bad b{color:var(--red)}
.cs.todo b{color:var(--muted)}
.cd-line1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:14px;background:#fff}
.ci3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ci3 h4{font-size:14px;margin:0 0 10px;color:var(--ink2);display:flex;gap:8px;align-items:baseline}
.ci3 .ikv{grid-template-columns:96px 1fr;font-size:13.5px}
@media (max-width:900px){.ci3{grid-template-columns:1fr;gap:18px}.cd-steps{grid-template-columns:1fr 1fr;row-gap:12px}}
/* ── 2026-10-05 단순화: 9단계 · 서비스 탭 · 서류 묶음 · 인콜 분할 화면 ── */
.p9{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line2)}
.ps{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;min-width:0;position:relative;padding:0 2px}
.ps:not(:last-child):after{content:"";position:absolute;top:13px;left:calc(50% + 16px);right:calc(-50% + 16px);height:2px;background:var(--line)}
.ps.done:not(:last-child):after{background:var(--blue)}
.ps i{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:12px;font-weight:700;background:#fff;color:var(--muted);border:2px solid var(--line);position:relative;z-index:1}
.ps b{font-size:12.5px;white-space:nowrap}.ps span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.ps.done i{background:var(--blue);border-color:var(--blue);color:#fff}.ps.done b{color:var(--ink2)}
.ps.cur i{background:#fff;border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 4px var(--blue-l)}.ps.cur b{color:var(--blue)}
.ps.todo b{color:var(--muted);font-weight:600}
.ps.bad i{background:var(--red);border-color:var(--red);color:#fff}.ps.bad b{color:var(--red)}
@media (max-width:900px){.p9{display:flex;overflow-x:auto;gap:0;scrollbar-width:none}.p9::-webkit-scrollbar{display:none}.ps{flex:0 0 84px}}
.svc-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:14px 24px 0}
.svc-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;font-weight:700;font-size:13.5px;background:#fff;color:var(--ink2)}
.svc-tab.on{border-color:var(--blue);background:var(--blue-ll);color:var(--blue)}
.svc-tab .badge{padding:1px 7px;font-size:11.5px}
.svc-panel{padding:14px 24px 20px}
.svc-next{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--blue-ll);margin:12px 0}
.svc-next.bad{background:#fff1f1;outline:1px solid #fecaca}
.svc-fund{border:1px solid var(--line2);border-radius:12px;padding:12px 14px;background:#fbfcfe}
.svc-fund .fsteps{margin:0 0 10px}
.fund-kv-line{display:flex;flex-wrap:wrap;gap:4px 18px}
.fund-kv-line em{font-style:normal;color:var(--muted);margin-right:5px}
.svc-steps{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;border:1px solid var(--line2);border-radius:12px;background:#fbfcfe}
.sstep{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);padding:4px 8px;border-radius:8px}
.sstep i{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:10.5px;font-weight:700;background:#fff}
.sstep.done{color:var(--ink2)}.sstep.done i{background:var(--blue);border-color:var(--blue);color:#fff}
.sstep.cur{color:var(--blue);font-weight:700;background:var(--blue-l)}.sstep.cur i{border-color:var(--blue);color:var(--blue)}
.sstep small{font-size:11px;font-weight:500}
.docs3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 22px;margin-top:8px}
.dg h4{font-size:13px;margin:6px 0 4px;display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.dg-office h4{color:var(--indigo)}.dg-ceo h4{color:#b45309}.dg-work h4{color:var(--muted)}
.docs3 .ci{padding:5px 0;font-size:13.5px}
@media (max-width:1000px){.docs3{grid-template-columns:1fr}}
.ct-row{padding:10px 0;border-top:1px solid var(--line2)}
.ct-row .pay-row{padding:6px 0;border-bottom:0}
.timeline .ev .pre{white-space:pre-wrap}
.ikv dd{word-break:keep-all}
/* 인콜 DB: 목록 + 오른쪽 패널 */
.lead-split{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:16px;align-items:start}
.lead-panel{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;padding:16px 18px}
.lead-panel .lp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted);text-align:center;padding:60px 10px;font-size:14px}
.lead-panel .lp-empty svg{color:#b8c4d6}
.lp-sec{border-top:1px solid var(--line2);padding:14px 0 4px;margin-top:12px}
.lp-sec h4{font-size:14px;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.lp-kv{grid-template-columns:86px 1fr;font-size:13.5px}
.lead-panel .qk-chips span,.lead-panel .lc-won-btn{padding:8px 12px;font-size:13.5px;min-width:0}
.lead-panel .cd-line{gap:6px 16px;font-size:13.5px}
.tbl-lead tr.on td{background:var(--blue-ll)}.tbl-lead tr.on td:first-child{box-shadow:inset 3px 0 0 var(--blue)}
.lead-list{overflow-x:auto}
.lead-split.lp-open .tbl-lead th:nth-child(1),.lead-split.lp-open .tbl-lead td:nth-child(1),.lead-split.lp-open .tbl-lead th:nth-child(4),.lead-split.lp-open .tbl-lead td:nth-child(4){display:none}
@media (max-width:1300px){.lead-split{grid-template-columns:minmax(0,1fr) 380px}}
@media (max-width:1000px){.lead-split{grid-template-columns:1fr}.lead-panel{position:static;max-height:none}.lead-split.lp-open .lead-list{display:none}}
.card-h label.check{cursor:pointer}
[hidden]{display:none!important}
.table td.empty{display:table-cell!important}
@media (max-width:1000px){.lead-split:not(.lp-open) .lead-panel{display:none}}
@media (max-width:860px){.m-hide{display:none!important}}

.scroll-y{overflow-y:auto}
.linkbtn{background:none;border:0;padding:0 4px;color:var(--blue);cursor:pointer;text-decoration:underline;font:inherit}
/* 고객 화면 2열: 왼쪽 하는 일, 오른쪽 참고 정보 */
.cd-cols{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;align-items:start}
.cd-side .ikv{grid-template-columns:84px minmax(0,1fr)}
.cd-side .form-grid{grid-template-columns:1fr 1fr!important}
@media(max-width:1100px){.cd-cols{grid-template-columns:1fr}}
.cd-side .ci3{grid-template-columns:1fr 1fr}
.cd-side .ci3>div:last-child{grid-column:1/-1}
.cd-side #info .card-h{flex-wrap:wrap;gap:8px}
.cd-side #info .card-h h3{white-space:nowrap}
.cd-side #info .card-h .more{margin-left:0;width:100%}
@media(max-width:1100px){.cd-side .ci3{grid-template-columns:1fr 1fr 1fr}.cd-side .ci3>div:last-child{grid-column:auto}}
.cd-cols .card-h h3{white-space:nowrap}
.kanban .col.dim{opacity:.35}
.cd-cols>*{min-width:0}
/* ── 진행단계 단순화 (dep31) ── */
.cst-form{display:inline-flex}
.input.cst{width:auto;padding:4px 28px 4px 10px;font-size:13px;font-weight:700;border-radius:999px;height:auto}
.cst-active{color:#047857;border-color:#a7f3d0;background-color:#ecfdf5}
.cst-lead,.cst-consulting{color:var(--blue);border-color:#bfdbfe;background-color:#eff6ff}
.cst-hold,.cst-closed{color:#64748b;background-color:#f1f5f9}
.cases{margin-top:14px;border-top:1px solid var(--line2);padding-top:12px}
.cases-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.case{display:grid;grid-template-columns:110px 150px minmax(0,1fr) 128px 64px auto;gap:10px;align-items:center;padding:9px 10px;border-radius:10px;background:#f8fafc;margin-top:6px}
.case.late{background:#fff5f5;box-shadow:inset 3px 0 0 var(--red)}
.case-svc{font-weight:700}
.case-st{display:flex;gap:4px;flex-wrap:wrap}
.case-next{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.case-issue,.svc-issue{grid-column:1/-1;font-size:13px;color:#b45309;background:#fffbeb;border-radius:8px;padding:6px 10px;display:flex;gap:6px;align-items:center}
.svc-issue{margin:8px 0 0}
.case-empty{padding:8px 2px}
.stg{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0 4px}
.stg-i{display:inline-flex;align-items:center;gap:5px;padding:5px 10px 5px 6px;border-radius:999px;background:#f1f5f9;color:#94a3b8;font-size:12.5px;font-weight:600}
.stg-i i{font-style:normal;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;font-size:11px}
.stg-i.done{color:var(--blue);background:var(--blue-ll)}.stg-i.done i{background:var(--blue);color:#fff}
.stg-i.cur{color:#fff;background:var(--blue)}.stg-i.cur i{background:#fff;color:var(--blue)}
.stg-i.cur.out{background:#f59e0b}.stg-i.cur.out i{color:#b45309}
.svc-now{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;background:var(--blue-ll);margin:10px 0 0}
.svc-now.bad{background:#fff1f1;outline:1px solid #fecaca}
.now-l{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0}
.svc-res{margin-top:10px}
.docs-aux{margin-top:14px;border-top:1px dashed var(--line2);padding-top:10px}
.docs-aux>summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:600;list-style:none}
.docs-aux>summary::-webkit-details-marker{display:none}
.docs-aux[open]>summary{margin-bottom:8px}
.stg-res{border-top:1px solid var(--line2);padding-top:10px;margin-top:4px}
.stg-res>summary{cursor:pointer;font-weight:700;font-size:14px}
.stg-out{border-top:1px dashed var(--line2);padding-top:8px}
.input.ct-st{width:auto;padding:2px 24px 2px 8px;font-size:12px;height:auto;border-radius:999px}
.ct-st-done{color:#047857}.ct-st-cancelled{color:#94a3b8}
.btn.xs{padding:3px 8px;font-size:12px}
.board-late{color:var(--red);font-weight:700}
@media(max-width:760px){
  .case{grid-template-columns:1fr auto;gap:4px 8px}
  .case-svc{grid-column:1}.case-st{grid-column:2;justify-content:flex-end}
  .case-next{grid-column:1/-1;white-space:normal}
  .case-due{grid-column:1}.case-who{display:none}
  .case .btn{grid-column:2;grid-row:3}
}
.act4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.card.act{padding:14px 16px}
.card.act.bad{box-shadow:inset 0 3px 0 var(--red)}
.act-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.act-h .n{min-width:26px;text-align:center;padding:2px 8px;border-radius:999px;background:#eef2f7;font-weight:800;font-size:13px}
.act.bad .act-h .n{background:#fee2e2;color:var(--red)}
.act a.it{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line2);font-size:13.5px}
.act a.it>span:first-child{min-width:0}
.act .more-l{display:block;margin-top:6px;font-size:13px;color:var(--blue)}
.unpaid-line{display:flex;gap:6px;align-items:center;padding:10px 14px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:14px}
.month4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.month4>div{background:#f8fafc;border-radius:10px;padding:12px}
.month4 em{display:block;font-style:normal;color:var(--muted);font-size:12.5px}
.month4 b{font-size:26px}.month4 span{font-size:12px;color:var(--muted);margin-left:4px}
.kcard.dim{opacity:.35}
@media(max-width:1100px){.act4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.act4,.month4{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.act4{grid-template-columns:1fr}}
.ctabs{display:flex;gap:4px;border-bottom:2px solid var(--line2);margin:0 0 14px;overflow-x:auto;scroll-margin-top:70px}
.ctabs a{padding:10px 16px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}
.ctabs a.on{color:var(--blue);border-color:var(--blue)}
.ctabs .n{font-size:11.5px;background:#eef2f7;border-radius:999px;padding:1px 7px;margin-left:3px;color:var(--ink2)}
.ctabs .n.red{background:#fee2e2;color:var(--red)}
.pay-sum{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:baseline;margin-top:10px;padding:10px 12px;border-radius:10px;background:#f8fafc}
.pay-sum em{font-style:normal;color:var(--muted);font-size:12.5px;margin-right:6px}
.pay-sum .more{margin-left:auto}
.star{color:#f59e0b;margin-right:3px}
.cpane .ci3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.cpane .ci3{grid-template-columns:1fr}}
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.num{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.num em{font-style:normal;color:var(--muted);font-size:13px;font-weight:600}
.num b{font-size:24px;line-height:1.2}.num b small{font-size:13px;color:var(--muted);font-weight:600;margin-left:2px}
.num span{font-size:12px;color:var(--muted)}
.ref-box>summary{padding:12px 16px;cursor:pointer;color:var(--muted);font-weight:600}
.ref-box a.it{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line2);font-size:13.5px}
/* dep33: 수임 건 상세 → 고객 화면 진행 탭 */
.kv4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.kv4>div{border:1px solid var(--line2);border-radius:10px;padding:8px 12px;background:#fbfcfe;display:flex;flex-direction:column;gap:2px;min-width:0}
.kv4>div.span2{grid-column:span 2}
.kv4 em{font-style:normal;color:var(--muted);font-size:12px}
.kv4 b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kv4>div.bad{border-color:#f5c2c4;background:var(--red-l)}.kv4>div.bad b{color:var(--red)}
.case-more{border-top:1px solid var(--line2);margin-top:12px;padding-top:10px}
.case-more>summary{cursor:pointer;font-weight:700;font-size:14px;color:var(--ink2)}
.case-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.case-box{border:1px solid var(--line2);border-radius:12px;padding:12px 14px;min-width:0}
.case-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
@media (max-width:760px){.kv4{grid-template-columns:1fr 1fr}.case-cols{grid-template-columns:1fr}}
/* 진행 단계 드롭다운 (단계 칸 10개 대신 한 줄) */
.stg-dd{display:flex;align-items:center;gap:10px;margin:12px 0 10px;flex-wrap:wrap}
.stg-dd select.stg-sel{width:auto;flex:0 1 auto;min-width:230px;max-width:100%;font-weight:700;color:#1e3a8a;border:2px solid var(--blue);background-color:var(--blue-ll);padding-top:7px;padding-bottom:7px}
.stg-dd select.stg-sel.out{color:#b45309;border-color:#f59e0b;background-color:#fff7ec}
.stg-bar{flex:1;min-width:80px;max-width:320px;height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}
.stg-bar i{display:block;height:100%;background:var(--blue);border-radius:99px}
.stg-bar.out i{background:#f59e0b}
@media (max-width:760px){.stg-dd select.stg-sel{flex:1 1 100%;min-width:0}.stg-bar{max-width:none}}
/* ── dep35: 휴대폰 업체 화면 가독성 (PC는 그대로) ── */
.m-only-i{display:none}
.kv-all{display:none}
@media (max-width:860px){
  .m-only-i{display:inline}
  .cd-page{font-size:16px;padding-bottom:64px}
  /* 업체 정보 */
  .cd-page .cd-head{padding:16px}
  .cd-page .cd-head h2{font-size:24px!important}
  .cd-mline{font-size:15px;color:var(--muted);margin-top:6px;display:block!important}
  .cd-macts{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
  .cd-macts a,.cd-macts button{display:flex;flex-direction:column;align-items:center;gap:4px;background:#f3f6fb;border:0;border-radius:14px;padding:11px 0;font-size:15px;font-weight:700;color:#1e3a8a}
  .cd-macts .off{opacity:.35;pointer-events:none}
  .cd-macts svg.i{width:22px;height:22px}
  .cd-page .cd-head>.row.between .row.wrap>div>button[data-toggle]{display:none}
  /* 진행 중 수임 건: 한 줄씩 */
  .cd-page .cases{margin-top:14px}
  .cd-page .cases-h b{font-size:18px}
  .cd-page .cases-h .btn{min-height:36px;padding:6px 12px}
  .cd-page .case{display:flex;align-items:center;gap:10px;padding:13px 12px;cursor:pointer;font-size:17px}
  .cd-page .case-svc{font-weight:800}
  .cd-page .case-next,.cd-page .case-who,.cd-page .case>.btn{display:none}
  .cd-page .case-due{margin-left:auto;font-size:15px;font-weight:700}
  .cd-page .case-due::after{content:' ›';color:var(--muted)}
  .cd-page .case-issue{display:none}
  .cd-page .pay-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;background:none;padding:0;margin-top:12px}
  .cd-page .pay-sum>span{background:#f6f8fb;border-radius:12px;padding:10px 4px;text-align:center;display:flex;flex-direction:column;align-items:center;font-size:15px;min-width:0}
  .cd-page .pay-sum em{margin:0 0 2px;font-size:12.5px}
  .cd-page .pay-sum b{font-size:15px;white-space:nowrap}
  .cd-page .special-box.empty:not(.shown){display:none}
  /* 탭: 옆으로 밀기 */
  .cd-page .ctabs{border:0;gap:6px;scrollbar-width:none;margin-bottom:12px}
  .cd-page .ctabs::-webkit-scrollbar{display:none}
  .cd-page .ctabs a{border:0;margin:0;border-radius:999px;background:#fff;padding:10px 16px;font-size:15.5px;color:#4b5563}
  .cd-page .ctabs a.on{background:var(--blue);color:#fff}
  .cd-page .ctabs a.on .n{background:rgba(255,255,255,.25);color:#fff}
  /* 진행 탭 */
  .cd-page .svc-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:14px 14px 0}
  .cd-page .svc-tabs::-webkit-scrollbar{display:none}
  .cd-page .svc-tab{flex:none;font-size:15px;padding:9px 14px;border:0;background:#f3f6fb}
  .cd-page .svc-tab.on{box-shadow:inset 0 0 0 2px var(--blue)}
  .cd-page .svc-tab .badge{display:none}
  .cd-page .svc-add{flex:none;margin-left:0!important;border-style:dashed}
  .cd-page .svc-panel{padding:12px 14px 16px}
  .cd-page .svc-panel>.row.between b{font-size:19px!important}
  .cd-page .stg-dd{margin:12px 0 4px;gap:0}
  .cd-page .stg-dd select.stg-sel{font-size:17px;padding:12px 14px;border-radius:14px}
  .cd-page .stg-bar{flex:1 1 100%;margin-top:10px;height:6px}
  .cd-page .svc-now{display:block;padding:14px;border-radius:16px;margin-top:14px}
  .cd-page .svc-now .now-l{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left}
  .cd-page .svc-now .nl-due{order:-1;font-size:15px}
  .cd-page .svc-now .nl-act{font-size:19px;line-height:1.35}
  .cd-page .now-btns{display:grid!important;grid-template-columns:1fr;margin-top:12px}
  .cd-page .now-btns .btn{min-height:48px;font-size:16px;justify-content:center;border-radius:13px}
  .cd-page .kv4{display:block;margin-top:12px}
  .cd-page .kv4>div{flex-direction:row;justify-content:space-between;align-items:center;border:0;border-top:1px solid #f1f3f6;border-radius:0;background:none;padding:11px 2px}
  .cd-page .kv4>div:first-child{border-top:0}
  .cd-page .kv4 em{font-size:15px}.cd-page .kv4 b{font-size:16px}
  .cd-page .kv4>div.e{display:none}
  .cd-page .kv4.all>div.e{display:flex}.cd-page .kv4.all>div.e b{color:#b6c0cc}
  .cd-page .kv4.none:not(.all){display:none}
  .cd-page .kv-all{display:block;width:100%;text-align:left;background:none;border:0;border-top:1px solid #f1f3f6;padding:12px 2px 2px;font-size:15.5px;font-weight:700;color:#4b5563}
  .cd-page .kv-all::before{content:'▸ '}
  .cd-page .kv-hint{font-size:14px}
  .cd-page .case-more>summary{font-size:15.5px}
  .cd-page .case-box{border:0;padding:0;margin-top:6px}
  .cd-page .case-h b{font-size:17px}
  .cd-page .case-box .todo .t{font-size:16px;white-space:normal}
  .cd-page .case-box .sched{font-size:15px}
  .cd-page .case-box .input{font-size:16px}
  /* 아래 고정 버튼 (메뉴 바로 위) */
  .cd-dock{display:grid!important;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;position:fixed;left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom));z-index:55;background:#fff;border-top:1px solid var(--line);padding:8px 12px}
  .cd-dock a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:46px;border-radius:13px;background:#f3f6fb;font-weight:800;font-size:16px;color:#1e3a8a}
  .cd-dock a.p{background:var(--blue);color:#fff}
  /* 팝업: 아래에서 올라오는 창, 글씨 키움, 날짜칸 넘침 방지 */
  .modal-bg{align-items:flex-end;padding:0}
  .modal{width:100%!important;max-width:100%;border-radius:20px 20px 0 0;max-height:92vh}
  .modal .input,.modal select.input,.modal textarea.input{font-size:16px}
  .modal .field label{font-size:15px}
  .modal label.check{font-size:16px}
  .modal .modal-f .btn{min-height:50px;font-size:16px;flex:1;justify-content:center}
  .input[type=date],.input[type=time]{min-width:0;max-width:100%;-webkit-appearance:none;appearance:none;display:block;text-align:left;min-height:50px;line-height:24px}
  .input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:24px}
  .stg-form .stg-next .form-grid{grid-template-columns:1fr!important}
  .stg-form .stg-res .form-grid{grid-template-columns:1fr 1fr!important}
  .stg-form .stg-res .form-grid>div:empty{display:none}
  .stg-form select.stg-msel{font-size:17px;font-weight:800;color:#1e3a8a;border:2px solid var(--blue);background-color:var(--blue-ll);padding:12px 14px;border-radius:14px}
}
.stg-form select.stg-msel{font-weight:700;color:#1e3a8a;border:2px solid var(--blue);background-color:var(--blue-ll)}
/* ── dep37: 휴대폰 간단 화면 (홈·계약 접수·내 DB·공지) ── */
.mp{max-width:560px;margin:0 auto;font-size:16px}
.mp-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin-bottom:12px}
.mp-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.mp-h b{font-size:17px}.mp-h a{font-size:14px;color:var(--muted)}
.mp-li{display:flex;align-items:center;gap:8px;padding:11px 0;border-top:1px solid #f1f3f6;color:inherit}
.mp-li:first-of-type{border-top:0}
.mp-t{flex:1;min-width:0;display:flex;flex-direction:column;color:inherit;overflow:hidden;text-overflow:ellipsis}
a.mp-li .mp-t{display:block;white-space:nowrap}
.mp-t.b,.mp-nt .b{font-weight:800}
.mp-d{font-size:14px;color:var(--muted);white-space:nowrap}
.mp-s{font-size:14px;color:var(--muted)}
.mp-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex:none;display:inline-block}
.mp-pin{font-size:12px;font-weight:800;color:#dc2626;background:#fee2e2;border-radius:6px;padding:1px 6px;flex:none}
.mp-cnt{background:var(--red);color:#fff;border-radius:9px;font-size:12px;padding:0 7px;margin-left:4px;vertical-align:2px}
.mp-call{margin-left:auto;display:inline-flex;align-items:center;gap:5px;background:var(--blue-l);color:var(--blue);font-weight:800;border-radius:12px;padding:9px 12px;font-size:15px;white-space:nowrap}
.mp-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.mp-kpi div{background:#f6f8fb;border-radius:12px;padding:10px 4px;text-align:center}
.mp-kpi em{display:block;font-style:normal;font-size:13px;color:var(--muted)}
.mp-kpi b{font-size:17px}
.mp-empty{color:var(--muted);font-size:15px;padding:8px 0}
.mp-big{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:16px 0;border-radius:14px;background:var(--blue);color:#fff;font-weight:800;font-size:17px;border:0;margin-top:14px}
.mp-push{display:flex;align-items:center;gap:10px;background:var(--blue);color:#fff;border-radius:16px;padding:14px 16px;margin-bottom:12px;font-weight:700}
.mp-push span{flex:1}.mp-push button{background:#fff;color:var(--blue);border:0;border-radius:10px;padding:8px 14px;font-weight:800}
.mp-form label{display:block;font-size:15.5px;font-weight:700;color:var(--ink2);margin-bottom:14px}
.mp-form label.check{display:flex;align-items:center;gap:8px;font-weight:600}
.mp-form .input{margin-top:7px;font-size:17px;padding:14px;border-radius:13px}
.mp-note{font-size:14px;color:var(--muted);background:#f6f8fb;border-radius:12px;padding:12px;margin:14px 0 0;line-height:1.55}
.mp-lead-t{display:flex;justify-content:space-between;align-items:center;color:inherit}
.mp-lead-t b{font-size:17px}
.mp-new{font-size:12.5px;font-weight:800;background:#fee2e2;color:#b91c1c;border-radius:999px;padding:3px 9px}
.mp-st{font-size:12.5px;font-weight:700;background:#eef2f7;color:#374151;border-radius:999px;padding:3px 9px}
.mp-lead-f{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.mp-nt{display:block;padding:12px 0;border-top:1px solid #f1f3f6;color:inherit}
.mp-nt:first-of-type{border-top:0}
.mp-nt-t{display:flex;align-items:center;gap:6px;font-size:16.5px}
.mp-write>summary{cursor:pointer;font-weight:800;font-size:16px;display:flex;align-items:center;gap:6px}
.mp-write[open]>summary{margin-bottom:12px}
.mp-back{display:inline-block;color:var(--muted);margin-bottom:10px}
.mp-title{font-size:20px;margin:0 0 6px}
.mp-body{white-space:pre-wrap;line-height:1.7;margin-top:14px;font-size:16px}
@media (max-width:860px){
  .mp-page .search{display:none}
  .mp-page .topbar{margin-bottom:10px}
}
/* dep40 인콜 통화 결과·사유 드롭다운 */
.lc-sel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.lc-sel .field:first-child{grid-column:1/3}.lc-sel .lc-won{grid-column:3;grid-row:1}
.lc-sel .field{margin:0}
.lc-sel .lc-won-btn{height:40px;padding:0 16px;font-weight:700;color:var(--green);border-color:#9ad3ad;background:#e7f6ec}
.lc-sel .field:has(.lc-r2){grid-column:2/4}
.lc-sel .lc-r1,.lc-sel .lc-r2{width:100%}
/* dep41 계약: 기간 조회 · 계산서 · 계약 조건 */
.ct-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--line)}
.ct-filter .input{width:auto;padding:6px 10px}.ct-filter input[name=q]{width:170px}
.ct-terms{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ct-tbl .input{padding:6px 8px}.ct-tbl td{padding:6px 4px}
.ct-grid{grid-template-columns:minmax(0,1fr)}
.ct-grid>.card:first-child .card-b{overflow-x:auto}
/* dep43 전체 현황: 공지 팝업 · 기관 바로가기 · 자료실 */
.np-back{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px}
.np-back[hidden]{display:none}
.np-box{background:#fff;border-radius:16px;width:min(460px,100%);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.np-h,.np-f{display:flex;align-items:center;justify-content:space-between;padding:14px 18px}
.np-h{border-bottom:1px solid var(--line)}.np-f{border-top:1px solid var(--line);gap:8px}
.np-b{overflow:auto;padding:4px 18px}
.np-item{display:block;padding:12px 0;border-top:1px solid #f1f3f6;color:inherit}.np-item:first-child{border-top:0}
.np-body{font-size:14px;color:#4b5563;margin:4px 0;white-space:pre-wrap}
.hl-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hl-links{display:flex;flex-wrap:wrap;gap:8px}
.hl-file{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid #f1f3f6;color:inherit;font-size:14px}.hl-file:first-child{border-top:0}
.hl-file .ellipsis{flex:1;min-width:0}
.lib-up{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:860px){.hl-grid{grid-template-columns:1fr}.np-item b{font-size:17px}.np-body{font-size:15.5px}}
/* dep44 Q&A */
.qna-guide details{border-top:1px solid var(--line);padding:12px 18px}.qna-guide details:first-child{border-top:0}
.qna-guide summary{cursor:pointer;font-size:15.5px}.qna-guide p{margin:8px 0 2px;color:#374151;line-height:1.65}
.qna-new{padding:14px 18px}.qna-new summary{cursor:pointer}
.qna-post{padding:18px 20px}.qna-body{white-space:pre-wrap;line-height:1.65;margin-top:10px;color:#374151}
.qna-img{display:block;max-width:100%;margin-top:12px;border:1px solid var(--line);border-radius:10px}
/* dep46 인콜: 사전정보(폐업·채무조정) */
.lp-pre{background:#f6f8fb;border-radius:12px;padding:12px 14px;margin:6px 0 12px}
.lp-pre-row{display:flex;align-items:baseline;gap:10px;padding:3px 0;font-size:14.5px}
.lp-pre-row span{width:110px;color:#6b7280;flex:none}.lp-pre-row em{font-style:normal;font-size:13px;color:#4b5563}
.lp-pre-all summary{cursor:pointer}
.share-in{width:70px;padding:4px 6px;text-align:right;display:inline-block}
.it-roles{display:flex;gap:10px;padding:0 8px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
/* dep50 진행 현황: 업체별 묶음 */
.bg-table .bg-grp{border-top:2px solid #cfd8e3}
.bg-co{background:#f6f8fb;vertical-align:top;border-right:1px solid var(--line);cursor:default}
.bg-sum{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.bg-other td:not(.bg-co){opacity:.62}
.bg-grp:nth-of-type(odd) td{background:#f3f5f8}.bg-grp:nth-of-type(even) td{background:#fff}
.bg-head{cursor:pointer}.bg-head td{border-top:1px solid #d9e0e8;padding-top:12px;padding-bottom:12px}
.bg-arrow{display:inline-block;width:14px;color:#6b7280;transition:transform .15s}.bg-grp.open .bg-arrow{transform:rotate(90deg)}
.bg-chips{display:flex;flex-wrap:wrap;gap:6px}.bg-chip{font-size:13px;font-weight:700}.bg-chip em{font-style:normal;margin-left:2px}.bg-chip-o{opacity:.6}
/* dep52 공지 = 첫 화면: 바로가기 · 기관 북마크 */
.hm{margin-bottom:16px}
.hm-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.hm-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:inherit}
.hm-tile:hover{border-color:#9fbef7}.hm-tile b{font-size:15.5px}.hm-tile span{font-size:12.5px;color:#6b7280}
.hm-bm{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.hm-bm-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.hm-bm-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.hm-bm-i{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;color:inherit;font-size:13.5px}
.hm-bm-i:hover{background:#f3f6fb}
.hm-ic{position:relative;width:26px;height:26px;border-radius:7px;flex:none;background:#eaf2ff;color:#1f63e0;font-style:normal;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.hm-ic img{position:absolute;inset:0;width:26px;height:26px;border-radius:7px;background:#fff}
.hm-bm-i span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* dep55 수임 건: 버튼 펼침 · 메모 칸 */
.case-acts form{margin:0}
.case-del{color:var(--red);border-color:#f3b4b4;background:#fff5f5}
.case-memo{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;margin-top:10px;background:#fffbea;border:1px solid #f3e3a1;border-radius:10px;padding:8px 10px}
.case-memo textarea{min-height:40px;resize:vertical}
@media (max-width:860px){.case-memo{grid-template-columns:1fr}}

/* dep56 색 정리: 남색 + 회색, 빨강은 지연·삭제만 */
:root{--blue:#1e3a5f;--blue-d:#152b47;--blue-l:#eef1f5;--blue-ll:#f6f8fa;
  --green:#1e3a5f;--green-l:#e8edf4;--orange:#4b5563;--orange-l:#f1f3f6;--red:#b42318;--red-l:#fdf1f0;
  --purple:#4b5563;--purple-l:#f1f3f6;--teal:#4b5563;--teal-l:#f1f3f6;--pink:#4b5563;--pink-l:#f1f3f6;
  --indigo:#4b5563;--indigo-l:#f1f3f6;--cyan:#4b5563;--cyan-l:#f1f3f6;--yellow:#6b7280}
.badge.blue,.badge.purple,.badge.teal,.badge.pink,.badge.orange,.badge.indigo,.badge.cyan{background:#f1f3f6;color:#374151}
.badge.green{background:#1e3a5f;color:#fff}
.badge.red{background:#fff;color:#b42318;box-shadow:inset 0 0 0 1px #f1c0bb}
.lc-sel .lc-won-btn{color:#1e3a5f;border-color:#c9d3e0;background:#fff}
.case-del{color:#b42318;border-color:#f1c0bb;background:#fff}
.orange,.text-orange{color:#374151!important}
/* dep56 고객 화면: 위 목록은 아래 탭과 겹쳐서 PC에선 숨김 · 탭 2줄 · 2단 */
@media (min-width:861px){.cases{display:none}}
.svc-tab2{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;min-width:190px}
.svc-tab2 .st2{font-size:12.5px;color:#6b7280;font-weight:500}
.case-2col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:14px;align-items:start;margin-top:10px}
.case-2col .kv4{grid-template-columns:repeat(3,minmax(0,1fr))}
.case-memo.c2r{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:0;height:100%;background:#fafbfc;border-color:#e5e7eb}
.case-memo.c2r textarea{flex:1;min-height:120px}.case-memo.c2r .btn{align-self:flex-end}
@media (max-width:860px){.case-2col{grid-template-columns:1fr}}
.special-box{padding:8px 14px!important}
/* dep57 오와 열 맞춤 */
.btn{height:38px;padding-top:0;padding-bottom:0;justify-content:center;white-space:nowrap}
.btn.sm{height:32px;min-width:64px}
.svc-tabs{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;align-items:stretch}
.svc-tabs .svc-add{grid-column:-2/-1;justify-self:end;align-self:center}
.svc-tab2{min-width:0;height:100%;justify-content:center}
.svc-tab2 .st2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.case-acts{justify-content:flex-end}
.case-acts .btn{min-width:96px}
.case-2col .c2l>*{margin-left:0}
.stg-dd{display:grid!important;grid-template-columns:72px 240px 1fr auto;align-items:center;gap:10px}
.svc-now{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px}
.kv4>div{min-height:62px;display:flex;flex-direction:column;justify-content:center}
.case-memo.c2r .btn{min-width:96px}
/* 고객관리 업체 정보 · 계약 관리 (dep58) */
.pf-h{margin:14px 0 6px;font-size:13px;color:var(--muted)}
.pf-grid{display:grid;grid-template-columns:repeat(3,110px minmax(0,1fr));gap:0;margin:0;border-top:1px solid var(--line2)}
.pf-grid dt,.pf-grid dd{margin:0;padding:8px 10px;border-bottom:1px solid var(--line2);font-size:13px;min-height:36px}
.pf-grid dt{background:#f6f7f9;color:var(--muted)}
.pf-grid dt.wide{grid-column:1}.pf-grid dd.wide{grid-column:2/-1}
@media(max-width:900px){.pf-grid{grid-template-columns:100px minmax(0,1fr)}.pf-grid dt.wide,.pf-grid dd.wide{grid-column:auto}}
.ct-cur{padding:10px 12px;background:#f6f7f9;border-radius:8px;margin-bottom:10px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ctm-tbl td,.ctm-tbl th{vertical-align:middle}.ctm-tbl .nw{white-space:nowrap}.ctm-tbl .r{text-align:right}
.bg-stg{white-space:nowrap}
/* dep59: 수임 건 구분 · 단계 변경 날짜 묶음 */
.svc-tabs .svc-tab.on{background:var(--primary,#1e3a5f);border-color:var(--primary,#1e3a5f);color:#fff;box-shadow:none}
.svc-tabs .svc-tab.on b,.svc-tabs .svc-tab.on .st2{color:#fff}
.svc-tabs .svc-tab.on .badge{background:rgba(255,255,255,.18);color:#fff}
.svc-panel{border-top:3px solid var(--primary,#1e3a5f);margin-top:12px;padding-top:14px}
.svc-title{font-size:20px;color:var(--primary,#1e3a5f)}
.stg-grp{border:1px solid var(--line2);border-radius:10px;padding:10px 12px 2px;margin-top:10px}
.stg-grp:nth-of-type(2n){background:#f7f8fa}
.stg-grp h5{margin:0 0 6px;font-size:13px;color:var(--primary,#1e3a5f)}
/* dep61: 휴대폰 — 옆으로 밀지 않고 위아래로만 (탭은 줄바꿈, 표는 카드형) */
@media(max-width:760px){
  .tabs,.ctabs,.cat-tabs,.mobile-nav,.steps,.p9{flex-wrap:wrap!important;overflow-x:visible!important}
  .tabs a,.ctabs a,.mobile-nav a{flex:0 0 auto!important}
  .card,.card-b,.lead-list,.card-b:has(> .table){overflow-x:visible!important}
  .ps{flex:0 0 calc(33.3% - 4px)!important}
  table.mtbl,table.mtbl>tbody:not([hidden]),table.mtbl>tbody>tr:not([hidden]),table.mtbl>tbody>tr>td{display:block;width:100%!important;max-width:none!important}
  table.mtbl>thead,table.mtbl>colgroup{display:none}
  table.mtbl>tbody>tr:not([hidden]){border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:8px;background:#fff}
  table.mtbl>tbody>tr>td{border:0!important;padding:4px 0!important;display:flex;flex-wrap:wrap;gap:4px 8px;justify-content:flex-start;align-items:center;text-align:left!important;white-space:normal!important;min-height:0}
  table.mtbl>tbody>tr>td::before{content:attr(data-label);color:var(--muted);font-size:12px;font-weight:600;flex:0 0 76px}
  table.mtbl>tbody>tr>td[data-label=""]{justify-content:flex-start;text-align:left!important}
  table.mtbl>tbody>tr>td[data-label=""]::before{display:none}
  table.mtbl>tbody>tr>td:empty{display:none}
  table.mtbl .ellipsis{white-space:normal}
  .row{flex-wrap:wrap}
  .act4>*,.month4>*,.act a.it>*{min-width:0}.act a.it .nowrap{white-space:normal}
  .kanban-wrap{overflow-x:visible}.kanban{grid-template-columns:1fr!important;min-width:0!important}.kanban .col{min-height:0}
}
