:root{
  --bg:#f3f5f9; --card:#fff; --ink:#1b2333; --muted:#677189; --line:#d9dee8; --line2:#eef1f6;
  --navy:#13254d; --blue:#1d4ed8; --blue-soft:#e8efff; --accent:#0f766e; --danger:#c62828;
  --warn-bg:#fff6dd; --warn:#8a5a00; --ok-bg:#e6f6ee; --ok:#11643c; --err-bg:#fdeaea;
  --font:"Pretendard","Malgun Gothic","맑은 고딕","Apple SD Gothic Neo",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--font)}
a{color:var(--blue);text-decoration:none} a:hover{text-decoration:underline}
h1{font-size:20px;margin:6px 0 14px} h2{font-size:16px;margin:22px 0 10px} h3{font-size:15px;margin:0 0 10px}
.muted{color:var(--muted)} .small,small{font-size:12px} .err{color:var(--danger)} .nowrap{white-space:nowrap}
code{background:var(--line2);padding:1px 5px;border-radius:4px;font-size:12px}

/* header */
.top{display:flex;align-items:center;gap:18px;background:var(--navy);color:#fff;padding:0 18px;height:50px;position:sticky;top:0;z-index:30}
.brand{color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;white-space:nowrap}
.brand:hover{text-decoration:none}
.logo{width:22px;height:22px;border-radius:6px;background:url(icon.svg) center/cover;display:inline-block}
.logo.big{width:40px;height:40px;border-radius:10px}
.top nav{display:flex;gap:2px;align-items:center;flex:1;flex-wrap:wrap}
.top nav>a,.menu>summary{color:#c9d4ee;padding:7px 11px;border-radius:6px;cursor:pointer;list-style:none;white-space:nowrap}
.top nav>a:hover,.menu>summary:hover{background:#ffffff14;color:#fff;text-decoration:none}
.top nav>a.on{background:#ffffff22;color:#fff}
.menu{position:relative} .menu>summary::-webkit-details-marker{display:none}
.menu>summary::after{content:" ▾";font-size:10px}
.menu-list{position:absolute;top:38px;left:0;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0002;min-width:180px;padding:6px;display:flex;flex-direction:column}
.menu-list a{color:var(--ink);padding:8px 10px;border-radius:5px} .menu-list a:hover{background:var(--blue-soft);text-decoration:none}
.who{display:flex;align-items:center;gap:10px;white-space:nowrap}
.who a{color:#fff} .who form{margin:0}
.link{background:none;border:0;color:#c9d4ee;cursor:pointer;font:inherit;padding:0} .link:hover{color:#fff}
.role{font-size:11px;padding:1px 7px;border-radius:10px;background:#ffffff22}
.role-admin{background:#f59e0b;color:#111} .role-editor{background:#38bdf8;color:#062033}

main.wrap{max-width:1180px;margin:0 auto;padding:18px}
main.wide{padding:14px 18px}
main.mid{max-width:1560px;margin:0 auto;padding:18px}
.foot{color:var(--muted);font-size:12px;text-align:center;padding:24px 0 30px}

/* common */
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 20px;margin-bottom:16px}
.card.narrow,.narrow{max-width:640px} .center{text-align:center;margin:40px auto}
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 14px;border-radius:7px;font:inherit;cursor:pointer;line-height:1.3;white-space:nowrap}
.btn:hover{background:var(--line2);text-decoration:none}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff} .btn.primary:hover{background:#1e40af}
.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff} .btn.accent:hover{background:#115e59}
.btn.danger{color:var(--danger);border-color:#efc4c4} .btn.danger:hover{background:var(--err-bg)}
.btn.sm{padding:3px 8px;font-size:12px} .btn.wide{width:100%;padding:10px}
.btn[disabled]{opacity:.35;cursor:default}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;border:1px solid}
.flash-ok{background:var(--ok-bg);color:var(--ok);border-color:#bfe5d0}
.flash-error{background:var(--err-bg);color:var(--danger);border-color:#f2c5c5}
.flash-warn{background:var(--warn-bg);color:var(--warn);border-color:#f0dca0}
.flash-info{background:var(--blue-soft);color:var(--navy);border-color:#cbd8fb}
input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 9px;background:#fff;color:var(--ink);min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid #93b4ff;border-color:var(--blue)}
textarea{width:100%;resize:vertical}
input.sm{padding:3px 6px;font-size:12px;width:130px}
.form label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);margin-bottom:10px}
.form label em{color:var(--danger);font-style:normal}
.form input,.form select{color:var(--ink)}
.form.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.form.grid3,.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}
.span2{grid-column:span 2} .span3{grid-column:1/-1}
.form.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end} .form.row label{margin:0}
.btns{display:flex;gap:8px;margin-top:6px}
label.inl{display:inline-flex;flex-direction:row;align-items:center;gap:6px;color:var(--ink)}
.ovbox{border:1px dashed #9bb4f3;border-radius:8px;padding:10px 12px;margin:4px 0 12px;background:#f7f9ff}
.ovbox summary{cursor:pointer;color:var(--navy);font-size:13px}
.ovbox .inner{margin-top:10px}
.crumb{margin-bottom:8px;font-size:13px}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.head-row h1,.head-row h2{margin:10px 0}
.actions{display:flex;gap:8px} .actions form,td form{display:inline;margin:0}
.info{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 18px;margin:0}
.info dt{font-size:12px;color:var(--muted)} .info dd{margin:0;font-weight:500;word-break:break-all}
.memo{margin-top:14px;background:#fafbfd;border:1px solid var(--line2);border-radius:8px;padding:10px 12px}
.memo pre,.pre{white-space:pre-wrap;font:inherit;margin:4px 0 0}

/* toolbar */
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.search{flex:1;min-width:260px;padding:8px 12px;font-size:14px} .search.sm{flex:0 1 260px;min-width:180px}
.count{color:var(--muted);margin-left:auto}

/* grid (excel-like) */
.grid-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:8px;max-height:calc(100vh - 215px)}
.grid{border-collapse:separate;border-spacing:0;font-size:12.5px;min-width:100%}
.grid th{position:sticky;top:0;background:#e9eef7;color:#33405c;font-weight:600;padding:7px 8px;border-bottom:1px solid #c8d1e1;border-right:1px solid var(--line);white-space:nowrap;z-index:2;text-align:left}
.grid td{padding:5px 8px;border-bottom:1px solid var(--line2);border-right:1px solid var(--line2);vertical-align:top;background:#fff}
.grid tr.gstart td{border-top:1px solid #c9d1df}
.grid tbody tr:hover td{background:#f5f8ff}
.grid td.col-no,.grid th.col-no{position:sticky;left:0;z-index:1;min-width:46px;text-align:center}
.grid th.col-no{z-index:3}
.grid td.col-carrier,.grid th.col-carrier{position:sticky;left:46px;z-index:1;min-width:84px;max-width:84px;width:84px;text-align:center}
.grid th.col-carrier{z-index:3}
.grid td.col-name,.grid th.col-name{position:sticky;left:130px;z-index:1;min-width:160px;max-width:200px;box-shadow:1px 0 0 #c8d1e1}
.grid th.col-name{z-index:3}
.grid td.col-name a{font-weight:600}
.col-kind,.col-open_date,.col-carrier_from,.col-carrier_to,.col-status,.col-line_count,.col-base_fee,.col-phones{white-space:nowrap}
.col-note,.col-memo{min-width:260px;max-width:340px}
.col-pbx_ip,.col-sbc,.col-vaccount{white-space:nowrap}
.col-line_count,.col-base_fee,.col-phones{text-align:right}
td.ov{color:var(--blue);font-weight:500}
.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}
tr.st-해지 td:not([rowspan]){color:#98a0b0}
.small-grid{font-size:12.5px} .small-grid td.col-note{min-width:240px}
.ovcell div{white-space:nowrap} .ovcell small{color:var(--muted)}
.empty{text-align:center;color:var(--muted);padding:30px!important}
.legend{font-size:12px;color:var(--muted);margin:8px 2px}
.ov-sample,.ovtxt{color:var(--blue);font-weight:600}
.pl{white-space:nowrap}

.badge{display:inline-block;font-size:11px;padding:1px 7px;border-radius:9px;background:var(--line2);color:var(--muted);white-space:nowrap;font-weight:600}
.b-사용{background:#e1f5ea;color:#11643c} .b-해지{background:#eceef2;color:#7a8296}
.b-정지{background:#fff1d6;color:#8a5a00} .b-확인필요{background:#fde8e8;color:#b42318}
.b-회선없음{background:#eceef2;color:#7a8296}
.a-등록{background:#e1f5ea;color:#11643c} .a-수정{background:var(--blue-soft);color:var(--blue)}
.a-삭제{background:#fde8e8;color:#b42318} .a-복구{background:#fff1d6;color:#8a5a00}
.a-가져오기,.a-내보내기,.a-백업{background:#ede9fe;color:#5b21b6}

/* list tables */
.list{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:12px}
.list th{background:#e9eef7;text-align:left;padding:8px 10px;font-weight:600;font-size:13px}
.list td{padding:7px 10px;border-top:1px solid var(--line2)}
.list tr.dim td{opacity:.55}
form.inline{display:flex;gap:6px;align-items:center}

/* timeline */
.timeline{display:flex;flex-direction:column;gap:8px}
.ev{background:#fff;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;padding:9px 14px}
.ev-수정{border-left-color:var(--blue)} .ev-등록{border-left-color:#16a34a} .ev-삭제{border-left-color:var(--danger)} .ev-복구{border-left-color:#d97706}
.ev-head{font-size:13px} .ts{font-variant-numeric:tabular-nums;color:var(--muted)}
.ev-sum{margin:2px 0 0}
.chg{border-collapse:collapse;margin-top:6px;font-size:12.5px}
.chg th{text-align:left;color:var(--muted);font-weight:500;padding:2px 12px 2px 0;white-space:nowrap;vertical-align:top}
.chg td{padding:2px 6px;vertical-align:top;white-space:pre-wrap;max-width:440px}
.chg .old{color:#b42318;text-decoration:line-through;text-decoration-color:#e8a3a3}
.chg .new{color:#11643c;font-weight:500} .chg .arrow{color:var(--muted)}
.pager{display:flex;gap:6px;justify-content:center;margin:16px} .pager a,.pager b{padding:4px 9px;border-radius:5px} .pager b{background:var(--blue);color:#fff}

/* login */
body.login-page{background:linear-gradient(160deg,#13254d 0%,#1d4ed8 60%,#7dd3fc 130%);min-height:100vh}
main.login-wrap{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;padding:16px}
body.login-page .foot{color:#ffffffaa}
.login-card{background:#fff;border-radius:14px;padding:28px 28px 20px;width:100%;max-width:370px;box-shadow:0 20px 50px #0004}
.login-card label{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;color:var(--muted);font-size:13px}
.login-card input{padding:10px 12px;font-size:15px}
.login-brand{display:flex;gap:12px;align-items:center;margin-bottom:22px}
.login-brand b{display:block;font-size:17px} .login-brand small{color:var(--muted)}
.hint{color:var(--muted);font-size:12px;text-align:center;margin:14px 0 0}

@media (max-width:820px){
  .top{height:auto;flex-wrap:wrap;padding:8px 12px;gap:6px}
  .top nav{order:3;flex:0 0 100%;overflow-x:auto;flex-wrap:nowrap}
  .search{min-width:0;flex:1 1 100%}
  .who{margin-left:auto}
  main.wrap,main.wide{padding:12px}
  .form.grid2,.form.grid3,.grid3{grid-template-columns:1fr}
  .span2,.span3{grid-column:auto}
  .grid td.col-name,.grid th.col-name,.grid td.col-carrier,.grid th.col-carrier{position:static;box-shadow:none}
  .count{margin-left:0;width:100%}
  .grid-wrap{max-height:none}
}

/* ---- BlueskyERP: 홈 / 모듈 ---- */
.subnav{display:flex;align-items:center;gap:4px;background:#fff;border-bottom:1px solid var(--line);padding:0 18px;height:42px;position:sticky;top:50px;z-index:25;overflow-x:auto}
.subnav-title{font-weight:700;color:var(--navy);margin-right:12px;white-space:nowrap}
.subnav a{color:var(--muted);padding:10px 12px;border-bottom:2px solid transparent;white-space:nowrap}
.subnav a:hover{color:var(--ink);text-decoration:none}
.subnav a.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:600}
.home-head h1{margin-bottom:2px} .home-head p{margin:0 0 18px}
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:10px}
.mod-card{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;color:var(--ink);transition:border-color .15s,box-shadow .15s}
a.mod-card:hover{border-color:#9bb4f3;box-shadow:0 6px 18px #1d4ed81a;text-decoration:none}
.mod-card.soon{background:#f8f9fb;color:var(--muted)}
.mod-top{display:flex;align-items:center;gap:10px;font-size:16px}
.mod-top .badge{margin-left:auto}
.mod-card p{margin:8px 0 12px;font-size:13px;color:var(--muted)}
.mod-icon{width:34px;height:34px;border-radius:9px;background:var(--blue-soft);display:inline-block;position:relative;flex:none}
.mod-icon::after{content:"";position:absolute;inset:9px;border-radius:3px;border:2px solid var(--blue)}
.i-kct::after{border-radius:50%}
.i-stock::after{border-color:#0f766e} .i-stock{background:#e2f4f1}
.i-numbers::after{border-color:#b45309;border-radius:2px 9px} .i-numbers{background:#fdf1e2}
.mod-stats{display:flex;gap:18px}
.mod-stats span{display:flex;flex-direction:column;font-weight:700;font-size:17px}
.mod-stats small{font-weight:400;color:var(--muted);font-size:11px}
.mod-stats .warn{color:#b42318}
.mod{font-size:11px;padding:1px 6px;border-radius:4px;background:var(--navy);color:#fff}
@media (max-width:820px){ .subnav{top:auto;position:static;padding:0 12px} }

/* ---- OTP ---- */
.otp-input{font-size:26px;letter-spacing:8px;text-align:center;font-variant-numeric:tabular-nums;padding:10px 12px}
.login-card .otp-input{width:100%}
.rc-box{margin-top:14px;font-size:13px} .rc-box summary{cursor:pointer;color:var(--muted)} .rc-box form{margin-top:10px}
.otp-card{max-width:620px;margin:20px auto}
body.login-page .otp-card{margin-top:40px}
.otp-steps{padding-left:20px} .otp-steps li{margin-bottom:16px}
.qr-wrap{margin:10px 0;display:inline-block;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fff}
.qr-wrap svg{display:block;max-width:100%;height:auto}
.secret{font:600 18px/1.4 ui-monospace,Consolas,monospace;letter-spacing:1px;background:var(--line2);padding:8px 10px;border-radius:6px;word-break:break-all}
.otp-confirm{display:flex;gap:8px;margin-top:8px} .otp-confirm .otp-input{width:200px}
.codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}
.codes code{font:600 17px ui-monospace,Consolas,monospace;padding:8px;text-align:center;background:var(--line2)}
@media print{ .top,.subnav,.foot,.btn{display:none!important} }

.mobile-only{display:none}
@media (max-width:820px){ .mobile-only{display:block} }

/* =================================================================== 업무 게시판 (네이버웍스 스타일) */
main.bd-main{padding:0;max-width:none}
.bd{background:#fff;min-height:calc(100vh - 50px);display:flex;flex-direction:column}
body:has(main.bd-main) .foot{display:none}
.ic{width:18px;height:18px;flex:none;display:inline-block;vertical-align:-4px}
.bd-top{display:flex;align-items:center;gap:22px;height:56px;padding:0 20px 0 14px;border-bottom:1px solid #e6e8ee;background:#fff}
.bd-brand{display:flex;align-items:center;gap:9px;width:216px;color:#1b2333;font-size:19px;font-weight:600}
.bd-brand:hover{text-decoration:none}
.bd-brand .brand-ic{width:28px;height:28px;color:#b15cf3}
.bd-gsearch{flex:0 1 480px;display:flex;align-items:center;gap:8px;background:#f1f3f6;border-radius:20px;padding:0 16px;height:38px;color:#5f6b7a}
.bd-gsearch input{border:0;background:transparent;flex:1;padding:0;font-size:13.5px;outline:none}
.bd-gsearch:focus-within{background:#fff;box-shadow:0 0 0 1.5px #b15cf3}
.bd-body{display:flex;flex:1;min-height:0}
.bd-side{width:240px;flex:none;background:#f7f8fa;border-right:1px solid #e6e8ee;padding:14px 0 30px;position:sticky;top:50px;height:calc(100vh - 50px - 56px);overflow-y:auto}
.bd-write{display:block;margin:0 12px 14px;height:44px;line-height:44px;text-align:center;border-radius:8px;color:#fff;font-weight:700;font-size:15px;background:#b15cf3;box-shadow:0 2px 6px #b15cf333}
.bd-write:hover{background:#9f45e6;text-decoration:none}
.bd-mtoggle{display:none;margin:0 12px 8px;width:calc(100% - 24px);background:#fff;border:1px solid #d9dde5;border-radius:6px;padding:7px;font:inherit;font-size:13px;color:#3b4456;cursor:pointer}
.bd-bfilter{display:flex;align-items:center;margin:0 12px 10px;background:#eceef2;border-radius:18px;padding:0 12px;height:34px;color:#5f6b7a}
.bd-bfilter input{border:0;background:transparent;flex:1;font-size:12.5px;padding:0;outline:none;min-width:0}
.bd-tree{padding:0 8px}
.bd-tree-head{display:flex;align-items:center;justify-content:space-between;padding:6px 4px}
.bd-fold{background:none;border:0;font:inherit;cursor:pointer;color:#3b4456;display:flex;align-items:center;gap:6px;padding:4px 2px;width:100%;text-align:left}
.bd-fold::before{content:"";width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #6b7486;transition:transform .15s;flex:none}
.bd-fold[aria-expanded=false]::before{transform:rotate(-90deg)}
.bd-tree-head .bd-fold{font-size:12.5px;width:auto}
.bd-mng{font-size:12px;color:#3b4456;border:1px solid #d9dde5;background:#fff;border-radius:4px;padding:2px 10px}
.bd-mng:hover{text-decoration:none;background:#f1f3f6}
.bd-list{list-style:none;margin:0;padding:0}
.bd-list.sub{padding-left:12px}
.bd-folder>.bd-fold{font-size:14px;padding:7px 4px;color:#1b2333}
.bd-folder>.bd-fold .ic{color:#4b5568}
.bd-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;color:#1b2333;font-size:14px}
.bd-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.bd-item .ic{color:#4b5568}
.bd-item:hover{background:#eceef2;text-decoration:none}
.bd-item.on{background:#e3ebfd;color:#1d5bd8;font-weight:600}
.bd-item.on .ic{color:#1d5bd8}
.bd-item.notice{font-weight:600}
.bd-item .cnt{font-style:normal;font-size:11px;background:#b15cf3;color:#fff;border-radius:9px;padding:0 6px;line-height:17px;font-weight:600}
.bd-none{font-size:12px;color:#98a0b0;padding:4px 12px 6px 34px}
.bd-content{flex:1;min-width:0;padding:18px 28px 60px}
.bd-content>.flash{margin-bottom:14px}

/* 목록 */
.bd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:2px solid #1b2333}
.bd-head h1{font-size:21px;margin:0}
.bd-total{font-size:15px;color:#b15cf3;font-weight:600;margin-left:4px}
.bd-desc{margin:4px 0 0;color:var(--muted);font-size:13px}
.bd-head-r{display:flex;gap:8px;align-items:center}
.bd-lsearch{display:flex;align-items:center;gap:6px;border:1px solid #d9dde5;border-radius:6px;padding:0 10px;height:34px;color:#6b7486}
.bd-lsearch input{border:0;padding:0;outline:none;width:180px}
.bd-qinfo{font-size:13px;color:var(--muted);margin:10px 0 0}
.bd-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px}
.bd-table th{font-weight:500;color:#6b7486;font-size:13px;text-align:left;padding:10px 8px;border-bottom:1px solid #e6e8ee}
.bd-table td{padding:11px 8px;border-bottom:1px solid #eef0f4;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd-table .num{text-align:right;color:#6b7486}
.bd-table .au,.bd-table .dt{color:#4b5568;font-size:13px}
.bd-table .ttl a{color:#1b2333}
.bd-table tr.unread .ttl a{font-weight:700}
.bd-table tr:hover td{background:#fafbfc}
.bd-table tr.pinned td{background:#fbf7ff}
.bd-table .bname a{color:#6b7486;font-size:13px}
.tag{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:600;border-radius:4px;padding:1px 6px;margin-right:5px;vertical-align:1px}
.tag .ic{width:12px;height:12px;vertical-align:-1px}
.tag.pin{background:#b15cf3;color:#fff}
.tag.pre{background:#eef1f6;color:#4b5568}
.cc{color:#b15cf3;font-size:12.5px;font-weight:600;margin-left:3px}
.fi{color:#8a93a3;margin-left:3px}.fi .ic{width:14px;height:14px;vertical-align:-2px}
.nw{display:inline-block;font-size:10px;font-weight:800;color:#fff;background:#ff5a4f;border-radius:50%;width:15px;height:15px;line-height:15px;text-align:center;margin-left:4px;vertical-align:1px}
.bd-empty{text-align:center;color:#98a0b0;padding:60px 0!important}

/* 글 보기 */
.bd-actions{display:flex;gap:6px;align-items:center;padding-bottom:12px;border-bottom:1px solid #e6e8ee}
.bd-actions .sp{flex:1}.bd-actions form{display:inline;margin:0}
.bd-post{padding:18px 0 10px}
.bd-crumb{font-size:13px;color:#b15cf3;font-weight:600}
.bd-ptitle{font-size:22px;margin:6px 0 12px;line-height:1.4;word-break:break-all}
.bd-meta{display:flex;gap:10px;align-items:center;color:#4b5568;font-size:13px;padding-bottom:16px;border-bottom:1px solid #eef0f4;flex-wrap:wrap}
.av{width:28px;height:28px;border-radius:50%;background:#e9dcfb;color:#7b2fc2;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none}
.bd-files{margin:16px 0 4px;border:1px solid #e6e8ee;border-radius:8px;background:#fafbfc;padding:10px 14px}
.bd-files-h{font-size:13px;color:#4b5568;margin-bottom:4px}
.bd-files ul{margin:0;padding:0;list-style:none}
.bd-files li{padding:4px 0;font-size:13.5px;display:flex;gap:10px}
.bd-files li a{color:#1d5bd8;word-break:break-all}
.post-body{font-family:"맑은 고딕","Malgun Gothic",sans-serif;font-size:14px;line-height:1.7;color:#1b2333;word-break:break-word;overflow-wrap:anywhere;padding:22px 0;min-height:120px}
.post-body p{margin:0}
.post-body img{max-width:100%;height:auto}
.post-body video{max-width:100%;max-height:540px;background:#000;border-radius:6px}
.post-body table{border-collapse:collapse;max-width:100%}
.post-body td,.post-body th{vertical-align:middle}
.post-body blockquote{margin:0 0 0 40px}
.post-body ul,.post-body ol{margin:0;padding-left:26px}
.bd-comments{border-top:1px solid #e6e8ee;padding-top:16px;margin-top:10px}
.bd-comments h3{font-size:14px}.bd-comments h3 b{color:#b15cf3}
.cm{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid #f1f3f6}
.cm-b{flex:1;min-width:0}
.cm-h{font-size:13px;display:flex;gap:8px;align-items:center}
.cm-h form{margin:0 0 0 auto}
.link-del{background:none;border:0;color:#98a0b0;font-size:12px;cursor:pointer}.link-del:hover{color:var(--danger)}
.cm-t{white-space:pre-wrap;font-size:14px;margin-top:2px;word-break:break-word}
.cm-form{display:flex;gap:8px;margin-top:12px;align-items:stretch}
.cm-form textarea{flex:1;resize:vertical;min-height:52px}
.bd-prevnext{margin-top:22px;border-top:1px solid #e6e8ee}
.bd-prevnext a{display:flex;gap:16px;padding:11px 6px;border-bottom:1px solid #eef0f4;color:#1b2333;font-size:14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.bd-prevnext a span{color:#98a0b0;font-size:13px;width:44px;flex:none}

/* 글쓰기 */
.bd-wform{max-width:1400px}
.bd-wbar{display:flex;gap:8px;align-items:center;padding-bottom:14px;border-bottom:1px solid #e6e8ee;margin-bottom:16px}
.bd-wbar .btn.primary{background:#1d5bd8;border-color:#1d5bd8;padding:8px 16px;font-weight:600}
.bd-upstat{color:#b15cf3;font-size:13px;margin-left:8px}
.bd-wrow{display:grid;grid-template-columns:120px 1fr;align-items:center;margin-bottom:10px}
.bd-wrow>label:first-child{font-weight:700;font-size:14px}
.bd-bsel{min-width:220px;height:36px;padding:0 10px;border-color:#d9dde5}
.bd-titlerow{display:flex;gap:8px;align-items:center}
.bd-psel{width:160px;height:36px;border-color:#d9dde5}
.bd-titlebox{flex:1;display:flex;align-items:center;border:1px solid #d9dde5;border-radius:6px;padding-right:12px;height:36px}
.bd-titlebox:focus-within{outline:2px solid #93b4ff;border-color:var(--blue)}
.bd-titlebox input{border:0;flex:1;height:34px;outline:none}
.bd-tcount{font-size:12px;color:#98a0b0;white-space:nowrap}
.bd-editor-wrap{position:relative;margin-top:16px;border:1px solid #d9dde5;border-radius:6px}
.bd-tb{position:relative;background:#f7f8fa;border-bottom:1px solid #e6e8ee;border-radius:6px 6px 0 0;user-select:none}
.tb-row{display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:6px 8px}
.tb-row2{border-top:1px solid #e6e8ee;padding:4px 8px}
.bd-tb button{background:none;border:0;border-radius:4px;min-width:30px;height:30px;padding:0 6px;cursor:pointer;color:#3b4456;font:inherit;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:2px}
.bd-tb button:hover{background:#e6e9ef}
.bd-tb button svg{width:18px;height:18px}
.bd-tb button.dd em{font-style:normal;font-size:9px;color:#6b7486}
.tb-txt{font-size:13px!important;gap:5px!important}
.tb-txt .ic{width:16px;height:16px}
.tb-sel{height:30px;font-size:13px;border:1px solid transparent;background:#fff;border-color:#e2e5eb;padding:0 6px;width:130px}
.tb-sel.sm{width:78px}
.tb-sep{width:1px;height:18px;background:#d9dde5;margin:0 6px}
.tc{display:inline-flex;flex-direction:column;align-items:center;font-weight:600;line-height:1}
.tc i{display:block;width:16px;height:3px;margin-top:2px;border-radius:1px}
.tc.bg{border:1px solid #9aa3b2;padding:1px 3px 0;border-radius:2px}
.pop{display:none;position:absolute;z-index:40;background:#fff;border:1px solid #d9dde5;border-radius:8px;box-shadow:0 8px 24px #0002;padding:8px}
.pop.open{display:block}
.pal{display:grid;grid-template-columns:repeat(8,20px);gap:4px}
.pal button{width:20px!important;min-width:0!important;height:20px!important;border:1px solid #0002!important;border-radius:3px!important;padding:0!important}
.pal-none{margin-top:6px;width:100%;font-size:12px!important;height:26px!important;border:1px solid #e2e5eb!important}
.pop-list{display:none;flex-direction:column;min-width:130px;padding:4px}
.pop-list.open{display:flex}
.pop-list button{justify-content:flex-start!important;font-size:13px!important;height:30px!important}
.tgrid{display:grid;grid-template-columns:repeat(10,16px);gap:3px}
.tgrid span{width:16px;height:16px;border:1px solid #d9dde5;border-radius:2px;cursor:pointer;display:block}
.tgrid span.on{background:#cfe0ff;border-color:#1d5bd8}
.tlabel{font-size:12px;color:#4b5568;text-align:center;margin-top:6px}
.bd-attach{border-bottom:1px solid #e6e8ee;padding:8px 14px;background:#fcfcfd}
.bd-attach-h{font-size:12.5px;color:#4b5568;margin-bottom:4px}
.bd-attach ul{list-style:none;margin:0;padding:0}
.bd-attach li{display:flex;align-items:center;gap:10px;font-size:13px;padding:3px 0}
.bd-attach .nm{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bd-attach .sz{color:#98a0b0;font-size:12px}
.bd-attach .bar{width:120px;height:5px;background:#eceef2;border-radius:3px;overflow:hidden}
.bd-attach .bar i{display:block;height:100%;width:0;background:#b15cf3;transition:width .2s}
.bd-attach .rm{background:none;border:0;color:#98a0b0;font-size:17px;cursor:pointer;line-height:1}
.bd-attach .rm:hover{color:var(--danger)}
.bd-editor{min-height:460px;padding:16px 18px;outline:none;border-radius:0 0 6px 6px}
.bd-editor.is-empty::before{content:attr(data-placeholder);color:#a3aab6;position:absolute;pointer-events:none}
.bd-editor table td,.bd-editor table th{min-width:24px}
.up-ph{display:inline-block;background:#f3eaff;color:#7b2fc2;border-radius:4px;padding:2px 8px;font-size:12.5px}
img.up-img{opacity:.4;min-width:40px;min-height:30px;background:#f3eaff}
.bd-dropmask{display:none;position:absolute;inset:0;background:#b15cf31a;border:2px dashed #b15cf3;border-radius:6px;color:#7b2fc2;font-weight:600;align-items:center;justify-content:center;pointer-events:none;z-index:30}
.bd-editor-wrap.dragging .bd-dropmask{display:flex}

/* 게시판 관리 */
.mg{margin-top:22px}.mg h2{font-size:16px}
.mg .list td{vertical-align:middle}
.mg .list form{display:inline;margin:0}
.mg-boards td{padding:6px 6px}
.mg-boards select{max-width:150px}
.notice-row td{background:#fbf7ff}
.w100{width:100%}
.mg-add{margin-top:10px;background:#f7f8fa;border:1px solid #e6e8ee;border-radius:8px;padding:12px}

@media (max-width:900px){
  .bd-top{gap:10px}.bd-brand{width:auto}.bd-brand span{display:none}
  .bd-body{flex-direction:column}
  .bd-side{width:auto;position:static;height:auto;border-right:0;border-bottom:1px solid #e6e8ee;padding-bottom:10px}
  .bd-content{padding:14px}
  .bd-table colgroup{display:none}
  .bd-table{table-layout:auto}
  .bd-table .au,.bd-table .num,.bd-table .bname,.bd-table th:first-child:not(:only-child).bname{display:none}
  .bd-table td.ttl{white-space:normal}
  .bd-mtoggle{display:block!important}
  .bd-side .bd-bfilter,.bd-side .bd-tree{display:none}
  .bd-side.m-open .bd-bfilter,.bd-side.m-open .bd-tree{display:block}
  .bd-side.m-open .bd-bfilter{display:flex}
  .bd-head-r{width:100%}.bd-lsearch{flex:1}.bd-lsearch input{width:100%}
  .bd-wrow{grid-template-columns:1fr}.bd-titlerow{flex-direction:column;align-items:stretch}.bd-psel{width:100%}
}

/* 통신사 표시 */
.carrier-tag{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:4px;background:#e8efff;color:#1d4ed8;white-space:nowrap}
.carrier-tag.lg{font-size:13px;padding:2px 9px;vertical-align:3px}

/* 원번호·매개번호: 070-xxxx-yyyy~zzzz 한 줄 폭으로 고정, 더 긴 내용은 칸 안에서 줄바꿈 */
.grid th.col-orig_no,.grid th.col-relay_no,.grid td.col-orig_no,.grid td.col-relay_no{
  width:168px;min-width:168px;max-width:168px;padding-left:6px;padding-right:6px;white-space:pre-line;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}

/* =================================================================== 장비 재고 현황 */
.st-quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.st-quick-t{font-size:13px;color:var(--navy);margin-right:4px}
.st-quick select{min-width:220px}
.st-kind{display:flex;gap:10px;font-size:13px}.st-kind label{display:flex;gap:4px;align-items:center;cursor:pointer}
.st-qty{width:90px}.st-note{flex:1;min-width:220px}
.st-fixed{font-weight:600}
.st-wrap{max-height:none}
.st-grid th,.st-grid td{vertical-align:middle}
.st-grid .c-no{width:52px;text-align:center}.st-grid .c-code{width:64px;text-align:center}
.st-grid .c-name{min-width:220px;font-weight:500}
.st-grid .c-price{width:118px;text-align:right;white-space:nowrap}
.st-grid th.c-price{text-align:center;line-height:1.25}
.th-sub{display:block;font-size:10.5px;font-weight:400;color:#b42318;margin-top:1px;white-space:nowrap}
.st-grid .c-qty{width:96px;text-align:right;white-space:nowrap}.st-grid .c-qty b{font-size:15px}
.st-grid .c-qty .badge{margin-left:5px}
.st-grid .c-sm{width:52px;text-align:center}
.st-grid .c-note{min-width:260px}
.st-grid .c-act{width:150px}
.st-grid tr.zero .c-qty b{color:#98a0b0;font-weight:500}
.st-grid tr.low td{background:#fff6f6}
b.neg,.neg{color:#c62828}
td.in,b.in{color:#1d5bd8}td.out,b.out{color:#c2410c}
.st-moves td,.st-moves th{white-space:normal}
.st-moves tr.memo td{background:#fafbfc;color:#6b7486}
.st-sum{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.st-sum>div{display:flex;flex-direction:column}.st-sum small{color:var(--muted);font-size:12px}.st-sum b{font-size:20px}
.st-sum-note{flex:1 1 100%}.st-sum-note span{white-space:pre-wrap}
.st-recent td{font-size:13px}
@media (max-width:820px){ .st-quick select,.st-note{min-width:0;width:100%} }
.imp-modes{display:flex;flex-direction:column;gap:8px;margin:6px 0 12px}
.imp-mode{display:flex!important;flex-direction:row!important;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--ink)!important}
.imp-mode:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.imp-mode div{display:flex;flex-direction:column;gap:2px}.imp-mode span{font-size:12.5px;color:var(--muted)}
.imp-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:820px){.imp-cols{grid-template-columns:1fr}}
.imp-opt{display:flex!important;margin:3px 0!important;font-size:13px}

/* =================================================================== 고객번호 관리 (관련사 연락망) */
.ct-wrap{max-height:none}
.ct-grid td,.ct-grid th{vertical-align:top}
.ct-grid .c-co{min-width:150px;max-width:190px;font-weight:600;background:#fafbfd}
.ct-grid .c-dept{min-width:110px;max-width:150px;color:#3b4456}
.ct-grid .c-name{min-width:90px}
.ct-grid .c-title{white-space:nowrap}
.ct-grid .c-phone{min-width:150px;max-width:220px;font-variant-numeric:tabular-nums}
.ct-grid .c-email{max-width:220px;overflow-wrap:anywhere}
.ct-grid .c-memo{min-width:260px}
.ct-grid .c-act{width:170px}
.ct-grid .c-act form{display:inline}
a.tel{color:#0f766e;white-space:nowrap}

.ct-cards{display:none}
@media (max-width:820px){
  .ct-wrap{display:none}
  .ct-cards{display:block}
  .ct-co-h{font-weight:700;color:var(--navy);margin:14px 2px 6px;font-size:15px}
  .ct-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}
  .ct-card-h{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
  .ct-card-h .btn{margin-left:auto}
  .ct-dept{font-size:12px;color:var(--muted);background:var(--line2);border-radius:4px;padding:0 6px}
  .ct-line{margin-top:4px;font-size:14px}
  .ct-memo{margin-top:6px;font-size:12.5px;color:#4b5568}
}

/* 근무 여부 */
.ct-grid .c-emp{width:74px;text-align:center;white-space:nowrap}
.emp{display:inline-block;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:9px}
.emp-yes{background:#e1f5ea;color:#11643c}
.emp-no{background:#e5e7eb;color:#6b7280}
.ct-grid td.left{background:#eceef1!important;color:#8a919e;text-decoration:line-through;text-decoration-color:#9aa1ad}
.ct-grid td.left a{color:#8a919e}
.ct-grid td.left .emp{text-decoration:none}
.left-sample{background:#eceef1;color:#8a919e;text-decoration:line-through;padding:0 4px}
.ct-card.left{background:#eceef1;color:#8a919e}
.ct-card.left .ct-card-h b,.ct-card.left .ct-line,.ct-card.left .ct-memo{text-decoration:line-through}
.ct-card.left a{color:#8a919e}
.emp-field{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.emp-label{font-size:13px;color:var(--muted);width:100%}
