:root{--prodip-navy:#1e2c4f;--prodip-navy-dark:#141e36;--prodip-crimson:#8e1b32;--prodip-crimson-hover:#731326;--prodip-olive:#7b9356;--prodip-olive-hover:#667d45;--prodip-gold:#e5a823;--prodip-gold-glow:rgba(229,168,35,.45);--prodip-canvas:#f9f8f5;--prodip-card:#fff;--prodip-text:#1c2430;--prodip-muted:#64748b;--prodip-border:#e2e8f0;--surface-hover:#f1f5f9;--surface-sunken:#f8fafc;--status-success-bg:#dcfce7;--status-success-fg:#166534;--status-success-solid:#059669;--status-warning-bg:#fef3c7;--status-warning-fg:#92400e;--status-warning-solid:#d97706;--status-danger-bg:#fee2e2;--status-danger-fg:#991b1b;--status-danger-solid:#dc2626;--status-info-bg:#e0e7ff;--status-info-fg:#3730a3;--status-info-solid:#4338ca;--status-neutral-bg:#f1f5f9;--status-neutral-fg:#475569;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-sm:0 1px 3px rgba(20,30,54,.06);--shadow-md:0 8px 24px rgba(20,30,54,.08);--shadow-lg:0 16px 40px rgba(20,30,54,.14)}*{margin:0;padding:0;box-sizing:border-box;font-family:Inter,Hind Siliguri,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{background:var(--prodip-canvas);color:var(--prodip-text);min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}a{color:var(--prodip-navy)}button{font:inherit}svg{flex-shrink:0}.ribbon-bar{background:var(--prodip-navy);padding:0 24px;justify-content:space-between;gap:20px;min-height:64px;box-shadow:0 1px 0 hsla(0,0%,100%,.06),0 4px 22px rgba(20,30,54,.18);position:-webkit-sticky;position:sticky;top:0;z-index:1000}.ribbon-bar,.ribbon-brand{color:#fff;display:flex;align-items:center}.ribbon-brand{gap:11px;text-decoration:none;cursor:pointer;border:none;background:transparent;text-align:left;flex-shrink:0}.ribbon-logo-badge{width:38px;height:38px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(0,0,0,.25);flex-shrink:0}.ribbon-title h1{font-size:16px;font-weight:800;letter-spacing:.2px;line-height:1.2;white-space:nowrap}.ribbon-title span{font-size:10.5px;opacity:.75;display:block;font-weight:400;margin-top:1px;white-space:nowrap}.ribbon-nav{flex:1 1;min-width:0}.ribbon-links,.ribbon-nav{display:flex;align-items:center;gap:2px}.ribbon-links{overflow:hidden}.ribbon-link{color:hsla(0,0%,100%,.72);padding:8px 14px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;text-decoration:none;transition:color .15s ease,background .15s ease;cursor:pointer;border:none;background:transparent;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.ribbon-link:hover{color:#fff;background:hsla(0,0%,100%,.1)}.ribbon-link.active-tab{color:#fff;background:hsla(0,0%,100%,.16)}.ribbon-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.btn-signin{background:var(--prodip-gold);color:#1e2c4f;padding:8px 16px;border-radius:20px;font-weight:800;font-size:13px;display:inline-flex;align-items:center;gap:6px;border:none;cursor:pointer;white-space:nowrap}.nav-user{position:relative}.nav-user-trigger{display:inline-flex;align-items:center;gap:8px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);color:#fff;padding:5px 10px 5px 5px;border-radius:22px;cursor:pointer;font-size:13px;font-weight:700;transition:background .15s ease}.nav-user-trigger:hover,.nav-user-trigger[aria-expanded=true]{background:hsla(0,0%,100%,.16)}.nav-avatar{width:26px;height:26px;border-radius:50%;background:var(--prodip-gold);color:#1e2c4f;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0}.nav-user-name{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:260px;background:var(--prodip-card);color:var(--prodip-text);border:1px solid var(--prodip-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;z-index:1200;animation:dropdownIn .14s ease-out}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.nav-dropdown-header{padding:10px 12px 12px;border-bottom:1px solid var(--prodip-border);margin-bottom:6px}.nav-dropdown-name{font-size:14px;font-weight:800;color:var(--prodip-navy)}.nav-dropdown-meta{font-size:12px;color:var(--prodip-muted);margin-top:2px}.nav-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--prodip-text);font-size:13.5px;font-weight:600;text-decoration:none;cursor:pointer;text-align:left}.nav-dropdown-item svg{color:var(--prodip-muted);flex-shrink:0}.nav-dropdown-item:hover{background:var(--surface-hover)}.nav-dropdown-item.danger,.nav-dropdown-item.danger svg{color:var(--status-danger-solid)}.nav-dropdown-divider{height:1px;background:var(--prodip-border);margin:6px 4px}.nav-backdrop{position:fixed;inset:0;z-index:1100;background:transparent}.notif-bell{position:relative}.notif-bell-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);color:#fff;border-radius:50%;cursor:pointer;transition:background .15s ease}.notif-bell-trigger:hover{background:hsla(0,0%,100%,.16)}.notif-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 3px;border-radius:8px;background:var(--status-danger-solid);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1}.notif-panel{position:absolute;top:calc(100% + 10px);right:0;width:320px;max-width:88vw;background:var(--prodip-card);color:var(--prodip-text);border:1px solid var(--prodip-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1200;animation:dropdownIn .14s ease-out;overflow:hidden}.notif-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--prodip-border);font-size:13px;font-weight:800;color:var(--prodip-navy)}.notif-mark-all{background:none;border:none;color:var(--prodip-olive);font-size:11.5px;font-weight:700;cursor:pointer}.notif-panel-list{max-height:360px;overflow-y:auto}.notif-item{display:block;width:100%;text-align:left;padding:11px 14px;border:none;border-bottom:1px solid var(--prodip-border);background:transparent;cursor:pointer}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--surface-hover)}.notif-item.unread{background:var(--status-info-bg)}.notif-item-title{font-size:13px;font-weight:800;color:var(--prodip-navy)}.notif-item-body{font-size:12px;color:var(--prodip-text);margin-top:2px;line-height:1.4}.notif-item-meta{font-size:10.5px;color:var(--prodip-muted);margin-top:4px}.notif-empty{padding:24px 14px;text-align:center;color:var(--prodip-muted);font-size:12.5px}@media (max-width:860px){.notif-panel{position:fixed;top:64px;left:12px;right:12px;width:auto;max-width:none}}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:800;white-space:nowrap;line-height:1.4}.badge-success{background:var(--status-success-bg);color:var(--status-success-fg)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning-fg)}.badge-danger{background:var(--status-danger-bg);color:var(--status-danger-fg)}.badge-info{background:var(--status-info-bg);color:var(--status-info-fg)}.badge-neutral{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}.container{max-width:1180px;width:100%;margin:24px auto;padding:0 20px 40px;flex:1 1}.page-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--prodip-border)}.page-head-main{display:flex;align-items:center;gap:14px;min-width:0}.page-head-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.page-head-title{font-size:19px;font-weight:800;color:var(--prodip-navy);line-height:1.25}.page-head-subtitle{font-size:12.5px;color:var(--prodip-muted);margin-top:2px}.page-head-actions{display:flex;gap:10px}.page-head-actions,.segmented{align-items:center;flex-wrap:wrap}.segmented{display:inline-flex;gap:3px;background:var(--surface-sunken);border:1px solid var(--prodip-border);padding:3px;border-radius:var(--radius-sm)}.segmented-btn{border:none;background:transparent;color:var(--prodip-muted);padding:7px 14px;border-radius:7px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease}.segmented-btn.active,.segmented-btn:hover{color:var(--prodip-navy)}.segmented-btn.active{background:var(--prodip-card);box-shadow:var(--shadow-sm)}.segmented-btn.active.dark{background:var(--prodip-navy);color:#fff}.card{border:1px solid var(--prodip-border);border-radius:16px;padding:24px;box-shadow:0 4px 20px rgba(0,0,0,.035);min-width:0}.btn-panel-link,.card{background:var(--prodip-card)}.btn-panel-link{border:1px solid var(--prodip-border);padding:10px 16px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:700;color:var(--prodip-navy)!important;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:background .15s ease,border-color .15s ease;min-height:42px;box-sizing:border-box}.btn-panel-link:hover{background:var(--surface-hover);border-color:#cbd5e1}.btn-panel-link.admin-bg,.btn-panel-link.coord-bg{background:var(--prodip-navy);border-color:var(--prodip-navy);color:#fff!important}.btn-panel-link.admin-bg:hover,.btn-panel-link.coord-bg:hover{background:var(--prodip-navy-dark);border-color:var(--prodip-navy-dark)}.role-badge{display:inline-block;background:var(--status-warning-bg);color:var(--status-warning-fg);font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;white-space:nowrap}.hero-banner{background:linear-gradient(135deg,var(--prodip-navy),var(--prodip-navy-dark));color:#fff;padding:32px 24px;border-radius:18px;margin-bottom:24px;box-shadow:0 10px 30px rgba(20,30,54,.1);position:relative;overflow:hidden}.hero-banner:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(229,168,35,.18),transparent 70%)}.hero-banner h2{font-size:clamp(20px,4.5vw,24px);font-weight:800;margin-bottom:10px}.hero-banner p{font-size:14px;opacity:.92;max-width:680px;line-height:1.6}.landing-one-tap-card{background:linear-gradient(135deg,#1e2c4f,#141e36);color:#fff;border-radius:20px;padding:24px 20px;margin-bottom:24px;text-align:center;box-shadow:0 12px 30px rgba(20,30,54,.28);position:relative;overflow:hidden;border:2px solid var(--prodip-gold)}.landing-one-tap-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--prodip-olive),var(--prodip-gold),var(--prodip-crimson))}.circular-tap-btn{width:114px;height:114px;border-radius:50%;border:4px solid hsla(0,0%,100%,.3);outline:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:14px auto;transition:all .25s cubic-bezier(.4,0,.2,1);font-weight:800;color:#fff;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.circular-tap-btn:hover{transform:scale(1.05);border-color:hsla(0,0%,100%,.6)}.circular-tap-btn:active{transform:scale(.92)}.circular-tap-btn.checkin{background:linear-gradient(135deg,#22c55e,#15803d);box-shadow:0 0 32px rgba(34,197,94,.65);animation:pulseGreen 2s ease-in-out infinite}.circular-tap-btn.checkout{background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 0 32px rgba(239,68,68,.65);animation:pulseRed 2s ease-in-out infinite}@keyframes pulseGreen{0%{box-shadow:0 0 14px rgba(34,197,94,.4)}50%{box-shadow:0 0 36px rgba(34,197,94,.9)}to{box-shadow:0 0 14px rgba(34,197,94,.4)}}@keyframes pulseRed{0%{box-shadow:0 0 14px rgba(239,68,68,.4)}50%{box-shadow:0 0 36px rgba(239,68,68,.9)}to{box-shadow:0 0 14px rgba(239,68,68,.4)}}.tap-subtitle{font-size:13px;opacity:.92;margin-top:6px;font-weight:500;color:#e2e8f0}.progress-bar-wrap{width:100%;height:14px;background:#e2e8f0;border-radius:30px;position:relative;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#7b9356,#86a35d,#e5a823);border-radius:30px;transition:width .8s cubic-bezier(.4,0,.2,1)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;display:flex;justify-content:center;align-items:center;padding:16px}.modal{background:#fff;border-radius:18px;padding:24px;max-width:440px;width:100%;box-shadow:0 20px 40px rgba(0,0,0,.18);max-height:90vh;overflow-y:auto}.mobile-menu,.mobile-nav-toggle{display:none}@media (max-width:860px){.ribbon-bar{padding:12px 16px;min-height:60px;height:auto;flex-wrap:wrap;justify-content:space-between}.mobile-nav-toggle,.ribbon-bar{display:flex;align-items:center}.mobile-nav-toggle{justify-content:center;background:hsla(0,0%,100%,.12);border:1px solid hsla(0,0%,100%,.2);color:#fff;padding:8px;border-radius:8px;cursor:pointer;min-height:40px;width:40px}.ribbon-actions,.ribbon-links,.ribbon-nav{display:none}.ribbon-nav{width:100%;flex-direction:column;align-items:stretch;gap:2px}.ribbon-nav.is-open{display:flex;position:absolute;top:100%;left:0;right:0;max-height:75vh;overflow-y:auto;background:var(--prodip-navy);padding:14px 16px calc(env(safe-area-inset-bottom, 0px) + 16px);border-top:1px solid hsla(0,0%,100%,.15);border-radius:0 0 16px 16px;box-shadow:0 18px 36px rgba(0,0,0,.35);z-index:999}.mobile-nav-backdrop{position:fixed;inset:0;background:rgba(10,14,26,.5);z-index:900}.mobile-menu{display:none}.ribbon-nav.is-open .mobile-menu{display:flex;flex-direction:column;gap:2px;width:100%}.mobile-menu-item{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;padding:12px 14px;border-radius:10px;border:none;background:transparent;color:hsla(0,0%,100%,.85);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;text-align:left}.mobile-menu-item svg{color:hsla(0,0%,100%,.6);flex-shrink:0}.mobile-menu-item:hover{background:hsla(0,0%,100%,.08)}.mobile-menu-item.active{background:hsla(0,0%,100%,.18);color:#fff}.mobile-menu-item.active svg{color:#fff}.mobile-menu-item.danger,.mobile-menu-item.danger svg{color:#fca5a5}.mobile-menu-signin{justify-content:center;background:var(--prodip-gold);color:#1e2c4f;font-weight:800;margin-top:4px}.mobile-menu-signin svg{color:#1e2c4f}.mobile-menu-signin:hover{background:var(--prodip-gold);opacity:.92}.mobile-menu-divider{height:1px;background:hsla(0,0%,100%,.15);margin:8px 4px}.mobile-menu-identity{padding:6px 14px 4px;color:hsla(0,0%,100%,.55);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.container{padding:0 12px 32px;margin:12px auto}.card{padding:18px 16px;border-radius:14px}.hero-banner{padding:24px 18px;border-radius:14px}.modal-overlay{align-items:flex-end;padding:0}.modal{max-width:100%;border-radius:20px 20px 0 0;max-height:85vh;padding:20px 16px 28px}}button:disabled{cursor:not-allowed;opacity:.6}.btn-row{border:none;padding:8px 14px;border-radius:8px;font-size:12.5px;gap:6px;min-height:38px;white-space:nowrap}.btn-primary-action,.btn-row{font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn-primary-action{color:#fff;border:none;padding:11px 20px;border-radius:10px;font-size:14px;gap:8px;min-height:46px}.row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.toast-host{position:fixed;top:78px;right:16px;left:16px;z-index:20000;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.toast{pointer-events:auto;max-width:460px;padding:12px 16px;border-radius:12px;font-size:13.5px;font-weight:700;line-height:1.4;color:#fff;box-shadow:0 10px 28px rgba(20,30,54,.28);animation:toastIn .2s ease-out}.toast-success{background:#059669}.toast-error{background:#b91c1c}.toast-info{background:var(--prodip-navy)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.site-footer{border-top:1px solid var(--prodip-border);padding:20px;text-align:center}.site-footer-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.site-footer-link{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:700;color:var(--prodip-navy);text-decoration:none}.site-footer-link:hover{background:var(--surface-hover)}.site-footer-meta{font-size:11.5px;color:var(--prodip-muted)}.mobile-tabbar{display:none}.landing-one-tap-card .circular-tap-btn:disabled{animation:none}@media (max-width:860px){body{padding-bottom:72px}input,select,textarea{font-size:16px!important}.toast-host{top:auto;bottom:84px;align-items:stretch}.toast{max-width:none}.mobile-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1100;background:#fff;border-top:1px solid var(--prodip-border);box-shadow:0 -4px 18px rgba(20,30,54,.1);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.mobile-tab{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:none;background:transparent;color:var(--prodip-muted);font-size:10.5px;font-weight:700;text-decoration:none;border-radius:10px;cursor:pointer}.mobile-tab span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-tab.active{color:var(--prodip-navy);background:#eef2fb}table.rtable,table.rtable tbody,table.rtable td,table.rtable tr{display:block;width:100%}table.rtable thead{display:none}table.rtable{min-width:0!important}table.rtable tr{border:1px solid var(--prodip-border)!important;border-radius:14px;margin-bottom:12px;padding:6px 4px;background:#fff}table.rtable td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px!important;text-align:right!important;border:none!important}table.rtable td:before{content:attr(data-label);flex:0 0 auto;font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.3px;text-align:left}table.rtable td[colspan]{display:block;text-align:center!important}table.rtable td[colspan]:before{content:none}table.rtable td .row-actions{justify-content:flex-end}.btn-row{min-height:42px}.ribbon-title span{display:none}}