:root{--ink:#2c2824;--ink-2:#5c564e;--ink-3:#8a8378;--line:rgba(44,40,36,0.08);--line-strong:rgba(44,40,36,0.14);--surface:#ffffff;--canvas:#ffffff;--accent:#0f766e;--accent-dark:#0d5f59;--accent-soft:#e7f4f2;--ok:#0f766e;--ok-soft:#e7f4f2;--warn:#9a6b3f;--warn-soft:#f5ebe0;--danger:#b42318;--danger-soft:#fceceb;--teal:var(--ok);--orange:var(--warn);--orange-dark:var(--warn);--orange-soft:var(--warn-soft);--radius:10px;--radius-sm:8px;--shadow:0 1px 2px rgba(44,40,36,0.04),0 0 0 1px var(--line-strong);--sidebar-w:168px;--sidebar:#2c2824}*,:after,:before{box-sizing:border-box}body,html{margin:0;min-height:100%}body{font-family:var(--font-body),"Noto Sans SC",sans-serif;color:var(--ink);background:var(--canvas);line-height:1.5;font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:0 12px;border-radius:8px;border:none;font-size:13px;font-weight:600;letter-spacing:0;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}.btn-ghost:hover:not(:disabled){background:rgba(44,40,36,.04)}.btn-danger{background:transparent;color:var(--danger);border:1px solid rgba(180,35,24,.28)}.btn-block{width:100%}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-booked{background:#f1f0ec;color:var(--ink-2)}.badge-queued{background:var(--ok-soft);color:var(--ok)}.badge-serving{background:var(--warn-soft);color:var(--warn)}.badge-cancelled,.badge-completed,.badge-invalid,.badge-skipped{background:#f1f0ec;color:var(--ink-3)}.field{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px}.field label{font-size:12px;font-weight:600;color:var(--ink-2)}.field input,.field select,.field textarea{min-height:34px;padding:0 10px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:#fff;font:inherit;font-size:13px;color:inherit;width:100%}.field textarea{min-height:72px;padding:8px 10px;resize:vertical;line-height:1.5}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,118,110,.12)}.field input[readonly]{background:#f5f5f4;color:var(--ink-2)}