:root{
  --bg:#f4f6f8;
  --surface:#ffffff;
  --surface-2:#fbfcfd;
  --line:#dde3e8;
  --text:#0f1720;
  --muted:#647284;
  --blue:#0f5bd8;
  --blue-soft:#eaf2ff;
  --green:#0f8a4b;
  --green-soft:#ebfbf1;
  --amber:#b86a00;
  --amber-soft:#fff5e7;
  --red:#b73535;
  --red-soft:#ffefef;
  --shadow:0 14px 34px rgba(15, 23, 32, .06);
  --radius:20px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
body{min-height:100vh}
.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{background:#0f1720;color:#d8e0e8;padding:24px 18px;display:flex;flex-direction:column;gap:20px;border-right:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:14px;padding:6px 6px 2px}
.brand-mark{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#1e6cff,#60a5fa);display:grid;place-items:center;color:#fff;font-weight:800;font-size:1.15rem;box-shadow:0 10px 24px rgba(30,108,255,.35)}
.brand-name{font-size:1rem;font-weight:800;color:#fff}
.brand-sub{font-size:.82rem;color:#90a0af}
.role-chip{display:inline-flex;align-self:flex-start;padding:8px 12px;border-radius:999px;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.role-chef{background:rgba(255,255,255,.09);color:#fff}
.role-controller{background:rgba(96,165,250,.16);color:#bfdbfe}
.role-worker{background:rgba(16,185,129,.14);color:#bbf7d0}
.nav-list{display:flex;flex-direction:column;gap:6px}
.nav-item{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;color:#c8d2db;font-weight:600}
.nav-item:hover,.nav-item.is-active{background:rgba(255,255,255,.08);color:#fff}
.sidebar-note{margin-top:auto;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:16px;color:#9fafbd;font-size:.84rem;line-height:1.45;background:rgba(255,255,255,.03)}
.main{padding:28px 28px 34px}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
h1{margin:0;font-size:2rem;line-height:1.05;letter-spacing:-.03em}
.subtitle{margin:10px 0 0;color:var(--muted);max-width:760px;line-height:1.55}
.ghost-btn,.primary-btn,.secondary-btn,.danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:44px;padding:0 18px;border-radius:999px;font-weight:700;border:1px solid transparent;cursor:pointer}
.ghost-btn,.secondary-btn{background:var(--surface);border-color:var(--line);color:var(--text)}
.primary-btn{background:var(--blue);color:#fff;box-shadow:0 12px 26px rgba(15,91,216,.22)}
.danger-btn{background:#fff;border-color:#f2c1c1;color:var(--red)}
.grid{display:grid;gap:18px}
.grid.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric-card,.surface-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.metric-card{padding:20px 22px;display:flex;flex-direction:column;gap:12px}
.metric-label{font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.metric-value{font-size:1.8rem;font-weight:800;letter-spacing:-.03em}
.metric-detail{color:var(--muted);font-size:.92rem}
.tone-blue{background:linear-gradient(180deg,#fff,#f8fbff)}
.tone-green{background:linear-gradient(180deg,#fff,#f7fdf9)}
.tone-amber{background:linear-gradient(180deg,#fff,#fffaf2)}
.tone-slate{background:linear-gradient(180deg,#fff,#fbfcfd)}
.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-top:18px}
.surface-card{padding:22px}
.card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:18px}
.card-title{margin:0;font-size:1.1rem;font-weight:800;letter-spacing:-.02em}
.card-sub{margin:6px 0 0;color:var(--muted);font-size:.93rem}
.badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:.78rem;font-weight:700}
.badge.blue{background:var(--blue-soft);color:var(--blue)}
.badge.green{background:var(--green-soft);color:var(--green)}
.badge.amber{background:var(--amber-soft);color:var(--amber)}
.badge.red{background:var(--red-soft);color:var(--red)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:14px 16px;text-align:left;border-bottom:1px solid #edf1f4;font-size:.94rem}
th{font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#fbfcfd;position:sticky;top:0}
tr:hover td{background:#fcfdfe}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.inline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{width:100%;height:48px;border:1px solid var(--line);border-radius:14px;padding:0 14px;background:#fff;font:inherit;color:var(--text)}
.field textarea{height:120px;padding:14px;resize:vertical}
.form-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
.list{display:flex;flex-direction:column;gap:12px}
.list-item{display:flex;justify-content:space-between;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.list-meta{font-size:.9rem;color:var(--muted);margin-top:6px}
.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.kv div{padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.kv strong{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:stretch;padding:22px;background:linear-gradient(180deg,#ffffff,#f7faff);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.hero h2{font-size:2.4rem;line-height:1;letter-spacing:-.05em;margin:0 0 14px}
.hero p{font-size:1rem;color:var(--muted);line-height:1.65;max-width:680px}
.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.role-card{padding:22px;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.role-card h3{margin:0 0 12px;font-size:1.14rem}
.role-card ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.7}
.muted{color:var(--muted)}
.notice{padding:16px 18px;border:1px solid #cddff9;background:var(--blue-soft);color:#1d4ed8;border-radius:18px}
.footer-note{margin-top:22px;color:var(--muted);font-size:.9rem}
.login-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}
.demo-login{padding:20px;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.demo-login h3{margin:0 0 12px}
@media (max-width:1100px){.grid.metrics,.role-grid,.login-grid,.inline-grid,.kv{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col,.hero{grid-template-columns:1fr}}
@media (max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main{padding:18px}.grid.metrics,.role-grid,.login-grid,.inline-grid,.kv{grid-template-columns:1fr}h1{font-size:1.6rem}.hero h2{font-size:1.85rem}}
