:root{--paper:#fbfaf7;--paper-2:#f4f1ea;--ink:#20241f;--ink-2:#3d453a;--muted:#6b7669;--muted-2:#9aa394;--line:#eae7df;--line-2:#ddd8cc;--card:#fff;--plum:#7a2f6e;--plum-dk:#5f2456;--plum-soft:#f6ebf4;--green:#1c5e45;--green-soft:#e4f0ea;--marigold:#e8a33d;--marigold-soft:#fbf1dc;--coral:#d9534f;--coral-soft:#fbe7e6;--shadow-sm:0 1px 2px rgba(30,40,25,.05),0 2px 8px rgba(30,40,25,.04);--shadow:0 4px 14px rgba(30,40,25,.06),0 12px 40px rgba(30,40,25,.05);--shadow-lg:0 10px 30px rgba(30,40,25,.1),0 30px 60px rgba(30,40,25,.08);--r:14px;--r-lg:20px;--r-xl:28px;--sans:"Inter",system-ui,-apple-system,sans-serif;--display:"Plus Jakarta Sans","Inter",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0}a{color:inherit;text-decoration:none}.wrap{max-width:1140px;margin:0 auto;padding:0 22px}.muted{color:var(--muted)}.small{font-size:13px}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:hsla(45,33%,98%,.82);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.nav-in{gap:22px;height:66px}.brand,.nav-in{display:flex;align-items:center}.brand{gap:9px;font-family:var(--display);font-weight:800;font-size:22px;color:var(--plum);letter-spacing:-.03em}.brand-dot{width:11px;height:11px;border-radius:50%;background:linear-gradient(135deg,var(--marigold),var(--plum))}.nav-links{display:flex;gap:6px;margin-left:8px}.nav-links a{padding:8px 13px;border-radius:10px;font-weight:600;font-size:14.5px;color:var(--ink-2);transition:.15s}.nav-links a:hover{background:var(--paper-2);color:var(--plum)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px}@media(max-width:720px){.nav-links{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-family:var(--sans);font-weight:700;font-size:14.5px;padding:12px 20px;border-radius:12px;background:var(--plum);color:#fff;transition:.16s;box-shadow:0 1px 0 rgba(0,0,0,.04)}.btn:hover{background:var(--plum-dk);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(0)}.btn.sec{background:var(--card);color:var(--ink);border:1px solid var(--line-2)}.btn.sec:hover{border-color:var(--plum);color:var(--plum);background:var(--card)}.btn.green{background:#25d366}.btn.green:hover{background:#1eb257}.btn.ghost{background:transparent;color:var(--plum);box-shadow:none}.btn.sm{padding:8px 13px;font-size:13px;border-radius:10px}.btn.lg{padding:15px 26px;font-size:16px;border-radius:14px}.btn.block{width:100%}.tw-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font-weight:700;font-size:14.5px;padding:12px 20px;border-radius:12px;background:var(--plum);color:#fff;transition:.16s}.tw-btn:hover{background:var(--plum-dk)}.tw-btn.secondary{background:var(--card);color:var(--ink);border:1px solid var(--line-2)}.hero{position:relative;overflow:hidden;border-radius:var(--r-xl);margin:26px 0 8px;background:radial-gradient(1200px 400px at 15% -10%,rgba(232,163,61,.2),transparent 60%),radial-gradient(1000px 500px at 100% 0,rgba(122,47,110,.2),transparent 55%),linear-gradient(160deg,#2a1526,#3a1f34 55%,#4a2942);color:#fff;padding:58px 40px 54px}.hero h1{font-size:52px;color:#fff;margin-bottom:12px}.hero p{font-size:18px;color:hsla(0,0%,100%,.86);max-width:560px;margin:0}.hero .btn{margin-top:24px}.hero-search{margin-top:22px;display:flex;gap:8px;align-items:center;background:#fff;border-radius:14px;padding:7px 7px 7px 16px;max-width:520px;box-shadow:var(--shadow)}.hero-search input{flex:1 1;border:0;outline:0;font-size:15px;color:var(--ink);background:none;font-family:var(--sans)}@media(max-width:640px){.hero{padding:40px 22px}.hero h1{font-size:36px}}.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin:36px 0 14px}.sec-h h2{font-size:24px}.sec-h a{font-weight:600;color:var(--plum);font-size:14px}.chips{display:flex;flex-wrap:wrap;gap:9px;margin:6px 0 8px}.chips.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.chips.scroll::-webkit-scrollbar{display:none}.chip{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-weight:600;font-size:14px;padding:9px 15px;border-radius:999px;border:1px solid var(--line-2);background:var(--card);color:var(--ink-2);cursor:pointer;transition:.15s}.chip:hover{border-color:var(--plum);color:var(--plum);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.chip .e{font-size:16px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:20px;gap:20px;margin:14px 0 8px}.rcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:.18s;color:var(--ink)}.rcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:transparent}.rcard-img{height:152px;position:relative;display:grid;place-items:center;color:hsla(0,0%,100%,.92);font-family:var(--display);font-weight:800;font-size:34px}.rcard-img .vbadge{right:12px;background:hsla(0,0%,100%,.92);color:var(--green);font-size:11.5px;display:flex;gap:4px;align-items:center;box-shadow:var(--shadow-sm)}.rcard-img .rank,.rcard-img .vbadge{position:absolute;top:12px;font-weight:800;padding:4px 10px;border-radius:999px}.rcard-img .rank{left:12px;background:rgba(20,25,18,.55);color:#fff;font-size:11px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rcard-b{padding:15px 16px 17px}.rcard-b .nm{font-family:var(--display);font-weight:800;font-size:17px;display:flex;align-items:center;gap:7px;letter-spacing:-.01em}.rcard-b .meta{color:var(--muted);font-size:13.5px;margin-top:3px}.rtags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.rtag{font-size:11.5px;font-weight:600;color:var(--plum);background:var(--plum-soft);padding:3px 9px;border-radius:999px}.score-bar{height:7px;border-radius:5px;background:var(--paper-2);overflow:hidden;margin-top:12px}.score-bar span{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--marigold),var(--green))}.score-lbl{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:6px;font-weight:600}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.res-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.res-row:last-child{border-bottom:0}.empty{padding:34px 20px;text-align:center;color:var(--muted)}.empty .big{font-size:40px;margin-bottom:8px}.badge,.tw-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700}.badge.warn,.tw-badge.pending{background:var(--marigold-soft);color:#9a6a0d}.badge.ok,.tw-badge.confirmed{background:var(--green-soft);color:var(--green)}.tw-badge.completed{background:var(--plum-soft);color:var(--plum)}.badge.bad,.tw-badge.cancelled_by_customer,.tw-badge.cancelled_by_restaurant,.tw-badge.no_show,.tw-badge.rejected{background:var(--coral-soft);color:var(--coral)}.badge.plum{background:var(--plum-soft);color:var(--plum)}.field{margin:10px 0}.field label{display:block;font-size:13px;font-weight:700;color:var(--ink-2);margin-bottom:5px}input,select,textarea{font-family:var(--sans)}.field input,.field select,.field textarea,.inp{width:100%;padding:12px 13px;border:1px solid var(--line-2);border-radius:11px;font-size:14.5px;background:var(--card);color:var(--ink);transition:.15s}.field input:focus,.field select:focus,.inp:focus{outline:0;border-color:var(--plum);box-shadow:0 0 0 3px var(--plum-soft)}.frow{display:flex;gap:11px}.frow>*{flex:1 1}.auth-wrap{min-height:calc(100vh - 66px);display:grid;place-items:center;padding:30px 20px;background:radial-gradient(800px 400px at 50% -10%,var(--plum-soft),transparent 60%)}.auth-card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:30px 28px}.auth-card h1{font-size:26px;margin-bottom:6px}.seg{display:flex;gap:6px;background:var(--paper-2);padding:5px;border-radius:13px;margin:14px 0}.seg button{flex:1 1;border:0;background:none;padding:9px;border-radius:9px;font-weight:700;font-size:14px;color:var(--muted);cursor:pointer;transition:.15s}.seg button.on{background:var(--card);color:var(--plum);box-shadow:var(--shadow-sm)}.score-card{display:flex;gap:22px;align-items:center;flex-wrap:wrap;background:linear-gradient(135deg,var(--plum-soft),var(--marigold-soft));border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}.score-num{font-family:var(--display);font-size:54px;font-weight:800;color:var(--plum);line-height:1}.tasks{flex:1 1;min-width:240px;display:flex;flex-direction:column;gap:8px}.task{display:flex;align-items:center;gap:10px;font-size:14.5px;font-weight:600}.task.done{color:var(--muted);font-weight:500}.tick{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;flex:none}.tick.on{background:var(--green);color:#fff}.tick.off{background:#fff;color:var(--muted-2);border:1.5px solid var(--line-2)}.confirm{max-width:520px;margin:0 auto;text-align:center;padding:20px}.confirm .check{width:74px;height:74px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-size:38px;margin:0 auto 14px}.code-box{border:2px dashed var(--plum);border-radius:16px;padding:16px;margin:18px 0;background:var(--plum-soft)}.code-box .v{font-family:var(--display);font-size:28px;font-weight:800;letter-spacing:.08em;color:var(--plum)}.mood-scrim{position:fixed;inset:0;z-index:200;background:rgba(30,18,28,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px;animation:fade .25s}@keyframes fade{0%{opacity:0}to{opacity:1}}.mood-card{position:relative;background:var(--card);border-radius:var(--r-xl);max-width:500px;width:100%;box-shadow:var(--shadow-lg);overflow:hidden;animation:pop .3s cubic-bezier(.2,.8,.3,1)}@keyframes pop{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}.mood-top{background:linear-gradient(135deg,var(--plum),var(--plum-dk));color:#fff;padding:24px 26px 20px}.mood-top h2{color:#fff;font-size:24px}.mood-top p{margin:6px 0 0;color:hsla(0,0%,100%,.85);font-size:14.5px}.mood-body{padding:20px 24px 22px}.mood-x{position:absolute;top:14px;right:16px;border:0;background:hsla(0,0%,100%,.2);color:#fff;width:30px;height:30px;border-radius:50%;font-size:18px;cursor:pointer;line-height:1}.mood-chips{display:flex;flex-wrap:wrap;gap:8px;max-height:230px;overflow:auto}.mood-actions{display:flex;gap:10px;margin-top:18px}.mood-actions .btn{flex:1 1}.foot{background:#1c2019;color:#c9d2c4;margin-top:60px;padding:44px 0 30px}.foot-in{display:flex;flex-wrap:wrap;gap:36px;justify-content:space-between}.foot .brand{color:#fff}.foot-col h4{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px}.foot-col a{display:block;color:#9fab98;font-size:14px;padding:5px 0}.foot-col a:hover{color:#fff}.foot-base{border-top:1px solid hsla(0,0%,100%,.1);margin-top:30px;padding-top:20px;font-size:13px;color:#8b978a}.page{padding:8px 0 20px}.page h1{font-size:30px;margin-bottom:4px}