:root{
  --bg:#f6f4ef;--surface:#ffffff;--surface-2:#f0ede6;--ink:#17161b;--ink-2:#3a3942;
  --muted:#75727b;--line:#e4e0d7;--line-2:#d8d4ca;--accent:#ff5b3a;
  --green:#1f9d55;--red:#d64545;--blue:#2f6bd6;
  --shadow-sm:0 1px 2px rgba(20,18,22,.05);--shadow:0 10px 30px -12px rgba(20,18,22,.16);
  --radius:14px;--radius-sm:10px;
  --disp:"Space Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}


.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-box{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:38px;box-shadow:var(--shadow)}
.login-box .logo{width:50px;height:50px;border-radius:12px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-size:24px;font-weight:700;margin:0 auto 18px}
.login-box h1{font-family:var(--disp);text-align:center;font-size:26px;margin:0 0 6px;font-weight:700;letter-spacing:-.4px}
.login-box .sub{text-align:center;color:var(--muted);font-size:14px;margin-bottom:24px}


.admin{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.sidebar{background:var(--surface);border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}
.sidebar .brand{display:flex;align-items:center;gap:11px;padding:0 8px 20px;border-bottom:1px solid var(--line);margin-bottom:14px}
.sidebar .brand .mark{width:36px;height:36px;border-radius:9px;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-size:17px;font-weight:700}
.sidebar .brand b{font-family:var(--disp);font-size:19px;font-weight:700;letter-spacing:-.4px}
.sidebar .brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:1.5px;text-transform:uppercase}
.menu{display:flex;flex-direction:column;gap:3px;flex:1}
.menu a{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:var(--radius-sm);color:var(--ink-2);font-size:14.5px;font-weight:500;transition:all .13s}
.menu a:hover{background:var(--surface-2)}
.menu a.active{background:var(--ink);color:#fff}
.menu a .ico{width:18px;text-align:center}
.sidebar .foot{border-top:1px solid var(--line);padding-top:12px}
.sidebar .foot a{display:block;padding:10px 13px;color:var(--muted);font-size:14px;border-radius:var(--radius-sm)}
.sidebar .foot a:hover{color:var(--red);background:var(--surface-2)}

.main{padding:32px 40px 60px;max-width:1080px}
.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:16px;flex-wrap:wrap}
.page-title h1{font-family:var(--disp);font-size:30px;margin:0;font-weight:700;letter-spacing:-.6px}
.page-title .sub{color:var(--muted);font-size:14px;margin-top:3px}


.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);font-weight:600;font-size:14px;cursor:pointer;border:1.5px solid transparent;transition:all .15s;font-family:inherit}
.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{background:#000}
.btn-accent{background:var(--accent);color:#fff}
.btn-outline{background:transparent;border-color:var(--line-2);color:var(--ink)}.btn-outline:hover{border-color:var(--ink)}
.btn-danger{background:transparent;border-color:rgba(214,69,69,.35);color:var(--red)}.btn-danger:hover{background:rgba(214,69,69,.08)}
.btn-sm{padding:7px 12px;font-size:13px}
.btn-block{width:100%;justify-content:center}


.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}
.stat .k{color:var(--muted);font-size:12px;letter-spacing:.5px;text-transform:uppercase;font-weight:600}
.stat .v{font-family:var(--disp);font-size:32px;margin-top:8px;line-height:1;font-weight:700}
.stat .v.accent{color:var(--accent)}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}
.card h2{font-family:var(--disp);font-size:21px;margin:0 0 16px;font-weight:700;letter-spacing:-.3px}
.card h2.small{font-size:18px}


table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--muted);font-size:12px;letter-spacing:.4px;text-transform:uppercase;padding:11px 13px;border-bottom:1px solid var(--line);font-weight:600}
td{padding:13px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--surface-2)}
.thumb{width:64px;height:42px;border-radius:8px;object-fit:cover;border:1px solid var(--line)}
.tag{display:inline-block;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600}
.tag.on{background:#e3f6ea;color:var(--green)}
.tag.off{background:var(--surface-2);color:var(--muted)}
.tag.pending{background:#e6effc;color:var(--blue)}
.tag.processing{background:#fff1e6;color:#b5600f}
.tag.paid{background:#e3f6ea;color:var(--green)}
.tag.cancelled{background:#fbe6e6;color:var(--red)}
.tag.cat{background:var(--surface-2);color:var(--ink-2)}


.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{margin-bottom:16px}
.field.full{grid-column:1/-1}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.field .hint{color:var(--muted);font-size:12px;margin-top:6px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],select,textarea{
  width:100%;background:var(--surface);border:1px solid var(--line-2);color:var(--ink);border-radius:10px;padding:11px 13px;font-size:14.5px;font-family:inherit;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(23,22,27,.07)}
textarea{resize:vertical;min-height:88px;line-height:1.5}
.switch{display:flex;align-items:center;gap:11px}
.switch input{width:19px;height:19px;accent-color:var(--ink)}
.form-actions{display:flex;gap:12px;margin-top:6px}
.flash{background:#e3f6ea;border:1px solid #b6e6c6;color:var(--green);padding:11px 15px;border-radius:var(--radius-sm);margin-bottom:18px;font-size:14px}
.flash.err{background:#fbe6e6;border-color:#f0bcbc;color:var(--red)}

.mode-select{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:6px}
.mode-opt{position:relative}
.mode-opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.mode-opt .box{border:1.5px solid var(--line-2);border-radius:var(--radius-sm);padding:17px;cursor:pointer;transition:all .15s}
.mode-opt .box b{font-size:15px}
.mode-opt .box p{color:var(--muted);font-size:13px;margin:6px 0 0}
.mode-opt input:checked + .box{border-color:var(--ink);background:var(--surface-2)}

.empty{text-align:center;padding:46px;color:var(--muted)}
.img-preview{width:120px;height:80px;border-radius:10px;object-fit:cover;border:1px solid var(--line);margin-top:10px;background:var(--surface-2)}

@media(max-width:820px){
  .admin{grid-template-columns:1fr}
  .sidebar{position:static;height:auto}
  .stat-grid{grid-template-columns:1fr 1fr}
  .form-grid{grid-template-columns:1fr}
  .main{padding:22px}
}
