*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#202020;background:#fff}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px 5%;background:#fff;border-bottom:1px solid #eee}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:.8px}
.brand-logo{width:46px;height:38px;object-fit:contain;flex:0 0 auto}
.brand-text{white-space:nowrap}.brand-text strong{color:#9b1d20}
.topbar nav{display:flex;gap:18px;align-items:center}
.pill,.btn{display:inline-flex;align-items:center;justify-content:center;background:#9b1d20;color:#fff;border:0;border-radius:10px;padding:11px 17px;font-weight:700;cursor:pointer}
.btn.secondary{background:#222}
.nav-toggle{display:none;background:none;border:0;font-size:25px}.mobile-logout{display:none}
.hero{min-height:70vh;display:grid;place-items:center;text-align:center;color:#fff;background:linear-gradient(#0008,#0008),var(--hero) center/cover}
.hero-content{width:min(920px,90%)}
.hero h1{font-size:clamp(42px,8vw,92px);margin:0}
.hero p{font-size:20px;margin:14px 0 22px}
.section{padding:29px 6%;max-width:1200px;margin:auto}
.section h2{font-size:34px;margin:0 0 18px}
.muted{color:#666}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.mobile-label{display:none}
.carousel{display:flex;gap:16px;overflow:auto;scroll-snap-type:x mandatory;padding:2px 0 10px;scrollbar-width:thin}
.carousel>*{scroll-snap-align:start;flex:0 0 min(82vw,380px)}
.gallery-strip{max-width:1200px;margin:auto;padding:20px 6% 8px}
.gallery-carousel{gap:12px}
.gallery-card{position:relative;margin:0;overflow:hidden;border-radius:18px;background:#f4f4f4;box-shadow:0 10px 30px #00000012}
.gallery-card img{width:100%;height:300px;object-fit:cover}
.gallery-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 14px;color:#fff;font-weight:700;background:linear-gradient(transparent,#000b)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:#fff;border:1px solid #e8e8e8;border-radius:14px;padding:20px;box-shadow:0 8px 24px #0000000a}
.menu-card{display:flex;align-items:center;justify-content:space-between;gap:18px}
.menu-card h3{margin:0}
.empty-state{min-height:180px;display:grid;place-items:center}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.contact-panel{display:flex;flex-direction:column;justify-content:center;border:1px solid #e8e8e8;border-radius:18px;padding:22px;box-shadow:0 8px 24px #0000000a}
.contact-icons{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.contact-icon{min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;border:1px solid #ececec;border-radius:16px;background:#fff;font-size:13px;font-weight:700;transition:.2s ease}
.contact-icon:hover{transform:translateY(-2px);box-shadow:0 10px 22px #00000010;border-color:#d8d8d8}
.contact-icon svg{width:28px;height:28px;fill:#9b1d20}
.feedback-link{display:block;margin-top:16px;padding:13px;text-align:center;border-radius:12px;background:#202020;color:#fff;font-weight:700}
.map{width:100%;min-height:350px;border:0;border-radius:18px}
.form{max-width:620px;margin:28px auto;padding:24px;border:1px solid #e5e5e5;border-radius:14px}
.field{margin-bottom:15px}.field label{display:block;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px;border:1px solid #ccc;border-radius:8px}.field textarea{min-height:120px}
.flash{margin:15px auto;max-width:900px;padding:13px;border-radius:8px}.success{background:#e8f7ec}.error{background:#fdeaea}
.dashboard{display:grid;grid-template-columns:230px 1fr;min-height:70vh}.sidebar{background:#202020;color:#fff;padding:25px}.sidebar a{display:block;padding:11px 0;border-bottom:1px solid #ffffff1c}.sidebar a.active{color:#fff;font-weight:800}.content{padding:30px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.stat{padding:20px;border-radius:12px;background:#f6f6f6}.stat b{display:block;font-size:28px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:11px;border-bottom:1px solid #ddd;text-align:left;vertical-align:top}.badge{padding:5px 9px;border-radius:20px;background:#eee;font-size:12px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.danger{background:#8b0000}
footer{text-align:center;padding:30px 20px;background:#171717;color:#fff}footer a{color:#fff;text-decoration:underline}
@media(max-width:760px){
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent}
  .topbar{justify-content:center;padding:12px 70px 12px 16px;min-height:56px}
  .brand{justify-content:center;font-size:13px;gap:7px;text-align:center}
  .brand-logo{width:38px;height:32px}
  .nav-toggle,.topbar nav{display:none}
  .mobile-logout{position:absolute;right:max(14px,env(safe-area-inset-right));top:50%;display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 11px;transform:translateY(-50%);border-radius:10px;background:#9b1d20;color:#fff;font-size:12px;font-weight:800}
  .grid,.contact-grid,.stats{grid-template-columns:1fr}
  .dashboard{display:block;min-height:calc(100vh - 140px)}
  .sidebar{position:fixed;z-index:120;left:0;right:0;bottom:0;display:flex;align-items:stretch;gap:5px;height:calc(72px + env(safe-area-inset-bottom));overflow-x:auto;overflow-y:hidden;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#202020;border-top:1px solid #ffffff1f;box-shadow:0 -10px 30px #00000024;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .sidebar::-webkit-scrollbar{display:none}
  .sidebar a{display:flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:90px;min-height:52px;padding:8px 12px;white-space:nowrap;border:0;border-radius:11px;color:#eee;font-size:12px;font-weight:700}
  .sidebar a.active{background:#ffffff18;color:#fff}
  .sidebar .danger-link{margin-top:0;padding:8px 12px;border:0;color:#ffb4b4}
  .sidebar .logout-link{position:sticky;right:0;z-index:2;min-width:82px;background:#9b1d20;color:#fff;box-shadow:-12px 0 18px #202020}
  .content{padding:18px 18px 28px}
  .hero{min-height:58vh;align-items:end;padding:48px 18px 34px}
  .hero h1{font-size:clamp(38px,13vw,62px);line-height:.98}
  .hero p{font-size:17px;margin:12px 0 0}
  .section{padding:22px 5%}
  .section h2{font-size:28px;margin-bottom:14px}
  .gallery-strip{padding:12px 0 5px}
  .gallery-carousel>*{flex-basis:86vw}
  .gallery-card img{height:260px}
  .carousel>*{flex-basis:86vw}
  .menu-card{align-items:flex-start;flex-direction:column}
  .contact-icons{grid-template-columns:repeat(3,1fr);gap:9px}
  .contact-panel{padding:14px}
  .contact-icon{min-height:84px;border-radius:14px;font-size:12px}
  .contact-icon svg{width:25px;height:25px}
  .map{min-height:280px}
  .desktop-label{display:none}
  .mobile-label{display:inline}
  .app-actions{position:fixed;z-index:100;left:0;right:0;bottom:0;display:flex;justify-content:flex-start;flex-wrap:nowrap;gap:10px;overflow-x:auto;padding:10px max(14px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e5e5e5;box-shadow:0 -10px 30px #00000016;scroll-snap-type:x proximity}
  .app-actions .btn{flex:0 0 auto;min-width:112px;height:50px;border-radius:14px;scroll-snap-align:start;box-shadow:0 6px 14px #00000014}
  footer{padding:24px 18px}
}

/* Voucher system */
.voucher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.voucher-card{background:#fff;border:1px solid #e7e7e7;border-radius:18px;overflow:hidden;box-shadow:0 12px 32px #0000000b}
.voucher-brand{display:flex;align-items:center;padding:14px 20px 8px;border-bottom:1px solid #f0f0f0;background:#fff}
.voucher-brand img{display:block;width:118px;height:62px;object-fit:contain;object-position:left center}
.voucher-main{display:flex;justify-content:space-between;gap:20px;padding:24px}
.voucher-kicker{display:block;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#9b1d20}
.voucher-card h2{margin:7px 0 8px}.voucher-number{font-size:18px;font-weight:900;letter-spacing:1px}
.voucher-qr{min-width:142px;text-align:center}.voucher-qr small{display:block;margin-top:7px;color:#666}
.qr-code{display:inline-block;padding:5px;background:#fff;border-radius:8px}.qr-code img,.qr-code canvas{display:block!important}
.qr-code-small{min-width:82px}.voucher-terms{margin:0;padding:13px 20px;background:#f6f6f6;border-top:1px dashed #d9d9d9;color:#666;font-size:10px;line-height:1.45}
.verify-section{min-height:65vh;display:grid;place-items:center}.verify-card{width:min(520px,92%);padding:34px;text-align:center;background:#fff;border:1px solid #e6e6e6;border-radius:20px;box-shadow:0 14px 40px #0000000d}
.verify-icon{width:72px;height:72px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;font-size:38px;font-weight:900}.verify-icon.valid{background:#e7f7ed;color:#17733b}.verify-icon.invalid{background:#fdeaea;color:#a01919}
textarea{width:100%;font:inherit;padding:12px;border:1px solid #ccc;border-radius:9px;resize:vertical}
@media(max-width:600px){.voucher-brand{justify-content:center;padding:10px 16px 4px}.voucher-brand img{width:104px;height:54px}.voucher-main{flex-direction:column}.voucher-qr{text-align:left}.voucher-terms{font-size:9px}}
.qr-image{display:inline-block;width:132px;height:132px;padding:5px;background:#fff;border-radius:8px;object-fit:contain}.qr-image-small{width:78px;height:78px}

.search-bar{display:flex;gap:10px;align-items:center;margin:18px 0}.search-bar input{flex:1;min-width:220px;padding:12px;border:1px solid #ccc;border-radius:10px}.verify-card form{margin:22px 0}.verify-card .btn{min-width:180px}
@media(max-width:600px){.search-bar{align-items:stretch;flex-direction:column}.search-bar input{min-width:0;width:100%}}

/* Manager voucher scanning workflow */
.voucher-workflow{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:18px 0}.voucher-workflow h2{margin:0 0 7px}.voucher-workflow p{margin:0;color:#666;max-width:720px}.scan-card{max-width:680px}.scan-copy h2{margin-top:0}.scanner-frame{position:relative;overflow:hidden;border-radius:18px;background:#111;aspect-ratio:4/3;margin:18px 0}.scanner-frame video{width:100%;height:100%;object-fit:cover}.scanner-guide{position:absolute;inset:15%;border:3px solid #fff;border-radius:20px;box-shadow:0 0 0 999px #0006}.scan-actions{display:flex;gap:10px}.verify-actions{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:24px}
@media(max-width:760px){.voucher-workflow{align-items:stretch;flex-direction:column}.voucher-workflow .btn{width:100%}.scanner-frame{aspect-ratio:3/4}}


/* Feedback service workspace */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.feedback-ops{min-width:0;background:#f4f5f7}
.feedback-command-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:16px;padding:25px 28px;border-radius:20px;background:linear-gradient(135deg,#211f20,#48282b);color:#fff;box-shadow:0 18px 44px #00000017}
.feedback-command-head .eyebrow{display:block;margin-bottom:7px;color:#efbdbe;font-size:11px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase}
.feedback-command-head h1{margin:0 0 6px;font-size:clamp(30px,4vw,44px)}
.feedback-command-head p{max-width:720px;margin:0;color:#ffffffbd;line-height:1.5}
.feedback-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.feedback-export,.feedback-total{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid #ffffff2b;border-radius:12px;background:#ffffff10;font-size:13px;font-weight:800}
.feedback-export:hover{background:#ffffff1c}.feedback-total{gap:6px}.feedback-total strong{font-size:22px}
.feedback-kpis{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.feedback-kpi{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:15px 16px;border:1px solid #e1e3e7;border-radius:14px;background:#fff;box-shadow:0 6px 20px #00000008;transition:.18s ease}
.feedback-kpi:hover{transform:translateY(-1px);border-color:#cfd1d6}.feedback-kpi.active{border-color:#9b1d20;box-shadow:0 0 0 2px #9b1d2014}.feedback-kpi.is-alert strong{color:#a32222}
.feedback-kpi span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5f6269;font-size:12px;font-weight:800}.feedback-kpi strong{font-size:24px}
.feedback-queue-tabs{display:flex;align-items:center;gap:7px;margin:-2px 0 12px;overflow-x:auto;scrollbar-width:none}.feedback-queue-tabs::-webkit-scrollbar{display:none}.feedback-queue-tabs a{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:8px 11px;border:1px solid #dfe1e5;border-radius:999px;background:#fff;color:#555b62;font-size:11px;font-weight:900}.feedback-queue-tabs a.active{border-color:#202020;background:#202020;color:#fff}.feedback-queue-tabs span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#f0f1f3;color:#333;font-size:9px}.feedback-queue-tabs a.active span{background:#ffffff20;color:#fff}
.feedback-toolbar{margin-bottom:14px;padding:14px;border:1px solid #e1e3e7;border-radius:16px;background:#fff;box-shadow:0 8px 24px #00000008}
.feedback-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px}
.feedback-search input{width:100%;min-height:45px;padding:11px 14px;border:1px solid #cfd2d7;border-radius:11px;background:#fafafa}.feedback-search button{min-width:104px;border:0;border-radius:11px;background:#202020;color:#fff;font-weight:800;cursor:pointer}
.feedback-filter-drawer{margin-top:10px;border-top:1px solid #ededee}.feedback-filter-drawer summary{display:flex;align-items:center;gap:7px;width:max-content;padding-top:12px;cursor:pointer;font-size:13px;font-weight:900;list-style:none}.feedback-filter-drawer summary::-webkit-details-marker{display:none}.feedback-filter-drawer summary span{display:grid;place-items:center;min-width:21px;height:21px;border-radius:999px;background:#9b1d20;color:#fff;font-size:10px}
.feedback-filter-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-top:13px}.feedback-filter-grid label{color:#5f6269;font-size:11px;font-weight:900;text-transform:uppercase}.feedback-filter-grid select,.feedback-filter-grid input{width:100%;min-height:42px;margin-top:5px;padding:9px 10px;border:1px solid #ced1d6;border-radius:9px;background:#fff;color:#202020;font-size:13px;text-transform:none}
.feedback-filter-actions{display:flex;align-items:center;gap:15px;margin-top:13px}.feedback-filter-actions .btn{min-height:40px;padding:9px 15px}.feedback-filter-actions a{color:#8f1d20;font-size:13px;font-weight:800}
.feedback-workspace{scroll-margin-top:78px;display:grid;grid-template-columns:minmax(330px,.82fr) minmax(0,1.65fr);gap:14px;align-items:start}
.feedback-inbox-pane,.feedback-detail-pane{border:1px solid #e0e2e6;border-radius:18px;background:#fff;box-shadow:0 12px 32px #00000009}
.feedback-inbox-pane{position:sticky;top:82px;overflow:hidden}.feedback-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #ececef}.feedback-list-head div{font-size:13px}.feedback-list-head span{padding:5px 8px;border-radius:999px;background:#f0f2f5;color:#5c6168;font-size:10px;font-weight:900;text-transform:uppercase}
.feedback-inbox-list{max-height:calc(100vh - 318px);overflow:auto;overscroll-behavior:contain}.feedback-inbox-row{display:block;padding:15px 16px;border-bottom:1px solid #ededee;transition:.16s ease}.feedback-inbox-row:last-child{border-bottom:0}.feedback-inbox-row:hover{background:#fafafa}.feedback-inbox-row.active{position:relative;background:#fff7f7}.feedback-inbox-row.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#9b1d20}.feedback-inbox-row.is-overdue:not(.active){background:#fffafa}
.feedback-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.feedback-reference{color:#9b1d20;font-size:10px;font-weight:900;letter-spacing:.8px;text-transform:uppercase}.feedback-row-top time{color:#777b82;font-size:11px;white-space:nowrap}
.feedback-inbox-row h2{margin:0 0 4px;font-size:15px}.feedback-row-subject{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.feedback-inbox-row p{display:-webkit-box;overflow:hidden;margin:6px 0 10px;color:#666b72;font-size:12px;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.feedback-row-meta{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.status-badge,.priority-badge,.feedback-overdue{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:900;letter-spacing:.15px;white-space:nowrap}
.status-badge.is-new{background:#eef1f5;color:#445064}.status-badge.is-progress{background:#fff3d9;color:#805700}.status-badge.is-waiting{background:#e9f2ff;color:#17589b}.status-badge.is-escalated{background:#fde8e8;color:#9d1e24}.status-badge.is-resolved{background:#e5f7eb;color:#1f713b}
.priority-badge.is-urgent{background:#9b1d20;color:#fff}.priority-badge.is-high{background:#fde9d7;color:#954400}.priority-badge.is-normal{background:#f0f1f3;color:#555c64}.priority-badge.is-low{background:#edf4ee;color:#426148}.feedback-overdue{background:#fff0f0;color:#a32222;border:1px solid #efc5c5}
.feedback-owner{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#62676e;font-size:10px;font-weight:800}.feedback-owner:before{content:"•";margin-right:5px;color:#bbb}
.feedback-inbox-empty,.feedback-detail-empty{display:grid;place-items:center;align-content:center;min-height:260px;padding:28px;text-align:center}.feedback-inbox-empty p,.feedback-detail-empty p{max-width:390px;margin:7px 0 0;color:#6b7076}
.feedback-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;border-top:1px solid #ececef;font-size:12px}.feedback-pagination a{font-weight:900;color:#9b1d20}
.feedback-detail-pane{min-width:0;overflow:hidden}.feedback-mobile-back{display:none}.feedback-detail-head{padding:20px 22px;border-bottom:1px solid #ececef}.feedback-detail-head h2{margin:9px 0 6px;font-size:24px;line-height:1.2}.feedback-detail-head p{margin:0;color:#686d74;font-size:12px}.feedback-detail-labels{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.feedback-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(225px,.65fr);gap:0}.feedback-detail-main{min-width:0;border-right:1px solid #ececef}.feedback-message-panel{padding:20px 22px}.feedback-message-panel>span,.feedback-section-title>div>span,.feedback-side-kicker{display:block;color:#73777e;font-size:10px;font-weight:900;letter-spacing:.9px;text-transform:uppercase}.feedback-message-panel blockquote{margin:8px 0 0;padding:17px 18px;border-left:4px solid #9b1d20;border-radius:0 12px 12px 0;background:#faf7f7;color:#272727;font-size:16px;line-height:1.65}
.feedback-service-form,.feedback-timeline-section{padding:20px 22px;border-top:1px solid #ececef}.feedback-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.feedback-section-title h3{margin:4px 0 0;font-size:18px}.feedback-section-title small,.feedback-section-title>strong{color:#72777d;font-size:11px;font-weight:700}
.feedback-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.feedback-service-grid label,.feedback-note-sections label{color:#41464c;font-size:12px;font-weight:900}.feedback-service-grid select,.feedback-service-grid input,.feedback-note-sections textarea{width:100%;margin-top:6px;padding:10px 11px;border:1px solid #ccd0d5;border-radius:9px;background:#fff;color:#222;font-size:13px;font-weight:400}.feedback-service-grid select,.feedback-service-grid input{min-height:42px}.feedback-contact-check{display:flex!important;align-items:center;gap:9px;align-self:end;min-height:42px;margin-top:18px;padding:9px 11px;border:1px solid #d9dcdf;border-radius:9px;background:#fafafa}.feedback-contact-check input{width:17px!important;min-height:17px!important;margin:0!important}.feedback-contact-check span{font-size:12px}
.feedback-note-sections{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.feedback-note-sections textarea{min-height:105px;resize:vertical}.feedback-note-sections small{display:block;margin-top:5px;color:#747980;font-size:10px;font-weight:400;line-height:1.4}.feedback-save{margin-top:15px;min-width:190px}
.feedback-customer-panel{min-width:0;padding:14px;background:#fafafa}.feedback-side-card{padding:15px;border:1px solid #e2e4e7;border-radius:13px;background:#fff}.feedback-side-card+.feedback-side-card{margin-top:11px}.feedback-side-card h3{margin:5px 0 9px;font-size:16px}.feedback-side-card>a{display:block;overflow:hidden;margin-top:6px;text-overflow:ellipsis;color:#9b1d20;font-size:11px;font-weight:800;white-space:nowrap}
.service-clock div{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #eee}.service-clock div:last-child{border-bottom:0;padding-bottom:0}.service-clock div>span{color:#747980;font-size:10px}.service-clock div>strong{text-align:right;font-size:11px}.service-clock.is-overdue{border-color:#e7bcbc;background:#fff8f8}.service-clock.is-overdue .feedback-side-kicker{color:#9b1d20}
.customer-history-total{display:flex;align-items:baseline;gap:7px;margin:9px 0 11px}.customer-history-total strong{font-size:27px}.customer-history-total span{color:#70757b;font-size:10px}.customer-history-stats{display:grid;grid-template-columns:1fr;gap:6px;padding:10px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.customer-history-stats span{display:flex;justify-content:space-between;color:#696e75;font-size:10px}.customer-history-stats b{color:#222}
.customer-previous-list{margin-top:8px}.customer-previous-list a{display:block;padding:9px 0;border-bottom:1px solid #eee}.customer-previous-list a:last-child{border-bottom:0;padding-bottom:0}.customer-previous-list span{display:block;color:#747980;font-size:9px}.customer-previous-list strong{display:block;overflow:hidden;margin-top:3px;text-overflow:ellipsis;font-size:11px;white-space:nowrap}
.history-timeline{position:relative}.history-item{position:relative;display:grid;grid-template-columns:16px 1fr;gap:10px;padding-bottom:17px}.history-item:not(:last-child):before{content:"";position:absolute;left:5px;top:13px;bottom:0;width:2px;background:#e5e6e8}.history-dot{position:relative;z-index:1;width:11px;height:11px;margin-top:3px;border:3px solid #fff;border-radius:50%;background:#9b1d20;box-shadow:0 0 0 2px #e7c8c9}.history-item.is-created .history-dot{background:#72777d;box-shadow:0 0 0 2px #dfe1e3}.history-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.history-title strong{font-size:12px}.history-title time{color:#777c82;font-size:10px;white-space:nowrap}.history-item p{margin:3px 0;color:#666c73;font-size:10px}.history-item blockquote{margin:7px 0 0;padding:9px 11px;border-left:3px solid #9b1d20;border-radius:0 7px 7px 0;background:#f7f7f8;color:#444;font-size:11px;line-height:1.5}
.feedback-mobile-actions{display:none}
@media(max-width:1450px){.feedback-kpis{grid-template-columns:repeat(5,minmax(105px,1fr))}.feedback-filter-grid{grid-template-columns:repeat(3,1fr)}.feedback-workspace{grid-template-columns:minmax(300px,.75fr) minmax(0,1.4fr)}.feedback-detail-layout{grid-template-columns:1fr}.feedback-detail-main{border-right:0}.feedback-customer-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid #ececef}.feedback-side-card+.feedback-side-card{margin-top:0}}
@media(max-width:900px){
  .feedback-ops{padding:14px 12px 80px}.feedback-command-head{align-items:flex-start;flex-direction:column;padding:20px}.feedback-command-head h1{font-size:31px}.feedback-head-actions{justify-content:flex-start}.feedback-kpis{display:flex;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.feedback-kpis::-webkit-scrollbar{display:none}.feedback-kpi{flex:0 0 150px}.feedback-filter-grid{grid-template-columns:1fr 1fr}
  .feedback-workspace{display:block}.feedback-workspace:not(.is-detail-open) .feedback-detail-pane{display:none}.feedback-workspace.is-detail-open .feedback-inbox-pane{display:none}.feedback-inbox-pane{position:static}.feedback-inbox-list{max-height:none}.feedback-detail-pane{overflow:visible}.feedback-mobile-back{display:block;padding:13px 15px;border-bottom:1px solid #ececef;color:#9b1d20;font-size:12px;font-weight:900}.feedback-detail-head{padding:17px}.feedback-detail-head h2{font-size:22px}.feedback-detail-layout{display:block}.feedback-message-panel,.feedback-service-form,.feedback-timeline-section{padding:17px}.feedback-customer-panel{display:block;padding:12px}.feedback-side-card+.feedback-side-card{margin-top:10px}.feedback-service-grid,.feedback-note-sections{grid-template-columns:1fr}.feedback-save{width:100%;min-height:48px}.feedback-contact-check{margin-top:0}.feedback-section-title{align-items:flex-start;flex-direction:column;gap:4px}
  .feedback-workspace.is-detail-open{padding-bottom:64px}.feedback-mobile-actions{position:fixed;z-index:2147482990;left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(3,1fr);gap:1px;padding:0 max(8px,env(safe-area-inset-right)) 7px max(8px,env(safe-area-inset-left));background:linear-gradient(transparent,#ffffff 34%);filter:drop-shadow(0 -7px 13px #00000012)}.feedback-mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:46px;padding:8px;border-right:1px solid #ffffff2b;background:#282828;color:#fff;font-size:11px;font-weight:900}.feedback-mobile-actions a:first-child{border-radius:11px 0 0 11px}.feedback-mobile-actions a:last-child{border-right:0;border-radius:0 11px 11px 0;background:#9b1d20}
}
@media(max-width:560px){.feedback-command-head p{font-size:13px}.feedback-kpi{flex-basis:137px;padding:13px}.feedback-search{grid-template-columns:1fr}.feedback-search button{min-height:43px}.feedback-filter-grid{grid-template-columns:1fr}.feedback-head-actions{width:100%}.feedback-export,.feedback-total{flex:1}.feedback-row-meta{gap:5px}.feedback-inbox-row{padding:14px}.feedback-message-panel blockquote{font-size:15px}.history-title{flex-direction:column;gap:3px}.feedback-customer-panel{padding:10px}}
.voucher-issued-by{margin:-6px 0 10px;font-size:.78rem;color:#777}.birthday-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media(max-width:600px){.birthday-fields{grid-template-columns:1fr 1fr}}

/* Factory reset */
.sidebar .danger-link{margin-top:18px;color:#ffb4b4;border-top:1px solid #ffffff25;border-bottom:0;padding-top:18px}
.factory-reset-page{background:#fafafa}
.factory-warning{display:flex;gap:18px;align-items:flex-start;padding:24px;margin-bottom:22px;border:1px solid #f0c5c5;border-radius:18px;background:#fff5f5}
.factory-warning-icon{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:50%;background:#8b0000;color:#fff;font-size:28px;font-weight:900}
.factory-warning .eyebrow{margin:0 0 4px;color:#8b0000;font-size:12px;font-weight:900;letter-spacing:1.5px;text-transform:uppercase}
.factory-warning h1{margin:0 0 8px}.factory-warning p:last-child{margin:0;color:#5f3333;max-width:820px}
.factory-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:22px;align-items:start}
.factory-summary h2,.factory-form h2{margin-top:0}
.factory-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 24px}
.factory-counts div{padding:14px;border:1px solid #ececec;border-radius:12px;background:#fafafa}
.factory-counts span{display:block;color:#666;font-size:12px}.factory-counts strong{display:block;margin-top:4px;font-size:22px}
.factory-summary ul{padding-left:20px;color:#555}.factory-summary li{margin:9px 0}
.factory-form{border-color:#e2b2b2;box-shadow:0 14px 34px #8b00000d}
.factory-form>p{color:#666}.factory-check{display:flex;align-items:flex-start;gap:9px;margin:18px 0;font-size:14px}.factory-check input{margin-top:3px}
.factory-button{width:100%;padding:14px 18px}
.alert.error{margin-bottom:18px;padding:14px 16px;border-radius:12px;background:#fff0f0;color:#7b1111;border:1px solid #eac1c1}
@media(max-width:900px){.factory-grid{grid-template-columns:1fr}.factory-counts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.factory-warning{padding:18px}.factory-warning-icon{flex-basis:40px;height:40px}.factory-counts{grid-template-columns:1fr 1fr}.factory-reset-page{padding:18px}}


/* Bulk menu manager */
.menu-admin-card{margin:22px 0}.menu-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:1px solid #eee}.menu-admin-head h2{margin:4px 0 7px}.menu-admin-head p{margin:0;color:#666;max-width:720px}.menu-admin-head .eyebrow{font-size:11px;font-weight:900;letter-spacing:1.3px;text-transform:uppercase;color:#9b1d20}.menu-page-total{white-space:nowrap;padding:10px 14px;border-radius:999px;background:#f2f2f2}.menu-upload-form{display:grid;grid-template-columns:1.3fr .8fr auto;gap:16px;align-items:end;padding:22px 0}.menu-upload-form .field{margin:0}.menu-upload-form input[type=file],.menu-upload-form select{width:100%;padding:11px;border:1px solid #ccc;border-radius:9px;background:#fff}.menu-admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:8px 0 16px}.menu-admin-toolbar p{margin:0;color:#666}.menu-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}.menu-page-tile{position:relative;overflow:hidden;border:1px solid #ddd;border-radius:13px;background:#fff;box-shadow:0 7px 20px #0000000b;cursor:grab}.menu-page-tile.dragging{opacity:.38}.menu-page-tile.drag-over{outline:3px solid #9b1d20;outline-offset:2px}.menu-page-tile img{width:100%;aspect-ratio:210/297;object-fit:cover;background:#eee}.menu-page-number{position:absolute;z-index:2;left:7px;top:7px;padding:5px 8px;border-radius:999px;background:#111d;color:#fff;font-size:11px;font-weight:800}.menu-page-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:9px}.menu-page-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666;font-size:11px}.drag-handle{border:0;background:#eee;border-radius:7px;padding:5px 8px;cursor:grab}.menu-delete-page{width:100%;padding:8px;border:0;border-top:1px solid #eee;background:#fff4f4;color:#8b0000;font-size:12px;font-weight:800;cursor:pointer}.menu-delete-all{margin-top:20px;padding-top:18px;border-top:1px solid #eee}.menu-empty{min-height:120px;background:#fafafa;border-radius:12px}

/* Full-screen swipeable menu */
.menu-open:disabled{opacity:.5;cursor:not-allowed}.menu-viewer{position:fixed;z-index:1000;inset:0;display:none;background:#111;color:#fff;overscroll-behavior:contain}.menu-viewer.open{display:block}.menu-viewer-bar{position:absolute;z-index:4;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:linear-gradient(#000c,transparent)}.menu-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff40;border-radius:50%;background:#0008;color:#fff;font-size:31px;line-height:1;cursor:pointer}.menu-counter{padding:8px 13px;border-radius:999px;background:#0009;font-weight:800}.menu-slides{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}.menu-slides::-webkit-scrollbar{display:none}.menu-slide{position:relative;display:grid;place-items:center;flex:0 0 100%;width:100%;height:100%;margin:0;padding:68px 64px 48px;scroll-snap-align:center;scroll-snap-stop:always}.menu-slide img{position:relative;z-index:1;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 14px 50px #0008}.menu-image-loader{position:absolute;color:#bbb}.menu-slide img[src]+.menu-image-loader{display:none}.menu-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:48px;height:58px;border:1px solid #ffffff2e;border-radius:12px;background:#0008;color:#fff;font-size:28px;cursor:pointer}.menu-prev{left:12px}.menu-next{right:12px}.menu-swipe-hint{position:absolute;z-index:3;left:50%;bottom:12px;transform:translateX(-50%);padding:7px 11px;border-radius:999px;background:#0009;color:#ddd;font-size:11px}.menu-viewer-open{overflow:hidden}
@media(max-width:900px){.menu-upload-form{grid-template-columns:1fr}.menu-upload-form .btn{width:100%}.menu-admin-head{flex-direction:column}.menu-slide{padding:62px 8px 42px}.menu-arrow{display:none}.menu-swipe-hint{display:block}.menu-page-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.menu-page-grid{grid-template-columns:repeat(2,1fr)}.menu-admin-toolbar{align-items:stretch;flex-direction:column}.menu-admin-toolbar .btn{width:100%}.menu-slide img{box-shadow:none}}


/* Mobile dashboard bottom navigation hardening */
@media(max-width:900px){
  body.dashboard-area{padding-bottom:calc(88px + env(safe-area-inset-bottom))}
  body.dashboard-area .dashboard{display:block;min-height:calc(100dvh - 145px)}
  body.dashboard-area .dashboard>.mobile-bottom-nav{position:fixed!important;inset:auto 0 0 0!important;z-index:2147483000!important;display:flex!important;align-items:stretch!important;gap:5px!important;width:100vw!important;max-width:100vw!important;height:calc(72px + env(safe-area-inset-bottom))!important;margin:0!important;overflow-x:auto!important;overflow-y:hidden!important;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))!important;background:#202020!important;border-top:1px solid #ffffff1f!important;box-shadow:0 -10px 30px #00000024!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;transform:translate3d(0,0,0);will-change:transform}
  body.dashboard-area .dashboard>.mobile-bottom-nav::-webkit-scrollbar{display:none}
  body.dashboard-area .dashboard>.mobile-bottom-nav a{display:flex!important;flex:0 0 auto!important;align-items:center!important;justify-content:center!important;min-width:90px!important;min-height:52px!important;margin:0!important;padding:8px 12px!important;white-space:nowrap!important;border:0!important;border-radius:11px!important;color:#eee!important;font-size:12px!important;font-weight:700!important}
  body.dashboard-area .dashboard>.mobile-bottom-nav a.active{background:#ffffff18!important;color:#fff!important}
  body.dashboard-area .dashboard>.mobile-bottom-nav .danger-link{margin:0!important;padding:8px 12px!important;border:0!important;color:#ffb4b4!important}
  body.dashboard-area .dashboard>.mobile-bottom-nav .logout-link{position:sticky!important;right:0!important;z-index:2!important;min-width:82px!important;background:#9b1d20!important;color:#fff!important;box-shadow:-12px 0 18px #202020!important}
}

/* Searchable customer selector for staff voucher issuing */
.voucher-issue-form{display:grid;grid-template-columns:minmax(300px,1.55fr) minmax(190px,.85fr) minmax(240px,1.2fr) auto;gap:10px;align-items:start;margin:18px 0;overflow:visible}
.voucher-issue-form>select,.voucher-issue-form>input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #cfd1d5;border-radius:9px;background:#fff;color:#202020}
.voucher-issue-form>.btn{min-height:44px;white-space:nowrap}
.voucher-customer-picker{position:relative;min-width:0}
.voucher-customer-search{display:none;width:100%;min-height:44px;padding:10px 42px 10px 13px;border:1px solid #cfd1d5;border-radius:9px;background:#fff;color:#202020}
.voucher-customer-picker.is-enhanced .voucher-customer-search{display:block;background-image:linear-gradient(45deg,transparent 45%,#777 45%,#777 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,#777 45%,#777 55%,transparent 55%);background-position:calc(100% - 20px) 19px,calc(100% - 15px) 19px;background-size:6px 6px;background-repeat:no-repeat}
.voucher-customer-picker.is-enhanced .voucher-customer-native{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.voucher-customer-results{position:absolute;z-index:300;top:calc(100% + 7px);left:0;right:0;max-height:350px;overflow:auto;padding:6px;border:1px solid #d7d9dd;border-radius:12px;background:#fff;box-shadow:0 18px 44px #00000024}
.voucher-customer-results[hidden]{display:none!important}
.voucher-customer-option[hidden]{display:none!important}
.voucher-customer-option{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:3px;padding:11px 12px;border:0;border-radius:9px;background:#fff;color:#202020;text-align:left;cursor:pointer}
.voucher-customer-option:hover,.voucher-customer-option.is-active{background:#f3f4f6}
.voucher-customer-option strong{font-size:13px}
.voucher-customer-option small{max-width:100%;overflow:hidden;color:#666;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.voucher-customer-empty{margin:0;padding:14px 12px;color:#666;font-size:13px;text-align:center}
@media(max-width:1100px){.voucher-issue-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.voucher-customer-picker{grid-column:1/-1}.voucher-issue-form>.btn{width:100%}}
@media(max-width:650px){.voucher-issue-form{grid-template-columns:1fr}.voucher-customer-picker{grid-column:auto}.voucher-customer-results{position:fixed;z-index:2147483100;top:auto;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));left:12px;max-height:min(55vh,420px)}}
