:root{--ink:#18262a;--ink2:#334448;--muted:#5d6f73;--line:#dde5e3;--line2:#eaf0ee;--bg:#f5f4ef;--card:#fff;--brand:#2c5f5a;--brand-d:#1f4743;--brand-l:#e3efec;--brand-m:#bcd6d2;--accent:#c4793a;--accent-l:#f8ecdf;--ok:#1f7a55;--ok-l:#e2f3ea;--soon:#9a5a0c;--soon-l:#fbefd9;--exp:#5d6a6f;--exp-l:#eceff0;--pend:#2b5fa8;--pend-l:#e5eefa;--bad:#b3382c;--bad-l:#fbe7e4;--r:12px;--sh:0 1px 2px rgba(24,38,42,.06),0 6px 18px rgba(24,38,42,.05);--f:"Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f);font-size:15px;line-height:1.6;color:var(--ink);background:var(--bg);letter-spacing:-.005em}
img,svg{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.3;letter-spacing:-.02em}
h1{font-size:30px}h2{font-size:21px}h3{font-size:17px}h4{font-size:14px;margin:18px 0 8px;color:var(--ink2)}
p{margin:0 0 10px}
ul,ol{margin:0;padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled,input:disabled,select:disabled{cursor:not-allowed;opacity:.55}
:focus-visible{outline:3px solid #6aa9a2;outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:10px 14px;z-index:100}.skip:focus{left:8px;top:8px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}.mono{font-family:ui-monospace,"SFMono-Regular",Consolas,"Pretendard",monospace;letter-spacing:.02em}.num{text-align:right;font-variant-numeric:tabular-nums}
.ell{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hint{font-size:13px;color:var(--muted);margin:6px 0 0}
.req{font-size:11.5px;font-weight:600;color:var(--bad);margin-left:4px}.opt{font-size:11.5px;color:var(--muted);margin-left:4px;font-weight:400}
.link{background:none;border:0;padding:0;color:var(--brand);text-decoration:underline;text-underline-offset:3px;font-weight:600;cursor:pointer}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.wrap.narrow{max-width:760px}
#busy{position:fixed;left:0;top:0;height:3px;width:0;background:var(--accent);z-index:90;transition:width .25s}#busy.on{width:70%}
/* 역할 전환 띠 */
#rolebar{background:#10201f;color:#dce9e6;font-size:13px}
.rb-in{max-width:1200px;margin:0 auto;padding:6px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.seg{display:inline-flex;background:#1c3331;border-radius:8px;padding:2px}
.seg button{border:0;background:none;color:#a9c3be;padding:4px 14px;border-radius:6px;font-size:13px;font-weight:600}
.seg button[aria-pressed=true]{background:#e8f1ef;color:#10201f}
.rb-tools button{background:none;border:1px solid #3a5551;color:#bcd2ce;border-radius:6px;padding:3px 10px;font-size:12.5px}
.rb-tools button:hover{background:#1c3331}
#shell{min-height:calc(100vh - 38px);display:flex;flex-direction:column}
#main{flex:1;outline:none;padding-bottom:64px}
/* 버튼 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 16px;border-radius:10px;font-weight:600;font-size:14.5px;text-decoration:none;line-height:1.3;transition:background .15s,border-color .15s;white-space:nowrap}
.btn:hover{background:#f2f6f5;border-color:#c9d6d3}
.btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}.btn.pri:hover{background:var(--brand-d)}
.btn.sec{background:var(--brand-l);border-color:var(--brand-l);color:var(--brand-d)}.btn.sec:hover{background:#d5e7e3}
.btn.ghost{border-color:transparent;background:none;color:var(--muted)}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.danger-o{border-color:#e4b3ad;color:var(--bad);background:#fff}.btn.danger-o:hover{background:var(--bad-l)}
.btn.sm{padding:5px 11px;font-size:13px;border-radius:8px}.btn.lg{padding:13px 22px;font-size:16px;border-radius:12px}.btn.block{display:flex;width:100%}
.btn.dis{opacity:.45;pointer-events:none}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.row.end{justify-content:flex-end;margin-top:18px}.row.center{justify-content:center;margin-top:22px}
.mark{width:var(--s);height:var(--s);flex:none;border-radius:30%;background:linear-gradient(145deg,#3c7a73,#1f4743);color:#fff;display:inline-grid;place-items:center;font-weight:700;font-size:calc(var(--s)*.5)}
/* 헤더 */
#site-header{position:sticky;top:0;z-index:40}
.hd{background:#fff;border-bottom:1px solid var(--line);position:relative}
.hd-in{display:flex;align-items:center;gap:28px;min-height:68px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none}.logo b{display:block;font-size:17px;letter-spacing:-.02em}.logo small{display:block;font-size:10.5px;letter-spacing:.14em;color:var(--muted)}
#nav ul{display:flex;gap:2px}#nav a{display:block;padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:600;color:var(--ink2);font-size:14.5px}#nav a:hover{background:var(--line2)}#nav a.on{color:var(--brand);background:var(--brand-l)}
.hd-r{margin-left:auto;display:flex;align-items:center;gap:8px}
.bell{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--ink2)}.bell:hover{background:var(--line2)}
.bell i{position:absolute;top:2px;right:0;background:var(--bad);color:#fff;font-style:normal;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.acct{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:600;padding:6px 10px;border-radius:8px}.acct:hover{background:var(--line2)}
.menu-btn{display:none;background:none;border:0;padding:6px;border-radius:8px}
/* 페이지 머리 */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:34px 0 20px;flex-wrap:wrap}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--brand);margin:0 0 6px}
.lead{color:var(--ink2);font-size:16px;margin:8px 0 0;max-width:640px}
.ph-r{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumb{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--muted);padding-top:22px;margin:0}.crumb a{color:var(--brand);text-decoration:none;font-weight:600}.crumb+.page-head{padding-top:12px}
/* 카드와 폼 */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh);margin-bottom:16px}
.card h2{margin-bottom:14px}.card h3{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.card.gate,.card.done{text-align:center;padding:44px 24px}.card.gate h2{margin:14px 0 6px}
.fld{margin-bottom:16px;min-width:0}.fld>label,.fld>legend,fieldset.fld legend{display:block;font-weight:600;font-size:14px;margin-bottom:6px;padding:0}
fieldset.fld{border:0;padding:0;margin:0 0 16px}
.input{width:100%;border:1px solid #c5d2cf;border-radius:10px;padding:10px 13px;background:#fff;font-size:15px;min-height:44px;transition:border-color .15s,box-shadow .15s}
.input:hover{border-color:#9db3af}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(44,95,90,.18)}
.input.lg{min-height:52px;font-size:17px;border-radius:12px}
.input[aria-invalid=true]{border-color:var(--bad);background:#fff9f8}
.input[readonly]{background:#f0f4f3}
textarea.input{resize:vertical;min-height:90px;line-height:1.5}
select.input{appearance:none;background:linear-gradient(45deg,transparent 50%,#5d6f73 50%) no-repeat calc(100% - 20px) 50%/6px 6px,linear-gradient(135deg,#5d6f73 50%,transparent 50%) no-repeat calc(100% - 14px) 50%/6px 6px,#fff;padding-right:36px}
.fld>label.chk{display:flex;font-weight:500;margin:8px 0 0}
.fe{color:var(--bad);font-size:13px;margin:6px 0 0;font-weight:500}
.okmsg{display:flex;align-items:center;gap:6px;color:var(--ok);font-size:13.5px;font-weight:600;margin:8px 0 0}
.inbtn{display:flex;gap:8px;align-items:stretch}.inbtn .input{flex:1}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gap{margin-top:16px}
.chk{display:flex;align-items:flex-start;gap:9px;font-size:14px;cursor:pointer;margin:0 0 8px}.chk input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--brand);flex:none}
.chkgrp{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:6px}.chkgrp .chk{margin:0}
.agree{margin:6px 0 4px;padding:14px;background:#f4f8f7;border-radius:10px}.agree .chk:last-child{margin:0}
.rcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}.rcards.three{grid-template-columns:repeat(3,1fr)}
.rc{position:relative;cursor:pointer}.rc input{position:absolute;opacity:0;inset:0}
.rc span{display:flex;align-items:center;gap:7px;border:1px solid #c5d2cf;border-radius:10px;padding:11px 13px;background:#fff;font-size:14px;font-weight:500;min-height:46px}
.rc input:checked+span{border-color:var(--brand);background:var(--brand-l);color:var(--brand-d);font-weight:700;box-shadow:inset 0 0 0 1px var(--brand)}
.rc input:focus-visible+span{outline:3px solid #6aa9a2;outline-offset:2px}
.hook{display:inline-block;font-size:11.5px;font-weight:700;background:var(--accent-l);color:#8a4a14;border:1px dashed #d9a671;border-radius:6px;padding:0 6px;margin-right:4px}
.filt{display:flex;gap:12px;align-items:center;padding:14px 16px;flex-wrap:wrap}.filt .fld{margin:0}.filt .fld.grow{flex:1;min-width:220px}.filt select{min-width:150px}.filt .chk{margin:0}
/* 알약, 탭, 칩 */
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:2px 10px;font-size:12.5px;font-weight:700;white-space:nowrap}
.s-ok{background:var(--ok-l);color:var(--ok)}.s-soon,.s-hold{background:var(--soon-l);color:var(--soon)}.s-exp{background:var(--exp-l);color:var(--exp)}.s-pending{background:var(--pend-l);color:var(--pend)}.s-rejected{background:var(--bad-l);color:var(--bad)}
.sev-high{background:var(--bad-l);color:var(--bad)}.sev-mid{background:var(--soon-l);color:var(--soon)}.sev-low{background:var(--exp-l);color:var(--exp)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs a{padding:10px 18px;text-decoration:none;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}.tabs a.on{color:var(--brand);border-color:var(--brand)}
.seg2{display:flex;gap:4px;background:var(--line2);padding:3px;border-radius:10px;margin-bottom:16px}.seg2 button{flex:1;border:0;background:none;padding:8px;border-radius:8px;font-weight:600;color:var(--muted)}.seg2 button[aria-selected=true]{background:#fff;color:var(--brand-d);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600;color:var(--ink2)}.chip i{font-style:normal;color:var(--muted);font-weight:500;margin-left:3px}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip.on i{color:#cfe3df}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:18px}.tile{display:block;text-align:left;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;text-decoration:none;box-shadow:var(--sh)}.tile b{display:block;font-size:26px;line-height:1.2}.tile span{font-size:13px;color:var(--muted)}.tile.on{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.tile.t-ok b{color:var(--ok)}.tile.t-soon b{color:var(--soon)}.tile.t-exp b{color:var(--exp)}.tile.t-pending b{color:var(--pend)}.tile.t-as b{color:var(--accent)}
.tiles.slim{grid-template-columns:repeat(4,1fr)}
.stabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.stab{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 13px;font-size:14px;font-weight:600;color:var(--ink2)}.stab b{background:var(--line2);border-radius:999px;padding:0 8px;font-size:12.5px}.stab.on{background:var(--brand);border-color:var(--brand);color:#fff}.stab.on b{background:#4c8079;color:#fff}
/* 표 */
.tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th,.tbl td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line2);vertical-align:middle}.tbl thead th{background:#f4f8f7;font-size:12.5px;color:var(--muted);font-weight:700;white-space:nowrap}.tbl tbody tr:last-child td,.tbl tbody tr:last-child th{border-bottom:0}.tbl tbody tr:hover{background:#fafcfb}.tbl th[scope=row]{font-weight:600}
.tbl.compact{font-size:13.5px}.tbl.compact th,.tbl.compact td{padding:8px 10px}
.th{background:none;border:0;padding:0;font:inherit;font-weight:700;color:inherit;display:inline-flex;gap:4px;align-items:center}.th i{font-style:normal;font-size:9px;color:var(--brand)}
.chkc{width:40px}.chkc input{width:17px;height:17px;accent-color:var(--brand)}
.pager{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;font-size:13.5px;color:var(--muted);flex-wrap:wrap}.pager div{display:flex;gap:4px}.pager button{min-width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:600;padding:0 10px}.pager button.on{background:var(--brand);border-color:var(--brand);color:#fff}.pager button:disabled{opacity:.4}
/* 상태 박스 */
.errbox{display:flex;gap:12px;background:var(--bad-l);border:1px solid #efc3be;color:#7c241b;border-radius:var(--r);padding:14px 16px;margin:0 0 14px}.errbox b{display:block;margin-bottom:2px}.errbox p{margin:0 0 8px}.errbox .btn{margin-top:4px}
.empty{text-align:center;padding:48px 20px;background:#fff;border:1px dashed #c5d2cf;border-radius:var(--r);color:var(--muted)}.empty b{display:block;font-size:17px;color:var(--ink);margin:10px 0 4px}.empty .btn{margin-top:10px}
.loading{padding:6px 0}.loading-h{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:600;margin-bottom:14px}.loading-h i{width:18px;height:18px;border-radius:50%;border:3px solid var(--brand-m);border-top-color:var(--brand);animation:sp .8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.sk{height:78px;border-radius:var(--r);background:linear-gradient(90deg,#eceff0 25%,#f6f8f8 50%,#eceff0 75%);background-size:200% 100%;animation:sh 1.2s infinite;margin-bottom:10px}
@keyframes sh{to{background-position:-200% 0}}
#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);background:#10201f;color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;font-size:14.5px;box-shadow:0 8px 28px rgba(0,0,0,.25);z-index:200;opacity:0;pointer-events:none;transition:.25s;max-width:92vw}
#toast.on{opacity:1;transform:translateX(-50%)}#toast.bad{background:var(--bad)}
.banner{display:flex;align-items:center;gap:14px;border-radius:var(--r);padding:14px 18px;margin-bottom:18px;border:1px solid}.banner div{flex:1}.banner b{display:block}.banner p{margin:2px 0 0;font-size:14px}
.banner.soon,.banner.hold{background:var(--soon-l);border-color:#efd5a6;color:#6e3f06}.banner.exp,.banner.info{background:#eef3f2;border-color:var(--line);color:var(--ink2)}.banner.bad{background:var(--bad-l);border-color:#efc3be;color:#7c241b}
.note{border-radius:8px;padding:9px 12px;font-size:13.5px;margin:10px 0 0}.note.ok{background:var(--ok-l);color:#14583d}.note.bad{background:var(--bad-l);color:#7c241b}.note.wait{background:var(--pend-l);color:#1f4a86}
/* 목록 보조 */
.kv{margin:0}.kv>div{display:grid;grid-template-columns:128px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line2);font-size:14px}.kv>div:last-child{border:0}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin:0;word-break:break-word}
.kv.big>div{grid-template-columns:140px 1fr;font-size:15px;text-align:left}
.plain li{position:relative;padding:3px 0 3px 14px;font-size:14px;color:var(--ink2)}.plain li:before{content:"";position:absolute;left:0;top:12px;width:5px;height:5px;border-radius:50%;background:var(--brand-m)}
.lst li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line2);font-size:14px}.lst li a{display:flex;flex-direction:column;text-decoration:none}.lst li a span{font-size:12.5px;color:var(--muted)}.lst.sm li{font-size:13px;padding:5px 0}
.tl{margin:6px 0 0;border-left:2px solid var(--line);padding-left:16px}.tl li{position:relative;padding:0 0 12px;font-size:13.5px}.tl li:before{content:"";position:absolute;left:-22px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--brand);border:2px solid #fff;box-shadow:0 0 0 1px var(--brand)}.tl time{display:block;font-size:12px;color:var(--muted)}
.trk{display:flex;margin:0 0 22px;counter-reset:s}.trk li{flex:1;text-align:center;position:relative;font-size:13.5px;color:var(--muted);font-weight:600}.trk li i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e1e8e6;color:#5d6f73;font-style:normal;font-weight:700;margin:0 auto 6px;position:relative;z-index:1}.trk li:before{content:"";position:absolute;top:14px;left:-50%;width:100%;height:2px;background:#d4dedb}.trk li:first-child:before{display:none}
.trk li.done i{background:var(--brand);color:#fff}.trk li.done{color:var(--ink)}.trk li.done:before,.trk li.cur:before{background:var(--brand)}.trk li.cur i{background:#fff;border:3px solid var(--brand);color:var(--brand)}.trk li.cur{color:var(--brand-d)}.trk li.warn i{background:var(--accent);color:#fff}.trk li.bad i{background:var(--bad);color:#fff}
.trk.cancelled li:not(.done) i{background:#f0d3d0;color:var(--bad)}
.msgs{margin:0 0 12px}.msgs li{background:#f3f7f6;border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:14px}.msgs li.me{background:var(--brand-l)}.msgs b{font-size:12.5px;color:var(--muted)}.msgs p{margin:2px 0}.msgs time{font-size:12px;color:var(--muted)}
.nflist li{border-bottom:1px solid var(--line2)}.nflist li a{display:flex;gap:14px;padding:16px 8px;text-decoration:none;align-items:flex-start;position:relative}.nflist li.unread{background:#f7fbfa}.nflist li p{margin:2px 0;font-size:14px;color:var(--ink2)}.nflist time{font-size:12px;color:var(--muted)}.ni{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--brand-l);color:var(--brand);flex:none}.ni-as{background:var(--pend-l);color:var(--pend)}.ni-expire{background:var(--soon-l);color:var(--soon)}.dot{position:absolute;right:10px;top:22px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.cover{border-radius:10px;padding:12px 14px;font-size:14px}.cover b{display:block;margin-bottom:2px}.cover p{margin:0}.cover.in{background:var(--ok-l);color:#14583d}.cover.out,.cover.consumable{background:var(--soon-l);color:#6e3f06}.cover.check{background:var(--pend-l);color:#1f4a86}
.next{margin:10px 0}.next li{display:flex;justify-content:space-between;font-size:13.5px;padding:4px 0;border-bottom:1px dashed var(--line)}.next li.past{color:var(--muted);text-decoration:line-through}
.visit{background:var(--brand-l);border-radius:8px;padding:8px 12px;font-size:14px}
.bar{height:8px;background:#e4ebe9;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand);border-radius:6px}.bar i.b-soon{background:var(--accent)}.bar i.b-exp{background:#9aa8ac}
/* 레이아웃 보조 */
.vgrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;align-items:start}.vgrid.wide{grid-template-columns:minmax(0,1fr) 380px}.side .card{padding:18px}.sticky{position:sticky;top:90px}
.two{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}
.sect{padding:56px 0}.sect.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.sec-t{margin-bottom:22px;font-size:25px}.sec-h{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px;gap:12px;flex-wrap:wrap}.sec-h .sec-t{margin:0}
.steps-bar{display:flex;gap:8px;margin-bottom:18px}.steps-bar span{flex:1;text-align:center;padding:8px;border-radius:10px;background:#e6ecea;color:var(--muted);font-weight:600;font-size:13.5px}.steps-bar span.on{background:var(--brand);color:#fff}
.steps-s{padding-left:0;counter-reset:n;margin:12px 0}.steps-s li{counter-increment:n;position:relative;padding:5px 0 5px 30px;font-size:14px}.steps-s li:before{content:counter(n);position:absolute;left:0;top:5px;width:21px;height:21px;border-radius:50%;background:var(--brand-l);color:var(--brand-d);font-weight:700;font-size:12px;display:grid;place-items:center}
/* 홈 */
.hero{background:linear-gradient(180deg,#e9f1ee,#f5f4ef)}.hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center;padding-top:56px;padding-bottom:56px}
.hero h1{font-size:40px;line-height:1.22;margin-bottom:14px}.hero .lead{margin-bottom:22px}
.hero-form{background:#fff;border-radius:16px;padding:16px;box-shadow:var(--sh);border:1px solid var(--line)}.hero-form .hint{margin:10px 2px 0}
.hero-r{position:relative}.hero-r>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:22px;box-shadow:0 22px 50px rgba(24,38,42,.16)}
.float-cert{position:absolute;left:-26px;bottom:-22px;width:250px;background:#fff;border-radius:14px;box-shadow:0 14px 34px rgba(24,38,42,.2);padding:12px 14px;border:1px solid var(--line)}.fc-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;margin-bottom:8px}.fc-h b{margin-left:auto}.fc-b strong{display:block;font-size:14.5px}.fc-b span{font-size:12px;color:var(--muted)}.fc-b b{float:right;font-size:15px;color:var(--ok)}.fc-b .bar{clear:both;margin-top:8px}
.strip{background:var(--brand-d);color:#fff}.strip-in{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding-top:22px;padding-bottom:22px}.strip-in b{display:block;font-size:19px}.strip-in span{font-size:13px;color:#b8d3cf}
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;position:relative;box-shadow:var(--sh)}.step .no{position:absolute;right:20px;top:16px;font-size:44px;font-weight:800;color:var(--brand-l)}.step .ic{color:var(--brand);margin-bottom:10px}.step h3{display:block;margin-bottom:6px}.step p{color:var(--ink2);margin-bottom:12px}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.pc{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column}.pc-img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;height:auto}.pc-b{padding:16px;display:flex;flex-direction:column;flex:1}.pc-cat{font-size:12px;color:var(--brand);font-weight:700}.pc h3{display:block;margin:2px 0 4px}.pc p{font-size:13.5px;color:var(--ink2);margin-bottom:4px}.pc .spec{color:var(--muted);font-size:12.5px}.pc-f{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px}.pc-f b{font-size:16px}
.svc{position:relative;border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--sh)}.svc img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}.svc-b{padding:22px}.svc-b h3{display:block;margin-bottom:6px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;padding:0 18px}.faq summary{cursor:pointer;padding:15px 0;font-weight:600;list-style:none;display:flex;gap:10px;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";margin-left:auto;font-size:20px;color:var(--brand)}.faq details[open] summary:after{content:"−"}.faq details p{padding:0 0 16px;color:var(--ink2);margin:0}.faq .tag{font-size:11.5px;background:var(--brand-l);color:var(--brand-d);border-radius:6px;padding:1px 8px;white-space:nowrap}.faq.mini details{padding:0 16px}
.warn-card{background:#fff;border:1px solid #ecc9a6;border-radius:16px;padding:26px;background:linear-gradient(180deg,#fff,#fdf5ec)}.warn-card .ic{color:var(--accent)}.warn-card h3{display:block;margin:10px 0 6px}
.contact{display:flex;gap:18px;align-items:center;margin-top:24px}.contact h3{display:block;margin-bottom:4px}.contact p{margin:0}
/* 정품 확인 결과 */
.vform .fld:last-of-type{margin-bottom:0}
.res{border-radius:16px;padding:22px;margin:16px 0;border:1px solid}.res-h{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}.res-h h2{font-size:21px;margin-bottom:4px}.res-h p{margin:0;color:var(--ink2)}
.res.good{background:#eef8f2;border-color:#bfe2cf}.res.good .res-h>.ic{color:var(--ok)}.res.warn{background:#fdf6e7;border-color:#efd5a6}.res.warn .res-h>.ic{color:var(--soon)}.res.info{background:#eef3fb;border-color:#c9d9ef}.res.info .res-h>.ic{color:var(--pend)}.res.bad{background:#fdf0ee;border-color:#efc3be}.res.bad .res-h>.ic{color:var(--bad)}
.res-n{background:rgba(255,255,255,.75);border-radius:10px;padding:10px 14px;margin:0 0 14px;font-size:14px}
.vprod{display:flex;gap:14px;align-items:center;background:#fff;border-radius:12px;padding:12px;margin-bottom:12px;border:1px solid var(--line)}.vprod h3{display:block;margin:0 0 2px}.vprod p{margin:0;font-size:13.5px}.vimg{width:84px;height:84px;object-fit:cover;border-radius:10px;flex:none}.vprod.sm .vimg{width:60px;height:60px}
.wcard-wrap{margin:8px 0 12px;display:flex;justify-content:center}.wcard{border-radius:14px;box-shadow:0 8px 22px rgba(24,38,42,.18);max-width:100%;height:auto}
.samples{display:grid;gap:14px;margin-top:12px}.sample{display:flex;gap:16px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px}.sample-b{display:flex;flex-direction:column;gap:6px}
.serial-info{min-height:4px}
/* 업로드 */
.rcpt{border:1px dashed #b5c5c1;border-radius:12px;padding:14px;background:#fafcfb}.rcpt-btns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.rcpt-prev .muted{margin:0;font-size:13.5px}.rimg{margin:0;display:inline-block}.rimg img{width:180px;height:auto;border-radius:8px;border:1px solid var(--line);display:block}.rimg figcaption{font-size:12px;color:var(--muted);margin-top:4px;max-width:200px}
.rbig{width:240px;height:auto;border-radius:8px;border:1px solid var(--line);display:block}
.filebtn{cursor:pointer}
/* QR 읽기 */
.cam{position:relative;background:#0c1717;border-radius:14px;overflow:hidden;aspect-ratio:4/3;display:grid;place-items:center}.cam video{width:100%;height:100%;object-fit:cover}.cam-frame{position:absolute;inset:18%;border:3px solid rgba(255,255,255,.85);border-radius:16px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.cam.off .cam-frame{display:none}.cam.off:after{content:"카메라를 쓸 수 없습니다";color:#9fb7b3;font-size:14px}
.scan-msg{margin:12px 0 0;color:var(--ink2);font-size:14px}
/* 전자보증서 */
.cert{background:#fff;border:1px solid #c7d6d3;border-radius:18px;padding:34px;box-shadow:0 10px 34px rgba(24,38,42,.1);position:relative;overflow:hidden}
.cert:before{content:"";position:absolute;inset:8px;border:1.5px solid var(--brand-m);border-radius:13px;pointer-events:none}
.cert.is-exp{filter:saturate(.55)}
.cert-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding-bottom:20px;border-bottom:2px solid var(--brand)}
.cert-brand{display:flex;gap:10px;align-items:center}.cert-brand b{display:block}.cert-brand small{display:block;font-size:10.5px;letter-spacing:.14em;color:var(--muted)}
.cert-title{text-align:center;flex:1;min-width:150px}.cert-title small{display:block;letter-spacing:.2em;font-size:11px;color:var(--brand)}.cert-title h2{font-size:27px;margin:0}
.cert-no{text-align:right}.cert-no small{display:block;color:var(--muted);font-size:12px}.cert-no b{display:block;font-size:17px;font-family:ui-monospace,Consolas,monospace;margin:2px 0 6px}
.cert-prod{display:flex;gap:18px;align-items:center;padding:20px 0}.cert-img{width:104px;height:104px;border-radius:14px;object-fit:cover;border:1px solid var(--line)}.cert-prod h3{display:block;font-size:22px;margin:0 0 4px}.cert-prod p{margin:0 0 2px;color:var(--ink2)}
.cert-dl{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:0}.cert-dl>div{padding:10px 0;border-top:1px solid var(--line2)}.cert-dl>div.wide{grid-column:1/-1}.cert-dl dt{font-size:12.5px;color:var(--muted)}.cert-dl dd{margin:2px 0 0;font-size:15px}.cert-dl small{color:var(--muted);font-size:12.5px;margin-left:4px}
.cert-prog{margin:18px 0}.cert-prog .bar{height:11px}.cert-prog-l{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);margin-top:6px;gap:8px}.cert-prog-l b{color:var(--ink);text-align:center}
.cert-cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#f4f8f7;border-radius:12px;padding:16px 18px}.cert-cols h4{margin:0 0 6px;color:var(--brand-d)}.cert-cols ul li{font-size:13.5px;padding:2px 0 2px 14px;position:relative}.cert-cols ul li:before{content:"·";position:absolute;left:3px;font-weight:700}
.cert-foot{display:flex;gap:18px;align-items:center;margin-top:20px}.cert-foot p{flex:1;margin:0;font-size:12.5px;color:var(--muted)}.cert-qr{flex:none;border:1px solid var(--line);border-radius:10px;padding:4px;background:#fff}.cert-qr-x{width:92px;font-size:11px;color:var(--muted);text-align:center;padding:8px 2px}.seal{flex:none;opacity:.88;transform:rotate(-10deg)}
.cert-acts{display:flex;gap:8px;margin-bottom:12px}
.qr{display:block;border-radius:6px}.qrbox{display:flex;justify-content:center;padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px;margin-top:12px;width:fit-content}
/* 내 보증서 */
.wgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.wc{display:flex;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh)}.wc-img{flex:none;width:150px;background:#eee}.wc-i{width:150px;height:100%;object-fit:cover;display:block}.wc-b{padding:16px;flex:1;min-width:0}.wc-t{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.wc-t h3{display:block;font-size:16.5px;margin:0}.wc-t h3 a{text-decoration:none}.wc-b>p{margin:2px 0 8px;font-size:13px}
.mini{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 8px}.mini dt{font-size:12px;color:var(--muted)}.mini dd{margin:0;font-weight:600;font-size:14px}
.dd{font-size:13px;font-weight:600;margin:6px 0 10px}.dd.ok{color:var(--ok)}.dd.soon{color:var(--soon)}.dd.exp{color:var(--exp)}
.wc.st-soon{border-color:#ecd1a1}.wc.st-exp .wc-i{filter:grayscale(.7)}
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.ccard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--sh)}.cc-h{display:flex;gap:8px;align-items:center;color:var(--brand)}.cc-h h3{display:block;margin:0;color:var(--ink)}.ccard>p{margin:4px 0 8px;color:var(--muted);font-size:13.5px}.ccard .kv>div{grid-template-columns:76px 1fr;font-size:13px}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 12px}.tags span{background:var(--brand-l);color:var(--brand-d);font-size:12px;padding:2px 9px;border-radius:999px;font-weight:600}
.count{color:var(--muted);font-size:14px;margin:0 0 10px}
.rep-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.rep-h h2{margin:0;font-size:19px}
.legal p{font-size:14px;color:var(--ink2)}
.done-i{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px}.done-i.ok{background:var(--ok-l);color:var(--ok)}.done-i.wait{background:var(--pend-l);color:var(--pend)}.card.done .lead{margin:8px auto 20px}.card.done .kv{max-width:480px;margin:0 auto;text-align:left}
.demo-acc{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px}.demo-acc span{color:var(--muted)}.demo-acc.col{flex-direction:column;align-items:flex-start}
/* 푸터 */
#site-footer{border-top:1px solid var(--line);background:#fff}.ft{padding-top:30px;padding-bottom:26px}.ft-top{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}.ft-b{display:flex;gap:12px;align-items:center}.ft-b p{margin:0;font-size:13px;color:var(--muted)}.ft-l{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:13.5px}.ft-l a,.ft-l .link{color:var(--ink2);text-decoration:none;font-weight:500}.ft-l .link{text-decoration:none}.ft-n{font-size:12.5px;color:var(--muted);margin:14px 0 0}.ft-n.sm{margin-top:4px}.ft-n.adm{padding:14px 24px;margin:0;text-align:right}
/* 대화상자 */
dialog{border:0;padding:0;background:transparent;max-width:100vw;max-height:100vh;overflow:visible}dialog::backdrop{background:rgba(16,32,31,.55)}
.dbox{background:#fff;border-radius:18px;padding:24px;width:min(92vw,520px);max-height:90vh;overflow:auto;box-shadow:0 24px 60px rgba(0,0,0,.3);outline:none}.dbox.sm{width:min(92vw,440px)}.dbox.md{width:min(92vw,640px)}.dbox.lg{width:min(94vw,820px)}.dbox.xl{width:min(95vw,1020px)}
.dhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.dhead h3{display:flex;align-items:center;gap:10px;margin:0;font-size:19px}.x{border:0;background:var(--line2);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--ink2)}.x:hover{background:#dbe5e2}
.mtxt{color:var(--ink2);white-space:pre-line}.mact{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.dbox h3{font-size:18px}
.toollist{display:grid;gap:10px;margin-top:14px}
.rv{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.checks li{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line2);font-size:13.5px}.checks li p{margin:2px 0 0;color:var(--muted)}.checks li.ok .ic{color:var(--ok)}.checks li.fail .ic{color:var(--bad)}.checks li.info .ic{color:var(--pend)}.checks li.fail b{color:var(--bad)}
.decide{margin-top:16px;background:#f4f8f7;border-radius:12px;padding:16px}.decide h4{margin-top:0}
/* 관리자 */
body.mode-admin{background:#eef1f0}
body.mode-admin #shell{display:grid;grid-template-columns:244px minmax(0,1fr);grid-template-rows:auto 1fr auto}
body.mode-admin #site-header{grid-column:1/-1}
body.mode-admin #admin-side{display:block;background:#102725;color:#cfe0dc;grid-row:2/4;padding:18px 12px;position:sticky;top:56px;height:calc(100vh - 56px - 38px);overflow:auto}
body.mode-customer #admin-side{display:none}
body.mode-admin #main{grid-column:2;padding-bottom:30px}body.mode-admin #site-footer{grid-column:2;background:transparent;border:0}
.adtop{background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:56px}.adtop-l{display:flex;align-items:center;gap:10px}.adtop-r{display:flex;align-items:center;gap:12px}.who{white-space:nowrap;display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px}.who small{color:var(--muted);font-weight:400}
#admin-side ul{display:grid;gap:2px}#admin-side a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#c2d6d1;font-weight:600;font-size:14.5px}#admin-side a:hover{background:#1a3a37}#admin-side a.on{background:#2c5f5a;color:#fff}.nb{margin-left:auto;background:var(--accent);color:#fff;border-radius:999px;font-style:normal;font-size:12px;padding:0 8px;min-width:22px;text-align:center}
.side-f{margin-top:24px;padding:14px;background:#1a3a37;border-radius:12px;font-size:13px}.side-f p{margin:0;color:#8fb0aa;font-size:12px}.side-f b{display:block;color:#fff;font-size:15px}.side-f span{color:#b4cdc8}
.ad-wrap{padding:26px 32px;max-width:1640px}.ad-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.ad-head h1{font-size:25px}.ad-head p{margin:4px 0 0;color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.kpi{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;text-decoration:none;box-shadow:var(--sh)}.kpi span{font-size:13px;color:var(--muted);font-weight:600}.kpi b{display:block;font-size:29px;line-height:1.25;margin:2px 0}.kpi small{color:var(--muted);font-size:12.5px}.kpi:hover{border-color:var(--brand-m)}.kpi.warn b{color:var(--soon)}.kpi.bad b{color:var(--bad)}
.chart{margin:0}.chart svg{width:100%;height:auto;display:block}.chart figcaption{display:flex;gap:16px;font-size:12.5px;color:var(--muted);margin-top:6px}.chart figcaption span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.lg1:before{background:#2c5f5a}.lg2:before{background:#d98b4a}.lg3:before{background:#bcd6d2}
.hbs{display:grid;gap:11px}.hb{display:grid;grid-template-columns:118px 1fr 78px;gap:10px;align-items:center;font-size:13.5px}.hbar{height:10px;background:#e7eeec;border-radius:6px;overflow:hidden}.hbar i{display:block;height:100%;background:linear-gradient(90deg,#3c7a73,#2c5f5a);border-radius:6px}.hb b{text-align:right;font-variant-numeric:tabular-nums}.hb small{color:var(--muted);font-weight:400}
.todo li{border-bottom:1px solid var(--line2)}.todo a{display:flex;justify-content:space-between;padding:11px 2px;text-decoration:none;font-weight:600}.todo a:hover{color:var(--brand)}.todo b{color:var(--accent)}
.login-wrap{display:grid;place-items:center;padding:60px 16px}.login{width:min(92vw,420px)}.login-h{display:flex;gap:14px;align-items:center;margin-bottom:20px}.login-h h1{font-size:22px}.login-h p{margin:0;color:var(--muted);font-size:13.5px}
.bulk{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 14px;margin-bottom:12px;flex-wrap:wrap}
.sheet-nav{display:flex;gap:12px;align-items:center;margin-bottom:12px}.sheet-wrap{background:#dfe6e4;padding:22px;border-radius:14px;overflow:auto;display:flex;justify-content:center}.sheet-wrap svg{width:min(100%,640px);height:auto;box-shadow:0 8px 24px rgba(0,0,0,.2);background:#fff}
.tbl.rows td .btn{white-space:nowrap}
/* 반응형 */
@media (max-width:1100px){.pgrid{grid-template-columns:repeat(3,1fr)}.kpis{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr}.cgrid{grid-template-columns:1fr 1fr}.vgrid,.vgrid.wide{grid-template-columns:minmax(0,1fr) 320px}}
@media (max-width:980px){
 .menu-btn{display:inline-grid;place-items:center}
 #nav{display:none;position:absolute;left:0;right:0;top:68px;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px;box-shadow:0 10px 20px rgba(0,0,0,.08)}.nav-open #nav{display:block}#nav ul{flex-direction:column}
 .hd-in{gap:12px}.hd-r .btn.sm{padding:5px 9px}.acct span{display:none}
 .hero-in{grid-template-columns:1fr;gap:34px;padding-top:34px}.hero h1{font-size:33px}.float-cert{left:12px}
 .two,.vgrid,.vgrid.wide,.rv{grid-template-columns:1fr}.sticky{position:static}
 .steps3{grid-template-columns:1fr}.strip-in{grid-template-columns:1fr 1fr}.wgrid{grid-template-columns:1fr}
 body.mode-admin #shell{grid-template-columns:1fr}body.mode-admin #main,body.mode-admin #site-footer{grid-column:1}
 body.mode-admin #admin-side{position:fixed;left:0;top:94px;bottom:0;width:260px;height:auto;z-index:60;transform:translateX(-102%);transition:transform .2s}body.side-open #admin-side{transform:none}
 .ad-wrap{padding:20px 16px}.tiles.slim{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
 body{font-size:15px}h1{font-size:25px}.wrap{padding:0 16px}.rb-in{padding:6px 16px}.pgrid{grid-template-columns:1fr 1fr;gap:12px}.g2,.g3{grid-template-columns:1fr}.cgrid{grid-template-columns:1fr}.hero h1{font-size:28px}
 .card{padding:18px}.page-head{padding-top:24px}.inbtn{flex-direction:column}.inbtn .btn{width:100%}.hero-form .inbtn{flex-direction:column}
 .kv>div,.kv.big>div{grid-template-columns:96px 1fr}.cert{padding:22px 18px}.cert-top{flex-direction:column;align-items:flex-start}.cert-no{text-align:left}.cert-title{text-align:left}.cert-dl{grid-template-columns:1fr}.cert-cols{grid-template-columns:1fr}.cert-foot{flex-wrap:wrap}.cert-prog-l{font-size:11.5px}
 .wc{flex-direction:column}.wc-img{width:100%;height:150px}.wc-i{width:100%;height:150px}
 .rcards.three{grid-template-columns:1fr}.rcards{grid-template-columns:1fr}.trk li{font-size:11.5px}
 .kpis{grid-template-columns:1fr 1fr}.hb{grid-template-columns:90px 1fr 60px}.sample{flex-direction:column;align-items:flex-start}.vprod{align-items:flex-start}.dbox{padding:18px}
 .tbl.rows thead{display:none}.tbl.rows,.tbl.rows tbody,.tbl.rows tr,.tbl.rows td{display:block;width:100%}.tbl.rows tr{border-bottom:8px solid var(--bg);padding:6px 0}.tbl.rows td{border:0;padding:5px 14px;display:flex;justify-content:space-between;gap:12px;text-align:right}.tbl.rows td:before{content:attr(data-l);color:var(--muted);font-size:12.5px;text-align:left;flex:none}.tbl.rows td.chkc{display:none}
 .tbl.rows td.ell{max-width:none;white-space:normal}.tbl.rows th[scope=row]{display:block;width:100%;padding:8px 14px;border:0}.tbl.rows td .input{max-width:120px}
 .who .nm,.who small{display:none}.adtop{padding:0 12px}.adtop-l b{font-size:14px;line-height:1.25}
 .strip-in b{font-size:16px}.contact{flex-direction:column;align-items:flex-start}
}
@media (min-width:701px) and (max-width:1250px){.tbl.rows{min-width:940px}.tbl.rows td,.tbl.rows th{white-space:nowrap}.tbl.rows td.ell{white-space:nowrap}}
/* 인쇄 */
@media print{
 body{background:#fff}#rolebar,#site-header,#admin-side,#site-footer,.page-head,.crumb,.side,.cert-acts,.banner,#toast,.skip,#busy,.tabs,.res,.vform,.vgrid>div>.card{display:none!important}
 body.printing-cert #main>.wrap>*{display:none!important}body.printing-cert #main>.wrap>.vgrid{display:block!important}body.printing-cert .vgrid>div{display:block!important}body.printing-cert .cert{display:block!important;box-shadow:none;border-color:#999}
 body.printing-cert #vres,body.printing-cert #vres .cert{display:block!important}
 body.printing-sheet #main>.ad-wrap>*{display:none!important}body.printing-sheet #main>.ad-wrap>.sheet-wrap{display:block!important;background:#fff;padding:0}body.printing-sheet .sheet-wrap svg{width:auto;height:275mm;max-width:100%;box-shadow:none}body.printing-sheet #main,body.printing-sheet .ad-wrap{padding:0!important;margin:0}body.printing-sheet #shell{display:block!important}
 @page{margin:10mm}
}
