:root{
  --bg:#fff;--bg-soft:#f6f7f6;--bg-sunken:#f1f3f4;--line:#ecedef;--line-strong:#dfe1e5;
  --ink:#0c140e;--ink-2:#3a3f3b;--ink-3:#6d716e;--ink-4:#9a9e9b;
  --brand:#0e8a47;--brand-soft:#e8f9ef;--brand-line:#bfeccf;--accent:#3ddc84;
  --ok:#16803a;--ok-soft:#eaf6ee;--warn:#b45309;--warn-soft:#fdf3e4;--hot:#c8262b;--hot-soft:#fdeced;
  --cta:#0c140e;--cta-on:#000;
  --r:12px;--r-sm:8px;
  --font:'Pretendard Variable',Pretendard,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;word-break:keep-all;background:var(--bg-soft);color:var(--ink);font-family:var(--font);font-size:14.5px;line-height:1.55;letter-spacing:-.01em;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}
svg{flex:none}
[hidden]{display:none!important}

.ad{display:flex;min-height:100vh}
.side{width:232px;flex:none;background:var(--bg);border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 14px}
.side-logo{font-size:19px;font-weight:800;letter-spacing:-.04em;padding:4px 10px 20px;display:flex;align-items:center;gap:9px}
.side-logo img{width:28px;height:28px}
.side-logo em{font-style:normal;color:var(--brand)}
.side nav a{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px;border-radius:var(--r-sm);color:var(--ink-2);font-weight:600}
.side nav a:hover{background:var(--bg-soft);color:var(--ink)}
.side nav a.on{background:var(--bg-sunken);color:var(--ink)}
.side nav a svg{width:18px;height:18px;color:var(--ink-3)}
.side nav a.on svg{color:var(--ink)}
.side nav .cnt{margin-left:auto;font-size:12px;font-weight:700;background:var(--hot);color:#fff;border-radius:999px;padding:1px 7px}
.side-sep{height:1px;background:var(--line);margin:12px 6px}
.side-foot{margin-top:auto;padding:10px;font-size:13px;color:var(--ink-3);display:flex;justify-content:space-between;align-items:center}
.side-foot a{color:var(--ink-2);font-weight:600}

.ad-main{flex:1;min-width:0;width:100%;padding:28px 32px 80px;max-width:1440px;margin:0 auto}
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.ph h1{font-size:24px;font-weight:800;letter-spacing:-.04em}
.ph p{color:var(--ink-3);margin-top:4px}
.ph-act{display:flex;gap:8px;flex-wrap:wrap}
.crumb{font-size:13px;color:var(--ink-3);margin-bottom:6px}
.crumb a:hover{color:var(--ink)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--bg);font-weight:600;font-size:14px;cursor:pointer;white-space:nowrap;color:var(--ink)}
.btn:hover{background:var(--bg-soft)}
.btn-primary{background:var(--cta);border-color:var(--cta);color:#fff}
.btn-primary:hover{background:var(--cta-on)}
.btn-brand{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-brand:hover{filter:brightness(1.06);background:var(--brand)}
.btn-danger{color:var(--hot)}
.btn-sm{height:30px;padding:0 10px;font-size:13px;border-radius:6px}
.btn-lg{height:48px;padding:0 22px;font-size:15.5px;border-radius:10px}
.btn:disabled{opacity:.45;cursor:default}
.btn svg{width:16px;height:16px}

.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.card+.card{margin-top:16px}
.grid>.card+.card{margin-top:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:14px;flex-wrap:wrap}
.card-h h2{font-size:16px;font-weight:700}
.card-h p{color:var(--ink-3);font-size:13px}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.side-mlogout{display:none!important}
.mt{margin-top:16px}

.stat{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px}
.stat small{display:block;color:var(--ink-3);font-weight:600;font-size:13px}
.stat b{display:block;font-size:26px;font-weight:800;letter-spacing:-.03em;margin-top:4px}
.stat span{font-size:12.5px;color:var(--ink-3)}

.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:12.5px;color:var(--ink-3);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--bg)}
.tbl td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr:hover td{background:#fafbfc}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.tbl-wrap .tbl th:first-child,.tbl-wrap .tbl td:first-child{padding-left:18px}
.t-main{font-weight:700}
.t-sub{display:block;color:var(--ink-3);font-size:12.5px;margin-top:2px;word-break:break-all}
td.t-sub{display:table-cell;margin-top:0;word-break:normal}
.ellipsis{max-width:min(420px,62vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}

.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:700;background:var(--bg-sunken);color:var(--ink-2);white-space:nowrap}
.tag-ok{background:var(--ok-soft);color:var(--ok)}
.tag-warn{background:var(--warn-soft);color:var(--warn)}
.tag-hot{background:var(--hot-soft);color:var(--hot)}
.tag-brand{background:var(--brand-soft);color:var(--brand)}

.empty{padding:40px 20px;text-align:center;color:var(--ink-3)}
.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}

