/* 광주대학교 EIS와 같은 색·각진 디자인 */
:root { --bg:#f1f3ef; --ink:#25322a; --ink2:#5a665e; --muted:#929b94; --line:#e1e6df;
  --g:#3e8e5c; --c:#3f98cf; --o:#7aa23a; --r:#d36e56;
  --font:"Noto Sans KR","Malgun Gothic","맑은 고딕",sans-serif; }
* { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--bg); color:var(--ink); font-family:var(--font); font-size:15px; }
a { color:var(--c); }
.hdr { background:#fff; height:56px; display:flex; align-items:center; padding:0 28px; border-bottom:4px solid;
  border-image:linear-gradient(90deg,#3f98cf 0 45%,#8fb444 45% 100%) 1; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); }
.brand .sq { width:26px; height:26px; display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.brand .sq i:nth-child(1){background:#3f98cf}.brand .sq i:nth-child(2){background:#8cc0e6}
.brand .sq i:nth-child(3){background:#3e8e5c}.brand .sq i:nth-child(4){background:#7aa23a}
.brand b { font-size:19px; font-weight:800; } .brand small { color:var(--muted); font-size:13px; }
.wrap { max-width:1100px; margin:0 auto; padding:20px 24px 40px; }
.pn { background:#fff; border-top:3px solid var(--c); box-shadow:0 1px 2px rgba(0,0,0,.06); margin-bottom:16px; padding:0 18px 18px; }
.pn.g{border-top-color:var(--g)} .pn.o{border-top-color:var(--o)} .pn.r{border-top-color:var(--r)}
.ph { display:flex; justify-content:space-between; align-items:center; height:46px; border-bottom:1px solid var(--line); margin-bottom:14px; }
.ph h2 { font-size:16px; font-weight:800; } .ph small { color:var(--muted); font-size:13px; }
.row { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
label { display:flex; flex-direction:column; gap:5px; font-size:13px; color:var(--ink2); font-weight:700; flex:1; min-width:180px; }
input { height:38px; border:1px solid var(--line); padding:0 10px; font:inherit; font-weight:400; background:#f7f9f6; color:var(--ink); }
input:focus { outline:2px solid var(--c); outline-offset:-1px; background:#fff; }
.btn { height:38px; padding:0 18px; border:0; background:var(--c); color:#fff; font:inherit; font-weight:700; cursor:pointer;
  display:inline-flex; align-items:center; text-decoration:none; }
.btn:hover { filter:brightness(1.05); }
.btn.ghost { background:#fff; color:var(--ink); border:1px solid var(--line); }
.btn.danger { background:var(--r); } .btn.sm { height:30px; padding:0 12px; font-size:13px; }
.search { display:flex; gap:8px; margin-bottom:14px; } .search input { flex:1; }
table { width:100%; border-collapse:collapse; }
th { text-align:left; font-size:13px; color:var(--muted); border-bottom:1.5px solid var(--ink); padding:8px 10px; }
td { padding:9px 10px; border-bottom:1px solid #edf0eb; }
tr:hover td { background:#f7faf7; }
.num { font-variant-numeric:tabular-nums; } .muted { color:var(--muted); }
.act { white-space:nowrap; text-align:right; } .act form { display:inline; }
.empty { text-align:center; color:var(--muted); padding:30px; }
.flash { background:#ebf4ee; border-left:4px solid var(--g); padding:10px 14px; margin-bottom:14px; font-weight:700; }
.errors { background:#f9ede8; border-left:4px solid var(--r); padding:10px 14px 10px 30px; margin-bottom:14px; color:#9c3f2b; }
.msg { margin-bottom:14px; }
@media (max-width:700px){ .act{white-space:normal} th:nth-child(4),td:nth-child(4){display:none} }
