*{box-sizing:border-box}body{margin:0;font-family:-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",sans-serif;background:#f4f6f9;color:#1d2433;font-size:14px}
a{color:#2457c5;text-decoration:none}header{display:flex;align-items:center;gap:12px;background:#17325c;color:#fff;padding:10px 16px;position:sticky;top:0;z-index:5}
header b{font-size:16px}header .sp{flex:1}header button{background:#2b4c80;color:#fff;border:0}#menuBtn{display:none}
.layout{display:flex;min-height:calc(100vh - 48px)}nav{width:200px;background:#fff;border-right:1px solid #dde2ea;padding:8px 0;flex-shrink:0}
nav a{display:block;padding:9px 18px;color:#1d2433}nav a.on{background:#e7eefb;color:#17325c;font-weight:600;border-left:3px solid #2457c5}
main{flex:1;padding:18px;min-width:0}h1{font-size:20px;margin:0 0 14px}h2{font-size:16px;margin:18px 0 8px}
.card{background:#fff;border:1px solid #dde2ea;border-radius:8px;padding:14px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.kpi .v{font-size:20px;font-weight:700;margin-top:4px}.kpi .l{color:#5b6475;font-size:12px}
.tw{overflow-x:auto}table{border-collapse:collapse;width:100%;background:#fff}th,td{border-bottom:1px solid #e6e9ef;padding:7px 8px;text-align:left;vertical-align:top}th{background:#f0f3f8;font-weight:600;white-space:nowrap}
td.n,th.n{text-align:right;white-space:nowrap}button,.btn{padding:6px 12px;border:1px solid #c5ccd8;border-radius:6px;background:#fff;cursor:pointer;font:inherit}
button.p{background:#2457c5;color:#fff;border-color:#2457c5}button.d{color:#b42318;border-color:#f0b4ae}button:disabled{opacity:.5;cursor:default}
input,select,textarea{padding:6px 8px;border:1px solid #c5ccd8;border-radius:6px;font:inherit;max-width:100%}textarea{width:100%;min-height:60px}
form.f{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;align-items:end}form.f label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#5b6475}
.tag{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;background:#eef1f6}.tag.ok{background:#dcf5e3;color:#11643a}.tag.w{background:#fff1d6;color:#8a5a00}.tag.x{background:#fde2e0;color:#a3170d}
.bar{height:8px;background:#e6e9ef;border-radius:4px;overflow:hidden;min-width:80px}.bar i{display:block;height:100%;background:#2f8f5b}
.muted{color:#6b7385}.err{color:#b42318}.toast{position:fixed;bottom:16px;right:16px;background:#17325c;color:#fff;padding:10px 14px;border-radius:8px;z-index:9}
.login{max-width:380px;margin:12vh auto}.login input{width:100%;margin-bottom:10px;padding:9px}.row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.stages{display:flex;gap:4px;flex-wrap:wrap}.stages span{font-size:11px;padding:2px 6px;border-radius:4px;background:#eef1f6}.stages span.cur{background:#2457c5;color:#fff}.stages span.past{background:#dcf5e3}
details summary{cursor:pointer}
@media(max-width:760px){nav{position:fixed;left:-220px;top:48px;bottom:0;transition:left .2s;z-index:4;box-shadow:2px 0 8px #0002}nav.open{left:0}#menuBtn{display:inline-block}header .who{display:none}main{padding:10px}}