.fld{display:flex;flex-direction:column;gap:6px}
.fld>span{font-size:13.5px;font-weight:600;color:var(--ink)}
.fld>small,.hint{font-size:12.5px;color:var(--ink-3);line-height:1.5}
.in,.ta{width:100%;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg);padding:0 14px;outline:none;transition:border-color .15s,box-shadow .15s}
.in{height:44px}
.ta{padding:12px 14px;min-height:110px;resize:vertical;line-height:1.6}
.in:focus,.ta:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,138,71,.14)}
.in::placeholder,.ta::placeholder{color:var(--ink-4)}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}
.row{display:grid;gap:14px}
.row2{grid-template-columns:1fr 1fr}
.row3{grid-template-columns:1fr 1fr 1fr}
.form-stack{display:flex;flex-direction:column;gap:16px}

.seg{display:inline-flex;background:var(--bg-sunken);border-radius:10px;padding:3px;gap:2px}
.seg button{height:34px;padding:0 14px;border:0;background:transparent;border-radius:8px;font-weight:600;color:var(--ink-3);cursor:pointer}
.seg button.on{background:var(--bg);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}

.opts{display:flex;flex-direction:column;gap:8px}
.opt{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;background:var(--bg)}
.opt:hover{background:var(--bg-soft)}
.opt.on{border-color:var(--brand);background:var(--brand-soft)}
.opt .dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-strong);flex:none;position:relative}
.opt.on .dot{border-color:var(--brand)}
.opt.on .dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--brand)}
.opt b{font-weight:700}
.opt small{display:block;color:var(--ink-3);font-size:12.5px}

.sw{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer}
.sw:last-child{border-bottom:0}
.sw b{display:block;font-weight:700}
.sw small{display:block;color:var(--ink-3);font-size:12.5px;margin-top:2px}
.sw input{display:none}
.sw i{width:42px;height:24px;border-radius:999px;background:var(--line-strong);position:relative;flex:none;transition:background .15s}
.sw i::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;left:3px;top:3px;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.sw input:checked+i{background:var(--brand)}
.sw input:checked+i::after{left:21px}

.chipbox{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg);min-height:44px;align-items:center;cursor:text}
.chipbox:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,138,71,.14)}
.chip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 6px 0 10px;border-radius:6px;background:var(--bg-sunken);font-size:13px;font-weight:600}
.chip button{border:0;background:transparent;width:20px;height:20px;border-radius:4px;cursor:pointer;color:var(--ink-3);font-size:15px;line-height:1}
.chip button:hover{background:var(--line-strong);color:var(--ink)}
.chipbox input{flex:1;min-width:120px;border:0;outline:none;height:28px;background:transparent}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto}
.tabs a,.tabs button{height:42px;padding:0 14px;border:0;background:transparent;font-weight:600;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.tabs .on{color:var(--ink);border-bottom-color:var(--ink)}

.bar{height:8px;border-radius:999px;background:var(--bg-sunken);overflow:hidden}
.bar i{display:block;height:100%;background:var(--brand);border-radius:999px;transition:width .3s}

.list-src li{display:grid;grid-template-columns:90px 1fr 70px;gap:12px;align-items:center;padding:7px 0}
.list-src b{font-weight:600}
.list-src em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2)}

.chart{width:100%;height:220px}
.chart text{font-size:11px;fill:var(--ink-4)}

