:root{--navy:#1f3864;--blue:#2457a6;--ink:#1f2328;--muted:#6b7280;--line:#e3e7ee;--bg:#f6f8fb;--card:#fff;--period:#eaf2ff;--radius:10px}
*{box-sizing:border-box}
body{margin:0;font-family:Pretendard,"맑은 고딕","Malgun Gothic",system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}
.top{display:flex;align-items:center;gap:22px;padding:14px 24px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.logos{display:flex;align-items:center;gap:14px}
.logo-cbe{height:38px}.logo-dc{height:40px}.logo-sep{width:1px;height:30px;background:var(--line)}
.titles .org{font-size:12px;color:var(--muted);letter-spacing:.04em}
.titles h1{margin:0;font-size:20px;color:var(--navy);font-weight:800}
.titles .sub{display:inline-block;margin-left:6px;padding:2px 10px;border-radius:99px;background:var(--navy);color:#fff;font-size:13px;font-weight:600;vertical-align:middle}
.tabs{display:flex;gap:4px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;overflow-x:auto}
.tabs button{border:0;background:none;padding:12px 16px;font:inherit;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.tabs button.on{color:var(--navy);border-bottom-color:var(--navy)}
main{max-width:1180px;margin:0 auto;padding:20px 16px 40px}
.tab{display:none}.tab.on{display:block}
.banner{max-width:1180px;margin:12px auto 0;padding:10px 14px;border-radius:8px;background:#fff7e0;border:1px solid #f0d58a;font-size:13px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.toolbar.wrap{flex-wrap:wrap}
.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer}
.btn:hover{border-color:#b9c3d3}
.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.danger{color:#b42318;border-color:#f3c6c2}
.btn.small{padding:5px 10px;font-size:13px}
.btn.small.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.legend-period{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.sw{display:inline-block;width:16px;height:16px;border-radius:4px;border:1px solid var(--line)}
.sw.period{background:var(--period);border-color:#bcd3f5}
.calendar{display:grid;grid-template-columns:1fr;gap:16px}
.month{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.month h2{margin:0;padding:10px 14px;font-size:16px;color:var(--navy);border-bottom:1px solid var(--line);background:#fbfcfe}
.dow{display:grid;grid-template-columns:repeat(7,1fr);font-size:12px;color:var(--muted);text-align:center;padding:6px 0;border-bottom:1px solid var(--line)}
.dow span:first-child{color:#c2410c}.dow span:last-child{color:#2457a6}
.week{display:grid;grid-template-columns:repeat(7,1fr);position:relative;border-bottom:1px solid var(--line);padding-bottom:6px}
.week:last-child{border-bottom:0}
.day{border-right:1px solid var(--line);padding:2px 5px;font-size:12px;cursor:pointer;margin-bottom:-6px;min-height:64px}
.day.c7{border-right:0}
.day.out{background:#fafafa;color:#c4c9d2;cursor:default}
.day.period{background:var(--period)}
.day.sun .dn{color:#c2410c}.day.sat .dn{color:#2457a6}
.day.out .dn{color:#c4c9d2}
.day.today .dn{background:var(--navy);color:#fff;border-radius:99px;padding:0 6px}
.dn{font-weight:700;display:inline-block}
.bar{position:relative;z-index:2;margin:1px 3px;padding:0 6px;border-radius:5px;font-size:12.5px;line-height:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:#1f2328}
.bar.cont-l{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:0}
.bar.cont-r{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}
.sec-title{margin:26px 0 10px;font-size:16px;color:var(--navy)}
.event-list{display:flex;flex-direction:column;gap:6px}
.ev{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.ev .dot{width:12px;height:12px;border-radius:3px;flex:none}
.ev .when{min-width:200px;color:var(--muted);font-size:14px}
.ev .what{flex:1;font-weight:600}
.ev .memo{color:var(--muted);font-weight:400;font-size:13px;margin-left:6px}
.ev .act{display:flex;gap:6px}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
table.grid{width:100%;border-collapse:collapse;font-size:14px}
.grid th{background:#f2f5fa;color:#374151;font-weight:700;padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.grid td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.grid tr:last-child td{border-bottom:0}
.grid input[type=number]{width:72px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;font:inherit;text-align:center}
.grid input[type=text]{width:100%;min-width:90px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;font:inherit}
.grid input:disabled{background:#f3f4f6;color:#9ca3af}
.grid .na{color:#9ca3af;font-size:13px}
.grid tfoot td{font-weight:700;background:#fafbfd}
.grid td.num,.grid th.num{text-align:center}
.hint{color:var(--muted);font-size:13px;margin:10px 2px}
.name-chip{display:inline-flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}
.name-chip i{width:12px;height:12px;border-radius:3px;display:inline-block}
.filters,.sorts{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filters select,.filters input[type=search]{padding:7px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
.filters input[type=search]{min-width:200px}
.chk{font-size:14px;display:flex;gap:4px;align-items:center}
.sorts span{color:var(--muted);font-size:13px}
.summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.summary .pill{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:99px;border:1px solid var(--line);background:#fff;font-size:13px;cursor:pointer;font:inherit;font-size:13px}
.summary .pill.on{outline:2px solid var(--navy)}
.summary .pill i{width:12px;height:12px;border-radius:99px;display:inline-block}
.summary .pill b{font-variant-numeric:tabular-nums}
.std td.code a{font-weight:700;color:var(--blue);text-decoration:underline;cursor:pointer;white-space:nowrap}
.std td.area{white-space:nowrap;color:#4b5563;font-size:13px}
.std select{padding:5px 8px;border:1px solid #cfd6e2;border-radius:6px;font:inherit;background:#fff;min-width:96px}
.modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:flex-start;justify-content:center;padding:6vh 14px;z-index:50;overflow-y:auto}
.modal[hidden]{display:none}
.modal-box{position:relative;background:#fff;border-radius:14px;max-width:780px;width:100%;padding:22px 24px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.modal-x{position:absolute;top:10px;right:12px;border:0;background:none;font-size:24px;cursor:pointer;color:var(--muted)}
.modal-box h3{margin:0 0 4px;color:var(--navy);padding-right:30px}
.modal-box .meta{color:var(--muted);font-size:13px;margin-bottom:14px}
.modal-box .blk{margin:14px 0}
.modal-box .blk h4{margin:0 0 6px;font-size:14px;color:#374151}
.modal-box .blk ul{margin:0;padding-left:18px;font-size:14px;color:#374151}
.modal-box .std-text{font-size:16px;font-weight:600;background:#f5f8ff;border-left:4px solid var(--navy);padding:10px 12px;border-radius:6px}
.levels{width:100%;border-collapse:collapse;font-size:14px}
.levels td{border:1px solid var(--line);padding:8px 10px;vertical-align:top}
.levels td.lv{width:44px;text-align:center;font-weight:800;color:#fff}
.form{display:grid;grid-template-columns:110px 1fr;gap:10px 12px;align-items:center}
.form input,.form textarea,.form select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;width:100%}
.form textarea{min-height:60px;resize:vertical}
.colors{display:flex;gap:8px;flex-wrap:wrap}
.colors label{cursor:pointer}.colors input{display:none}
.colors span{display:inline-block;width:26px;height:26px;border-radius:6px;border:2px solid transparent}
.colors input:checked+span{border-color:var(--ink)}
.form-actions{display:flex;justify-content:space-between;margin-top:18px;gap:8px}
.form-actions .right{display:flex;gap:8px;margin-left:auto}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:9px 16px;border-radius:8px;font-size:14px;z-index:60}
.foot{text-align:center;color:var(--muted);font-size:12px;padding:20px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}
.card h3{margin:0 0 10px;color:var(--navy);font-size:16px}
@media (max-width:640px){.top{padding:12px 16px}.titles h1{font-size:17px}.tabs{padding:0 8px}.ev{flex-wrap:wrap}.ev .when{min-width:0;width:100%}.form{grid-template-columns:1fr}}

.tabs .dl-btn{margin-left:auto;color:var(--navy)}
.btn.small.primary{background:var(--navy);color:#fff;border-color:var(--navy);text-decoration:none}
.tabs .drive-btn{display:flex;align-items:center;padding:12px 16px;font-weight:600;color:#188038;text-decoration:none;white-space:nowrap;border-bottom:3px solid transparent}
.tabs .drive-btn:hover{color:#0b5d24;border-bottom-color:#188038}
