:root{--navy:#123b72;--blue:#2468d7;--blue-soft:#eaf2ff;--ink:#172033;--muted:#667085;--line:#dce3ee;--surface:#fff;--bg:#f4f7fb;--danger:#c9362b;--danger-soft:#fff0ee;--success:#18794e;--success-soft:#e9f8f0;--warning:#9a6700;--warning-soft:#fff5d6;--shadow:0 14px 38px rgba(25,43,79,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Pretendard,"Noto Sans KR","Apple SD Gothic Neo",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.app-shell{min-height:100vh}.topbar{padding:24px 34px;color:#fff;background:linear-gradient(125deg,#0f3567,#1c579e);display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar h1{margin:3px 0 0;font-size:26px;letter-spacing:-.04em}.eyebrow{margin:0;font-size:11px;font-weight:800;letter-spacing:.15em;opacity:.8}.eyebrow.dark{color:var(--blue);opacity:1}.topbar-actions,.toolbar-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}.badge{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:99px;font-size:12px;font-weight:700}.badge.neutral{color:#35415a;background:#eef1f6}.badge.cloud{color:#0c5132;background:#dff6e9}.badge.local{color:#774f00;background:#fff1bd}.tabs{display:flex;gap:4px;padding:0 34px;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.tab{border:0;background:transparent;color:#67738b;font-weight:750;padding:17px 18px 14px;border-bottom:3px solid transparent;white-space:nowrap}.tab.active{color:var(--navy);border-bottom-color:var(--blue)}.tab.disabled{opacity:.45;cursor:default}main{padding:24px 34px 44px}.view{display:none}.view.active{display:block}.layout-grid{display:grid;grid-template-columns:minmax(310px,380px) minmax(0,1fr);gap:22px;align-items:start}.panel{background:var(--surface);border:1px solid rgba(220,227,238,.95);border-radius:18px;box-shadow:var(--shadow)}.setup-panel,.form-panel{padding:22px;position:sticky;top:18px}.panel-heading,.result-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel-heading h2,.result-toolbar h2{margin:3px 0 0;font-size:21px;letter-spacing:-.035em}.step-label{display:inline-block;color:var(--blue);background:var(--blue-soft);padding:5px 8px;border-radius:6px;font-size:10px;font-weight:900;letter-spacing:.08em}.text-button{border:0;background:transparent;color:var(--muted);padding:5px}.field-group{margin-top:20px}.field-label{display:block;margin-bottom:8px;font-size:13px;font-weight:800}.field-help{color:var(--muted);margin:7px 0 0;font-size:11px;line-height:1.5}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.input,.textarea{width:100%;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);outline:none;transition:.15s ease}.input{height:42px}.textarea{padding:10px 12px;resize:vertical}.input:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,104,215,.12)}.company-toggle{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:12px;background:#eef2f7}.company-toggle label{position:relative}.company-toggle input{position:absolute;opacity:0;pointer-events:none}.company-toggle span{display:flex;height:38px;align-items:center;justify-content:center;border-radius:9px;color:#6c7689;font-size:13px;font-weight:850}.company-toggle input:checked+span{color:#fff;background:var(--navy);box-shadow:0 5px 12px rgba(18,59,114,.2)}.dropzone{min-height:110px;border:1.5px dashed #aebbd0;border-radius:14px;background:#f8faff;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;column-gap:12px;align-content:center;padding:15px;transition:.15s ease}.dropzone:hover,.dropzone.dragover{border-color:var(--blue);background:var(--blue-soft)}.drop-icon{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:42px;height:42px;color:#fff;background:var(--blue);border-radius:12px;font-weight:900}.dropzone strong{align-self:end;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone small{align-self:start;margin-top:4px;color:var(--muted);line-height:1.35}.btn{min-height:40px;border:0;border-radius:10px;padding:0 15px;font-size:13px;font-weight:850}.btn.primary{color:#fff;background:var(--blue)}.btn.primary:hover{background:#1657bd}.btn.secondary{color:var(--navy);background:#eaf1fb}.btn.ghost{color:#fff;background:rgba(255,255,255,.13)}.btn.danger{color:#a52820;background:#ffe5e2}.btn.full{width:100%;margin-top:18px;min-height:48px}.content-column{min-width:0}.empty-state{min-height:500px;padding:58px 32px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-mark{width:84px;height:84px;border-radius:25px;display:flex;align-items:center;justify-content:center;color:var(--blue);background:var(--blue-soft);font-size:24px;font-weight:900}.empty-state h2{margin:22px 0 7px;font-size:23px}.empty-state>p{color:var(--muted);margin:0}.process-line{display:flex;align-items:center;gap:9px;margin-top:34px;color:#5d6980;font-size:12px;font-weight:750;flex-wrap:wrap;justify-content:center}.process-line i{width:24px;height:1px;background:#c9d2e1}.alert{margin-bottom:14px;border-radius:12px;padding:13px 15px;font-size:13px;line-height:1.55}.alert.warning{color:var(--warning);background:var(--warning-soft);border:1px solid #f0d887}.alert.success{color:var(--success);background:var(--success-soft);border:1px solid #b9e6cd}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:15px}.metric-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric-card{padding:18px;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 9px 24px rgba(25,43,79,.055)}.metric-card span{display:block;color:var(--muted);font-size:12px;font-weight:750}.metric-card strong{display:block;margin:9px 0 4px;color:var(--navy);font-size:28px}.metric-card small{color:#8a93a5}.danger-card strong{color:var(--danger)}.warning-card strong{color:var(--warning)}.result-panel{overflow:hidden}.result-toolbar{padding:20px 20px 16px;border-bottom:1px solid var(--line)}.stacked-toolbar{align-items:center}.muted{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.5}.search{width:190px}.compact{width:145px}.inner-tabs{display:flex;gap:8px;padding:12px 16px;background:#f8faff;border-bottom:1px solid var(--line);overflow:auto}.inner-tab{border:1px solid var(--line);background:#fff;color:#536078;border-radius:9px;padding:9px 13px;font-size:12px;font-weight:800;white-space:nowrap}.inner-tab b{margin-left:4px;color:var(--blue)}.inner-tab.active{color:#fff;background:var(--navy);border-color:var(--navy)}.inner-tab.active b{color:#fff}.result-pane{display:none}.result-pane.active{display:block}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:930px}.wide-table{min-width:1250px}th{position:sticky;top:0;z-index:2;padding:12px 10px;color:#4c5870;background:#f4f7fb;border-bottom:1px solid var(--line);font-size:11px;text-align:center;white-space:nowrap}td{padding:11px 10px;border-bottom:1px solid #edf1f6;font-size:12px;text-align:center;white-space:nowrap}tbody tr:hover{background:#f8fbff}.status-pill,.plan-pill,.neutral-pill,.success-pill,.warning-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:99px;padding:4px 9px;font-size:10px;font-weight:850}.status-pill{color:var(--danger);background:var(--danger-soft)}.warning-pill{color:var(--warning);background:var(--warning-soft)}.success-pill{color:var(--success);background:var(--success-soft)}.neutral-pill{color:#536078;background:#eef2f7}.plan-pill{border-radius:7px;color:#224f96;background:var(--blue-soft)}.message-cell{max-width:360px;white-space:normal;text-align:left;line-height:1.45}.pagination{min-height:48px;padding:9px 16px;display:flex;align-items:center;justify-content:center;gap:6px}.page-button{width:32px;height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#536078}.page-button.active{color:#fff;background:var(--navy);border-color:var(--navy)}.substitute-layout{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);gap:22px;align-items:start}.grant-list-panel{padding:22px;overflow:hidden}.grant-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.summary-chip{padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8faff}.summary-chip span{display:block;color:var(--muted);font-size:11px}.summary-chip strong{display:block;margin-top:5px;color:var(--navy);font-size:21px}.history-panel{padding:24px;min-height:500px}.history-empty{margin-top:30px;padding:60px 20px;border:1px dashed var(--line);border-radius:14px;color:var(--muted);text-align:center}.history-list{display:grid;gap:12px;margin-top:22px}.history-card{display:grid;grid-template-columns:130px 1fr auto;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.history-card .month{font-size:22px;font-weight:900;color:var(--navy)}.history-meta{color:var(--muted);font-size:12px;margin-top:5px}.history-kpis{display:flex;gap:20px}.history-kpis span{color:var(--muted);font-size:11px}.history-kpis strong{display:block;color:var(--ink);font-size:18px;margin-top:3px}.dialog{width:min(420px,calc(100% - 30px));border:0;border-radius:16px;padding:24px;box-shadow:0 24px 70px rgba(20,32,56,.3)}.dialog::backdrop{background:rgba(10,21,42,.45)}.dialog h2{margin:0 0 7px}.dialog p{color:var(--muted);font-size:12px;line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.error-text{min-height:18px;color:var(--danger)!important}.toast{position:fixed;right:22px;bottom:22px;max-width:380px;padding:13px 16px;color:#fff;background:#1e2a3d;border-radius:11px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.2s ease;box-shadow:var(--shadow);font-size:13px}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1280px){.metric-grid.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1080px){.layout-grid,.substitute-layout{grid-template-columns:1fr}.setup-panel,.form-panel{position:static}.metric-grid,.metric-grid.five{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.topbar{padding:20px;align-items:flex-start}.topbar h1{font-size:21px}.tabs{padding:0 14px}main{padding:16px 14px 34px}.two-cols,.metric-grid,.metric-grid.five,.grant-summary{grid-template-columns:1fr}.result-toolbar{flex-direction:column}.toolbar-actions{width:100%;justify-content:stretch}.toolbar-actions .input,.toolbar-actions .btn{width:100%}.history-card{grid-template-columns:1fr}}
