:root{--font-family-base: "IBM Plex Sans", "Noto Sans KR", sans-serif;--font-size-title: 16px;--font-size-subtitle: 14px;--font-size-caption: 13px;--font-size-badge: 13px;--scroll-anchor-offset: 76px;--line-height-title: 1.35;--line-height-body: 1.6;--space-1: 4px;--space-2: 8px;--space-3: 10px;--space-4: 12px;--space-5: 14px;--radius-card: 10px;--radius-panel: 12px;--color-bg-start: #eef5ff;--color-bg-end: #fff8f0;--color-surface: #ffffff;--color-surface-soft: #f7fbff;--color-border: #d8e3ef;--color-text: #1a2a3a;--color-text-muted: #4f657b;--color-text-secondary: #355169;--color-text-strong: #163e64;--color-primary: #124876;--color-primary-hover: #0f3c63;--color-focus: #13589a;--color-trust-bg: #edf5ff;--color-trust-border: #bfd6ee;--color-trust-text: #1d466a;--color-report-subtitle: #1d3f60;--color-rule-main: #294f72;--color-risk-low-bg: #e6f4ea;--color-risk-low-text: #1e6f3e;--color-risk-medium-bg: #fff4df;--color-risk-medium-text: #8a5b11;--color-risk-high-bg: #ffe9e8;--color-risk-high-text: #a3281f;font-family:var(--font-family-base);color:var(--color-text);background:linear-gradient(150deg,var(--color-bg-start),var(--color-bg-end))}*{box-sizing:border-box}body{margin:0;line-height:1.5;-webkit-tap-highlight-color:rgba(18,72,118,.2)}.app{width:min(1040px,calc(100vw - 24px));margin:20px auto;display:grid;gap:var(--space-4)}.app-content{display:grid;gap:var(--space-4)}.skip-link{position:absolute;top:-40px;left:var(--space-2);z-index:1000;padding:var(--space-2) var(--space-3);border-radius:var(--space-2);background:#133e67;color:#fff;text-decoration:none;font-size:13px}.skip-link:focus-visible{top:var(--space-2)}.hero,.panel,.tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-panel);padding:var(--space-5)}.kicker{margin:0;font-size:12px;color:#165a95;text-transform:uppercase;font-weight:700}.hero h1{margin:6px 0 0;font-size:clamp(22px,3vw,32px)}.hero-subtext{margin:var(--space-2) 0 0;max-width:70ch;color:var(--color-text-secondary)}.tabs{display:flex;gap:var(--space-2);flex-wrap:wrap}.tab{display:inline-flex;align-items:center;border:1px solid #c9d8ea;border-radius:999px;background:#eef4fb;color:#294f72;padding:7px 12px;text-decoration:none;cursor:pointer}.tab:hover{background:#ddebf9}.tab.active{border-color:#133e67;background:#133e67;color:#fff}.card{border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--space-3);background:var(--color-surface-soft)}.result-layout{margin-top:var(--space-3);display:grid;gap:var(--space-3)}.result-layout-primary{margin-top:var(--space-2)}.result-layout-secondary{padding-top:var(--space-2);border-top:1px solid var(--color-border)}.report-section{display:grid;gap:var(--space-2)}.report-title{margin:0;font-size:var(--font-size-title);line-height:var(--line-height-title);text-wrap:balance}.report-title[id]{scroll-margin-top:var(--scroll-anchor-offset)}.report-subtitle{margin:2px 0 0;font-size:var(--font-size-subtitle);color:var(--color-report-subtitle)}.report-text{margin:0}.report-list{margin:0;padding-left:18px;display:grid;gap:var(--space-2)}.report-list li{overflow-wrap:anywhere}.card h4,.panel h2,.panel h3{margin:0 0 6px}.panel p,.card p{margin:0 0 var(--space-2);color:var(--color-text-muted);line-height:var(--line-height-body)}.panel-lead{color:var(--color-text-secondary)}.trust-note{margin:var(--space-2) 0 0;border:1px solid var(--color-trust-border);border-radius:var(--radius-card);background:var(--color-trust-bg);color:var(--color-trust-text);font-size:var(--font-size-caption);padding:var(--space-2) var(--space-3)}.primary{margin-top:12px;border:0;border-radius:var(--radius-card);background:var(--color-primary);color:#fff;font-weight:700;padding:10px 14px;cursor:pointer}.primary:hover{background:var(--color-primary-hover)}.tab:focus-visible,.primary:focus-visible,.inline-action:focus-visible,.mapper-grid select:focus-visible,.uploader-input:focus-visible,.dropzone:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.dropzone{margin-top:10px;border:2px dashed #b7cbe0;border-radius:10px;background:#f1f7ff;color:#2f4f6e;padding:14px;display:grid;gap:4px;cursor:pointer}.dropzone:hover{border-color:#8eb1d3;background:#eaf3fe}.dropzone:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 2px #13589a33}.dropzone strong{font-size:14px}.dropzone span{font-size:13px;color:#4b647e}.dropzone.is-dragover{border-color:#13589a;background:#e8f3ff}.uploader-input{margin-top:10px}.tab,.primary,.dropzone,.uploader-input,.mapper-grid select{touch-action:manipulation}.mapper-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:10px}.mapper-grid label{display:grid;gap:4px;color:#33495f;font-size:14px}.mapper-grid select{border:1px solid #c6d6e7;border-radius:8px;padding:8px}.mapper-grid select.is-invalid{border-color:#d92d20}.field-error-text{color:#b42318;font-size:12px;line-height:1.4}.error-text{margin:0;color:#b42318;font-weight:700}.validation-summary{display:grid;gap:var(--space-3)}.issue-summary{margin:0 0 var(--space-2)}.list-summary{margin:0 0 var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-caption)}.risk-summary{line-height:var(--line-height-body)}.inline-action{border:0;background:none;color:var(--color-primary);padding:0;margin-top:var(--space-2);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.inline-action:hover{color:var(--color-primary-hover)}.cta-button{margin-top:var(--space-1)}.cta-note{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-caption)}.action-loop-list{margin-top:0}.preview-table-wrap{margin-top:10px;overflow-x:auto}.preview-caption{text-align:left;margin-bottom:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-caption)}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th,.preview-table td{border:1px solid #d9e4ef;padding:6px 8px;text-align:left;white-space:normal;overflow-wrap:anywhere}.metrics-list{margin:0;display:grid;list-style:none;padding-left:0;gap:var(--space-2)}.key-value-list{margin:0;padding-left:0}.kv-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:var(--space-4);min-width:0}.kv-label{margin:0;min-width:0;color:var(--color-text-secondary);overflow-wrap:anywhere}.kv-value{margin:0;color:var(--color-text-strong);flex-shrink:0;font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.mapping-list{list-style:none;padding-left:0}.rules-list{list-style:none;padding-left:0;gap:var(--space-4)}.rule-item{border-top:1px dashed #d0dfef;padding-top:var(--space-2);min-width:0}.rule-item:first-child{border-top:0;padding-top:0}.rule-main{margin:0;color:var(--color-rule-main);font-weight:600}.rule-message{margin:4px 0;overflow-wrap:anywhere}.rule-meta{margin:0;display:flex;gap:var(--space-2);flex-wrap:wrap;color:var(--color-text-secondary)}.rule-meta-list{list-style:none;padding-left:0;gap:var(--space-1)}.rule-meta-list .kv-value{text-align:left}.ai-overview{list-style:none;padding-left:0}.ai-signal{max-width:100%;overflow-wrap:anywhere}.ai-list{margin-top:0}.risk-summary strong:last-child{font-variant-numeric:tabular-nums}.risk-badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:var(--font-size-badge);line-height:1.35;font-weight:700}.risk-low{background:var(--color-risk-low-bg);color:var(--color-risk-low-text)}.risk-medium{background:var(--color-risk-medium-bg);color:var(--color-risk-medium-text)}.risk-high{background:var(--color-risk-high-bg);color:var(--color-risk-high-text)}@media(max-width:768px){.app{width:min(1040px,calc(100vw - 16px));margin:12px auto;gap:var(--space-3)}.app-content{gap:var(--space-3)}.hero,.panel,.tabs{padding:var(--space-4)}.report-title{font-size:15px}.kv-row{grid-template-columns:minmax(0,1fr);gap:4px}.kv-value{text-align:left}.rule-meta{flex-direction:column;gap:2px}}@media(max-width:480px){.app{width:min(1040px,calc(100vw - 12px));margin:var(--space-2) auto}.hero,.panel,.tabs{padding:var(--space-3)}.report-title{font-size:14px}.list-summary{font-size:12px}.report-list{gap:var(--space-1)}.primary{width:100%}.hero-subtext{font-size:13px}}
