:root{--sage: #5e7f78;--deep: #2f4a45;--copper: #b87c4b;--lime: #e4f77a;--cta: #5e7f78;--cta-h: #2f4a45;--paper: #f8f7f3;--mint: #e8f3ea;--ink: #2f2d29;--muted: #6d685e;--line: #e4e1d9;--bg: #f3f2ee;--red: #b3412f;--amber: #a86a12;--green: #2f7a4a;--radius: 14px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--cta)}h1,h2,h3{margin:0 0 12px;line-height:1.25}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px;margin-top:20px}code{background:var(--mint);padding:1px 6px;border-radius:6px;font-size:13px}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--sage) 40%,transparent);border-color:var(--sage)}textarea{width:100%;resize:vertical}.boot{display:grid;place-items:center;height:100vh;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:999px;padding:9px 18px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;background:none}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--cta);color:#fff}.btn-primary:hover:not(:disabled){background:var(--cta-h)}.btn-green{background:var(--green);color:#fff}.btn-dark{background:var(--deep);color:#fff}.btn-ghost{border-color:var(--line);background:#fff;color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--paper)}.btn-sm{padding:5px 12px;font-size:13px}.btn-block{width:100%}.icon-btn{border:0;background:none;font-size:20px;cursor:pointer;padding:6px 10px;border-radius:8px}.link,.link-strong{background:none;border:0;padding:0;cursor:pointer;color:var(--cta);text-align:left}.link-strong{color:var(--ink);font-weight:600}.link-strong:hover{color:var(--cta);text-decoration:underline}.layout{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--deep);color:#fff;display:flex;flex-direction:column;padding:20px 14px;position:sticky;top:0;height:100vh}.brand{font-family:Georgia,serif;font-size:26px;display:flex;align-items:baseline;gap:6px;margin:0 8px 24px}.brand span{color:var(--lime);font-size:16px}.brand small{font-family:system-ui;font-size:12px;opacity:.7;text-transform:uppercase;letter-spacing:.08em}.sidebar nav{display:grid;gap:2px}.sidebar a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;color:#ffffffd9;text-decoration:none}.sidebar a span{width:20px;text-align:center}.sidebar a:hover{background:#ffffff14}.sidebar a.active{background:var(--lime);color:var(--deep);font-weight:600}.sidebar-foot{margin-top:auto;display:grid;gap:10px}.sidebar-foot a{flex-direction:column;align-items:flex-start;gap:0}.sidebar-foot small{opacity:.7;font-size:12px}.sidebar .btn-ghost{background:transparent;color:#fff;border-color:#ffffff4d}.main{min-width:0}.topbar{display:flex;align-items:center;gap:12px;padding:18px 28px 0}.topbar h1{margin:0}.menu-btn{display:none}.content{padding:18px 28px 48px;display:grid;gap:20px;align-content:start}.scrim{display:none}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;left:0;top:0;width:260px;transform:translate(-100%);transition:transform .2s}.menu-open .sidebar{transform:none}.menu-open .scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:30;border:0}.menu-btn{display:inline-block}.topbar,.content{padding-left:14px;padding-right:14px}}.card{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 1px 2px #0000000a;min-width:0}.card.narrow{max-width:480px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.card-head h2{margin:0}.grid-2{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:start}.grid-sidebar{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:start}@media(max-width:1000px){.grid-2,.grid-sidebar{grid-template-columns:1fr}}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:600px){.row-2,.row-3{grid-template-columns:1fr}}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.stat{background:#fff;border:0;border-radius:var(--radius);padding:16px 18px;text-align:left;cursor:pointer;display:grid;gap:2px;box-shadow:0 1px 2px #0000000a}.stat:hover{box-shadow:0 4px 14px #00000014}.stat-value{font-size:30px;font-weight:700;color:var(--deep)}.stat-label{color:var(--muted);font-size:13px}.stat-amber{background:#fff6e5}.stat-amber .stat-value{color:var(--amber)}@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.filters .grow{flex:1;min-width:200px}.inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}.chip.active{background:var(--deep);color:#fff;border-color:var(--deep)}.table-wrap{overflow-x:auto;margin:0 -20px;padding:0 20px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line)}.table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.table tr.is-muted td{opacity:.55}.table .group-row td{background:var(--paper);font-weight:700;color:var(--deep);padding:6px 10px}.table .actions{text-align:right}.table .actions .btn+.btn{margin-left:6px}.clip{max-width:380px;overflow:hidden;text-overflow:ellipsis}.nowrap{white-space:nowrap}.strong{font-weight:700}.small{font-size:13px}.muted{color:var(--muted)}.center{text-align:center}.note{color:var(--amber)}.tag{display:inline-block;background:var(--mint);color:var(--deep);border-radius:6px;padding:0 6px;font-size:12px;font-weight:600}.pre{white-space:pre-wrap}.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.tone-amber{background:#fff1d6;color:var(--amber)}.tone-blue{background:#e3edff;color:var(--cta)}.tone-green{background:#e1f3e6;color:var(--green)}.tone-red{background:#fbe5e0;color:var(--red)}.tone-grey{background:#eceae4;color:var(--muted)}.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:12px}.empty{padding:32px;text-align:center;color:var(--muted);background:var(--paper);border-radius:10px}.skeleton{height:160px;border-radius:10px;background:linear-gradient(90deg,#f0eee8 25%,#f7f6f2,#f0eee8 75%);background-size:200% 100%;animation:sh 1.2s infinite}@keyframes sh{to{background-position:-200% 0}}.alert{padding:10px 14px;border-radius:10px;margin-bottom:12px;font-size:14px}.alert-error{background:#fbeae6;color:#8a2d1f}.field{display:grid;gap:4px;margin-bottom:12px}.field-label{font-size:13px;font-weight:600}.field input,.field select{width:100%}.field .hint{color:var(--muted);font-size:12px}.field .error{color:var(--red);font-size:12px}.field.has-error input,.field.has-error select{border-color:var(--red)}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.switch input{width:18px;height:18px;accent-color:var(--deep)}.hours{display:grid;gap:8px;margin-bottom:8px}.hours-row{display:grid;grid-template-columns:130px 120px 16px 120px;align-items:center;gap:8px}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:18px}.status-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.list li.is-muted{opacity:.55}.list .actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.list-nav{display:grid;gap:2px;padding:10px}.list-nav button{text-align:left;border:0;background:none;padding:10px 12px;border-radius:10px;cursor:pointer}.list-nav button.active{background:var(--mint);font-weight:700;color:var(--deep)}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1c59;z-index:50;display:flex;justify-content:flex-end}.drawer{width:min(480px,100%);background:#fff;height:100%;overflow-y:auto;box-shadow:-10px 0 30px #0000001a;animation:slide .18s ease}@keyframes slide{0%{transform:translate(30px);opacity:0}}.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}.drawer-head h2{margin:0}.drawer-body{padding:18px 20px 32px}.detail{margin:0 0 8px;display:grid;gap:10px}.detail div{display:grid;grid-template-columns:120px 1fr;gap:8px}.detail dt{color:var(--muted);font-size:13px}.detail dd{margin:0}.auth{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,var(--mint),var(--bg))}.auth-card{background:#fff;width:min(420px,100%);border-radius:20px;padding:32px;box-shadow:0 20px 50px #2f4a451f}.auth-card .brand{color:var(--deep);margin:0 0 18px}.auth-card .brand span{color:var(--copper)}.toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:100}.toast{background:var(--deep);color:#fff;padding:10px 16px;border-radius:10px;box-shadow:0 8px 24px #0000002e;max-width:360px}.toast-error{background:var(--red)}.price-editor .check{display:flex;align-items:center;gap:8px;margin:4px 0 14px}.price-editor .row-actions{display:flex;gap:6px}.price-group{border:1px solid var(--line, #e3e8e6);border-radius:14px;padding:12px;margin:14px 0;min-width:0}.price-group-head{display:flex;gap:6px;align-items:center;margin-bottom:10px}.price-group-title{flex:1;font-weight:700}.price-table input{width:100%;min-width:90px}.price-table td:first-child input{min-width:220px}.price-actions{white-space:nowrap}.price-foot{display:flex;gap:10px;align-items:center;position:sticky;bottom:0;background:#fff;padding:12px 0 4px;border-top:1px solid var(--line, #e3e8e6);margin-top:16px}.price-foot .spacer{flex:1}.price-foot .danger{color:var(--red, #b3261e)}
