:root{--c-primary:#1f4bb4;--c-primary-dark:#143678;--c-primary-soft:#eaf0fb;--c-accent:#0e7c66;--c-warning:#d97706;--c-danger:#b91c1c;--c-bg:#fff;--c-surface:#f5f7fa;--c-surface-strong:#ebeef3;--c-border:#d5dae0;--c-border-strong:#b4bbc4;--c-text:#0f172a;--c-text-muted:#475569;--c-text-faint:#8a93a0;--radius:4px;--radius-sm:3px;color:var(--c-text);background:var(--c-bg);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,sans-serif;font-size:16px;line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{color:var(--c-text);margin:0}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}.topbar{border-bottom:1px solid var(--c-border);background:var(--c-bg)}.topbar-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:14px 20px;display:flex}.brand{color:var(--c-primary-dark);align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.brand-mark{border-radius:var(--radius-sm);background:var(--c-primary);color:#fff;letter-spacing:.04em;place-items:center;width:28px;height:28px;font-size:13px;display:grid}.topbar-meta{color:var(--c-text-muted);align-items:center;gap:14px;font-size:13px;display:flex}.refresh-chip{background:var(--c-surface);border:1px solid var(--c-border);border-radius:999px;padding:4px 10px;font-size:12px}.page{max-width:1200px;margin:0 auto;padding:28px 20px 80px}.page-header h1{letter-spacing:-.01em;color:var(--c-primary-dark);font-size:26px;font-weight:700}.page-header p{color:var(--c-text-muted);margin:6px 0 22px}.tabs{border-bottom:1px solid var(--c-border);gap:0;margin-bottom:20px;display:flex}.tab{color:var(--c-text-muted);background:0 0;border:0;border-bottom:3px solid #0000;margin-bottom:-1px;padding:12px 18px;font-weight:600}.tab[aria-selected=true]{color:var(--c-primary-dark);border-bottom-color:var(--c-primary)}.tab[disabled]{color:var(--c-text-faint);cursor:not-allowed}.tab-future{background:var(--c-surface-strong);color:var(--c-text-muted);border-radius:999px;margin-left:6px;padding:2px 6px;font-size:11px}.keyword-bar{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);margin-bottom:16px;padding:18px 20px}.keyword-label{color:var(--c-text);margin-bottom:8px;font-size:13px;font-weight:700;display:block}.keyword-hint{color:var(--c-text-muted);margin-left:6px;font-size:12px;font-weight:500}.keyword-input-wrap{position:relative}.keyword-input{border:1px solid var(--c-border-strong);border-radius:var(--radius);width:100%;color:var(--c-text);background:#fff;padding:12px 36px 12px 14px;font-size:16px}.keyword-input:focus{outline:2px solid var(--c-primary);outline-offset:-1px}.keyword-clear{background:var(--c-surface-strong);width:26px;height:26px;color:var(--c-text-muted);border:0;border-radius:999px;font-size:16px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.keyword-clear:hover{background:var(--c-border);color:var(--c-text)}.keyword-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:10px;display:flex}.keyword-suggestions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.search-grid{grid-template-columns:280px 1fr;align-items:start;gap:24px;display:grid}@media (max-width:880px){.search-grid{grid-template-columns:1fr}}.filter{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);padding:18px;position:sticky;top:16px}.filter-group{margin-bottom:18px}.filter-group:last-child{margin-bottom:0}.filter-label{color:var(--c-text);letter-spacing:-.005em;margin-bottom:8px;font-size:13px;font-weight:700;display:block}.filter-option{color:var(--c-text);cursor:pointer;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:flex}.filter-option input{accent-color:var(--c-primary)}.filter-input,.filter-select{border:1px solid var(--c-border-strong);border-radius:var(--radius);width:100%;color:var(--c-text);background:#fff;padding:8px 10px}.filter-input:focus,.filter-select:focus{outline:2px solid var(--c-primary);outline-offset:-1px}.filter-row{align-items:center;gap:8px;display:flex}.filter-row .filter-input{flex:1}.filter-row .suffix{color:var(--c-text-muted);font-size:13px}.filter-reset{border:1px solid var(--c-border-strong);width:100%;color:var(--c-text);border-radius:var(--radius);background:#fff;margin-top:8px;padding:8px 12px}.filter-reset:hover{background:var(--c-surface-strong)}.results-bar{color:var(--c-text-muted);justify-content:space-between;align-items:center;margin-bottom:14px;font-size:14px;display:flex}.results-count strong{color:var(--c-text)}.results-list{gap:12px;display:grid}.card{border:1px solid var(--c-border);border-radius:var(--radius);background:#fff;gap:10px;padding:16px 18px;transition:border-color .12s;display:grid}.card:hover{border-color:var(--c-primary)}.card-defense{border-left:3px solid var(--c-danger)}.card-badges{flex-wrap:wrap;gap:6px;display:flex}.card-title{color:var(--c-text);font-size:17px;font-weight:700;line-height:1.35}.card-title a:hover{color:var(--c-primary-dark);text-decoration:none}.card-agency{color:var(--c-text-muted);font-size:13px}.card-meta{grid-template-columns:max-content 1fr;gap:4px 12px;font-size:14px;display:grid}.card-meta dt{color:var(--c-text-muted);white-space:nowrap;font-weight:500}.card-meta dd{color:var(--c-text);margin:0}.card-summary{color:var(--c-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.card-actions{border-top:1px solid var(--c-border);gap:14px;margin-top:4px;padding-top:6px;font-size:14px;display:flex}.card-actions a{font-weight:600}.badge{background:var(--c-surface-strong);color:var(--c-text);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge-active{background:var(--c-primary-soft);color:var(--c-primary-dark)}.badge-closed{background:var(--c-surface-strong);color:var(--c-text-muted)}.badge-upcoming{color:#92400e;background:#fef3c7}.badge-stale{color:#991b1b;background:#fee2e2}.badge-urgent{color:var(--c-warning);background:#fff7ed;border-color:#fed7aa}.badge-defense{color:var(--c-danger);background:#fef2f2;border-color:#fecaca}.badge-category{background:var(--c-primary-soft);color:var(--c-primary-dark)}.badge-research{color:var(--c-accent);background:#ecfdf5}.empty,.error,.loading{background:var(--c-surface);border:1px dashed var(--c-border);border-radius:var(--radius);text-align:center;color:var(--c-text-muted);padding:36px 24px}.error{color:var(--c-danger);background:#fef2f2;border-color:#fecaca}.skeleton{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);height:120px;padding:16px}.skeleton-list{gap:12px;display:grid}.profile-form{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);gap:14px;margin-bottom:16px;padding:20px 22px;display:grid}.profile-presets{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.profile-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (max-width:720px){.profile-grid{grid-template-columns:1fr}}.profile-field{color:var(--c-text-muted);gap:4px;font-size:13px;font-weight:600;display:grid}.profile-field-wide{grid-column:1/-1}.profile-checks{flex-wrap:wrap;gap:16px;display:flex}.profile-submit{background:var(--c-primary);color:#fff;border-radius:var(--radius);border:0;justify-self:start;padding:10px 18px;font-weight:700}.profile-submit:hover{background:var(--c-primary-dark)}.match-block{border-radius:var(--radius-sm);border-left:3px solid var(--c-border-strong);padding:8px 12px;font-size:13px}.match-block strong{margin-bottom:2px;font-weight:700;display:block}.match-block ul{color:var(--c-text-muted);margin:0;padding-left:18px}.match-block-positive{border-left-color:var(--c-accent);background:#ecfdf5}.match-block-positive strong{color:var(--c-accent)}.match-block-risk{border-left-color:var(--c-danger);background:#fef2f2}.match-block-risk strong{color:var(--c-danger)}.match-block-missing{border-left-color:var(--c-warning);background:#fff7ed}.match-block-missing strong{color:var(--c-warning)}.match-empty-callout{background:var(--c-primary-soft);border:1px solid var(--c-border);color:var(--c-text);border-radius:var(--radius);text-align:center;padding:24px}.detail-back{color:var(--c-text-muted);margin-bottom:16px;font-size:14px;display:inline-block}.detail-header{gap:8px;margin-bottom:22px;display:grid}.detail-header .badges{flex-wrap:wrap;gap:6px;display:flex}.detail-header h1{font-size:24px;line-height:1.3}.detail-header .agency{color:var(--c-text-muted)}.detail-grid{grid-template-columns:2fr 1fr;align-items:start;gap:24px;display:grid}@media (max-width:880px){.detail-grid{grid-template-columns:1fr}}.detail-section{border:1px solid var(--c-border);border-radius:var(--radius);background:#fff;padding:18px 20px}.detail-section h2{color:var(--c-primary-dark);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:14px;font-weight:700}.detail-table{grid-template-columns:130px 1fr;gap:10px 14px;font-size:14px;display:grid}.detail-table dt{color:var(--c-text-muted);font-weight:500}.detail-table dd{color:var(--c-text);margin:0}.detail-summary{color:var(--c-text);white-space:pre-wrap;line-height:1.65}.detail-links{gap:10px;font-size:14px;display:grid}.detail-links a{background:var(--c-primary-soft);color:var(--c-primary-dark);border-radius:var(--radius-sm);padding:8px 10px;font-weight:600;display:block}.detail-links a:hover{background:var(--c-primary);color:#fff;text-decoration:none}.detail-attachments{color:var(--c-text-muted);gap:4px;font-size:13px;display:grid}.detail-attachments a{color:var(--c-primary);word-break:break-all}.callout-warning{border-radius:var(--radius);color:#92400e;background:#fff7ed;border:1px solid #fed7aa;margin-top:24px;padding:14px 16px;font-size:14px}.about-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:880px){.about-grid{grid-template-columns:1fr}}.about-policy{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (max-width:600px){.about-policy{grid-template-columns:1fr}}.about-policy strong{color:var(--c-primary-dark);margin-bottom:6px;display:block}.about-policy ul,.about-bullets{color:var(--c-text);margin:0;padding-left:18px;font-size:14px;line-height:1.7}.about-bullets li{margin-bottom:6px}.about-bullets code{background:var(--c-surface);border-radius:3px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.about-sources{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (max-width:760px){.about-sources{grid-template-columns:1fr}}.about-source-card{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg);gap:8px;padding:14px 16px;display:grid}.about-source-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.about-source-family{letter-spacing:.04em;color:var(--c-text-muted);text-transform:uppercase;font-size:12px;font-weight:700}.about-source-name{color:var(--c-text);font-size:15px;font-weight:700}.about-source-link{word-break:break-all;color:var(--c-primary);font-size:13px}.about-source-coverage{color:var(--c-text-muted);margin:0;font-size:13px;line-height:1.55}.about-source-gaps{color:var(--c-text-muted);font-size:13px}.about-source-gaps summary{cursor:pointer;color:var(--c-warning);font-weight:600}.about-source-gaps ul{margin-top:6px;padding-left:18px;line-height:1.6}.filter-sheet-toggle{background:var(--c-primary);color:#fff;border-radius:var(--radius);border:0;width:100%;margin-bottom:12px;padding:10px 14px;font-weight:600;display:none}.filter-sheet-backdrop{z-index:50;background:#0f172a66;display:none;position:fixed;inset:0}@media (max-width:880px){.filter-sheet-toggle{display:block}.search-grid>aside.filter{z-index:60;border-radius:12px 12px 0 0;max-height:80vh;transition:transform .2s ease-out;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%)}.search-grid.filter-open>aside.filter{transform:translateY(0)}.search-grid.filter-open~.filter-sheet-backdrop{display:block}}.footer{border-top:1px solid var(--c-border);color:var(--c-text-muted);background:var(--c-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding:16px 20px;font-size:13px;display:flex}.footer a{color:var(--c-text-muted);margin:0 8px}.footer a:first-child{margin-left:0}.footer a:hover{color:var(--c-primary-dark)}
