:root{
  --cream:#eef0e5;
  --paper:#f8f8f2;
  --navy:#073353;
  --blue:#5a819d;
  --light-blue:#d7e1e5;
  --muted:#526c78;
  --line:#d5dbd8;
  --shadow:0 8px 30px rgba(9,40,58,.045);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--paper);color:var(--navy);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
.topline{height:7px;background:var(--navy)}
.site{max-width:1280px;margin:0 auto;padding:0 44px}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 28px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;width:212px;max-width:52vw;transition:opacity .2s}
.brand img{display:block;width:100%;height:auto}
.brand:hover{opacity:.76}
.masthead-signet{text-transform:uppercase;letter-spacing:.21em;font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap}
.masthead-signet span{padding:0 9px;color:var(--blue)}
.intro{padding:45px 0 25px;display:grid;grid-template-columns:minmax(290px,1fr) minmax(270px,.88fr);column-gap:50px;align-items:end}
.eyebrow{font-weight:700;font-size:10px;letter-spacing:.29em;text-transform:uppercase;color:var(--blue);margin:0 0 17px}
.intro .eyebrow{grid-column:1/-1;margin:0 0 13px}
.intro h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(48px,6vw,80px);line-height:.98;letter-spacing:-.035em;margin:0;font-weight:700}
.intro h1 i{font-weight:400;color:var(--blue);font-style:italic}
.intro-copy{color:#526875;font-size:16px;line-height:1.75;margin:0 0 3px;max-width:490px}
.rule{position:relative;height:35px;display:flex;align-items:center;justify-content:center;margin:15px 0 21px;color:var(--blue)}
.rule::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}
.rule span{font-size:15px;background:var(--paper);padding:0 22px;position:relative}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:stretch}
.upload-panel,.result-panel{padding:28px 30px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);min-width:0}
.section-title{display:flex;gap:16px;align-items:start;margin-bottom:22px}
.step{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:11px;letter-spacing:.04em;font-weight:700}
.section-title h2{font-family:Georgia,'Times New Roman',serif;font-size:24px;line-height:1.13;margin:2px 0 6px}
.section-title p{margin:0;color:#687985;line-height:1.45;font-size:13px}
.dropzone{border:1.5px dashed #9aadb5;min-height:310px;background:#f7f9f6;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:12px;cursor:pointer;padding:25px;outline:none;transition:.16s}
.dropzone:hover,.dropzone.dragover,.dropzone:focus-visible{background:#eff3f2;border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--blue)}
.dropzone input{display:none}
.upload-icon{width:64px;height:64px;border:1px solid #bdcdd2;border-radius:50%;display:grid;place-items:center;color:var(--blue);margin-bottom:6px}
.dropzone strong{font-family:Georgia,'Times New Roman',serif;font-size:21px;font-weight:700}
.dropzone>span:not(.upload-icon){font-size:14px;color:#54707e}
.choose{color:var(--navy);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.dropzone small{font-size:11px;line-height:1.6;color:#7d8c91;margin-top:9px}
.file-chip{margin-top:17px;padding:11px 14px;display:flex;gap:10px;align-items:center;background:#eef2ef;border:1px solid #dde4de;font-size:12px;flex-wrap:wrap}
.file-chip[hidden]{display:none}
.file-chip strong{word-break:break-word;min-width:0}
.file-dot{width:8px;height:8px;background:#669577;border-radius:50%;flex-shrink:0}
.file-chip #file-size{color:#7c8c8d}
.file-chip-state{color:#55736c;margin-left:auto;font-size:10px;white-space:nowrap;text-transform:uppercase;letter-spacing:.08em;font-weight:bold}
.status{margin-top:17px;display:flex;gap:10px;align-items:flex-start;padding:9px 0;color:#596c72;font-size:13px;line-height:1.6}
.status-mark{color:var(--blue);font-size:10px;line-height:21px}
.status.success .status-mark{color:#478063}
.status.error{color:#a03f3f}
.status.error .status-mark{color:#c65252}
.warnings{margin-top:10px;padding:13px 15px;background:#fff8e9;border-left:3px solid #d59d4b;color:#815b2c;font-size:12px;line-height:1.6}
.warnings[hidden]{display:none}
.warnings strong{display:block;margin-bottom:5px}
.warnings ul{margin:0;padding-left:17px}
.empty-result{min-height:310px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#a9b8bd;background:#f5f6f3;border:1px solid #ecf0eb}
.empty-result[hidden]{display:none}
.empty-result>span{margin-top:13px;color:#7f9096;font-family:Georgia,serif;font-size:18px;font-weight:700}
.empty-result p{font-size:12px;color:#98a5a6;max-width:180px;line-height:1.5}
.preview-wrap{display:flex;align-items:center;justify-content:center;min-height:300px;background:#d8e0df;padding:14px;max-height:410px}
.preview-wrap img{max-width:100%;max-height:378px;width:auto;height:auto;box-shadow:0 5px 16px rgba(8,45,65,.17);background:#fff}
.preview-caption{font-size:12px;color:#7b8b8e;text-align:center;margin:9px 0 17px}
.actions{display:flex;gap:10px}
.button{border:1px solid var(--navy);text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:10px;flex:1;min-height:49px;padding:12px 14px;font-family:Arial,sans-serif;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background .14s,color .14s,transform .14s}
.button:hover{transform:translateY(-1px)}
.button:focus-visible{outline:3px solid #93b3c9;outline-offset:3px}
.button.primary{background:var(--navy);color:#fff}
.button.primary:hover{background:#125076}
.button.secondary{background:#fff;color:var(--navy)}
.button.secondary:hover{background:#eaf1f1}
.button span{font-size:18px;font-weight:400}
.data-section{margin-top:24px}
.data-section[hidden]{display:none}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:var(--navy);padding:21px 15px}
.stat{display:flex;flex-direction:column;text-align:center;gap:7px;color:white;border-right:1px solid rgba(255,255,255,.23)}
.stat:last-child{border-right:0}
.stat span:first-child{font-family:Georgia,serif;font-size:34px;line-height:1;font-weight:700}
.stat span:last-child{text-transform:uppercase;letter-spacing:.11em;font-size:10px;color:#cedde3}
.data-head{display:flex;justify-content:space-between;align-items:end;padding-top:35px;padding-bottom:17px;gap:20px}
.data-head .eyebrow{margin-bottom:10px}
.data-head h2{font-family:Georgia,serif;font-size:28px;margin:0;font-weight:700}
.row-counter{font-size:12px;color:#6f8589}
.table-scroll{max-height:325px;overflow:auto;border:1px solid var(--line);background:#fff}
table{width:100%;border-collapse:collapse;font-size:13px}
thead{position:sticky;top:0;z-index:1;background:#e9eeec}th{font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--navy);padding:15px 16px;text-align:left;white-space:nowrap}td{padding:12px 16px;border-top:1px solid #edf0ed;color:#445f6a}td:first-child{font-weight:700;color:var(--navy);overflow-wrap:anywhere}tbody tr:nth-child(even){background:#fafbf9}.numeric{text-align:right}.missing-name{font-style:italic;color:#9a6a30}
.instructions{padding:43px 0 48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:8px}
.tip{display:flex;gap:15px;align-items:flex-start}
.tip-num{font-family:Georgia,serif;color:var(--blue);font-size:28px;font-weight:bold;line-height:1}
.tip p{font-size:12px;line-height:1.75;margin:0;color:#657b83}.tip strong{font-family:Georgia,serif;font-size:16px;color:var(--navy)}.tip b{color:var(--navy)}
footer{border-top:1px solid var(--line);padding:20px 0 30px;color:#7590a0;font-size:10px;letter-spacing:.19em;font-weight:700}footer>span:not(.footer-right){margin:0 12px}footer .footer-right{float:right;text-transform:uppercase}
@media(max-width:880px){.site{padding:0 22px}.intro{grid-template-columns:1fr;padding-top:33px;gap:15px}.intro .eyebrow{margin-bottom:0}.intro h1{font-size:62px}.intro-copy{max-width:620px}.workspace{grid-template-columns:1fr}.upload-panel,.result-panel{padding:25px}.dropzone{min-height:250px}.preview-wrap{max-height:500px}.preview-wrap img{max-height:420px}.instructions{gap:17px}}
@media(max-width:540px){.site{padding:0 16px}.masthead{padding:18px 0}.brand{width:155px}.masthead-signet{font-size:8px;letter-spacing:.08em}.masthead-signet span{padding:0 2px}.intro h1{font-size:49px}.intro-copy{font-size:14px}.upload-panel,.result-panel{padding:18px}.section-title{gap:10px}.section-title h2{font-size:21px}.actions{flex-direction:column}.stats{grid-template-columns:repeat(2,1fr);row-gap:20px}.stat:nth-child(2){border-right:0}.stat:nth-child(3),.stat:nth-child(4){padding-top:15px;border-top:1px solid rgba(255,255,255,.17)}.instructions{grid-template-columns:1fr;gap:24px;padding:35px 0}.data-head h2{font-size:23px}footer{line-height:2;letter-spacing:.11em}.footer-right{float:none!important;display:block}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