.pop{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}
.pop-dim{position:absolute;inset:0;background:rgba(15,20,32,.5)}
.pop-box{position:relative;width:100%;max-width:480px;max-height:90vh;overflow:auto;background:#fff;border-radius:12px;padding:32px 32px 26px;box-shadow:0 8px 40px rgba(0,0,0,.15);animation:popIn .18s ease}
.pop-box.wide{max-width:720px}
.pop-head{padding-bottom:12px;border-bottom:1px solid var(--line)}
.pop-head:last-child{border-bottom:0;padding-bottom:0}
.pop-title{font-size:19px;font-weight:700;letter-spacing:-.035em}
.pop-sub{font-size:14.5px;color:var(--ink-2);margin-top:4px}
.pop-body{margin-top:20px}
.pop-btns{display:flex;gap:10px;margin-top:24px}
.pop-btns button{flex:1;height:50px;border-radius:12px;border:0;font-weight:700;font-size:15.5px;cursor:pointer}
.pop-ok{background:var(--cta);color:#fff}
.pop-ok.danger{background:var(--hot)}
.pop-cancel{background:#fff;border:1px solid var(--line-strong)!important;color:var(--ink-2)}
@keyframes popIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.toast{position:fixed;left:calc(50% + 116px);bottom:28px;transform:translateX(-50%);z-index:400;background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;font-weight:600;box-shadow:0 8px 24px rgba(0,0,0,.2);animation:toastIn .18s ease;max-width:min(560px,90vw);text-align:center}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%,0)}}
.toast.err{background:var(--hot)}

.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-box{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:36px 32px}
.login-box h1{font-size:22px;font-weight:800;letter-spacing:-.04em}
.login-box p{color:var(--ink-3);margin:6px 0 24px}

.steps-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px;position:sticky;top:0;background:var(--bg-soft);padding:10px 0;z-index:20}
.steps-nav a{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-weight:600;font-size:13px;color:var(--ink-2)}
.steps-nav a b{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--bg-sunken);font-size:11.5px}
.wz{display:grid;grid-template-columns:minmax(0,1fr) 340px;min-width:0;gap:20px;align-items:start}
.wz-side{position:sticky;top:64px;display:flex;flex-direction:column;gap:12px}
.sec-t{display:flex;align-items:baseline;gap:10px;margin-bottom:16px}
.sec-t b{font-size:12px;font-weight:800;color:var(--brand)}
.sec-t h2{font-size:17px;font-weight:700}
.sec-t p{color:var(--ink-3);font-size:13px}

.slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.slot{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--bg)}
.slot-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.slot-no{font-size:12px;font-weight:800;background:var(--ink);color:#fff;border-radius:6px;padding:2px 7px}
.slot-h input{flex:1;border:0;font-weight:700;outline:none;min-width:0}
.slot-h .cnt{font-size:12px;color:var(--ink-3)}
.slot .chipbox{max-height:160px;overflow:auto}
.pats{display:flex;flex-direction:column;gap:10px}
.pat-g b{display:block;font-size:12.5px;color:var(--ink-3);margin-bottom:6px}
.pat-g div{display:flex;flex-wrap:wrap;gap:6px}
.pchk{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;background:var(--bg)}
.pchk input{display:none}
.pchk.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.samples{display:flex;flex-wrap:wrap;gap:4px;max-height:140px;overflow:auto}
.samples span{font-size:12.5px;background:var(--bg-sunken);border-radius:5px;padding:2px 7px}

.rp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;height:340px;background:var(--bg)}
.rp-col{overflow:auto;border-right:1px solid var(--line)}
.rp-col:last-child{border-right:0}
.rp-col h4{font-size:12px;color:var(--ink-3);padding:10px 12px;position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.rp-col h4 button{border:0;background:transparent;color:var(--brand);font-weight:700;font-size:12px;cursor:pointer}
.rp-item{display:flex;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;font-size:13.5px}
.rp-item:hover{background:var(--bg-soft)}
.rp-item.cur{background:var(--bg-sunken);font-weight:700}
.rp-item input{width:16px;height:16px;accent-color:var(--brand);flex:none}
.rp-item span{flex:1}
.rp-item small{color:var(--ink-4);font-size:12px}
.rp-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}

.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.tpl{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg);cursor:pointer;position:relative}
.tpl.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}
.tpl-thumb{height:150px;overflow:hidden;position:relative;background:var(--bg-sunken)}
.tpl-thumb iframe{width:400%;height:400%;border:0;transform:scale(.25);transform-origin:0 0;pointer-events:none}
.tpl-meta{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--line)}
.tpl-meta b{font-size:13.5px}
.tpl-meta small{color:var(--ink-3);font-size:12px}
.tpl-sw{display:flex;gap:3px}
.tpl-sw i{width:12px;height:12px;border-radius:3px;display:block;border:1px solid rgba(0,0,0,.08)}

