.csv-page{background:#fff;min-height:100vh}.csv-nav{display:flex;align-items:center;justify-content:space-between;max-width:1080px;margin:0 auto;padding:18px 20px;border-bottom:1px solid var(--line)}.csv-logo{font-weight:700;font-size:18px;color:var(--ink);text-decoration:none}.csv-nav-links{display:flex;gap:20px;font-size:14px;align-items:center}.csv-nav-cta{padding:8px 16px;font-size:14px}.csv-hero{max-width:1080px;margin:0 auto;padding:56px 20px 44px;text-align:center;background:linear-gradient(180deg,#eff6ff,#fff 68%)}.csv-hero .badge{display:inline-block;background:#dbeafe;color:var(--blue-dark);font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px;margin-bottom:18px;letter-spacing:.2px}.csv-hero h1{font-size:36px;line-height:1.24;margin:0 auto 16px;max-width:840px;letter-spacing:-.5px;color:var(--ink)}.csv-sub{font-size:17px;color:var(--gray);max-width:760px;margin:0 auto 30px;line-height:1.75}.csv-sub strong{color:var(--blue-dark)}.csv-tool{max-width:920px;margin:0 auto;text-align:left}.csv-tool-actions{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:20px;box-shadow:0 4px 20px rgba(17,24,39,.08)}.csv-tool-label{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;font-size:13px;color:var(--gray)}.csv-tool-label b{color:var(--ink);font-weight:600}.csv-tool-input{width:100%;min-height:130px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;resize:vertical;line-height:1.55;background:#fbfdff}.csv-tool-input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}.csv-tool-buttons{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;align-items:center}.csv-file-btn{position:relative;cursor:pointer;display:inline-block}.csv-msg{margin-top:14px;padding:10px 14px;border-radius:8px;font-size:14px;line-height:1.6}.csv-msg.err{background:var(--red-soft);color:var(--red);border:1px solid #fecaca}.csv-msg.warn{background:var(--amber-soft);color:var(--amber);border:1px solid #fde68a}.csv-results{margin-top:24px;text-align:left}.csv-summary{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:12px;gap:12px;margin-bottom:18px}.csv-stat{background:var(--blue-soft);border:1px solid #dbeafe;border-radius:10px;padding:14px 10px;text-align:center}.csv-stat b{display:block;font-size:22px;color:var(--blue-dark)}.csv-stat span{font-size:12px;color:var(--gray);line-height:1.4}.csv-stat.highlight{background:var(--amber-soft);border-color:#fde68a}.csv-stat.highlight b{color:var(--amber)}.csv-merge-hint{background:var(--green-soft);border:1px solid #bbf7d0;border-left:4px solid var(--green);border-radius:10px;padding:12px 16px;font-size:14px;line-height:1.7;margin-bottom:18px}.csv-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.csv-table th{background:#f1f5f9;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600;color:#334155;white-space:nowrap}.csv-table td{padding:9px 12px;border-bottom:1px solid #f1f5f9;vertical-align:top;line-height:1.5}.csv-table tbody tr:last-child td{border-bottom:none}.csv-table tbody tr:hover{background:#f8fafc}.csv-table .row-err td:first-child{background:var(--red-soft);color:var(--red);font-weight:700}.csv-table .row-warn td:first-child{background:var(--amber-soft);color:var(--amber);font-weight:700}.csv-table .cell-save{color:var(--green);font-weight:700}.csv-note{font-size:12px;color:var(--gray);line-height:1.6;margin-top:4px}.section{max-width:1080px;margin:0 auto;padding:40px 20px}.section-title{font-size:26px;margin:0 0 10px;text-align:center;letter-spacing:-.3px}.section-sub{text-align:center;color:var(--gray);font-size:15px;max-width:700px;margin:0 auto 24px;line-height:1.7}.csv-steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-top:18px}.csv-step{border:1px solid var(--line);border-radius:var(--radius);padding:22px;background:#fff;transition:box-shadow .15s ease}.csv-step:hover{box-shadow:0 4px 16px rgba(17,24,39,.06)}.csv-step-n{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-size:15px}.csv-step h3{margin:0 0 6px;font-size:16px}.csv-step p{margin:0;font-size:14px;color:var(--gray);line-height:1.65}.csv-rule-box{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafafa}.csv-rules{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:12px;gap:12px;margin:18px 0 14px}.csv-rule{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.6}.csv-rule b{color:var(--blue-dark);margin-right:6px}.policy-alert-box{max-width:620px;margin:0 auto}.policy-alert-form{display:flex;gap:10px}.policy-alert-form input{flex:1 1;padding:12px 14px;border:1px solid var(--line);border-radius:8px;font-size:14px}.policy-alert-form input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.12)}.form-msg.ok{background:var(--green-soft);border:1px solid #bbf7d0;border-radius:8px;color:#15803d}.form-msg.err,.form-msg.ok{margin-top:10px;padding:10px 14px;font-size:13.5px}.form-msg.err{background:var(--red-soft);border:1px solid #fecaca;border-radius:8px;color:var(--red)}.csv-alert-sec{background:var(--blue-soft)}.csv-cta{text-align:center}.csv-cta-btn{padding:14px 30px;font-size:16px;border-radius:10px;box-shadow:0 4px 14px rgba(37,99,235,.2)}.csv-footer{border-top:1px solid var(--line);padding:22px 20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--gray);max-width:1080px;margin:0 auto}.csv-verify{color:#9ca3af}.csv-pro-card{margin-top:20px;background:var(--blue-soft);border:1px solid #dbeafe;border-radius:12px;padding:26px 28px}.csv-pro-card h3{margin:0 0 8px;font-size:20px;line-height:1.35;color:var(--ink)}.csv-pro-sub{margin:0 0 16px;font-size:14px;color:var(--gray);line-height:1.6}.csv-pro-feats{margin:0 0 20px;padding:0;list-style:none;display:grid;grid-gap:8px;gap:8px}.csv-pro-feats li{position:relative;padding-left:22px;font-size:14px;line-height:1.55;color:var(--ink)}.csv-pro-feats li:before{content:"\2713";position:absolute;left:0;top:0;color:var(--green);font-weight:700}.csv-pro-buttons{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.csv-pro-cta{padding:12px 24px;font-size:15px;min-height:48px;display:inline-flex;align-items:center;border-radius:10px;box-shadow:0 4px 14px rgba(37,99,235,.2)}.csv-pro-dismiss{background:none;border:none;color:#6b7280;font-size:14px;cursor:pointer;padding:10px 4px;text-decoration:underline}@media (max-width:760px){.csv-summary{grid-template-columns:repeat(2,1fr)}.csv-rules,.csv-steps{grid-template-columns:1fr}.policy-alert-form{flex-direction:column}.csv-hero h1{font-size:27px}.csv-hero{padding:40px 20px 32px}.csv-pro-card{padding:20px 18px}.csv-pro-card h3{font-size:18px}.csv-pro-buttons{flex-direction:column;align-items:stretch}.csv-pro-cta{justify-content:center}.csv-tool-label{flex-direction:column;gap:2px}}.csv-table .row-ok td:first-child{border-left:3px solid #22c55e}.csv-table .badge{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:10px;font-size:11px;font-weight:600;vertical-align:middle;line-height:1.6}.csv-table .badge-ok{background:#e6f9ec;color:#15803d}.csv-table .badge-warn{background:#fef3c7;color:#b45309}.csv-issue-cell{font-size:12.5px;color:#6b7280;max-width:340px}.pf-copy-zone{margin-top:18px}.pf-copy-zone .pf-output{max-height:320px;overflow:auto;margin-bottom:10px}.pf-copy-zone .pf-btn{margin-top:2px}