:root{
  --storm:#2F4858; --blue:#3D5B74; --beige:#F2EDE6; --border:#E6E6E6; --white:#FFFFFF; --text:#1E2732;
  --pill-very:#C8E6C9; --pill-mod:#FFF59D; --pill-neutral:#FFE0B2; --pill-unhappy:#F5C6C6;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--beige);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.35}
.container{max-width:980px;margin:0 auto;padding:18px}
.hero{padding:6px 0 8px}
.hero h1{margin:0;color:var(--storm);font-weight:800;letter-spacing:.2px;font-size:clamp(22px,3.4vw,34px)}
.subtitle{margin:6px 0 0 0;color:#3f4a55;font-size:clamp(14px,2.2vw,16px)}
.small{font-size:.95rem;color:#57616d}
.controls{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.btn{padding:10px 14px;border-radius:12px;border:1px solid var(--border);background:#fff;cursor:pointer;font-weight:700}
.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}
.card{background:var(--white);border:1px solid var(--border);border-radius:14px;padding:14px;margin:14px 0;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.card h2{margin:0 0 6px 0;color:var(--storm);font-size:clamp(18px,2.6vw,22px)}
.note{margin-top:8px;padding:10px;border-left:4px solid var(--storm);background:#f9f7f3;color:#3b3b3b;border-radius:8px}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border:1px solid var(--border);padding:10px;text-align:left;vertical-align:middle}
.table th{background:#faf9f7}
.round{border-radius:12px;overflow:hidden}
input[type=text]{width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;font-size:16px;margin-top:6px}
select{width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;font-size:16px}
.chk{display:flex;align-items:center;justify-content:center}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.rate{display:flex;gap:8px}
.rate button{flex:1 1 0;border:1px solid var(--border);background:#fff;border-radius:12px;padding:10px 0;font-weight:800;color:var(--storm);cursor:pointer}
.rate button.active{background:#2F4858;border-color:#2F4858;color:#fff}
.total{display:flex;justify-content:flex-end;gap:16px;align-items:baseline;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}
.interp{text-align:right;margin-top:4px}
.pill{display:inline-block;padding:4px 10px;border-radius:999px;font-weight:800;color:#2F4858}
.pill--very{background:var(--pill-very)} .pill--mod{background:var(--pill-mod)} .pill--neutral{background:var(--pill-neutral)} .pill--unhappy{background:var(--pill-unhappy)}
.grid2{display:grid;grid-template-columns:1.3fr 1fr;gap:10px}
.headerRow{display:grid;grid-template-columns:1.3fr 1fr;gap:10px;margin:8px 0 2px 0;color:#3c4650;font-weight:700;font-size:.95rem}
.slot{border:1px dashed var(--border);border-radius:12px;padding:10px}
.slot .name{font-weight:700;color:#3c4650;margin-bottom:6px}
details.area, details.block{border:1px solid var(--border);border-radius:14px;background:#fff;margin:12px 0;overflow:hidden}
summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:800;color:var(--storm);display:flex;align-items:center;gap:10px;background:#faf9f7}
summary .chev{display:inline-block;transition:transform .2s ease; font-size:14px}
details[open] summary .chev{transform:rotate(90deg)}
details[open] summary{border-bottom:1px solid var(--border)}
@media (max-width:740px){.grid2,.headerRow{grid-template-columns:1fr}}
@media print{
  .controls{display:none}
  html,body{background:var(--beige)!important}
  *{-webkit-print-color-adjust:exact; print-color-adjust:exact}
  .container{padding:0}
}