.est{font-size:30px;font-weight:800;letter-spacing:-.03em}
.est-rows li{display:flex;justify-content:space-between;padding:5px 0;font-size:13.5px;border-bottom:1px dashed var(--line)}
.est-rows li:last-child{border-bottom:0}
.preview-frame{width:100%;height:520px;border:1px solid var(--line);border-radius:10px;background:#fff}

.assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.asset{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}
.asset img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.asset div{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:12.5px}

.bank-block{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--bg)}
.bank-block h3{font-size:14px;margin-bottom:8px;display:flex;justify-content:space-between}
.bank-block .ta{min-height:140px;font-size:13px}

.ns{display:flex;flex-direction:column;gap:2px}
.ns code{font-size:12.5px;background:var(--bg-sunken);padding:1px 6px;border-radius:4px;display:inline-block}

@media (max-width:1100px){.wz{grid-template-columns:minmax(0,1fr)}.wz-side{position:static}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g21{grid-template-columns:1fr}}
@media (max-width:860px){
  .ad{flex-direction:column}
  .side{width:100%;height:auto;position:static;flex-direction:row;align-items:center;overflow-x:auto;padding:10px}
  .side nav{display:flex;gap:2px}
  .side-logo{padding:0 10px 0 4px}
  .side-sep,.side-foot{display:none}
  .ad-main{padding:20px 16px 60px;max-width:none}
  .toast{left:50%;bottom:20px}
  .card{overflow-x:auto;padding:18px 16px}
  .card>.tbl:has(thead),.tbl-wrap>.tbl{min-width:560px}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}
  .stat{padding:14px 16px}
  .g21{grid-template-columns:1fr}
  .side-mlogout{display:flex!important;color:var(--ink-3)!important}
  .filterbar .dd,.filterbar .in{width:100%}
  .filterbar .cnt{margin-left:0}
  .list-src li{grid-template-columns:76px 1fr 44px}
  .card-h p{font-size:12.5px}
  .ph h1{font-size:21px}
  .ph-act{width:100%}
  .stat b{font-size:22px}
  .pop-box{padding:26px 20px 20px}
  .steps-nav{overflow-x:auto;flex-wrap:nowrap;max-width:100%}
  .steps-nav a{flex:none}
  .side nav a{white-space:nowrap}
  .side nav .side-sep{display:none}
  .g2,.g3,.g4,.row2,.row3,.slots{grid-template-columns:1fr}
  .rp{grid-template-columns:1fr;height:auto}
  .rp-col{max-height:260px;border-right:0;border-bottom:1px solid var(--line)}
}

.ill{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 20px 40px}
.ill img{width:168px;height:168px;object-fit:contain;margin-bottom:6px}
.ill b{display:block;font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.03em}
.ill p{color:var(--ink-3);margin-top:6px;max-width:480px;line-height:1.6}
.ill .btn{margin-top:18px}
.ill-sm img{width:112px;height:112px}
.ill-sm{padding:20px 16px 24px}

