:root{--bg:#f7f8fb;--card:#fff;--ink:#172033;--muted:#687388;--brand:#161b2e;--gold:#f5b82e;--line:#e4e7ee;--ok:#17803d;--warn:#a66b00;--bad:#b42318}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}.topbar{background:var(--brand);color:#fff;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.brand{color:#fff;text-decoration:none;font-weight:800;font-size:22px}.tag{color:#d9deea;margin-left:12px}.topbar nav{display:flex;gap:10px;flex-wrap:wrap}.topbar nav a{color:#fff;text-decoration:none;background:rgba(255,255,255,.1);padding:8px 10px;border-radius:10px}.topbar nav a.nav-gold{background:var(--gold);color:#141414}.container{max-width:1180px;margin:22px auto;padding:0 14px}footer{text-align:center;color:var(--muted);padding:28px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.mini{grid-template-columns:repeat(3,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 28px rgba(20,30,60,.06)}.span4{grid-column:span 4}.span5{grid-column:span 5}.span6{grid-column:span 6}.span7{grid-column:span 7}.span8{grid-column:span 8}.span12{grid-column:span 12}h1,h2,h3{margin:0 0 14px}.muted{color:var(--muted)}.big{font-size:36px;font-weight:850}.hero{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}.hero p{margin:0;color:var(--muted)}.btn,button{border:0;border-radius:12px;padding:11px 14px;background:var(--brand);color:#fff;font-weight:750;text-decoration:none;display:inline-block;cursor:pointer}.btn.gold,button.gold{background:var(--gold);color:#141414}.btn.light{background:#eef1f7;color:var(--ink)}.btn.bad{background:var(--bad)}input,select,textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:16px}label{font-weight:700;display:block;margin:10px 0 6px}.row{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.row>*{flex:1}.searchbar{display:flex;gap:8px;margin-bottom:12px}.searchbar input{flex:1}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px;vertical-align:top}th{font-size:13px;color:var(--muted);text-transform:uppercase}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef1f7;font-size:13px;font-weight:800}.pill.ok{background:#e7f6ec;color:var(--ok)}.pill.warn{background:#fff4db;color:var(--warn)}.pill.bad{background:#fde9e7;color:var(--bad)}.flash{background:#fff7df;border:1px solid #f4d27a;border-radius:14px;padding:12px;margin-bottom:14px}.login{max-width:430px;margin:50px auto}.quick-times{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.quick-times button{background:#eef1f7;color:#172033}.big-buttons button{font-size:18px;min-width:76px;padding:14px}.search-result{border:1px solid var(--line);padding:12px;border-radius:14px;margin:8px 0;background:#fff}.actions{display:flex;gap:8px;flex-wrap:wrap}.pick-card{display:block;border:1px solid var(--line);padding:13px;border-radius:14px;margin:8px 0;background:#fff;text-decoration:none;color:var(--ink)}.pick-card:hover,.pick-card.picked{border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,184,46,.18)}.pick-card span{display:block;color:var(--muted);margin-top:3px}.pick-card em{display:inline-block;margin-top:7px;color:var(--bad);font-style:normal;font-weight:800}.selected{display:flex;justify-content:space-between;gap:12px;background:#fff9e8;border:1px solid #f4d27a;padding:12px;border-radius:14px;margin-bottom:14px}.selected span{color:var(--muted)}.inline-new{background:#f8fafc;border:1px dashed var(--line);border-radius:14px;padding:12px;margin-bottom:12px}.check{display:flex;align-items:center;gap:10px}.check input{width:auto}.book-now{font-size:18px;width:100%;margin-top:12px;padding:15px}.tiny-bad{font-size:12px;color:var(--bad);font-weight:800}@media(max-width:800px){.span4,.span5,.span6,.span7,.span8{grid-column:span 12}.mini{grid-template-columns:1fr}.topbar{align-items:flex-start}.tag{display:block;margin-left:0;margin-top:2px}.big{font-size:28px}.searchbar{flex-direction:column}.big-buttons button{flex:1}}

/* Patch 003 - Twilio settings helpers */
.form-stack{display:flex;flex-direction:column;gap:12px}
.form-stack label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.form-stack input[type=text], .form-stack input[type=password], .form-stack input:not([type]){padding:12px;border:1px solid #ddd;border-radius:12px;font-size:1rem}
.check{flex-direction:row!important;align-items:center;font-weight:700;background:#fafafa;border:1px solid #eee;padding:10px 12px;border-radius:12px}
.check input{width:auto!important}
code{display:block;background:#111;color:#f6c343;padding:12px;border-radius:12px;overflow:auto}
.small{font-size:.9rem}

/* Patch 007 - Today dashboard + workflow polish */
.span2{grid-column:span 2}.span3{grid-column:span 3}.daily-board{display:flex;flex-direction:column;gap:14px;margin-top:16px}.appt-card{display:grid;grid-template-columns:100px 1fr auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-left:8px solid #cbd5e1;border-radius:18px;padding:16px;box-shadow:0 8px 28px rgba(20,30,60,.06)}.appt-card.status-confirmed{border-left-color:var(--ok)}.appt-card.status-arrived{border-left-color:var(--ok);background:#fbfffc}.appt-card.status-no_show,.appt-card.status-cancelled{border-left-color:var(--bad)}.appt-card.status-scheduled{border-left-color:var(--gold)}.appt-time{font-size:24px;font-weight:900}.appt-main h2{margin:0 0 4px}.appt-main p{margin:0;color:var(--muted)}.appt-actions{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap}.appt-actions form{margin:0}.btn.ok,button.ok{background:var(--ok);color:#fff}.warning-strip{background:#fff4db;border:1px solid #f4d27a;color:#8a5600;border-radius:12px;padding:8px 10px;margin-top:8px;font-weight:800}.activity-item{border-bottom:1px solid var(--line);padding:10px 0}.activity-item:last-child{border-bottom:0}.activity-item span{color:var(--muted)}.activity-item em{font-size:12px;color:var(--muted);font-style:normal}.stats-row{margin-bottom:16px}@media(max-width:800px){.span2,.span3{grid-column:span 6}.appt-card{grid-template-columns:1fr}.appt-time{font-size:28px}.appt-status{justify-self:start}.appt-actions .btn,.appt-actions button{width:100%}.appt-actions form{flex:1 1 160px}}

/* Patch 008 billing polish */
.inline-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.inline-form label{font-weight:700;color:#1f2937}
.inline-form input,.inline-form select{margin-top:4px}
.tiny-input{width:88px!important;padding:6px!important;font-size:13px!important}
textarea{width:100%;min-height:54px;border:1px solid #d1d5db;border-radius:10px;padding:8px;font-family:inherit;resize:vertical}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:12px}
.plan-card{border:1px solid #e5e7eb;border-radius:18px;padding:18px;background:linear-gradient(180deg,#fff,#fafafa);box-shadow:0 8px 22px rgba(0,0,0,.06)}
.plan-card h3{margin:0 0 8px;color:#111827}
.price{font-size:30px;font-weight:900;color:#111827}.price span{font-size:14px;font-weight:700;color:#6b7280}
.btn.small{padding:7px 10px;font-size:13px;border-radius:10px}
