* { margin:0; padding:0; box-sizing:border-box; }

:root {
    --pri:#2563eb; --pb:#1d4ed8;
    --bg:#f8fafc; --card:#fff;
    --tx:#0f172a; --mut:#64748b; --brd:#e2e8f0;
    --ok:#16a34a; --tot:#dc2626;
}

body {
    font-family:'Noto Sans KR',-apple-system,BlinkMacSystemFont,sans-serif;
    background:var(--bg); color:var(--tx); line-height:1.6;
}

.container { max-width:720px; margin:0 auto; padding:40px 20px; }

header { text-align:center; margin-bottom:36px; }
header h1 { font-size:28px; font-weight:700; color:var(--pri); margin-bottom:6px; }
.sub { color:var(--mut); font-size:15px; }

/* Card */
.card {
    background:var(--card); border-radius:12px; padding:32px;
    margin-bottom:20px; box-shadow:0 1px 3px rgba(0,0,0,.08);
    border:1px solid var(--brd);
}

/* Drop zone */
.dz { position:relative; }

.drop-zone {
    border:2px dashed var(--brd); border-radius:10px;
    padding:48px 24px; text-align:center; cursor:pointer;
    transition:border-color .2s,background .2s;
}
.drop-zone:hover,.drop-zone.dragover { border-color:var(--pri); background:#eff6ff; }

.icon { width:44px; height:44px; stroke:var(--mut); margin-bottom:10px; }
.dt { font-size:17px; font-weight:500; margin-bottom:4px; }
.dh { font-size:13px; color:var(--mut); }

/* File info bar */
.fi {
    display:flex; align-items:center; gap:10px; margin-top:14px;
    padding:10px 14px; background:#eff6ff; border-radius:8px; font-size:14px;
}
.fn { font-weight:500; flex:1; }
.fsz { color:var(--mut); font-size:13px; }
.clr {
    background:none; border:none; color:var(--pri); cursor:pointer;
    font-size:16px; text-decoration:underline; padding:4px 8px;
}

/* Options row */
.opt { display:flex; align-items:center; gap:10px; margin-top:18px; font-size:14px; }
.opt select {
    padding:8px 12px; border:1px solid var(--brd); border-radius:6px;
    font-size:14px; background:#fff;
}

/* Buttons */
.pri,.sec {
    display:block;width:100%;margin-top:18px;padding:13px 0;border-radius:8px;
    font-size:16px;font-weight:500;cursor:pointer;transition:background .15s;
}
.pri   { background:var(--pri); color:#fff; border:none; }
.pri:hover { background:var(--pb); }
.sec   { background:#fff; color:var(--pri); border:1px solid var(--pri); margin-top:20px; }

/* Progress */
.pb { width:100%;background:var(--brd);border-radius:6px;overflow:hidden;height:8px; }
#pbar  { height:100%;background:var(--pri);width:0%;transition:width .3s;border-radius:6px; }
.px   { margin-top:6px;font-size:14px;color:var(--mut);text-align:center; }

/* Result grid */
.rt  { font-size:20px;margin-bottom:20px;color:var(--pri); }
.rg  { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:24px; }
.rc  { padding:14px;background:#f8fafc;border-radius:8px;border:1px solid var(--brd); }
.rlb { display:block;font-size:12px;color:var(--mut);margin-bottom:3px; }
.rvl { display:block;font-size:18px;font-weight:600; }

/* Cost summary */
.cs  { background:#f8fafc;border-radius:10px;padding:24px;margin-bottom:24px; }
.cr,.ct    { display:flex;justify-content:space-between;padding:7px 0; }
.cr { font-size:15px;color:var(--mut); }
.ct { border-top:2px solid var(--tx);margin-top:6px;padding-top:14px;font-weight:700; }
.tp { color:var(--tot);font-size:24px; }

/* CTA link */
.cta {
    display:block;text-align:center;background:var(--ok);color:#fff;
    text-decoration:none;padding:13px 0;border-radius:8px;font-size:16px;
    font-weight:500;margin-bottom:16px;transition:background .15s;cursor:pointer;
}
.cta:hover { background:#15803d; }

/* Footer */
footer { text-align:center;padding-top:8px;font-size:13px;color:var(--mut); }

.hidden { display:none; }

/* ── Modal overlay ── */
.modal-bg {
    position:fixed;inset:0;background:rgba(15,23,42,.55);
    z-index:90;display:flex;align-items:center;justify-content:center;
}
.panel {
    position:relative;z-index:91;background:#fff;border-radius:14px;
    padding:28px 26px;width:min(480px,90vw);margin:auto;
    box-shadow:0 8px 30px rgba(0,0,0,.18);border:1px solid var(--brd);
}
.panel .ml { display:block;font-size:13px;color:var(--mut);font-weight:600;margin-top:14px; }
.panel input[type="email"],.panel input[type="text"] {
    width:100%;margin-top:4px;padding:9px 12px;border:1px solid var(--brd);border-radius:6px;font-size:14px;
}
.panel input[type="file"] { margin-top:10px;font-size:13px; }

.mb  { display:flex;gap:10px;margin-top:18px; }
.can,.snd { flex:1;padding:11px 0;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;border:none; }
.can   { background:#f1f5f9;color:var(--tx); }
.snd   { background:var(--pri);color:#fff; }
.em    { color:#ef4444;font-size:13px;margin-top:2px;display:block; }
