:root{--bg:#F3F5F8;--ink:#1B2430;--mute:#5B6572;--line:#DDE2EA;--line2:#ECEFF3;--blue:#1F6FD0;--blue2:#164E9A;--blue3:#E8F0FB;--red:#D83A2F;--orange:#C8601A;--green:#1B7F3B;--card:#fff;--sh:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);--r:10px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans KR','Malgun Gothic',system-ui,sans-serif;font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.util{background:#fff;border-bottom:1px solid var(--line);font-size:12px;color:var(--mute)}
.util .in{max-width:1240px;margin:0 auto;padding:6px 20px;display:flex;gap:16px;justify-content:flex-end;align-items:center}
.util .busy{color:var(--orange);font-weight:700;margin-right:auto}.util .flag{color:var(--red);font-weight:700}
.nav{background:linear-gradient(90deg,#1B5FB8,#1F6FD0 60%,#2A7FE0);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.nav .in{max-width:1240px;margin:0 auto;padding:0 20px;display:flex;align-items:center;min-height:56px;gap:16px}
.nav .brand{font-weight:700;font-size:18px;margin-right:6px;letter-spacing:-.2px}
.nav a{opacity:.92;font-size:14px;padding:4px 0;border-bottom:2px solid transparent}.nav a.on,.nav a:hover{opacity:1;font-weight:700;border-bottom-color:#fff}
.nav .qs{margin-left:auto;position:relative}.nav .qs input{height:34px;width:220px;border:0;border-radius:17px;padding:0 14px;font:inherit;font-size:13px;background:rgba(255,255,255,.18);color:#fff}
.nav .qs input::placeholder{color:rgba(255,255,255,.75)}.nav .qs input:focus{background:#fff;color:var(--ink);outline:0;width:280px}
.sug{position:absolute;top:38px;right:0;width:320px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.14);display:none;overflow:hidden}
.sug a{display:block;padding:8px 12px;border-bottom:1px solid var(--line2);font-size:13px;opacity:1}.sug a:hover{background:var(--blue3);border-bottom-color:var(--line2)}.sug small{display:block;color:var(--mute)}
.wrap{max-width:1240px;margin:0 auto;padding:22px 20px 60px}
h1{font-size:22px;margin:0 0 14px;letter-spacing:-.3px}h2{font-size:17px;margin:22px 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 20px;margin-bottom:18px;box-shadow:var(--sh)}
.kpis{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.kpi{flex:1 1 150px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;box-shadow:var(--sh)}
.kpi b{display:block;font-size:22px;color:var(--blue2)}.kpi span{font-size:12px;color:var(--mute)}
table.list{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:13px;box-shadow:var(--sh)}
table.list th{background:#F6F8FB;text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap}
table.list th.sortable{cursor:pointer;user-select:none}table.list th.sortable:hover{color:var(--blue)}table.list th .arr{font-size:10px;color:var(--mute);margin-left:3px}
table.list td{padding:9px 10px;border-bottom:1px solid var(--line2);vertical-align:top}
table.list tr:nth-child(even) td{background:#FBFCFD}table.list tr:hover td{background:#F0F5FD}
tr.exp td{background:#FFFBEA!important;white-space:pre-wrap;font-size:12px;color:#4A4A4A}
.t{font-weight:700;color:var(--blue2)}.sub{font-size:12px;color:var(--mute)}
.q{color:var(--orange);font-size:12px;margin-top:3px;display:block;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag{display:inline-block;background:var(--blue3);color:var(--blue2);border-radius:4px;padding:0 6px;font-size:11px;margin-right:3px;line-height:18px}
.dead{color:var(--red);font-weight:700}.closed{color:#6B7280}
.cond{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.cond th{width:110px;background:#F6F8FB;text-align:left;padding:9px 12px;border-bottom:1px solid var(--line2);font-weight:700;font-size:13px}
.cond td{padding:7px 12px;border-bottom:1px solid var(--line2)}
input[type=text],input[type=date],select,input[type=password],input[type=number]{padding:7px 9px;border:1px solid #C9D0DA;border-radius:6px;font:inherit;font-size:13px;background:#fff}
input:focus,select:focus{outline:2px solid #BFD4F5;border-color:var(--blue)}
.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:6px;padding:8px 16px;font:inherit;font-weight:700;cursor:pointer;transition:.15s}.btn:hover{background:var(--blue2)}
.btn.sec{background:#fff;color:var(--blue);border:1px solid #BFD4F5}.btn.sec:hover{background:var(--blue3)}.btn.warn{background:var(--red)}
.btn:disabled{opacity:.5;cursor:default}
.chips a,.chips span.c{display:inline-block;border:1px solid var(--line);background:#fff;border-radius:14px;padding:3px 11px;margin:2px;font-size:12px;transition:.15s}
.chips a:hover{border-color:var(--blue);color:var(--blue)}.chips a.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.pager{margin:12px 0;font-size:13px}.pager a{margin:0 4px;padding:4px 10px;border:1px solid var(--line);background:#fff;border-radius:6px}
.head3{display:flex;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:20px;flex-wrap:wrap;box-shadow:var(--sh);overflow:hidden}
.head3>div{flex:1 1 200px;padding:14px 20px;border-right:1px solid var(--line2)}.head3>div:last-child{border-right:0}
.head3 small{display:block;font-size:12px;color:var(--mute)}.head3 b{font-size:17px}
.two{display:flex;gap:22px;flex-wrap:wrap;align-items:flex-start}.two>div{flex:1 1 400px;min-width:0}
ol.items{margin:0;padding:0;list-style:none;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
ol.items li{display:flex;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line2)}ol.items li:last-child{border-bottom:0}
ol.items .n{flex-shrink:0;width:22px;height:22px;border-radius:11px;background:var(--blue3);color:var(--blue2);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
label.chk{display:flex;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line2);cursor:pointer;align-items:flex-start}
label.chk input{width:18px;height:18px;margin-top:2px;accent-color:var(--blue)}label.chk.done span{color:#8a919a;text-decoration:line-through}
pre.raw{white-space:pre-wrap;background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12px;max-height:420px;overflow:auto;font-family:inherit}
.note{font-size:12px;color:var(--mute)}
.warnbox{background:#FFF6E8;border:1px solid #F3CF9A;border-radius:8px;padding:10px 14px;font-size:13px;margin:10px 0}
.okbox{background:#EAF7EE;border:1px solid #A9DBB8;border-radius:8px;padding:10px 14px;font-size:13px;margin:10px 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:800px){.grid2{grid-template-columns:1fr}}
.map{height:380px;border:1px solid var(--line);background:#eee;border-radius:8px}
.cnt{background:#fff;color:var(--blue);border-radius:10px;padding:0 6px;font-size:11px;margin-left:2px}
.star{border:0;background:none;cursor:pointer;font-size:17px;color:#C9CDD3;padding:0 4px;line-height:1}.star.on{color:#F2A900}
.sec2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}@media(max-width:900px){.sec2{grid-template-columns:1fr}}
.mini{width:100%;border-collapse:collapse;font-size:13px}.mini td{padding:6px 6px;border-bottom:1px solid var(--line2);vertical-align:top}.mini tr:last-child td{border-bottom:0}
.dd{display:inline-block;min-width:52px;text-align:center;border-radius:4px;padding:0 6px;font-size:12px;font-weight:700;background:#EEF1F5;color:var(--mute)}
.dd.hot{background:#FDE8E6;color:#B3261E}.dd.warm{background:#FFF4E5;color:#9A5B00}
.bar{display:flex;align-items:center;gap:8px;font-size:13px;margin:3px 0}.bar i{display:block;height:14px;background:linear-gradient(90deg,#4A8FE0,#1F6FD0);border-radius:3px}.bar b{min-width:36px;text-align:right}.bar span{min-width:120px}
textarea.memo{width:100%;min-height:70px;font:inherit;font-size:13px;padding:8px;border:1px solid #C9D0DA;border-radius:6px}
.watchbox{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;box-shadow:var(--sh)}
.watchbox form.inline{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}
.cal{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);table-layout:fixed;border-radius:var(--r);overflow:hidden}
.cal th{background:#F6F8FB;padding:6px;font-size:12px}.cal td{vertical-align:top;height:96px;border:1px solid var(--line2);padding:4px;font-size:11px}
.cal td.dim{background:#FAFAFA;color:#bbb}.cal td.today{background:#FFFBE6}.cal .dn{font-weight:700;font-size:12px;margin-bottom:2px}
.cal .ev{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:3px;padding:0 3px;margin:1px 0}.cal .dl{background:#FDE8E6;color:#B3261E}.cal .fd{background:#FFF4E5;color:#9A5B00}
.hero{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.herobar{flex:1 1 640px;display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:linear-gradient(135deg,#EEF3FA,#E6EEF9);border:1px solid #D5E0F0;border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh)}
.hb{display:flex;flex-direction:column;gap:3px;flex:0 1 150px}.hb label{font-size:12px;color:var(--mute)}.hb select,.hb input{height:44px;font-size:14px}
.herosub{flex:0 1 240px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh)}
.icons{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px;margin-bottom:16px;box-shadow:var(--sh)}
.icons a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:8px;font-size:13px;transition:.15s}.icons a:hover{background:var(--blue3);transform:translateY(-1px)}.icons i{font-style:normal;font-size:26px}
h2.sect{font-size:18px;margin:18px 0 8px}
.strip{display:grid;grid-template-columns:repeat(6,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.strip a{padding:10px 12px;border-right:1px solid var(--line2);display:block;transition:.15s}.strip a:hover{background:#F6F8FB}.strip a:last-child{border-right:0}.strip a.today{background:var(--blue3);box-shadow:inset 0 3px 0 var(--blue)}
.strip .d{font-weight:700;font-size:13px}.strip .c{display:flex;gap:8px;font-size:12px;color:var(--mute);margin-top:4px;flex-wrap:wrap}.strip .c b{color:var(--ink)}.strip .dl b{color:#B3261E}.strip .fd b{color:#9A5B00}
.pill{background:var(--blue);color:#fff;border-radius:9px;padding:0 6px;font-size:10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pc{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;padding:0 0 10px;box-shadow:var(--sh);transition:.15s}.pc:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 6px 16px rgba(16,24,40,.12)}
.pc .band{display:flex;justify-content:space-between;padding:6px 12px;color:#fff;font-size:12px;font-weight:700}
.b0{background:#1F6FD0}.b1{background:#2E8B57}.b2{background:#C8601A}.b3{background:#6B4FBB}.b4{background:#B3261E}
.pc .pt{font-weight:700;font-size:15px;padding:10px 12px 2px;color:var(--blue2)}.pc .pt a{color:inherit;text-decoration:none}.pc .sub,.pc .q{padding:0 12px}.pc .pr{padding:6px 12px 0}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin:8px 0 14px;flex-wrap:wrap}
.tabs a{padding:8px 14px;border-radius:8px 8px 0 0;font-weight:700;color:var(--mute);cursor:pointer}.tabs a.on{color:var(--blue);background:#fff;border:1px solid var(--line);border-bottom-color:#fff;margin-bottom:-2px}
.tab{display:none}.tab.on{display:block}
.tl{position:relative;padding-left:18px;border-left:2px solid var(--line)}.tl div{position:relative;margin:0 0 10px;font-size:13px}.tl div:before{content:"";position:absolute;left:-24px;top:5px;width:10px;height:10px;border-radius:5px;background:var(--blue)}.tl div.r:before{background:var(--green)}
.chartbox{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;box-shadow:var(--sh)}.chartbox h3{margin:0 0 6px;font-size:14px}
.tw{overflow-x:auto}
@media(max-width:800px){.strip{grid-template-columns:repeat(3,1fr)}.nav .qs{display:none}.wrap{padding:14px 12px 50px}table.list th{position:static}}
@media print{.util,.nav,.btn,.star,form,details,.note{display:none!important}.wrap{padding:0}body{background:#fff}}

/* v4.3: 참여 가능 표시 · 서류함 · 모바일 */
.fit{display:inline-block;border-radius:4px;padding:0 6px;font-size:11px;font-weight:700;line-height:18px;margin-right:4px}.fit.ok{background:#EAF7EE;color:#1B7F3B}.fit.no{background:#FDECEA;color:#B3261E}
.fitbar{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:16px}.fitbar a{display:block;background:#EAF7EE;border:1px solid #A9DBB8;border-radius:var(--r);padding:10px 14px;font-size:13px}.fitbar a .n{font-size:18px;color:#1B7F3B}.fitbar a.warn{background:#FFF6E8;border-color:#F3CF9A}
@media(max-width:800px){
 .fitbar{grid-template-columns:1fr}
 .nav .in{gap:12px;padding:0 10px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.nav .in::-webkit-scrollbar{display:none}.nav a{font-size:13px;flex:0 0 auto}.nav .brand span{display:none}
 .cond th{display:none}.cond td{display:block;padding:6px 10px}.cond input[type=text],.cond input[type=date],.cond select{max-width:100%;font-size:15px}
 table.list th.hm,table.list td.hm{display:none}table.list td,table.list th{padding:8px 6px;font-size:13px}
 .kpis{gap:8px}.kpi{flex:1 1 44%;padding:10px 12px}.kpi b{font-size:18px}
 .g3,.grid2{grid-template-columns:1fr}.icons{grid-template-columns:repeat(4,1fr)}.icons a{font-size:12px}.icons i{font-size:22px}
 h1{font-size:20px}.btn{padding:8px 12px}
}
.nav a{white-space:nowrap}.nav .qs{flex:0 1 220px;margin-left:auto}@media(max-width:1200px){.nav .brand span{display:none}}

/* v4.5 회원·잠금 */
.authbox{max-width:420px;margin:30px auto}.authbox input{font-size:15px;padding:8px 10px}.authbox p{margin:10px 0}
.lock{color:var(--mute);white-space:nowrap}.lock .blur{filter:blur(4px);user-select:none;letter-spacing:1px}.lock:hover{color:var(--blue)}
.legal h3{margin:16px 0 4px;font-size:14px}.legal p{font-size:13px;line-height:1.75;margin:4px 0}.legal table{font-size:12px}
.nav .joinbtn,.util .joinbtn{background:#fff;color:var(--blue2);border-radius:14px;padding:3px 10px;font-weight:700;opacity:1}
button.lnk{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0;margin-left:14px;opacity:.9}.util button.lnk:hover{opacity:1;text-decoration:underline}

/* v5.1 */
.pitch{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(90deg,#EAF2FF,#fff);border:1px solid var(--blue3);border-radius:var(--r);padding:12px 16px;margin-bottom:14px;font-size:14px}.pitch .pr{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pitch .pr span{color:var(--mute);font-size:13px}
mark{background:#FFF3B0;padding:0 2px}
@media(max-width:700px){.icons{grid-template-columns:repeat(3,1fr)}.icons a:nth-child(n+7){display:none}.lowpri{display:none}.pitch{font-size:13px}.hero .herosub{display:none}.sect .sub{display:none}.cards{grid-template-columns:1fr}h1{font-size:20px}}
.util a,.util span{white-space:nowrap}@media(max-width:700px){.util .in>span.sub,.util .in>span:not(.busy):not(.dd){display:none}.util .in{gap:10px}}
#ctxm{position:fixed;display:none;background:#fff;border:1px solid var(--line);border-radius:10px;min-width:210px;box-shadow:0 10px 30px rgba(0,0,0,.18);z-index:60;padding:4px;font-size:13px}#ctxm .h{padding:6px 10px;color:var(--mute);font-size:12px;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}#ctxm .i{padding:7px 10px;cursor:pointer;border-radius:6px}#ctxm .i:hover{background:var(--blue3)}#ctxm hr{border:0;border-top:1px solid var(--line);margin:3px 0}
.r{text-align:right}
.pitch .nums{display:flex;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:13px;color:var(--mute)}.pitch .nums b{color:var(--blue2);font-size:16px}
.dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}.dash a{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;box-shadow:var(--sh);color:inherit;text-decoration:none}.dash a:hover{border-color:var(--blue)}
.dash .n{font-size:26px;color:var(--blue2);min-width:34px;text-align:center}.dash span{font-size:13px;line-height:1.3}.dash small{color:var(--mute);font-size:11px}.dash a.warn{border-color:#F2B8B5;background:#FFF8F7}.dash a.warn .n{color:#B3261E}
@media(max-width:700px){.dash{grid-template-columns:1fr 1fr}.pitch .nums{gap:8px}}
