:root { color-scheme: light; --ink:#102a32; --muted:#64767b; --brand:#155e75; --light:#e9f6f8; --line:#d9e3e5; --paper:#f7f4ed; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; min-height:100vh; background:linear-gradient(180deg,#dff3f4 0,#f7f4ed 36rem); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
main { width:min(100%,720px); margin:auto; padding:calc(28px + env(safe-area-inset-top)) 18px calc(48px + env(safe-area-inset-bottom)); }
header { padding:24px 4px 28px; }
.eyebrow { color:var(--brand); font-size:12px; font-weight:800; letter-spacing:.14em; }
h1 { margin:8px 0 14px; font-family:Georgia,"Songti SC",serif; font-size:clamp(38px,11vw,62px); line-height:1.08; letter-spacing:-.04em; }
h2 { margin:0 0 8px; font-size:20px; }
.intro,.muted { color:var(--muted); line-height:1.65; }
.card { display:flex; gap:14px; margin:14px 0; padding:20px; border:1px solid rgba(21,94,117,.12); border-radius:22px; background:rgba(255,255,255,.88); box-shadow:0 12px 34px rgba(25,63,70,.08); }
.step { flex:0 0 34px; width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--light); color:var(--brand); font-weight:800; }
.step.done { background:#dff6e8; color:#17663b; }
.content { min-width:0; flex:1; }
label { display:block; margin:14px 0 8px; font-size:14px; font-weight:700; }
input[type=number],input[type=text],textarea { width:100%; margin-top:8px; padding:13px 14px; border:1px solid var(--line); border-radius:12px; background:#fff; font:inherit; color:inherit; }
.file-picker { display:block; padding:18px; border:1.5px dashed #76a7b3; border-radius:14px; background:#f7fcfc; text-align:center; color:var(--brand); cursor:pointer; }
.file-picker input { position:absolute; width:1px; height:1px; opacity:0; }
button,.button { display:block; width:100%; margin-top:14px; padding:14px 18px; border:0; border-radius:13px; background:var(--brand); color:white; font:inherit; font-weight:800; text-align:center; text-decoration:none; cursor:pointer; }
button:disabled { opacity:.42; cursor:not-allowed; }
.status { margin-top:13px; padding:12px; border-radius:12px; background:#f0f5f6; color:#36545c; line-height:1.5; }
.status.error { background:#fff0ef; color:#9d2e27; }
.analysis { margin-top:12px; max-height:220px; overflow:auto; padding:12px; border:1px solid var(--line); border-radius:12px; background:#fff; color:#36545c; font-size:13px; line-height:1.6; white-space:pre-wrap; }
.history { padding:24px 4px; }
.history-title { display:flex; align-items:center; justify-content:space-between; }
.text-button { width:auto; margin:0; padding:8px; background:transparent; color:var(--brand); }
.history-item { padding:14px 0; border-bottom:1px solid var(--line); }
.history-item strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.history-item small { color:var(--muted); }
@media (min-width:600px) { main { padding-left:28px; padding-right:28px; } .card { padding:26px; } }
