:root{--bg:#f4f6f3;--card:#fff;--ink:#1d2a22;--muted:#5d6b62;--accent:#1f7a4d;--accent2:#175c3a;--warn:#fff4d6;--warnb:#e0b94a;--err:#fde8e8;--errb:#e08a8a}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.45}
header{background:var(--accent);color:#fff;padding:14px 18px;font-weight:700;font-size:1.1rem}
header small{font-weight:400;opacity:.85;margin-left:8px}
main{max-width:640px;margin:0 auto;padding:16px}
.card{background:var(--card);border-radius:14px;padding:18px;margin-bottom:14px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
h1{font-size:1.4rem;margin:.2em 0 .4em}h2{font-size:1.1rem;margin:.2em 0 .6em}
p{margin:.4em 0}.muted{color:var(--muted);font-size:.92rem}
.btn{display:block;width:100%;padding:15px;border:0;border-radius:12px;font-size:1.05rem;font-weight:600;background:var(--accent);color:#fff;cursor:pointer;text-align:center;text-decoration:none}
.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:#e5ebe7;color:var(--ink)}
.btn+.btn{margin-top:10px}
#preview{display:none;width:100%;max-height:360px;object-fit:contain;border-radius:10px;background:#000;margin:12px 0}
input[type=file]{display:none}
.msg{padding:12px 14px;border-radius:10px;margin:12px 0;display:none}
.msg.warn{background:var(--warn);border:1px solid var(--warnb)}.msg.err{background:var(--err);border:1px solid var(--errb)}
.spinner{display:none;text-align:center;padding:14px}.spinner.on{display:block}
.dot{width:34px;height:34px;border:4px solid #cfe3d8;border-top-color:var(--accent);border-radius:50%;margin:0 auto 8px;animation:s 1s linear infinite}
@keyframes s{to{transform:rotate(360deg)}}
table{width:100%;border-collapse:collapse}td,th{padding:8px 4px;text-align:left;vertical-align:top;border-bottom:1px solid #e6ebe8}
td.r,th.r{text-align:right;white-space:nowrap}
.total{font-size:2rem;font-weight:800;color:var(--accent2)}
.range{font-size:1.05rem;color:var(--muted)}
.estimate{background:var(--warn);border:1px solid var(--warnb);border-radius:10px;padding:12px 14px;margin:12px 0;font-weight:600}
.badge{display:inline-block;font-size:.75rem;padding:2px 8px;border-radius:99px;background:#e5ebe7;margin-left:6px}
.thumb{width:100%;max-height:220px;object-fit:cover;border-radius:10px}
ul.tips{margin:.4em 0 .4em 1.2em;padding:0}
footer{text-align:center;color:var(--muted);font-size:.8rem;padding:14px}
.btn.big{padding:20px 15px;font-size:1.2rem;min-height:64px}
#choosers{margin-top:12px}
#preview.small{max-height:200px}
.strip{display:flex;gap:8px;overflow-x:auto;margin:10px 0}
.strip img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:2px solid #cfe3d8;flex:none}
.photohead{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.photohead h2{margin:0}
.linkbtn{background:none;border:1px solid #c9d3cc;border-radius:8px;padding:6px 12px;font-size:.9rem;color:#8a2c2c;cursor:pointer}
.photocard{display:flex;gap:12px;align-items:flex-start}
.photocard img.pthumb{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:none}
.newbadge{background:#1f7a4d;color:#fff;border-radius:99px;font-size:.75rem;padding:2px 8px;margin-left:6px}
.msg.ok{background:#e6f4ec;border:1px solid #9fcbb0}
.startover{display:inline-block;margin-top:8px;color:var(--muted);font-size:.9rem}
.card.isnew{outline:3px solid #9fcbb0}
.emailbox{margin:14px 0;padding:12px;border:1px solid #d6e3db;border-radius:10px;background:#f8fbf9}
.emailbox input[type=email]{width:100%;padding:14px;font-size:1rem;border:1px solid #b9c7be;border-radius:10px;margin:6px 0 8px}
.emailbox .msg{margin:6px 0}
