:root{--cream:#fbf4ea;--peach:#f6d9c4;--ink:#3a2a22;--ink2:#7a6659;--coral:#e2603f;--sage:#2f6b57;--card:#fffdf9;--line:#ecdfd0}
*{box-sizing:border-box}
html,body{margin:0}
body{background:radial-gradient(900px 400px at 85% -10%,#fbdcc6 0,transparent 60%),var(--cream);color:var(--ink);font-family:-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;line-height:1.55;min-height:100vh}
a{color:#c4492a}
.t-head{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;padding:10px 16px;background:#000}
.t-head a.logo{display:block}.t-head img{height:42px;width:auto;display:block}
.t-nav{display:flex;gap:8px;flex-wrap:wrap}
.t-nav a{color:#fff;border:1px solid #ffffff55;border-radius:99px;padding:7px 13px;font-size:13px;text-decoration:none;font-weight:600}
.t-nav a.on{background:var(--coral);border-color:var(--coral)}
.t-wrap{max-width:860px;margin:0 auto;padding:22px 16px 40px}
.crumb{font-size:13px;color:var(--ink2);margin:0 0 8px}.crumb a{color:var(--ink2)}
h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,6vw,42px);line-height:1.1;margin:6px 0 10px;letter-spacing:-.02em}
h2{font-family:Georgia,serif;font-size:22px;margin:30px 0 10px}
h3{font-size:16px;margin:0 0 6px}
.lead{color:var(--ink2);font-size:17px;margin:0 0 18px;max-width:640px}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 10px 30px -18px #8a4a2a50;margin:14px 0}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
label{display:block;font-size:13px;font-weight:700;margin:0 0 5px;color:var(--ink)}
input,select{width:100%;font:inherit;font-size:16px;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}
input:focus,select:focus,button:focus-visible,a:focus-visible{outline:3px solid #e2603f55;outline-offset:1px}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg button{flex:1;min-width:110px}
button,.btn{font:inherit;font-size:15px;font-weight:700;border-radius:99px;padding:11px 18px;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block;text-align:center}
button.on,.btn.pri,button.pri{background:var(--coral);border-color:var(--coral);color:#fff}
.btn.wa{background:#1f8f4e;border-color:#1f8f4e;color:#fff}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0}
.note{background:#fff3e6;border:1px solid #f1d3b5;border-radius:14px;padding:12px 14px;font-size:14px;color:#6b4a35;margin:14px 0}
.small{font-size:13px;color:var(--ink2)}
.err{color:#b3261e;font-size:14px;font-weight:600;margin:8px 0 0}
.chip{display:inline-block;font-size:12px;font-weight:700;border-radius:99px;padding:3px 10px;background:var(--peach);color:#8a4a2a}
.chip.ok{background:#dcefe5;color:#1f5a45}.chip.late{background:#fde0dc;color:#9b2c1f}.chip.soon{background:#fff0c2;color:#7a5a00}
.src li{margin:4px 0;font-size:14px}
.foot{max-width:860px;margin:0 auto;padding:10px 16px 34px;font-size:13px;color:var(--ink2);text-align:center}
.foot a{color:var(--ink2)}
/* timeline */
.vis{border-left:3px solid var(--line);margin:0 0 0 8px;padding:0 0 18px 16px;position:relative}
.vis:before{content:"";position:absolute;left:-9px;top:4px;width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--coral)}
.vis.done:before{background:var(--sage);border-color:var(--sage)}
.vis.late:before{border-color:#b3261e}
.vis-h{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.vis-h b{font-size:17px}
.vis-d{color:var(--ink2);font-size:14px}
.vac{display:flex;gap:10px;align-items:flex-start;margin:7px 0;font-size:15px}
.vac input{width:22px;height:22px;margin:1px 0 0;flex:none;accent-color:var(--sage)}
.vac span small{display:block;color:var(--ink2);font-size:12.5px}
.vac.d span{text-decoration:line-through;color:var(--ink2)}
/* checklist */
.bar{height:12px;background:#f0e4d6;border-radius:99px;overflow:hidden;margin:8px 0}
.bar i{display:block;height:100%;background:var(--sage);width:0;transition:width .25s}
.cl h3{margin-top:18px}
.cl .vac{margin:9px 0}
.shop{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.shop a{font-size:13px;font-weight:600;border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:6px 12px;text-decoration:none;color:var(--ink)}
.addrow{display:flex;gap:8px;margin-top:12px}.addrow input{flex:1}
/* results */
.res{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}
.res .r{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}
.res .big{font-size:26px;font-weight:800;font-family:Georgia,serif}
.res .lab{font-size:13px;color:var(--ink2);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 8px}
svg.chart{width:100%;height:auto;background:#fff;border:1px solid var(--line);border-radius:16px}
table.t{width:100%;border-collapse:collapse;font-size:15px}
table.t td,table.t th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.t td.n input{padding:8px 10px;font-size:15px;min-width:90px}
.cost-b{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:14px}.cost-b em{font-style:normal;width:140px;flex:none}.cost-b i{display:block;height:14px;background:var(--coral);border-radius:99px;min-width:2px}
.grid5{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:16px}
.tc{display:block;text-decoration:none;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 10px 30px -18px #8a4a2a50}
.tc b{font-family:Georgia,serif;font-size:19px;display:block;margin:4px 0}.tc span{color:var(--ink2);font-size:14px}.tc i{font-style:normal;font-size:28px}
.tc:hover{border-color:var(--coral)}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:8px 0}
.faq summary{font-weight:700;cursor:pointer}.faq p{margin:8px 0 0;color:var(--ink2)}
@media print{.t-head,.acts,.foot,.noprint,.shop,.addrow,.tabs,.t-nav{display:none!important}body{background:#fff}.card{box-shadow:none;border-color:#ccc}.vis,.card{break-inside:avoid}}
