*{box-sizing:border-box}
body{margin:0;font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;font-size:14px;color:#222;background:#f4f6f9}
a{color:#8f6a14;text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;gap:18px;background:#1f1b16;color:#fff;padding:0 20px;height:48px;position:sticky;top:0;z-index:10}
.top a{color:#e9e0cf}.brand{font-weight:700;color:#fff!important;font-size:16px;display:flex;align-items:center;gap:8px}.brand img{border-radius:7px}
.top nav{display:flex;gap:16px;flex:1;flex-wrap:wrap}.who{font-size:13px;display:flex;gap:10px;align-items:center}
.badge{background:#e5484d;color:#fff;border-radius:9px;padding:0 6px;margin-left:4px;font-size:11px}
main{max-width:1100px;margin:20px auto;padding:0 16px}
h2{margin:0 0 14px;font-size:20px}h3{margin:22px 0 8px;font-size:15px}
.card{background:#fff;border:1px solid #dde3ec;border-radius:8px;padding:16px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.formcard{display:block;background:#fff;border:1px solid #dde3ec;border-radius:8px;padding:22px;text-align:center;font-size:16px;font-weight:600;color:#1f1b16}
.formcard:hover{border-color:#c9a24d;text-decoration:none;box-shadow:0 2px 8px #0001}
table{border-collapse:collapse;width:100%;background:#fff}
th,td{border:1px solid #dde3ec;padding:7px 9px;text-align:left;vertical-align:top}
th{background:#f0f3f8;font-weight:600;white-space:nowrap}
.list td,.list th{font-size:13px}.list tr:hover td{background:#fafcff}
input[type=text],input[type=password],input[type=date],input[type=number],select,textarea{width:100%;padding:7px 8px;border:1px solid #c5ceda;border-radius:5px;font:inherit;background:#fff}
textarea{resize:vertical}
.btn,button{display:inline-block;padding:7px 14px;border:1px solid #c5ceda;border-radius:5px;background:#fff;cursor:pointer;font:inherit;color:#222}
.btn:hover,button:hover{background:#eef2f8;text-decoration:none}
.btn.pri,button.pri{background:#c9a24d;border-color:#c9a24d;color:#1f1b16;font-weight:700}.btn.pri:hover,button.pri:hover{background:#b58f3e}
.btn.danger,button.danger{background:#fff;border-color:#e5484d;color:#c62a2f}
.btn.sm,button.sm{padding:2px 8px;font-size:12px}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:12px}.flash.ok{background:#e6f6ec;border:1px solid #9bd5b0}.flash.err{background:#fdecec;border:1px solid #f1a5a8}
.tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:2px solid #dde3ec}
.tabs a{padding:8px 16px;color:#555}.tabs a.on{color:#8f6a14;font-weight:700;border-bottom:2px solid #c9a24d;margin-bottom:-2px}
.st{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:#e8ecf3}
.st.진행중{background:#fff3cd}.st.완료{background:#d8f1e0}.st.반려{background:#fde0e0}.st.임시저장{background:#e8ecf3}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:#778}.right{text-align:right}
em{color:#d33;font-style:normal}
.formtbl th{width:150px}.line td{padding:4px 6px}.line .mv{white-space:nowrap;width:70px}
.login{max-width:340px;margin:90px auto}.login h2{text-align:center}.login .card input{margin-bottom:10px}
/* 문서(인쇄용 결재 양식) */
.paper{background:#fff;border:1px solid #c9d1de;max-width:800px;margin:0 auto 16px;padding:36px 40px}
.paper-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px;gap:20px}
.paper h1{font-size:30px;letter-spacing:10px;margin:14px 0 0;flex:1;text-align:center}
.appr{width:auto;border:1.5px solid #333}.appr th,.appr td{border:1px solid #333;text-align:center;padding:3px 0;min-width:78px}
.appr th{background:#f3f3f3;font-size:12px;padding:3px 6px}.appr td.sig{height:58px;vertical-align:middle;font-size:13px;position:relative}
.appr td.dt{font-size:11px;height:20px;color:#444}
.stamp{display:inline-block;border:2px solid #d33;color:#d33;border-radius:50%;width:34px;height:34px;line-height:30px;font-size:11px;font-weight:700;margin-top:2px}
.stamp.rej{border-color:#555;color:#555}.nm{display:block;font-size:12px}
.meta{margin-bottom:12px}.meta th{width:90px}.body th{width:130px}.pre{white-space:pre-wrap;min-height:20px}
.reject-box{background:#fdecec;border:1px solid #f1a5a8;border-radius:6px;padding:10px 14px;margin-bottom:12px}
.actions{max-width:800px;margin:0 auto 12px;display:flex;gap:8px;flex-wrap:wrap}
.approve-box{max-width:800px;margin:0 auto 16px}
/* 캘린더 */
.cal{table-layout:fixed}.cal th{text-align:center}.cal td{height:96px;padding:3px;font-size:12px}
.cal .dn{font-weight:700;font-size:12px}.cal td.out{background:#f6f7f9;color:#aab}.cal td.sun .dn,.cal td.hol .dn{color:#d33}.cal td.sat .dn{color:#2563c9}
.cal td.today{outline:2px solid #c9a24d;outline-offset:-2px}.hn{color:#d33;font-size:11px;margin-left:4px}
.chip{display:block;border-radius:3px;padding:1px 4px;margin-top:2px;font-size:11.5px;line-height:1.35}
.chip.annual{background:#dbe8ff}.chip.half{background:#d3f1ee}.chip.other{background:#e8e8e8}.chip.trip{background:#ffe6c7}
.cal-title{font-size:20px;font-weight:700;margin:0 12px}
.checks label{margin-right:14px;white-space:nowrap}
@media print{
 body{background:#fff}.noprint,.top{display:none!important}main{margin:0;max-width:none;padding:0}
 .paper{border:none;padding:0;max-width:none}.card{border:none;padding:0}.cal td{height:90px}
 @page{size:A4;margin:14mm}
}
.brand small{font-weight:400;font-size:11px;opacity:.7;margin-left:3px}
#toasts{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;flex-direction:column;gap:8px;max-width:340px}
.toast{display:block;background:#1f1b16;color:#fff!important;border-radius:8px;padding:10px 14px;box-shadow:0 4px 14px #0004;font-size:13px}
.toast b{display:block;margin-bottom:2px}.toast:hover{text-decoration:none;background:#2e2820}
.stamp.skip{border-color:#888;color:#888;font-size:10px}.stamp.final{border-color:#c0392b;color:#c0392b}
.unread td{background:#f3f8ff;font-weight:600}
code{background:#eef1f6;padding:1px 5px;border-radius:3px}
button.final{background:#c0392b;border-color:#c0392b;color:#fff}button.final:hover{background:#a93226}
button.final{background:#c0392b;border-color:#c0392b;color:#fff}button.final:hover{background:#a93226}
.appr th,.appr td{min-width:104px}.appr .nm{font-size:11.5px;padding:0 3px}
main>.row:first-child{margin-bottom:14px}

.brand img{flex:none;width:28px;height:28px}
.top{min-height:48px;height:auto;padding-top:0;padding-bottom:0}
.dd{position:relative}.dd summary{cursor:pointer;color:#e9e0cf;list-style:none}.dd summary::-webkit-details-marker{display:none}
.dd>div{position:absolute;top:30px;left:0;background:#1f1b16;border:1px solid #3a332a;border-radius:8px;padding:6px;min-width:150px;display:flex;flex-direction:column;box-shadow:0 6px 18px #0006;z-index:20}
.dd>div a{padding:7px 10px;border-radius:5px;white-space:nowrap}.dd>div a:hover{background:#2e2820;text-decoration:none}
