.hb-app{--hb-accent:#CA1D1D;--hb-bg:#0B1928;--hb-text:#E7E9EB;--hb-muted:#9AA3AD;--hb-line:rgba(255,255,255,.18);max-width:760px;margin:0 auto;padding:32px;background:var(--hb-bg);border-left:3px solid var(--hb-accent);color:var(--hb-text);font-family:Heebo,system-ui,sans-serif;font-size:16px;line-height:1.5;text-align:left;box-sizing:border-box}
.hb-app *{box-sizing:border-box}
.hb-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.hb-head h3{margin:0;color:#fff;font:500 26px/1.1 "League Spartan",sans-serif;letter-spacing:.04em}
.hb-lang{display:flex;border:1px solid var(--hb-line)}
.hb-lang button{background:none;border:0;color:var(--hb-muted);padding:6px 10px;font:600 12px/1 Raleway,sans-serif;letter-spacing:.08em;cursor:pointer}
.hb-lang button.on{background:var(--hb-accent);color:#fff}
.hb-block{margin:0 0 24px}
.hb-label{color:#fff;font:600 13px/1 Raleway,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}
.hb-chips{display:flex;flex-wrap:wrap;gap:8px}
.hb-chip,.hb-day{background:transparent;border:1px solid var(--hb-line);color:var(--hb-text);cursor:pointer;font:inherit;transition:border-color .15s,background .15s}
.hb-chip{min-width:48px;height:44px;padding:0 12px}
.hb-chip:hover:not(:disabled),.hb-day:hover:not(:disabled){border-color:var(--hb-accent)}
.hb-chip.on,.hb-day.on{background:var(--hb-accent);border-color:var(--hb-accent);color:#fff}
.hb-chip:disabled,.hb-day:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}
.hb-days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.hb-day{flex:0 0 64px;display:flex;flex-direction:column;align-items:center;padding:8px 4px;line-height:1.2}
.hb-day:disabled{text-decoration:none}
.hb-dw{font-size:12px;text-transform:uppercase;color:inherit;opacity:.8}
.hb-dn{font:500 22px/1.2 "League Spartan",sans-serif}
.hb-dm{font-size:11px;text-transform:uppercase;opacity:.8}
.hb-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.hb-field{display:block;margin:0 0 14px}
.hb-field>span{display:block;font-size:14px;color:var(--hb-muted);margin-bottom:4px}
.hb-field input,.hb-field textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--hb-line);color:#fff;padding:11px 12px;font:inherit;border-radius:0}
.hb-field input:focus,.hb-field textarea:focus{outline:none;border-color:var(--hb-accent)}
.hb-field.has-err input,.hb-field.has-err textarea{border-color:#ff6b6b}
.hb-err{display:block;color:#ff8a8a;font-size:13px;margin-top:4px}
.hb-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--hb-muted);margin:0 0 8px;cursor:pointer}
.hb-check input{margin-top:4px;accent-color:var(--hb-accent);width:18px;height:18px;flex:0 0 auto}
.hb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.hb-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.hb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;background:var(--hb-accent);border:1px solid var(--hb-accent);color:#fff!important;font:600 13px/1 Raleway,sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none!important;cursor:pointer}
.hb-btn:disabled{opacity:.6;cursor:wait}
.hb-btn.hb-ghost{background:transparent;border-color:var(--hb-line)}
.hb-btn.hb-ghost:hover{border-color:#fff}
.hb-note{color:var(--hb-muted);margin:12px 0 0}
.hb-small{font-size:13px}
.hb-muted{color:var(--hb-muted)}
.hb-alert{border-left:3px solid var(--hb-accent);background:rgba(202,29,29,.12);padding:10px 14px;margin:12px 0}
.hb-alert.hb-ok{border-color:#3fb67b;background:rgba(63,182,123,.12)}
.hb-summary{border:1px solid var(--hb-line);padding:16px 18px;margin:12px 0}
.hb-sum-main{color:#fff;font:500 21px/1.3 "League Spartan",sans-serif;margin-bottom:4px}
.hb-success{text-align:center}
.hb-success .hb-summary,.hb-success .hb-actions{text-align:left;justify-content:center}
.hb-success h4{color:#fff;font:500 24px/1.2 "League Spartan",sans-serif;margin:8px 0}
.hb-tick{width:56px;height:56px;margin:0 auto;border-radius:50%;background:var(--hb-accent);color:#fff;font-size:30px;line-height:56px}
.hb-loading{height:44px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);background-size:200% 100%;animation:hb-shine 1s linear infinite}
@keyframes hb-shine{from{background-position:200% 0}to{background-position:-200% 0}}
@media (max-width:600px){.hb-app{padding:20px 16px}.hb-grid{grid-template-columns:1fr}.hb-head h3{font-size:22px}.hb-btn{flex:1 1 100%}}