.sk{display:block;background:linear-gradient(90deg,#eef0ee 25%,#f7f8f7 37%,#eef0ee 63%);background-size:400% 100%;animation:sk 1.3s ease infinite;border-radius:6px;min-height:12px}
.sk-line{height:12px;margin:6px 0}
.sk-title{height:16px;width:55%}
.sk-box{height:100%;min-height:120px;border-radius:10px}
@keyframes sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.frame-wrap{position:relative}
.frame-wrap .sk{position:absolute;inset:0;border-radius:10px;z-index:1}
.frame-wrap.loaded .sk{display:none}
.tpl-thumb .sk{position:absolute;inset:0;border-radius:0}
.tpl-thumb.loaded .sk{display:none}

.dd{position:relative}
.dd-btn{width:100%;height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg);cursor:pointer;text-align:left}
.dd-btn:hover{border-color:var(--ink-4)}
.dd.open .dd-btn{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,138,71,.14)}
.dd-btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dd-btn span.ph{color:var(--ink-4)}
.dd-btn i{width:8px;height:8px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:rotate(45deg) translateY(-2px);flex:none;transition:transform .15s}
.dd.open .dd-btn i{transform:rotate(-135deg) translateY(-2px)}
.dd-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;background:var(--bg);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 12px 32px rgba(15,20,32,.12);padding:6px;max-height:280px;overflow:auto;display:none}
.dd.open .dd-list{display:block}
.dd.up .dd-list{top:auto;bottom:calc(100% + 6px)}
.dd-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-weight:500}
.dd-opt:hover{background:var(--bg-soft)}
.dd-opt.on{background:var(--brand-soft);color:var(--brand);font-weight:700}
.dd-opt small{color:var(--ink-4);font-weight:500;font-size:12px}
.dd-empty{padding:12px;color:var(--ink-3);font-size:13px}
.dd-q{width:100%;height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;margin-bottom:6px;outline:none;position:sticky;top:0;background:var(--bg)}
.dd-q:focus{border-color:var(--brand)}
.tbl-fixed td{white-space:nowrap}
.tbl-fixed .cut{display:block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbl-fixed .cut-sm{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filterbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:22px 0 10px}
.filterbar .dd{width:280px}
.filterbar .in{width:240px;height:44px}
.filterbar .cnt{margin-left:auto;color:var(--ink-3);font-size:13px}
.pager{display:flex;gap:4px;justify-content:center;margin-top:14px}
.pager a,.pager span{min-width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;padding:0 10px;border-radius:8px;border:1px solid var(--line-strong);background:var(--bg);font-weight:600;font-size:13px}
.pager a:hover{background:var(--bg-soft)}
.pager .on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager .off{opacity:.4}
.me-grid{display:grid;grid-template-columns:140px 1fr;gap:10px 16px;font-size:14.5px}
.me-grid dt{color:var(--ink-3)}
.me-grid dd{margin:0;font-weight:600}
.side-foot a.me{display:block;color:inherit;font-weight:400}
.side-foot a.me:hover b{text-decoration:underline}

.ld{position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:rgba(10,16,12,.55);backdrop-filter:blur(2px);animation:ldIn .18s ease}
.ld-mark{position:relative;width:64px;height:64px}
.ld-mark i{position:absolute;width:30px;height:36px;border-radius:8px;animation:ldPage 1.2s ease-in-out infinite}
.ld-mark i:nth-child(1){left:4px;top:22px;background:#0c140e;box-shadow:0 0 0 1.5px rgba(255,255,255,.35);animation-delay:0s}
.ld-mark i:nth-child(2){left:17px;top:14px;background:#11a85c;animation-delay:.15s}
.ld-mark i:nth-child(3){left:30px;top:6px;background:#3ddc84;animation-delay:.3s}
.ld-text{color:#fff;font-size:16px;font-weight:700;letter-spacing:-.02em;text-align:center;text-shadow:0 1px 8px rgba(0,0,0,.25)}
.ld-text small{display:block;font-size:13px;font-weight:500;opacity:.75;margin-top:6px}
@keyframes ldPage{0%,100%{transform:translateY(0)}35%{transform:translateY(-10px)}70%{transform:translateY(0)}}
@keyframes ldIn{from{opacity:0}to{opacity:1}}

.dp-tools{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.dp-accs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.dp-accs button{flex:none;height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--bg);font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.dp-accs button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.dp-accs button small{opacity:.6;margin-left:4px;font-weight:500}
.dp-list{display:flex;flex-direction:column;gap:6px;max-height:min(420px,55vh);overflow:auto;padding-right:2px}
.dp-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:var(--bg)}
.dp-item:hover,.dp-item.on{border-color:var(--brand);background:var(--brand-soft)}
.dp-item b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-item small{color:var(--ink-3);font-size:12px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-none{border-style:dashed}
.dp-more{text-align:center;color:var(--ink-3);font-size:12.5px;padding:6px}

/* 날짜 선택 */
.dp .dd-btn{font-variant-numeric:tabular-nums}
.dp .dd-btn svg{color:var(--ink-3);flex:none}
.dp-cal{width:300px;right:auto;padding:12px;max-height:none}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.dp-head b{font-size:15px}
.dp-head button{width:32px;height:32px;border-radius:8px;border:0;background:transparent;font-size:20px;cursor:pointer;color:var(--ink-2)}
.dp-head button:hover{background:var(--bg-sunken)}
.dp-wk,.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.dp-wk span{font-size:12px;color:var(--ink-3);padding:4px 0}
.dp-wk span:first-child{color:#d4483b}
.dp-grid button{height:36px;border:0;border-radius:8px;background:transparent;cursor:pointer;font-size:14px;font-variant-numeric:tabular-nums;color:var(--ink)}
.dp-grid button:hover{background:var(--bg-sunken)}
.dp-grid button.today{font-weight:800;color:var(--brand)}
.dp-grid button.on{background:var(--ink);color:var(--bg)}
.dp-foot{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.dp-foot button{border:0;background:transparent;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;padding:6px 8px;border-radius:6px}
.dp-foot button:hover{background:var(--bg-sunken)}
.dd-ph{color:var(--ink-3)}
