:root { color-scheme: light; --bg:#f3f6fb; --surface:#fff; --text:#172033; --muted:#718096; --border:#d2ddec; --primary:#176f66; --primary-dark:#105b54; --blue:#225fa8; --amber:#a56609; --red:#b83f45; --green:#16806f; --shadow:0 8px 24px rgba(31,48,78,.06); }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:ui-sans-serif,system-ui,-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif; line-height:1.5; }
a { color:var(--blue); text-decoration:none; }
button,input,select { font:inherit; }
.app-header { background:#fff; border-bottom:1px solid var(--border); }
.topbar { min-height:62px; max-width:1180px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:0 16px; border-bottom:1px solid #e1e7f0; }
.brand { color:var(--text); font-size:15px; font-weight:700; letter-spacing:-.025em; }
.account-menu { position:relative; color:#52617a; font-size:14px; }.account-menu summary { padding:10px 0; list-style:none; cursor:pointer; }.account-menu summary::-webkit-details-marker { display:none; }.account-menu summary::after { content:"⌄"; margin-left:6px; color:#8b98aa; }.account-popover { position:absolute; right:0; top:45px; z-index:20; width:170px; display:grid; gap:10px; padding:14px; border:1px solid var(--border); border-radius:10px; background:#fff; box-shadow:var(--shadow); }.account-popover strong { font-size:13px; }.account-popover a,.account-popover button { color:#46566f; font-size:13px; }.logout-form { margin:0; }
.primary-nav { height:144px; max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:4px; padding:20px 12px; }.primary-nav a { height:102px; display:flex; align-items:center; padding:0 13px; border-radius:9px; color:#40516a; font-size:14px; }.primary-nav a.active { color:#175fa9; background:#e4efff; font-weight:700; }.primary-nav a[aria-disabled="true"] { cursor:not-allowed; opacity:.72; }
.page { max-width:1180px; margin:0 auto; padding:16px 16px 72px; }.page-auth { min-height:100vh; display:grid; place-items:center; }
h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:5px; font-size:22px; letter-spacing:-.035em; } h2 { margin-bottom:4px; font-size:20px; letter-spacing:-.025em; }.page-header p,.panel-header p { color:var(--muted); margin-bottom:0; font-size:14px; }
.page-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; }.header-actions { display:flex; gap:8px; }.header-actions form { margin:0; }
.back-link { display:inline-block; margin-bottom:8px; font-size:14px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:40px; padding:8px 14px; border:1px solid #b9c5d6; border-radius:8px; background:#fff; color:#25334a; cursor:pointer; }.button:hover { background:#f7f9fc; }.button-primary { color:#fff; background:var(--primary); border-color:var(--primary); }.button-primary:hover { background:var(--primary-dark); }
.link-button { padding:0; border:0; background:transparent; color:var(--blue); cursor:pointer; }
.toolbar,.upload-form { display:flex; gap:9px; flex-wrap:wrap; margin-bottom:14px; }.toolbar input { flex:1 1 260px; }.dashboard-toolbar { display:grid; grid-template-columns:minmax(240px,1fr) 116px 96px; gap:9px; }.dashboard-toolbar select { width:100%; }.search-field { position:relative; display:flex; align-items:center; }.search-field>span { position:absolute; left:12px; z-index:1; color:#8795aa; font-size:20px; transform:rotate(-20deg); }.search-field input { padding-left:37px; }
input,select { min-height:40px; width:100%; padding:8px 10px; border:1px solid #bcc8d8; border-radius:8px; background:#fff; color:var(--text); }.toolbar select,.toolbar button,.upload-form select,.upload-form button { width:auto; }.upload-form input[type="file"] { flex:1 1 260px; padding:6px; }
.table-card,.panel,.form-section { background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:var(--shadow); }.table-card { overflow-x:auto; box-shadow:none; }table { width:100%; border-collapse:collapse; }th,td { padding:13px 15px; text-align:left; border-bottom:1px solid #dde5ef; vertical-align:middle; }th { background:#f8fafc; color:#65748b; font-size:14px; font-weight:650; white-space:nowrap; }td { font-size:14px; }tr:last-child td { border-bottom:0; }.company-link { color:#172033; font-weight:700; }.company-link:hover { color:var(--blue); }.subtext { display:block; margin-top:2px; color:#8090a6; font-size:13px; }
.status { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; font-weight:650; font-size:13px; }.status::before { content:""; width:8px; height:8px; border-radius:50%; background:#97a4b5; }.status-pass::before,.status-precheck_pass::before { background:var(--green); }.status-fail::before,.status-precheck_fail::before { background:var(--red); }.status-needs_supplement::before { background:#d3921c; }.status-manual_review::before { background:#6e63b6; }
.empty { padding:34px; color:var(--muted); text-align:center; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.auth-card { width:min(420px,100%); padding:38px; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); text-align:center; }.auth-mark { width:48px; height:48px; display:grid; place-items:center; margin:0 auto 14px; border-radius:12px; background:var(--primary); color:#fff; font-weight:800; }.auth-card h1 { margin-bottom:2px; }.auth-card>p { color:var(--muted); margin-bottom:24px; }.stack-form { display:grid; gap:14px; text-align:left; }.stack-form label,.form-grid label { display:grid; gap:6px; color:#48566d; font-size:14px; }
.stack-form small { color:var(--muted); }.settings-card { width:min(560px,100%); padding:28px; margin:0 auto; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:var(--shadow); }.compact-header { max-width:760px; margin-left:auto; margin-right:auto; }
.alert,.flash { padding:12px 14px; margin-bottom:16px; border-radius:9px; }.alert-error { background:#fff0f0; border:1px solid #efb9bd; color:#8f2d34; }.flash { background:#eff9f5; border:1px solid #addbca; color:#175c4d; }
.case-form { display:grid; gap:18px; }.form-section { padding:22px; }.form-section h2 { padding-bottom:10px; border-bottom:1px solid #e6ebf2; }.form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.form-actions { display:flex; justify-content:flex-end; gap:9px; }
.stepper { display:grid; grid-template-columns:repeat(4,1fr); gap:0; padding:0; margin:0 0 22px; list-style:none; counter-reset:steps; }.stepper li { position:relative; display:flex; align-items:center; gap:9px; color:#8895a8; font-size:13px; }.stepper li:not(:last-child)::after { content:""; height:2px; position:absolute; left:38px; right:10px; top:16px; background:#dce3ec; }.stepper li span { position:relative; z-index:1; width:32px; height:32px; display:grid; place-items:center; border-radius:50%; border:2px solid #cbd5e1; background:var(--bg); font-weight:750; }.stepper li.active { color:var(--primary); }.stepper li.active span { border-color:var(--primary); background:var(--primary); color:#fff; }.stepper li.active:not(:last-child)::after { background:#92c7bd; }
.intake-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:20px; align-items:start; }.intake-main { display:grid; gap:18px; }.intake-aside { position:sticky; top:86px; padding:22px; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:var(--shadow); }.intake-aside h3 { margin-bottom:14px; }.section-heading { display:flex; gap:12px; align-items:flex-start; margin-bottom:18px; }.section-heading h2 { padding:0; margin:0; border:0; }.section-heading p { margin:3px 0 0; color:var(--muted); font-size:14px; }.section-number { width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; border-radius:8px; color:#fff; background:var(--primary); font-weight:750; }.form-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }.dropzone { min-height:210px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; padding:28px; border:2px dashed #9fb3c9; border-radius:12px; background:#f8fbfd; text-align:center; cursor:pointer; transition:.15s ease; }.dropzone:hover,.dropzone.dragging { border-color:var(--primary); background:#f0faf7; }.dropzone>span { color:var(--muted); font-size:13px; }.dropzone .upload-symbol { width:46px; height:46px; display:grid; place-items:center; border-radius:50%; color:var(--primary); background:#dff2ed; font-size:24px; }.dropzone input { width:auto; min-height:0; margin-top:8px; border:0; padding:0; }.selected-files { margin-top:10px; padding:10px 12px; border-radius:8px; background:#f4f7fa; color:var(--muted); font-size:13px; }.document-groups { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:14px; }.document-groups div { padding:12px; border:1px solid #e1e7ef; border-radius:9px; }.document-groups span { display:block; margin-top:4px; color:var(--muted); font-size:12px; }.optional-section summary { cursor:pointer; font-weight:700; }.optional-section summary span { margin-left:5px; color:var(--muted); font-size:12px; font-weight:500; }.optional-section>p { margin:12px 0; color:var(--muted); font-size:14px; }.check-list { display:grid; gap:10px; padding:0; list-style:none; color:#43516a; font-size:14px; }.check-list li::before { content:"✓"; margin-right:8px; color:var(--green); font-weight:800; }.notice { padding:12px; border-radius:8px; background:#fff8e9; color:#795820; font-size:12px; }.button-wide { width:100%; margin-top:8px; }
.summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }.metric { padding:16px; background:var(--surface); border:1px solid var(--border); border-radius:11px; }.metric span { color:var(--muted); font-size:13px; }.metric strong { display:block; margin-top:5px; font-size:20px; }
.panel { margin-bottom:18px; padding:20px; }.panel-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }.document-list { display:grid; }.document-row { display:flex; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid #e6ebf2; }.document-row:last-child { border-bottom:0; }.file-icon { width:42px; height:46px; flex:0 0 auto; display:grid; place-items:center; border-radius:7px; background:#edf2f8; color:#4b5d75; font-size:10px; font-weight:750; }.document-info { flex:1; min-width:0; }.document-info span { display:block; color:var(--muted); font-size:13px; }.error-text { color:var(--red)!important; }.inline-form { display:flex; align-items:center; gap:8px; }.inline-form select { width:180px; }
.case-progress { margin-top:-4px; padding:17px 20px; border:1px solid var(--border); border-radius:11px; background:#fff; }.case-tabs { position:sticky; top:64px; z-index:8; display:flex; gap:4px; padding:8px; margin:0 0 18px; border:1px solid var(--border); border-radius:10px; background:rgba(255,255,255,.96); box-shadow:0 5px 18px rgba(31,48,78,.06); }.case-tabs a { padding:8px 13px; border-radius:7px; color:#4d5c72; font-size:14px; font-weight:650; }.case-tabs a:hover { background:#eef6f4; color:var(--primary); }.review-badge { padding:6px 9px; border-radius:999px; color:#64549c; background:#f0edff; font-size:12px; font-weight:700; }.extracted-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.extracted-field { display:grid; gap:6px; padding:13px; border:1px solid #e0e6ee; border-radius:9px; background:#fafcfe; }.field-label { display:flex; justify-content:space-between; align-items:center; color:#41516a; font-size:13px; font-weight:650; }.field-label em { padding:2px 6px; border-radius:4px; color:#17685f; background:#e5f5f0; font-size:10px; font-style:normal; }.candidate-source { color:#6a778b; font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.candidate-source a { font-weight:600; }.muted { color:#99a4b3; }.has-conflict { border-color:#e4bd72; background:#fffaf0; }.conflict-text { color:#946317; font-size:11px; }.extracted-form .form-actions { margin-top:16px; }.empty-guided { display:grid; gap:4px; }.empty-guided span { font-size:13px; }.result-filters { display:flex; gap:7px; flex-wrap:wrap; margin:-4px 0 12px; }.filter-chip { padding:6px 11px; border:1px solid #cbd5e1; border-radius:999px; background:#fff; color:#536176; cursor:pointer; }.filter-chip.active { color:#fff; border-color:var(--primary); background:var(--primary); }
.result-row { border-bottom:1px solid #e6ebf2; }.result-row:last-child { border-bottom:0; }.result-row summary { display:grid; grid-template-columns:105px 74px minmax(0,1fr) 28px; gap:10px; align-items:center; padding:13px 4px; cursor:pointer; }.rule-code { color:var(--muted); font-family:ui-monospace,monospace; font-size:12px; }.automation { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:#eef2f7; color:#526079; font-size:12px; }.result-body { padding:0 4px 16px 189px; color:#46546a; }.result-body pre { white-space:pre-wrap; padding:10px; border-radius:7px; background:#f4f6f9; font-size:12px; }.manual-form { display:grid; grid-template-columns:150px minmax(0,1fr) auto; gap:8px; margin-top:10px; }.complete-form { display:flex; justify-content:flex-end; }
@media (max-width:900px) { .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.summary-grid { grid-template-columns:repeat(2,1fr); }.result-body { padding-left:4px; }.intake-layout { grid-template-columns:1fr; }.intake-aside { position:static; }.extracted-grid { grid-template-columns:1fr; } }
@media (max-width:620px) { .topbar { padding:0 14px; }.primary-nav { height:86px; overflow-x:auto; padding:12px 10px; }.primary-nav a { height:58px; flex:0 0 auto; padding:0 12px; }.page { padding:18px 14px 50px; }.page-header { align-items:flex-start; flex-direction:column; }.dashboard-toolbar { grid-template-columns:1fr 1fr; }.dashboard-toolbar .search-field { grid-column:1/-1; }.form-grid,.form-grid-two,.summary-grid { grid-template-columns:1fr; }.stepper strong { display:none; }.case-tabs { overflow-x:auto; }.case-tabs a { white-space:nowrap; }.document-groups { grid-template-columns:1fr; }.result-row summary { grid-template-columns:96px 68px minmax(0,1fr); }.automation { display:none; }.manual-form { grid-template-columns:1fr; }.document-row { align-items:flex-start; flex-wrap:wrap; }.inline-form { width:100%; }.inline-form select { flex:1; }.auth-card { padding:28px 22px; } }
