:root{--navy:#0b2545;--blue:#12355b;--cyan:#1d8ad8;--sky:#eaf5ff;--green:#16a085;--orange:#f3a712;--red:#d84a4a;--ink:#14213d;--muted:#6b778c;--line:#e6ebf2;--bg:#f5f8fc;--white:#fff;--shadow:0 12px 34px rgba(28,50,80,.08)}*{box-sizing:border-box}body{margin:0;font-family:Pretendard,"Noto Sans KR","Malgun Gothic",Arial,sans-serif;color:var(--ink);background:var(--bg)}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.shell{display:flex;min-height:100vh}.sidebar{width:255px;background:linear-gradient(180deg,#071a33 0%,#0b2545 62%,#102f54 100%);color:#fff;position:fixed;inset:0 auto 0 0;padding:24px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 26px;border-bottom:1px solid rgba(255,255,255,.1)}.brand img{width:80px;height:38px;object-fit:contain;background:#fff;border-radius:7px;padding:4px}.brand b{display:block;font-size:18px}.brand span{display:block;color:#9fb7d4;font-size:12px;margin-top:2px}.sidebar nav{padding-top:18px}.navitem{display:flex;gap:13px;align-items:center;padding:12px 13px;margin:4px 0;border-radius:11px;color:#d5e2ef;font-weight:600;font-size:14px}.navitem:hover{background:rgba(255,255,255,.09);color:#fff}.navcap{font-size:11px;letter-spacing:.12em;color:#718aa7;margin:20px 12px 8px}.sidefoot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 8px 0;font-size:13px}.userchip strong,.userchip span{display:block}.userchip span{color:#94abc5;margin:4px 0 12px}.sidefoot>a{color:#bcd2e8}.main{margin-left:255px;min-width:0;flex:1}.topbar{height:112px;background:#fff;border-bottom:1px solid var(--line);padding:24px 34px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.topbar h1{font-size:25px;margin:4px 0 0}.eyebrow{font-size:10px;letter-spacing:.18em;color:#8291a5;font-weight:800}.topright{display:flex;gap:10px;align-items:center}.pill{padding:7px 10px;border-radius:999px;background:#edf5ff;color:#235c8f;font-size:11px;font-weight:800}.clock{font-size:12px;color:var(--muted)}.content{padding:28px 34px 56px;max-width:1500px;margin:auto}.welcome,.pageactions,.projecthero,.submissionhero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.welcome{background:linear-gradient(125deg,#12355b,#195c8f);color:#fff;border-radius:20px;padding:25px 28px;box-shadow:var(--shadow)}.welcome h2,.pageactions h2,.projecthero h2,.submissionhero h2{margin:0 0 6px;font-size:23px}.welcome p,.pageactions p,.projecthero p,.submissionhero p{margin:0;color:inherit;opacity:.75}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #d5deea;background:#fff;color:#24425f;padding:10px 14px;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer}.btn:hover{transform:translateY(-1px)}.btn.primary{background:linear-gradient(135deg,#1769aa,#1d8ad8);border-color:#1769aa;color:#fff;box-shadow:0 7px 20px rgba(29,138,216,.2)}.btn.danger{border-color:#f0c2c2;color:#b22f2f;background:#fff4f4}.btn.full{width:100%}.btn.tiny{padding:6px 10px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0}.kpis.compact{grid-template-columns:repeat(3,minmax(0,220px))}.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 21px;box-shadow:0 5px 18px rgba(28,50,80,.04)}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi b{display:block;font-size:30px;margin:8px 0}.kpi.warn{border-top:3px solid var(--orange)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.card,.formcard,.reviewbox{background:#fff;border:1px solid var(--line);border-radius:17px;padding:21px;box-shadow:0 5px 20px rgba(28,50,80,.04)}.formcard.narrow{max-width:850px}.cardhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.cardhead h3,.formcard h3,.reviewbox h3{margin:0;font-size:16px}.cardhead span,.cardhead a{font-size:12px;color:var(--muted)}.progress{height:12px;border-radius:999px;background:#edf1f6;overflow:hidden}.progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1d8ad8,#16a085)}.statusgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}.statusgrid>div{font-size:12px;color:var(--muted);padding:8px 0}.statusgrid b{display:block;color:var(--ink);font-size:17px;margin-top:4px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.miniKpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.miniKpis>div{background:#f7faff;border-radius:12px;padding:15px;text-align:center}.miniKpis b,.miniKpis span{display:block}.miniKpis b{font-size:22px}.miniKpis span{font-size:11px;color:var(--muted);margin-top:5px}.budgetline,.budgetbig{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.budgetline strong{font-size:18px}.budgetbig{border:0;margin:0;padding:5px 0}.budgetbig b{font-size:30px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:780px}th{text-align:left;color:#758399;font-size:11px;letter-spacing:.03em;background:#f8fafc;padding:12px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid #edf0f4;font-size:13px;vertical-align:middle}tbody tr:hover{background:#fbfdff}.textlink{color:#1769aa;font-weight:800}.empty{text-align:center!important;color:#9aa5b4;padding:30px!important}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eef2f7;color:#58667a}.s-APPROVED{background:#e8f7f2!important;color:#08785e!important}.s-REVISION_REQUESTED,.s-REJECTED{background:#fff0f0!important;color:#b83b3b!important}.s-SUBMITTED,.s-RESUBMITTED,.s-UNDER_REVIEW{background:#eaf5ff!important;color:#1769aa!important}.s-DRAFT{background:#fff6df!important;color:#9c6900!important}.s-NOT_STARTED{background:#f0f2f5!important;color:#6b778c!important}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.projectcard{background:#fff;border:1px solid var(--line);border-radius:17px;padding:21px;box-shadow:0 5px 18px rgba(28,50,80,.04);transition:.2s}.projectcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#c9dcf1}.projectcard .year,.yearbadge{display:inline-block;background:#eaf5ff;color:#1769aa;font-weight:800;font-size:11px;padding:5px 8px;border-radius:8px}.projectcard h3{font-size:17px;margin:14px 0 8px}.projectcard p{height:42px;overflow:hidden;font-size:13px;color:var(--muted)}.meta{display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);padding-top:14px;color:#69768a;font-size:12px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid .span2{grid-column:span 2}label{font-size:12px;color:#4f5e71;font-weight:700;display:block}input,select,textarea{width:100%;margin-top:7px;border:1px solid #d9e1eb;border-radius:10px;padding:10px 11px;background:#fff;color:#24364a;outline:none}input:focus,select:focus,textarea:focus{border-color:#65aee5;box-shadow:0 0 0 3px #edf7ff}.actions{display:flex;gap:9px;justify-content:flex-end;align-items:center;margin-top:18px}.deadline{background:#f6f9fd;padding:14px 17px;border-radius:13px}.deadline span,.deadline b{display:block}.deadline span{font-size:11px;color:var(--muted)}.deadline b{margin-top:5px}.statuscards{display:grid;grid-template-columns:repeat(8,1fr);gap:9px;margin-bottom:18px}.statuscard{background:#fff;border:1px solid var(--line);padding:14px;border-radius:12px}.statuscard span{display:block;font-size:11px;color:var(--muted)}.statuscard b{display:block;font-size:20px;margin-top:5px}.filterbar,.tabs{display:flex;gap:10px;align-items:center;margin-bottom:16px}.filterbar input{max-width:320px;margin:0}.filterbar select{max-width:180px;margin:0}.tabs{overflow:auto}.tabs a{white-space:nowrap;padding:8px 11px;border-radius:9px;font-size:12px;color:#66758a}.tabs a.on{background:#12355b;color:#fff;font-weight:800}.record{padding:13px 0;border-bottom:1px solid var(--line)}.record:last-child{border-bottom:0}.record>div{display:flex;justify-content:space-between;gap:10px}.record span,.record p{font-size:12px;color:var(--muted)}.record p{margin:7px 0 0}.emptybox{padding:35px;border:1px dashed #d7dee8;border-radius:14px;text-align:center;color:#8d99aa;background:#fafcff}.emptybox.small{padding:20px}.muted{font-size:12px;color:var(--muted)}.filebox{border:1.5px dashed #b9ccdf;border-radius:13px;padding:24px;text-align:center;margin:15px 0;background:#f8fbff}.filebox input{border:0;padding:8px;background:transparent}.reviewbox{border-left:4px solid #1d8ad8;margin:18px 0}.reviewbox textarea{margin:12px 0}.alert{padding:13px 15px;border-radius:11px;margin:13px 0;font-size:13px}.alert.warn{background:#fff7e5;color:#7c5b11;border:1px solid #f2dda9}.alert.error{background:#fff0f0;color:#a73838;border:1px solid #f3caca}.alert.success{background:#eaf8f2;color:#0d735e;border:1px solid #bde8d9}.issue{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.issue b{color:#c33}.okbox{padding:20px;border-radius:12px;background:#edf9f5;color:#08785e;text-align:center;font-size:13px}.timeline>div{display:flex;gap:10px}.timeline i{width:8px;height:8px;border-radius:50%;background:#1d8ad8;margin-top:5px}.timeline p{margin:0 0 13px}.timeline b,.timeline span,.timeline small{display:block}.timeline span,.timeline small{font-size:11px;color:var(--muted);margin-top:3px}.rightaction{text-align:right;margin:12px 0}.rowerror{background:#fff8f8}.bad{color:#bd3535;font-weight:700}.good{color:#0c7c61;font-weight:700}.highlight{background:linear-gradient(135deg,#eff8ff,#f3fffb);border-color:#cfe7f8}.barlist>div{display:grid;grid-template-columns:150px 1fr 40px;align-items:center;gap:10px;margin:12px 0;font-size:12px}.barlist i{height:8px;border-radius:999px;background:linear-gradient(90deg,#1d8ad8,#16a085)}.barlist b{text-align:right}.printnote{margin-top:18px;color:var(--muted);font-size:12px;text-align:right}.loginbody{background:linear-gradient(125deg,#06172d 0%,#0c2c51 55%,#0d4c7f 100%);min-height:100vh;display:grid;place-items:center;padding:30px}.loginwrap{width:min(980px,94vw);display:grid;grid-template-columns:1.15fr .85fr;background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.25)}.loginhero{background:radial-gradient(circle at 10% 5%,rgba(29,138,216,.7),transparent 34%),linear-gradient(150deg,#0a2443,#0b3157);color:#fff;padding:55px}.loginhero img{width:250px;max-height:64px;object-fit:contain;object-position:left center;background:#fff;border-radius:8px;padding:5px}.heroeyebrow{font-size:11px;letter-spacing:.18em;color:#8bc8f0;margin-top:46px}.loginhero h1{font-size:34px;line-height:1.25;margin:9px 0 15px}.loginhero p{color:#c6d8ea;line-height:1.7}.herocards{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}.herocards span{padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-size:11px;color:#d5e9f7}.loginbox{padding:58px 48px;align-self:center}.loginbox h2{margin:0 0 7px}.loginbox>p{color:var(--muted);margin:0 0 27px}.loginbox label{margin:15px 0}.loginbox small{display:block;color:#9ba6b5;margin-top:17px;text-align:center}@media(max-width:1050px){.sidebar{width:210px}.main{margin-left:210px}.statuscards{grid-template-columns:repeat(4,1fr)}.cards{grid-template-columns:1fr 1fr}.kpis{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sidebar{position:static;width:100%;height:auto}.shell{display:block}.sidebar nav{display:flex;overflow:auto}.navcap,.sidefoot{display:none}.brand{border:0;padding-bottom:10px}.navitem{white-space:nowrap}.main{margin-left:0}.topbar{height:auto;padding:18px;position:static}.topright{display:none}.content{padding:18px}.grid2,.formgrid,.loginwrap{grid-template-columns:1fr}.formgrid .span2{grid-column:span 1}.cards,.kpis{grid-template-columns:1fr}.statuscards{grid-template-columns:1fr 1fr}.welcome,.pageactions,.projecthero,.submissionhero{align-items:flex-start;flex-direction:column}.loginhero{display:none}.loginbox{padding:35px 25px}.statusgrid{grid-template-columns:1fr 1fr}.miniKpis{grid-template-columns:1fr 1fr}}@media print{.sidebar,.topbar,.pageactions .actions,.btn,.tabs{display:none!important}.main{margin:0}.content{padding:0}.card{box-shadow:none}.printnote{display:none}}
/* Final UX polish */
:root{--navy:#0b1f36;--blue:#155f9d;--accent:#1d86d2;--ink:#17263a;--muted:#718096;--line:#e7edf4;--bg:#f4f7fb;--soft:#f8fbfe;--shadow:0 18px 50px rgba(23,49,79,.07)}
body{background:linear-gradient(180deg,#f7f9fc 0,#f3f6fa 100%);letter-spacing:-.012em}.sidebar{width:238px;padding:22px 14px;background:linear-gradient(180deg,#091b2d,#0d2946 72%,#102f50)}.main{margin-left:238px}.brand{padding:3px 8px 22px}.brand img{width:76px;height:36px}.brand b{font-size:17px}.mainnav{padding-top:16px}.navitem{position:relative;padding:11px 12px;border-radius:10px;margin:3px 0;font-size:13px}.navitem i{width:20px;text-align:center;font-style:normal;opacity:.8}.navitem.active{background:rgba(255,255,255,.12);color:#fff}.navitem.active:before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:3px;background:#55b7ff}.topbar{height:92px;padding:20px 30px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}.topbar h1{font-size:22px}.content{padding:26px 30px 56px;max-width:1580px}.section-kicker{display:block;font-size:10px;font-weight:900;letter-spacing:.13em;color:#7f91a6;margin-bottom:5px}.hero-clean{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:4px 2px 18px}.hero-clean h2{font-size:26px;margin:3px 0 7px}.hero-clean p{margin:0;color:var(--muted);font-size:13px}.hero-actions{display:flex;gap:9px}.kpis.premium{margin-top:2px}.kpis.premium .kpi{border:0;border-top:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);padding:21px 22px}.kpis.premium .kpi b{font-size:31px;letter-spacing:-.04em}.card,.formcard,.reviewbox,.toolbar-card{border:1px solid rgba(220,229,239,.9);box-shadow:0 7px 28px rgba(22,43,69,.045)}.card{border-radius:15px}.cardhead>div h3{margin:0}.status-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.status-strip>div{background:#f8fafc;border-radius:12px;padding:14px}.status-strip span,.status-strip b{display:block}.status-strip span{font-size:11px;color:var(--muted)}.status-strip b{font-size:23px;margin-top:6px}.status-strip .attention{background:#fff8eb}.miniKpis .wide{grid-column:span 2}.table-card{padding:0;overflow:hidden}.table-card>.cardhead{padding:20px 21px 0}.table-card.flush{padding:0}.tablewrap{overflow:auto;max-height:calc(100vh - 310px)}.sticky-table table{border-collapse:separate;border-spacing:0;min-width:980px}.sticky-table thead th{position:sticky;top:0;z-index:4;background:#f6f9fc;box-shadow:0 1px 0 var(--line);font-size:11px;text-transform:none}.sticky-table th,.sticky-table td{white-space:nowrap}.sticky-table td{background:#fff}.sticky-table tbody tr:hover td{background:#f9fcff}.sticky-col{position:sticky;left:0;z-index:3}.sticky-table thead .sticky-col{z-index:6}.sticky-table tbody .sticky-col{background:#fff}.sticky-table tbody tr:hover .sticky-col{background:#f9fcff}.cell-main{font-weight:700;color:#21344b}.sticky-table td small,.block{display:block;color:#8b98a8;font-size:10px;margin-top:3px}.num{text-align:right;font-variant-numeric:tabular-nums}.source{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.source.migration{background:#eef1f5;color:#657287}.source.platform{background:#e9f7f2;color:#08785e}.toolbar-card{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border-radius:14px;padding:13px 14px;margin-bottom:13px}.smartfilters{display:flex;gap:8px;align-items:center;min-width:0;flex-wrap:wrap}.smartfilters input,.smartfilters select{margin:0;width:auto;min-width:125px;height:38px;padding:8px 10px}.smartfilters .searchbox{min-width:260px}.btn.ghost{background:transparent;border-color:transparent;color:#718096}.result-meta{font-size:12px;color:var(--muted);white-space:nowrap}.result-meta strong{color:var(--ink)}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:13px;color:var(--muted);font-size:12px}.pagination>div{display:flex;gap:6px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#69788c;font-size:11px}.migration-steps{display:flex;align-items:center;max-width:720px;margin:5px 0 22px}.migration-steps>div{display:flex;align-items:center;gap:7px;color:#8d9aad;font-size:12px}.migration-steps b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e9eef4;color:#77869a}.migration-steps .on{color:#155f9d;font-weight:800}.migration-steps .on b{background:#155f9d;color:#fff}.migration-steps i{height:1px;background:#dfe6ee;width:55px;margin:0 10px}.source-list{display:flex;flex-direction:column;gap:9px}.source-list form{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.source-list strong,.source-list span{display:block}.source-list strong{font-size:13px}.source-list span{font-size:11px;color:var(--muted);margin-top:3px}.legacy-grid{align-items:start}.kpis.compact4{grid-template-columns:repeat(4,minmax(0,220px))}.kpi.error{border-top:3px solid var(--red)}.action-banner{display:flex;justify-content:space-between;align-items:center;gap:15px;background:linear-gradient(135deg,#edf9f5,#eff8ff);border:1px solid #cfe8dd;border-radius:13px;padding:16px 18px;margin-bottom:14px}.action-banner strong,.action-banner span{display:block}.action-banner span{font-size:11px;color:#688078;margin-top:4px}.filter-tabs{display:flex;gap:5px}.filter-tabs a{padding:7px 10px;border-radius:8px;font-size:11px;color:#708096}.filter-tabs a.on{background:#122f4c;color:#fff;font-weight:800}.result-pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900}.result-pill.valid{background:#e9f7f2;color:#08785e}.result-pill.warning{background:#fff5df;color:#9d6800}.result-pill.error{background:#fff0f0;color:#b83b3b}.rowwarn td{background:#fffdfa}.warn-text{color:#9d6800;font-weight:700}.legacy-preview{max-height:58vh}.legacy-preview table{min-width:900px}.program-table{min-width:1150px}
@media(max-width:1050px){.sidebar{width:82px}.sidebar .brand div,.sidebar .navitem span,.sidebar .navcap,.sidebar .sidefoot{display:none}.brand img{width:54px}.navitem{justify-content:center}.main{margin-left:82px}.topbar{padding:18px}.content{padding:20px}.grid2{grid-template-columns:1fr}.kpis,.kpis.premium{grid-template-columns:repeat(2,1fr)}.hero-clean{align-items:flex-start;flex-direction:column}.toolbar-card{align-items:flex-start;flex-direction:column;width:100%}.smartfilters{width:100%}.smartfilters .searchbox{min-width:200px;flex:1}.kpis.compact4{grid-template-columns:repeat(2,1fr)}}
/* r3 program detail/edit UX */
.detail-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:2px 0 20px;padding:2px}.detail-hero h2{font-size:28px;margin:5px 0 8px;letter-spacing:-.035em}.detail-hero p{margin:0;color:var(--muted);font-size:13px}.backlink{display:inline-block;color:#5d7188;font-size:12px;margin-bottom:16px}.detail-total{text-align:right;background:linear-gradient(135deg,#0f3153,#176fae);color:#fff;padding:17px 21px;border-radius:15px;min-width:210px;box-shadow:0 12px 32px rgba(22,96,156,.18)}.detail-total span,.detail-total b{display:block}.detail-total span{font-size:11px;color:#c4d9ec}.detail-total b{font-size:25px;margin-top:5px}.detail-grid{display:grid;grid-template-columns:1.45fr .75fr;gap:16px;margin-bottom:16px}.detail-card{margin:0}.edit-hint{color:#1769aa!important;font-weight:800}.compact-form input,.compact-form select,.compact-form textarea{margin-top:5px}.detail-dl{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}.detail-dl>div{padding:12px 0;border-bottom:1px solid var(--line)}.detail-dl>div:nth-child(odd){padding-right:18px}.detail-dl .wide{grid-column:span 2}.detail-dl dt{font-size:10px;color:var(--muted);font-weight:800}.detail-dl dd{margin:5px 0 0;font-size:13px;font-weight:700}.detail-section{margin:16px 0}.detail-section>.cardhead{padding:19px 21px 0}.detail-section .cardhead h3 small{color:var(--muted);font-weight:500}.activity-stack{padding:6px 20px 10px}.activity-editor{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:end;padding:15px 0;border-bottom:1px solid var(--line)}.activity-no{width:28px;height:28px;border-radius:9px;background:#edf5fb;color:#1769aa;font-size:11px;font-weight:900;display:grid;place-items:center;align-self:center}.activity-fields{display:grid;grid-template-columns:1fr 1.4fr .8fr 1fr 1fr .65fr .65fr 1.5fr;gap:8px}.activity-fields label{font-size:10px}.activity-fields input,.activity-fields select{margin-top:4px;padding:8px 9px;font-size:12px}.budget-edit-list{padding:6px 20px 10px}.budget-edit-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;gap:10px;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.budget-edit-row input{margin-top:4px}.budget-sum{font-size:20px;color:#103f68}.add-panel{margin:0 20px 18px;border:1px dashed #cfdbe8;border-radius:12px;background:#fbfdff}.add-panel summary{cursor:pointer;padding:12px 14px;font-size:12px;font-weight:800;color:#39729f}.add-panel form{padding:0 14px 14px}.inline-add{display:grid;grid-template-columns:1fr 220px auto;gap:8px;align-items:end}.inline-add input{margin:0}.program-table .textlink{display:inline-block}.program-table .textlink:hover{text-decoration:underline}.record .textlink{font-weight:800}
@media(max-width:1200px){.detail-grid{grid-template-columns:1fr}.activity-fields{grid-template-columns:repeat(4,1fr)}.activity-note{grid-column:span 2}}@media(max-width:760px){.detail-hero{align-items:flex-start;flex-direction:column}.detail-total{width:100%;text-align:left}.activity-editor{grid-template-columns:1fr}.activity-no{display:none}.activity-fields{grid-template-columns:1fr 1fr}.budget-edit-row,.inline-add{grid-template-columns:1fr}.detail-dl{grid-template-columns:1fr}.detail-dl .wide{grid-column:span 1}}

/* r4: numeric units + user manual */
.kpi b em,.miniKpis b em,.status-strip b em,.budgetbig b em{font-style:normal;font-size:.42em;font-weight:800;color:#718096;margin-left:5px;letter-spacing:-.01em}.budgetbig b em{color:#d9e9f5}.report-kpis{grid-template-columns:repeat(5,1fr)}.cardhead h3 small{font-size:10px;color:var(--muted);font-weight:600;margin-left:5px}.manual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.manual-card{position:relative;min-height:150px}.manual-card h3{margin:6px 0 8px}.manual-card p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}.manual-step{font-size:11px;font-weight:900;color:#1769aa;letter-spacing:.08em}.manual-section{margin:16px 0}.manual-table{padding:4px 20px 18px}.manual-table>div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.manual-table b{font-size:12px}.manual-table span{font-size:12px;color:var(--muted);line-height:1.6}.manual-list{margin:2px 22px 20px;padding-left:20px;color:#4e6177;font-size:12px;line-height:1.9}.unit-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:4px 20px 20px}.unit-guide>span{background:#f8fafc;border-radius:12px;padding:15px;text-align:center;color:#718096}.unit-guide b{color:#183a5b;font-size:19px}.unit-guide small{display:block;margin-top:5px}.manual-section>.cardhead{padding:19px 21px 8px}@media(max-width:1150px){.manual-grid,.unit-guide,.report-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.manual-grid,.unit-guide,.report-kpis{grid-template-columns:1fr}.manual-table>div{grid-template-columns:1fr;gap:4px}}

/* r5: embedded web manual */
.manual-hero{background:linear-gradient(135deg,#f7fbff 0%,#eef6fb 100%);border:1px solid #e0edf6;border-radius:18px;padding:24px}.manual-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:center;padding:8px 20px 22px}.manual-flow>div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:14px;min-height:86px}.manual-flow>div b{display:inline-flex;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;background:#173b5d;color:white;font-size:11px;margin-bottom:8px}.manual-flow>div span{display:block;font-weight:800;font-size:12px;color:#183a5b}.manual-flow>div small{display:block;margin-top:5px;color:var(--muted);line-height:1.45}.manual-flow>i{font-style:normal;color:#9ab0c2}.manual-card a{display:inline-block;margin-top:12px;font-size:11px;font-weight:800;color:#1769aa}.legacy-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:6px 20px 16px}.legacy-steps>div{border-left:3px solid #1b6da8;background:#f8fafc;border-radius:10px;padding:14px}.legacy-steps b{display:block;font-size:10px;letter-spacing:.08em;color:#1b6da8}.legacy-steps span{display:block;margin:5px 0;font-size:13px;font-weight:800;color:#183a5b}.legacy-steps small{color:var(--muted);line-height:1.45}.manual-note{display:flex;gap:12px;margin:0 20px 20px;padding:13px 15px;border-radius:12px;background:#fff8e8;color:#6d5a2d;font-size:12px;line-height:1.6}.manual-note b{flex:0 0 auto;color:#9b6b00}.manual-caption{margin:-4px 20px 20px;color:var(--muted);font-size:11px}.faq-list{padding:0 20px 20px}.faq-list details{border-top:1px solid var(--line);padding:13px 2px}.faq-list summary{cursor:pointer;font-size:12px;font-weight:800;color:#263f58}.faq-list p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.65}.unit-guide{grid-template-columns:repeat(5,1fr)}@media(max-width:1150px){.manual-flow{grid-template-columns:1fr 1fr}.manual-flow>i{display:none}.legacy-steps{grid-template-columns:repeat(2,1fr)}.unit-guide{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.manual-flow,.legacy-steps,.unit-guide{grid-template-columns:1fr}.manual-hero{padding:18px}}

/* r6: public portal + self registration + HQ approval */
.portalbody,.registerbody{margin:0;background:#f5f8fc;color:#102a43;font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,sans-serif}.portalnav,.simpletop{height:76px;padding:0 max(32px,5vw);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.94);border-bottom:1px solid #e5ecf3;position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.portalbrand,.simpletop>a{display:flex;align-items:center;gap:12px;color:#102a43;text-decoration:none}.portalbrand img,.simpletop img{width:42px;height:42px;object-fit:contain}.portalbrand span,.simpletop span{display:flex;flex-direction:column}.portalbrand b,.simpletop b{font-size:15px;letter-spacing:-.02em}.portalbrand small,.simpletop small{font-size:10px;color:#789;letter-spacing:.08em}.portalnav nav{display:flex;align-items:center;gap:22px}.portalnav nav>a,.simpletop>div a{font-size:12px;font-weight:800;color:#52677d;text-decoration:none}.ghostbtn{border:1px solid #ccd9e6;padding:10px 15px;border-radius:10px}.navprimary{background:#123d64!important;color:white!important;padding:11px 16px;border-radius:10px}.portalhero{max-width:1420px;margin:0 auto;min-height:650px;padding:82px 5vw 68px;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}.portaleyebrow{font-size:10px;font-weight:900;letter-spacing:.18em;color:#3d75a5}.hero-copy h1{font-size:58px;line-height:1.12;letter-spacing:-.055em;margin:16px 0 24px;color:#0c2945}.hero-copy h1 em{font-style:normal;color:#1670ad}.hero-copy>p{font-size:16px;line-height:1.8;color:#63778d}.heroactions{display:flex;gap:10px;margin:32px 0 22px}.bigprimary,.bigsecondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:14px 20px;font-size:12px;font-weight:800}.bigprimary{background:#124f7f;color:white;box-shadow:0 10px 24px rgba(18,79,127,.18)}.bigprimary b{margin-left:7px}.bigsecondary{background:white;color:#27445f;border:1px solid #d6e1eb}.trustline{display:flex;gap:18px;color:#60768a;font-size:11px;font-weight:700}.hero-panel{position:relative;padding:28px}.panelglow{position:absolute;inset:0;background:radial-gradient(circle at 40% 30%,#c9e6f8 0,transparent 58%);filter:blur(10px)}.mock-card{position:relative;background:rgba(255,255,255,.96);border:1px solid #dbe7f0;border-radius:16px;padding:22px 24px;box-shadow:0 18px 45px rgba(26,64,99,.08)}.mock-card.focus{border-color:#a8d1ec;transform:translateX(-26px)}.mock-card span{font-size:9px;font-weight:900;letter-spacing:.15em;color:#3e81b3}.mock-card b{display:block;font-size:17px;margin:7px 0 6px}.mock-card small{color:#74879a;line-height:1.55}.flowline{height:28px;width:1px;background:#bdd2e1;margin:0 auto}.portalmetrics{max-width:1320px;margin:0 auto 30px;background:#fff;border:1px solid #e0e9f1;border-radius:18px;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 12px 30px rgba(29,68,100,.05)}.portalmetrics>div{padding:24px;text-align:center;border-right:1px solid #e8eef4}.portalmetrics>div:last-child{border:0}.portalmetrics b{display:block;font-size:24px;color:#143d60}.portalmetrics span{font-size:11px;color:#7b8d9e}.portal-section{max-width:1320px;margin:0 auto;padding:88px 0}.sectionhead{text-align:center;max-width:720px;margin:0 auto 40px}.sectionhead>span{font-size:10px;font-weight:900;letter-spacing:.16em;color:#3d75a5}.sectionhead h2{font-size:34px;letter-spacing:-.04em;margin:10px 0}.sectionhead p{color:#718497;font-size:13px;line-height:1.7}.processgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.processgrid article{background:#fff;border:1px solid #e2eaf1;border-radius:16px;padding:26px;min-height:170px}.processgrid i{font-style:normal;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eef6fb;color:#176da7;font-size:11px;font-weight:900}.processgrid h3{font-size:16px;margin:18px 0 8px}.processgrid p{font-size:12px;color:#708397;line-height:1.7}.portal-cta{max-width:1320px;margin:20px auto 90px;border-radius:22px;padding:38px 44px;background:linear-gradient(135deg,#0e3150,#155f95);color:#fff;display:flex;align-items:center;justify-content:space-between}.portal-cta span{font-size:10px;letter-spacing:.14em;color:#a9cbe3;font-weight:900}.portal-cta h2{font-size:28px;margin:8px 0}.portal-cta p{font-size:12px;color:#c5d7e5}.portal-cta>a{color:#123d64;background:#fff;text-decoration:none;padding:14px 18px;border-radius:11px;font-size:12px;font-weight:900}.portalfooter{padding:30px 5vw;border-top:1px solid #e1e9f0;background:#fff;display:flex;justify-content:space-between;color:#788b9c;font-size:11px}.registerwrap{max-width:1060px;margin:0 auto;padding:55px 24px 90px}.registerintro{text-align:center;margin-bottom:30px}.registerintro h1{font-size:34px;letter-spacing:-.04em;margin:10px 0}.registerintro>p{color:#708397;font-size:13px}.approval-flow{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:22px}.approval-flow b{font-size:11px;background:#fff;border:1px solid #dfe8f0;padding:9px 12px;border-radius:999px}.approval-flow i{font-style:normal;color:#a6b7c5}.register-alert{margin:0 0 15px;background:#fff0f0;border:1px solid #f1caca;color:#a73333;border-radius:12px;padding:13px 15px;font-size:12px;font-weight:800}.registercard{background:#fff;border:1px solid #dee8f0;border-radius:20px;box-shadow:0 20px 50px rgba(20,55,85,.06);overflow:hidden}.formsection{padding:28px 30px;border-bottom:1px solid #edf1f5}.formtitle{display:flex;align-items:flex-start;gap:13px;margin-bottom:20px}.formtitle>span{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#123f66;color:white;font-size:10px;font-weight:900}.formtitle h2{font-size:17px;margin:1px 0 4px}.formtitle p{font-size:11px;color:#7c8d9d;margin:0}.reggrid{display:grid;gap:12px}.reggrid.three{grid-template-columns:1fr 1fr 1.4fr}.reggrid.two{grid-template-columns:1fr 1fr}.reggrid label,.approval-actions label{font-size:11px;color:#586d81;font-weight:800}.reggrid input,.reggrid select,.approval-actions textarea{width:100%;box-sizing:border-box;margin-top:6px;border:1px solid #d6e1ea;border-radius:10px;padding:11px 12px;background:#fbfdff;color:#1a334a}.selected-inst{margin-top:13px;background:#f5f9fc;border:1px dashed #cedce8;border-radius:11px;padding:13px 15px;font-size:11px;color:#718496}.selected-inst b,.selected-inst span{display:block}.selected-inst b{font-size:13px;color:#1b3e5d;margin-bottom:3px}.register-consent{padding:20px 30px;background:#f8fbfd}.register-consent label{font-size:12px;font-weight:800}.register-consent small{display:block;margin:6px 0 0 24px;color:#8192a1}.register-submit{width:calc(100% - 60px);margin:22px 30px 28px;border:0;border-radius:12px;background:#125788;color:#fff;padding:15px 18px;font-weight:900;cursor:pointer}.register-submit span{float:right}.loginlinks{display:flex;justify-content:space-between;margin:12px 0 2px}.loginlinks a{font-size:11px;color:#176aa6;text-decoration:none;font-weight:800}.completewrap{max-width:720px;margin:95px auto;text-align:center;background:#fff;border:1px solid #e0e8ef;border-radius:22px;padding:52px 48px;box-shadow:0 20px 50px rgba(20,55,85,.06)}.completeicon{margin:0 auto 20px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#e9f7f2;color:#08785e;font-size:22px;font-weight:900}.completewrap h1{font-size:30px;letter-spacing:-.04em}.completewrap>p{color:#708397;line-height:1.8}.receipt{margin:28px 0;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #e0e8ef;border-radius:14px;overflow:hidden}.receipt>div{padding:18px;border-right:1px solid #e8eef3}.receipt>div:last-child{border:0}.receipt span,.receipt b{display:block}.receipt span{font-size:10px;color:#8998a6}.receipt b{margin-top:5px;font-size:14px}.pendingtxt{color:#a57000}.completeactions{display:flex;justify-content:center;gap:10px}.completehint{display:block;margin-top:20px;color:#8b99a7}.approval-count{background:#fff;border:1px solid #dfe8ef;border-radius:14px;padding:14px 18px;text-align:right}.approval-count span,.approval-count b{display:block}.approval-count span{font-size:10px;color:#7c8e9f}.approval-count b{font-size:24px;color:#143f63}.approval-count em{font-style:normal;font-size:11px;margin-left:4px}.approvaltabs{margin:16px 0}.approval-list{display:flex;flex-direction:column;gap:12px}.approval-card{display:grid;grid-template-columns:1fr 260px;gap:18px;background:#fff;border:1px solid #dde7ef;border-radius:15px;padding:20px}.approval-top{display:flex;align-items:center;gap:10px}.approval-top small{color:#8999a7}.approval-card h3{font-size:17px;margin:11px 0 4px}.approval-card p{font-size:11px;color:#76899a;margin:0}.applicant-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}.applicant-grid>div{background:#f8fafc;border-radius:9px;padding:10px}.applicant-grid span,.applicant-grid b{display:block}.applicant-grid span{font-size:9px;color:#8999a7}.applicant-grid b{font-size:11px;margin-top:4px}.applicant-note{margin-top:10px;font-size:11px;color:#6c7f90;background:#f8fafc;padding:9px 10px;border-radius:8px}.applicant-note.review{background:#eef7fb;color:#36647f}.approval-actions{border-left:1px solid #e5ecf2;padding-left:18px;display:flex;flex-direction:column;gap:9px}.approval-actions textarea{resize:vertical}.btn.danger{background:#fff0f0;color:#a83333;border:1px solid #efcaca}.emptybox{text-align:center;padding:60px;background:#fff;border:1px dashed #d7e2eb;border-radius:14px;color:#8192a2}@media(max-width:900px){.portalnav nav>a:not(.navprimary):not(.ghostbtn){display:none}.portalhero{grid-template-columns:1fr;padding-top:50px}.hero-copy h1{font-size:42px}.hero-panel{display:none}.portalmetrics{margin:0 20px;grid-template-columns:1fr 1fr}.processgrid{grid-template-columns:1fr 1fr}.portal-section{padding:60px 20px}.portal-cta{margin:20px;flex-direction:column;align-items:flex-start;gap:20px}.reggrid.three,.reggrid.two{grid-template-columns:1fr}.approval-flow{flex-wrap:wrap}.approval-card{grid-template-columns:1fr}.approval-actions{border-left:0;border-top:1px solid #e5ecf2;padding:16px 0 0}.applicant-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.portalnav,.simpletop{padding:0 16px}.portalnav nav{gap:8px}.portalhero{padding-left:20px;padding-right:20px}.hero-copy h1{font-size:36px}.heroactions{flex-direction:column}.trustline{flex-direction:column;gap:7px}.portalmetrics{grid-template-columns:1fr 1fr}.processgrid{grid-template-columns:1fr}.portalfooter{flex-direction:column;gap:6px}.formsection{padding:22px 18px}.register-submit{width:calc(100% - 36px);margin:18px}.receipt{grid-template-columns:1fr}.receipt>div{border-right:0;border-bottom:1px solid #e8eef3}.applicant-grid{grid-template-columns:1fr}}

/* ===== Logo size refinement ===== */
.portalbrand img {
    height: 84px !important;
    width: auto !important;
    object-fit: contain;
    flex-shrink: 0;
}

.brand img {
    height: 56px !important;
    width: auto !important;
    object-fit: contain;
    flex-shrink: 0;
}

/* ===== Logo size refinement v2 ===== */
.portalbrand img {
    height: 58px !important;
    width: auto !important;
    object-fit: contain;
    flex-shrink: 0;
}

.brand img {
    height: 48px !important;
    width: auto !important;
    object-fit: contain;
    flex-shrink: 0;
}

/* ===== Logo size refinement v3 ===== */
.portalbrand img {
    height: 48px !important;
    width: auto !important;
    object-fit: contain;
    flex-shrink: 0;
}

.brand img {
    height: 42px !important;
    width: auto !important;
    object-fit: contain;
    flex-shrink: 0;
}

/* ===== Sidebar logo final fix ===== */
.sidebar .brand {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 22px 10px 20px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.sidebar .brand img {
    width: 185px !important;
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
}

/* 로고 이미지 자체에 기관명이 있으므로 옆 중복문구 제거 */
.sidebar .brand > div {
    display: none !important;
}

/* ===== Logo size refinement v4 ===== */
.portalbrand img {
    height: 40px !important;
    width: auto !important;
}

.brand img {
    height: 36px !important;
    width: auto !important;
}

/* ===== Mobile portal header final ===== */
@media (max-width: 768px) {

    .portalnav {
        padding: 10px 12px !important;
        gap: 8px !important;
        min-height: auto !important;
        align-items: center !important;
    }

    .portalbrand {
        flex: 0 0 auto !important;
        min-width: 0 !important;
        gap: 4px !important;
    }

    .portalbrand img {
        width: 105px !important;
        max-width: 105px !important;
        height: auto !important;
        object-fit: contain !important;
    }

    /* 로고 이미지 안에 기관명이 있으므로 모바일에서는 옆 문구 제거 */
    .portalbrand > span {
        display: none !important;
    }

    .portalnav nav {
        margin-left: auto !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 5px !important;
        flex-wrap: nowrap !important;
    }

    .portalnav nav a {
        font-size: 11px !important;
        padding: 7px 8px !important;
        white-space: nowrap !important;
    }

    /* 모바일에서는 보조 메뉴를 숨기고 핵심 진입버튼 확보 */
    .portalnav nav a[href="#process"],
    .portalnav nav a[href="/manual"] {
        display: none !important;
    }
}

@media (max-width: 420px) {

    .portalbrand img {
        width: 92px !important;
        max-width: 92px !important;
    }

    .portalnav nav a {
        font-size: 10.5px !important;
        padding: 7px 7px !important;
    }
}


/* PROGRAM ACTION BUTTONS V2 */
.program-add-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 10px 18px;
    border-radius: 10px;
    font-weight: 700;
    white-space: nowrap;
}

.program-add-btn .plus-icon {
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}

.program-submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 10px;
    font-weight: 600;
    white-space: nowrap;
}

.program-legacy-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 14px;
    border-radius: 10px;
    white-space: nowrap;
}

.pageactions .actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

@media (max-width: 720px) {
    .pageactions .actions {
        width: 100%;
        justify-content: stretch;
    }

    .program-add-btn,
    .program-submit-btn,
    .program-legacy-btn {
        flex: 1 1 100%;
        width: 100%;
    }
}
