/* Hotel HRIS — regenerated UI stylesheet */
:root {
  --primary: #d6b55a;
  --primary-dark: #b69235;
  --navy-950: #07182e;
  --navy-900: #0c203a;
  --navy-800: #153354;
  --navy-700: #24486f;
  --gold-100: #fff8df;
  --gold-300: #efd98f;
  --gold-500: #d6b55a;
  --surface: #ffffff;
  --surface-soft: #f6f8fb;
  --surface-muted: #edf1f6;
  --text: #12243a;
  --muted: #68778a;
  --line: #dfe6ef;
  --success: #18784a;
  --success-bg: #e9f8ef;
  --danger: #b83a3f;
  --danger-bg: #fff0f0;
  --warning: #8a681c;
  --warning-bg: #fff6da;
  --shadow-sm: 0 6px 18px rgba(7, 24, 46, 0.07);
  --shadow-md: 0 14px 38px rgba(7, 24, 46, 0.11);
  --shadow-lg: 0 28px 70px rgba(7, 24, 46, 0.22);
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 22px;
  --sidebar-width: 270px;
  --mobile-nav-height: 76px;
}
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--surface-soft); }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--surface-soft);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
img, video, canvas { max-width: 100%; }
a { color: var(--navy-700); }
.app { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
.sidebar {
  position: sticky; top: 0; z-index: 20; height: 100vh; min-width: 0;
  display: flex; flex-direction: column; gap: 18px; overflow: hidden;
  padding: 20px 14px 16px; color: #fff;
  background: linear-gradient(175deg, var(--navy-900) 0%, var(--navy-950) 100%);
  border-right: 1px solid rgba(255,255,255,.08); box-shadow: 12px 0 34px rgba(7,24,46,.12);
}
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.logo { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 13px; background-position: center; background-repeat: no-repeat; background-size: contain; }
.brand > div:last-child { min-width: 0; }
.brand strong { display:block; overflow:hidden; color:inherit; font-size:15px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.brand span { display:block; margin-top:2px; color:rgba(255,255,255,.62); font-size:9px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.nav { min-height:0; display:flex; flex:1 1 auto; flex-direction:column; gap:6px; overflow-y:auto; padding:2px 3px 10px 0; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.2) transparent; }
.nav-title { padding:8px 10px 5px; color:var(--gold-300); font-size:10px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.nav button { width:100%; border:0; cursor:pointer; color:rgba(255,255,255,.74); background:transparent; }
.nav-single,.nav-page-btn { min-height:42px; display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:12px; text-align:left; }
.nav-page-btn em { min-width:0; overflow:hidden; font-style:normal; font-size:12px; font-weight:780; text-overflow:ellipsis; white-space:nowrap; }
.nav-item-icon,.nav-group-icon { width:23px; height:23px; flex:0 0 23px; display:grid; place-items:center; color:currentColor; }
.nav-item-icon svg,.nav-group-icon svg { width:18px; height:18px; }
.nav-page-btn:hover,.nav-page-btn.active { color:#fff; background:rgba(255,255,255,.1); }
.nav-page-btn.active { box-shadow:inset 3px 0 0 var(--gold-500),0 7px 18px rgba(0,0,0,.13); }
.nav-group { display:grid; gap:4px; border-radius:13px; }
.nav-group-toggle { min-height:42px; display:grid; grid-template-columns:23px minmax(0,1fr) 18px; align-items:center; gap:10px; padding:9px 11px; border-radius:12px; text-align:left; }
.nav-group-toggle:hover,.nav-group.has-active>.nav-group-toggle { color:#fff; background:rgba(255,255,255,.075); }
.nav-group-name { font-size:12px; font-weight:850; }
.group-caret { font-size:16px; text-align:center; transition:transform .18s ease; }
.nav-group-items { display:grid; gap:3px; padding:0 0 5px 24px; overflow:hidden; }
.nav-group-items .nav-page-btn { min-height:36px; padding-block:7px; }
.nav-group.collapsed .nav-group-items { display:none; }
.nav-group.collapsed .group-caret { transform:rotate(-90deg); }
.side-user { flex:0 0 auto; padding:13px; border:1px solid rgba(255,255,255,.12); border-radius:15px; color:rgba(255,255,255,.64); background:rgba(255,255,255,.07); font-size:11px; }
.side-user strong { display:block; color:#fff; font-size:13px; }
.side-user .btn.light { color:#fff; background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.15); }
.main { min-width:0; padding:18px clamp(16px,2.6vw,34px) 38px; }
.topbar { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; }
.crumb { color:var(--navy-700); font-size:12px; font-weight:850; }
.topbar-actions,.profile { display:flex; align-items:center; gap:10px; }
.profile { color:var(--muted); font-size:11px; text-align:right; }
.profile strong { color:var(--text); font-size:12px; }
.avatar { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:50%; color:var(--navy-950); background:linear-gradient(135deg,var(--gold-100),var(--gold-500)); font-size:12px; font-weight:950; box-shadow:var(--shadow-sm); }
.mobile-logout { display:none; }
.page { display:none; width:100%; max-width:1540px; margin:0 auto; }
.page.active { display:block; }
.page-head { min-width:0; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:16px; }
.page-head>div:first-child { min-width:0; }
.page-head h1 { margin:0; color:var(--navy-950); font-size:clamp(26px,2.4vw,36px); font-weight:900; letter-spacing:-.035em; line-height:1.1; }
.subtitle { margin-top:5px; color:var(--muted); font-size:13px; }
.grid { display:grid; gap:14px; }
.card { min-width:0; padding:17px; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface); box-shadow:var(--shadow-sm); }
.compact-section-card { padding:14px; }
.wide-card,.dashboard-card { min-width:0; width:100%; }
.btn { min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:9px 13px; border:1px solid transparent; border-radius:11px; cursor:pointer; font-weight:820; line-height:1.1; text-decoration:none; transition:transform .14s ease,box-shadow .14s ease,filter .14s ease; }
.btn:hover { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn:disabled { cursor:not-allowed; opacity:.48; transform:none; }
.btn.primary { color:#fff; background:linear-gradient(135deg,var(--navy-800),var(--navy-950)); box-shadow:0 8px 18px rgba(7,24,46,.16); }
.btn.primary:hover { filter:brightness(1.08); }
.btn.light { color:var(--navy-800); background:#fff; border-color:var(--line); }
.btn.danger { color:var(--danger); background:var(--danger-bg); border-color:#f1cbcd; }
.btn.small { min-height:33px; padding:7px 10px; font-size:11px; }
.btn.mini { min-height:28px; padding:5px 8px; font-size:10px; }
.btn.small-compact { min-height:30px; padding:6px 9px; font-size:10px; }
input,select,textarea { width:auto; min-height:40px; padding:9px 11px; border:1px solid #d7e0ea; border-radius:11px; outline:0; color:var(--text); background:#fff; transition:border-color .14s ease,box-shadow .14s ease; }
textarea { min-height:95px; resize:vertical; }
input:focus,select:focus,textarea:focus { border-color:#8da2bb; box-shadow:0 0 0 4px rgba(21,51,84,.08); }
label { display:block; margin-bottom:6px; color:#536378; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.field { min-width:0; display:grid; align-content:start; }
.field.full { grid-column:1/-1; }
.toolbar { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.filters,.actions,.export-actions { min-width:0; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:15px; }
.stat-card,.report-card { min-width:0; padding:15px; border:1px solid var(--line); border-radius:17px; background:linear-gradient(150deg,#fff 0%,#f9fbfd 100%); box-shadow:var(--shadow-sm); }
.stat-label { color:var(--muted); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.stat-value { margin-top:7px; color:var(--navy-950); font-size:clamp(25px,2.7vw,37px); font-weight:950; line-height:1; }
.dashboard-detail,.report-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.report-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.dash-list,.compact-list { display:grid; gap:8px; }
.dash-item,.dash-kpi { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 11px; border:1px solid var(--line); border-radius:12px; background:var(--surface-soft); }
.dash-chart { min-height:220px; }
.dashboard-late-filter { display:flex; gap:8px; flex-wrap:wrap; }
.number { color:var(--navy-950); font-weight:900; }
.badge,.status-badge,.danger-badge { display:inline-flex; align-items:center; justify-content:center; gap:5px; width:fit-content; padding:5px 8px; border:1px solid #d9e3ef; border-radius:999px; color:var(--navy-700); background:#f0f5fa; font-size:10px; font-weight:850; }
.danger-badge { color:var(--danger); background:var(--danger-bg); border-color:#f1cbcd; }
.table-wrap,.roster-grid,.compact-table-wrap { min-width:0; max-width:100%; overflow:auto; border:1px solid var(--line); border-radius:15px; background:#fff; overscroll-behavior-x:contain; }
.table,.compact-table { width:100%; min-width:760px; border-collapse:separate; border-spacing:0; font-size:11px; }
.table th,.table td,.compact-table th,.compact-table td { padding:9px 10px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
.table th:last-child,.table td:last-child,.compact-table th:last-child,.compact-table td:last-child { border-right:0; }
.table tbody tr:last-child td,.compact-table tbody tr:last-child td { border-bottom:0; }
.table th,.compact-table th { position:sticky; top:0; z-index:2; color:#405168; background:#f3f6fa; font-size:9px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; }
.dept-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(185px,1fr)); gap:11px; margin-bottom:15px; }
.dept-card,.dept-add-card { min-width:0; padding:13px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.dept-card strong { display:block; margin-top:5px; color:var(--navy-950); font-size:20px; }
.employee-danger-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.roster-table { width:100%; min-width:1320px; border-collapse:separate; border-spacing:0; font-size:10px; }
.roster-table th,.roster-table td { padding:7px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.roster-table th { position:sticky; top:0; z-index:3; color:#405168; background:#f3f6fa; font-size:9px; text-transform:uppercase; }
.roster-table .emp { position:sticky; left:0; z-index:2; min-width:185px; background:#fff; text-align:left; }
.roster-table th.emp { z-index:4; background:#f3f6fa; }
.shift-pill { display:inline-flex; min-width:34px; justify-content:center; padding:6px 7px; border-radius:8px; cursor:pointer; font-size:9px; font-weight:950; }
.roster-mobile-list { display:none; }
.roster-summary-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; }
.roster-summary-card,.roster-day-card,.roster-employee-card { min-width:0; padding:12px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.roster-employee-head { display:flex; justify-content:space-between; gap:10px; }
.roster-days-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; margin-top:9px; }
.roster-day-num { font-weight:900; }
.summary-mini,.summary-detail { color:var(--muted); font-size:11px; }
.calendar { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:#fff; }
.calendar-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 15px; border-bottom:1px solid var(--line); }
.calendar-title { color:var(--navy-950); font-size:16px; font-weight:900; }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.day-name { padding:9px; color:var(--muted); background:#f3f6fa; font-size:9px; font-weight:900; text-align:center; text-transform:uppercase; }
.day { min-height:96px; padding:7px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); cursor:pointer; background:#fff; }
.day:nth-child(7n) { border-right:0; }
.day.muted { color:#a1acb9; background:#fafbfd; }
.day.today .day-num { display:inline-grid; width:25px; height:25px; place-items:center; border-radius:50%; color:#fff; background:var(--navy-800); }
.day-num { margin-bottom:5px; font-size:11px; font-weight:900; }
.chip { display:block; overflow:hidden; margin-top:4px; padding:5px 6px; border-left:3px solid var(--primary); border-radius:7px; color:var(--navy-700); background:var(--gold-100); font-size:9px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.interview-day-list { display:grid; gap:8px; }
.interview-day-item { display:grid; grid-template-columns:65px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px; border:1px solid var(--line); border-radius:12px; }
.interview-day-time { font-weight:900; }
.interview-day-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.interview-empty { padding:20px; color:var(--muted); text-align:center; }
.qr-list-grid { display:flex; flex-wrap:wrap; gap:8px; }
.qr-card { display:inline-grid; justify-items:center; gap:8px; margin:6px; padding:14px; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow-sm); }
.qr-card canvas,.qr-card img { width:168px; height:168px; object-fit:contain; }
.scanner-layout { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(460px,1.1fr); gap:14px; align-items:start; }
.scan-control-card { min-width:0; overflow:hidden; }
.scan-flow-head { display:flex; align-items:flex-start; justify-content:space-between; gap:11px; margin-bottom:11px; }
.scan-action-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-bottom:10px; }
.scan-camera-tools { display:grid; grid-template-columns:minmax(160px,1fr) repeat(3,auto); gap:8px; align-items:center; margin-bottom:10px; }
.scan-camera-tools .btn { white-space:nowrap; }
.scanner-box { position:relative; min-height:350px; overflow:hidden; border:1px solid #d8e1eb; border-radius:18px; background:var(--navy-950); }
.scanner-box video,.scanner-box canvas { display:block; width:100%; height:100%; object-fit:cover; }
.scanner-status { min-height:350px; display:grid; align-content:center; justify-items:center; gap:8px; padding:22px; color:#fff; text-align:center; }
.scanner-status strong { font-size:19px; }
.scanner-status span { max-width:390px; color:rgba(255,255,255,.68); }
.scanner-loading::before { content:""; width:36px; height:36px; border:4px solid rgba(255,255,255,.2); border-top-color:var(--gold-500); border-radius:50%; animation:scan-spin .85s linear infinite; }
.scanner-error strong { color:#ffb3b5; }
.scan-help-note { margin-top:9px; color:var(--muted); font-size:11px; }
.scan-history-wrap { max-height:445px; }
.scan-history-filters { align-items:stretch; }
.scan-next-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:8px; }
.scan-camera-error-actions { width:min(430px,100%); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:12px; }
.scanner-error .scan-camera-error-actions .btn { min-width:0; color:var(--navy-900); background:#fff; border-color:rgba(255,255,255,.22); }
.scanner-error .scan-camera-error-actions .btn.primary { color:#fff; background:var(--navy-800); }
.scan-success-card { color:var(--text); background:linear-gradient(180deg,#fff,#f7fbff); }
.scan-success-card span { color:var(--muted); }
.scan-success-icon { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; color:var(--success); background:var(--success-bg); font-size:32px; font-weight:950; }
.scan-success-name { font-size:18px; font-weight:950; }
.android-scan-overlay { position:absolute; inset:0; z-index:4; display:grid; place-items:center; pointer-events:none; }
.android-scan-frame { position:relative; width:min(68vw,330px); aspect-ratio:1; border:1px solid rgba(255,255,255,.28); border-radius:20px; box-shadow:0 0 0 999px rgba(3,12,24,.42); }
.android-scan-frame span { position:absolute; width:42px; height:42px; border-color:var(--gold-300); border-style:solid; }
.android-scan-frame span:nth-child(1){top:-2px;left:-2px;border-width:4px 0 0 4px;border-radius:16px 0 0}.android-scan-frame span:nth-child(2){top:-2px;right:-2px;border-width:4px 4px 0 0;border-radius:0 16px 0 0}.android-scan-frame span:nth-child(3){bottom:-2px;left:-2px;border-width:0 0 4px 4px;border-radius:0 0 0 16px}.android-scan-frame span:nth-child(4){right:-2px;bottom:-2px;border-width:0 4px 4px 0;border-radius:0 0 16px}
.android-scan-hint { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100% - 32px); padding:8px 12px; border-radius:999px; color:#fff; background:rgba(7,24,46,.72); font-size:11px; font-weight:800; }
.canteen-scan-back { display:none; }
#canteenScanModeBadge[data-mode="scanning"]{color:#155c9d;background:#eaf3ff;border-color:#cbdff6}#canteenScanModeBadge[data-mode="success"]{color:var(--success);background:var(--success-bg);border-color:#c7ead5}#canteenScanModeBadge[data-mode="error"]{color:var(--danger);background:var(--danger-bg);border-color:#f1cbcd}#canteenScanModeBadge[data-mode="saving"],#canteenScanModeBadge[data-mode="loading"],#canteenScanModeBadge[data-mode="confirm"]{color:var(--warning);background:var(--warning-bg);border-color:#efdfaa}
body.canteen-scan-camera-mode { overflow:hidden; background:var(--navy-950); }
body.canteen-scan-camera-mode #page-scan { position:fixed; inset:0; z-index:3000; display:block; max-width:none; margin:0; background:var(--navy-950); }
body.canteen-scan-camera-mode #page-scan>.page-head,body.canteen-scan-camera-mode #page-scan>.scanner-layout>.card:not(.scan-control-card){display:none}
body.canteen-scan-camera-mode #page-scan>.scanner-layout { display:block; height:100%; }
body.canteen-scan-camera-mode #page-scan .scan-control-card { position:fixed; inset:0; display:flex; flex-direction:column; gap:10px; padding:calc(66px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px)); border:0; border-radius:0; background:var(--navy-950); box-shadow:none; }
body.canteen-scan-camera-mode #page-scan .scan-flow-head,body.canteen-scan-camera-mode #page-scan .scan-action-grid,body.canteen-scan-camera-mode #page-scan .scan-help-note { display:none; }
body.canteen-scan-camera-mode #page-scan .scan-camera-tools { position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom,0px)); z-index:3010; grid-template-columns:repeat(3,1fr); margin:0; padding:8px; border:1px solid rgba(255,255,255,.13); border-radius:17px; background:rgba(7,24,46,.82); backdrop-filter:blur(14px); }
body.canteen-scan-camera-mode #page-scan .scan-camera-tools select { display:none; }
body.canteen-scan-camera-mode #page-scan .scan-camera-tools .btn { min-width:0; min-height:42px; padding:8px 5px; color:#fff; border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.08); font-size:10px; }
body.canteen-scan-camera-mode #qrScanner { flex:1 1 auto; min-height:0; width:100%; border:0; border-radius:22px; background:#020b16; }
body.canteen-scan-camera-mode #qrScanner video,body.canteen-scan-camera-mode #qrScanner canvas { width:100%; height:100%; min-height:calc(100dvh - 155px); border-radius:22px; object-fit:cover; }
body.canteen-scan-camera-mode .canteen-scan-back { position:fixed; top:calc(12px + env(safe-area-inset-top,0px)); left:12px; z-index:3020; display:inline-flex; min-height:42px; padding-inline:13px; color:#fff; border-color:rgba(255,255,255,.15); border-radius:999px; background:rgba(7,24,46,.76); backdrop-filter:blur(12px); }
.scan-confirm-backdrop { position:fixed; inset:0; z-index:5000; display:none; align-items:flex-end; justify-content:center; padding:18px 14px calc(18px + env(safe-area-inset-bottom,0px)); background:rgba(2,11,22,.6); backdrop-filter:blur(8px); }
.scan-confirm-backdrop.show { display:flex; }
.scan-confirm-card { width:min(430px,100%); padding:20px; border:1px solid rgba(255,255,255,.72); border-radius:24px; background:#fff; box-shadow:var(--shadow-lg); text-align:center; animation:scan-confirm-in .2s ease-out; }
.scan-confirm-icon { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 12px; border-radius:18px; color:var(--navy-950); background:linear-gradient(145deg,var(--gold-100),var(--gold-500)); }
.scan-confirm-icon svg { width:29px; height:29px; }
.scan-confirm-card h3 { margin:0; color:var(--navy-950); font-size:20px; }
.scan-confirm-card p { margin:6px 0 0; color:var(--muted); font-size:12px; }
.scan-confirm-employee { display:grid; gap:4px; margin:15px 0; padding:14px; border:1px solid var(--line); border-radius:16px; background:var(--surface-soft); }
.scan-confirm-employee strong { color:var(--navy-950); font-size:18px; }
.scan-confirm-employee span { color:var(--muted); font-size:12px; }
.scan-confirm-actions { display:grid; grid-template-columns:.8fr 1.2fr; gap:9px; }
@keyframes scan-confirm-in{from{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scan-spin{to{transform:rotate(360deg)}}
.record-page { min-width:0; }
.landscape-record-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
.record-card { min-width:0; display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; padding:11px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.record-card img { width:92px; height:92px; border-radius:12px; object-fit:cover; }
.record-map { display:inline-flex; margin-top:5px; font-size:11px; font-weight:750; }
.record-modal-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(270px,.8fr); gap:14px; }
.record-capture-panel,.record-input-panel { min-width:0; padding:12px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.record-live-meta { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:9px; }
.record-live-meta span { display:grid; padding:9px; border-radius:11px; background:var(--surface-soft); }
.record-live-meta b { font-size:16px; }.record-live-meta small { color:var(--muted); }
#recordVideo,.record-photo-preview { width:100%; aspect-ratio:4/3; display:block; border-radius:13px; background:var(--navy-950); object-fit:cover; }
.record-input-panel { display:flex; flex-direction:column; gap:11px; }
.review-landscape-grid { display:grid; grid-template-columns:minmax(350px,.85fr) minmax(440px,1.15fr); gap:13px; }
.review-landscape-grid>.card { display:flex; align-items:flex-start; gap:12px; }
.section-card-icon { width:46px; height:46px; flex:0 0 46px; display:grid; place-items:center; border-radius:14px; color:var(--navy-950); background:linear-gradient(145deg,var(--gold-100),var(--gold-500)); font-size:11px; font-weight:950; }
.section-card-content { min-width:0; flex:1; }.section-scroll-list { max-height:360px; overflow:auto; padding-right:4px; }.compact-remark-summary { display:grid; gap:8px; }
.bar-row { display:grid; grid-template-columns:minmax(90px,.8fr) minmax(120px,1.2fr) 45px; gap:8px; align-items:center; }.bar-track { height:9px; overflow:hidden; border-radius:999px; background:var(--surface-muted); }.bar-fill { height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--navy-700),var(--gold-500)); }
.settings-stack,.compact-settings-grid { display:grid; grid-template-columns:1fr; gap:11px; }
.setting-section-card { display:grid; grid-template-columns:minmax(230px,300px) minmax(0,1fr); gap:14px; padding:14px; }
.setting-section-head { min-width:0; display:grid; grid-template-columns:46px minmax(0,1fr); align-content:start; gap:9px; padding-right:14px; border-right:1px solid var(--line); }
.setting-section-head>button { grid-column:1/-1; justify-self:start; }.setting-section-head h3 { margin:2px 0; }.setting-section-head p { margin:2px 0; }
.setting-section-body { min-width:0; display:flex; flex-direction:column; justify-content:center; }
.setting-section-list,.category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:275px; overflow:auto; padding:1px 4px 1px 1px; }
.user-card,.category-card { min-width:0; display:flex; align-items:center; gap:9px; padding:10px; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); }
.user-avatar { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--navy-700); font-size:10px; font-weight:900; }
.user-card-main,.category-card-main { min-width:0; flex:1; }.user-card .actions,.category-card .actions { margin-left:auto; flex:0 0 auto; }.category-sample { display:inline-flex; padding:7px 9px; border-radius:8px; font-weight:900; }
.setting-summary-row { display:grid; gap:4px; padding:12px; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); }.setting-summary-row strong { font-size:17px; }.setting-summary-row span,.setting-summary-row small { color:var(--muted); }
.keyword-preview { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }.keyword-chip { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border:1px solid var(--line); border-radius:999px; color:#45566d; background:#f3f6fa; font-size:11px; }
.shift-select-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:9px; }.shift-choice { padding:12px; border:1px solid var(--line); border-radius:13px; cursor:pointer; background:#fff; text-align:left; }.shift-choice:hover,.shift-choice.active { border-color:var(--primary-dark); box-shadow:0 0 0 3px rgba(214,181,90,.18); }.shift-choice-code { display:inline-flex; margin-bottom:8px; padding:7px 9px; border-radius:8px; font-weight:950; }
.permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.check { display:flex; align-items:center; gap:7px; padding:8px; border:1px solid var(--line); border-radius:10px; background:#fff; }.check input { width:auto; min-height:auto; }.permission-icon { width:18px; height:18px; display:inline-grid; }.permission-icon svg { width:18px; height:18px; }
.document-folder { margin-bottom:13px; border:1px solid var(--line); border-radius:16px; background:#fff; }.document-folder-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border-bottom:1px solid var(--line); }.document-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:9px; padding:12px; }.document-card { min-width:0; padding:11px; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); }.document-icon { width:38px; height:38px; display:grid; place-items:center; margin-bottom:8px; border-radius:11px; color:var(--navy-950); background:var(--gold-100); font-weight:900; }
.login-screen { position:fixed; inset:0; z-index:8000; display:none; place-items:center; padding:20px; background:radial-gradient(circle at top right,rgba(214,181,90,.26),transparent 34%),linear-gradient(145deg,#eef3f9,#fff); }.login-screen.show { display:grid; }.login-card { width:min(420px,100%); padding:25px; border:1px solid #fff; border-radius:25px; background:#fff; box-shadow:var(--shadow-lg); }.login-card .brand { color:var(--navy-950); }.login-card .brand span { color:var(--muted); }
.modal-backdrop { position:fixed; inset:0; z-index:6000; display:none; align-items:center; justify-content:center; padding:18px; background:rgba(4,16,31,.62); backdrop-filter:blur(7px); }.modal-backdrop.show { display:flex; }.modal { width:min(860px,calc(100vw - 28px)); max-height:90vh; overflow:hidden; border:1px solid rgba(255,255,255,.65); border-radius:22px; background:#fff; box-shadow:var(--shadow-lg); }.modal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:15px 18px; color:#fff; background:linear-gradient(135deg,var(--navy-950),var(--navy-800)); }.modal-head h3 { margin:0; }.close { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.14); border-radius:10px; cursor:pointer; color:#fff; background:rgba(255,255,255,.09); font-size:19px; }.modal-body { max-height:calc(90vh - 64px); overflow:auto; padding:17px; background:#fbfcfe; }.modal-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:15px; }.manual-scan-modal,.rating-label-form { display:grid; gap:12px; }.modal-info-banner,.sync-result-card { display:grid; gap:4px; padding:11px; border:1px solid var(--line); border-radius:13px; background:#f3f7fb; }.modal-info-banner span,.sync-result-card span { color:var(--muted); }
.canteen-scan-choice { display:grid; gap:14px; }
.scan-choice-intro { display:grid; gap:4px; padding:2px 2px 4px; }
.scan-choice-intro strong { color:var(--navy-950); font-size:17px; }
.scan-choice-intro span { color:var(--muted); font-size:12px; line-height:1.5; }
.scan-choice-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.scan-choice-option { min-width:0; display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:11px; padding:14px; border:1px solid var(--line); border-radius:16px; cursor:pointer; color:var(--navy-950); background:#fff; text-align:left; box-shadow:0 5px 16px rgba(7,24,46,.06); }
.scan-choice-option:hover,.scan-choice-option:focus-visible { border-color:var(--gold-500); box-shadow:0 0 0 3px rgba(214,181,90,.16),0 8px 22px rgba(7,24,46,.09); outline:0; }
.scan-choice-option:active { transform:translateY(1px); }
.scan-choice-option > span:nth-child(2) { min-width:0; display:grid; gap:3px; }
.scan-choice-option strong { font-size:14px; }
.scan-choice-option small { color:var(--muted); font-size:11px; line-height:1.35; }
.scan-choice-option > b { color:#8a98a8; font-size:23px; font-weight:500; }
.scan-choice-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; color:var(--navy-950); background:linear-gradient(145deg,#fff5ca,var(--gold-500)); }
.scan-choice-option.is-manual .scan-choice-icon { color:#fff; background:linear-gradient(145deg,var(--navy-700),var(--navy-950)); }
.scan-choice-icon svg { width:23px; height:23px; display:block; }
.scan-choice-cancel { width:100%; }
body.modal-open,body.mobile-menu-open { overflow:hidden; }
.toast { position:fixed; right:16px; bottom:16px; z-index:9000; display:none; max-width:min(420px,calc(100vw - 24px)); padding:11px 14px; border:1px solid rgba(255,255,255,.11); border-radius:12px; color:#fff; background:var(--navy-950); box-shadow:var(--shadow-md); font-size:12px; word-break:break-word; }.toast.show { display:block; }
.mobile-nav,.mobile-menu-backdrop { display:none; }
@media(max-width:1180px){:root{--sidebar-width:244px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-layout{grid-template-columns:1fr}.review-landscape-grid{grid-template-columns:1fr}.landscape-record-list{grid-template-columns:1fr}.setting-section-card{grid-template-columns:220px minmax(0,1fr)}.setting-section-list,.category-grid{grid-template-columns:1fr}}
@media (max-width: 900px) {
  .app {
    display: block;
    min-height: 100dvh;
    padding-bottom: calc(var(--mobile-nav-height) + 20px + env(safe-area-inset-bottom, 0px));
  }
  .sidebar { display: none; }
  .main {
    padding: 0 12px calc(var(--mobile-nav-height) + 28px + env(safe-area-inset-bottom, 0px));
  }
  .topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    margin: 0 -12px 14px;
    padding: calc(9px + env(safe-area-inset-top, 0px)) 12px 9px;
    border-bottom: 1px solid rgba(220, 228, 237, .88);
    background: rgba(246, 248, 251, .92);
    backdrop-filter: blur(14px);
  }
  .topbar-actions { margin-left: auto; }
  .profile > div:first-child { display: none; }
  .mobile-logout { display: none; }
  .page-head { align-items: flex-start; }
  .page-head h1 { font-size: 27px; }
  .card { padding: 14px; border-radius: 18px; }
  .dashboard-detail, .report-grid, .report-two { grid-template-columns: 1fr; }
  .setting-section-card { grid-template-columns: 1fr; }
  .setting-section-head {
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 0 0 12px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .setting-section-list, .category-grid { max-height: none; overflow: visible; }
  .record-modal-layout { grid-template-columns: 1fr; }
  .review-landscape-grid > .card { display: grid; grid-template-columns: 44px minmax(0, 1fr); }

  /* Regenerated Android navigation: one fixed row, five deterministic slots. */
  .mobile-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2500;
    height: calc(var(--mobile-nav-height) + env(safe-area-inset-bottom, 0px));
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-template-rows: var(--mobile-nav-height);
    align-items: end;
    gap: 2px;
    overflow: visible;
    padding: 6px 7px calc(5px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid rgba(207, 216, 227, .94);
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -8px 26px rgba(7, 24, 46, .10);
    backdrop-filter: blur(18px);
    isolation: isolate;
  }
  body.login-active .mobile-nav,
  body.canteen-scan-camera-mode .mobile-nav { display: none; }

  .mobile-nav-btn,
  .mobile-nav-spacer {
    grid-row: 1;
    min-width: 0;
    width: 100%;
  }
  .mobile-nav-btn {
    position: relative;
    align-self: end;
    height: 62px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 0;
    padding: 5px 3px 4px;
    border: 0;
    border-radius: 15px;
    cursor: pointer;
    color: #748397;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    touch-action: manipulation;
  }
  .mobile-nav-btn:active { background: #f0f3f7; }
  .mobile-nav-icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: currentColor;
  }
  .mobile-nav-icon svg {
    width: 20px;
    height: 20px;
    display: block;
  }
  .mobile-nav-btn small {
    display: block;
    width: 100%;
    min-height: 11px;
    overflow: hidden;
    color: inherit;
    font-size: 9px;
    font-weight: 760;
    line-height: 1.1;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mobile-nav-btn.active:not(.is-primary) {
    color: var(--navy-900);
    background: #eef3f8;
  }
  .mobile-nav-btn.active:not(.is-primary)::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    width: 24px;
    height: 3px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: var(--gold-500);
  }

  .mobile-nav-btn.is-primary {
    align-self: end;
    height: 72px;
    gap: 2px;
    padding: 0 2px 2px;
    color: var(--navy-950);
    background: transparent;
    transform: translateY(-9px);
  }
  .mobile-nav-btn.is-primary:active { background: transparent; }
  .mobile-nav-btn.is-primary .mobile-nav-icon {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    border: 4px solid #fff;
    border-radius: 50%;
    color: var(--navy-950);
    background: linear-gradient(145deg, #fff4c7, var(--gold-500));
    box-shadow: 0 8px 20px rgba(7, 24, 46, .20), 0 0 0 1px rgba(182, 146, 53, .16);
  }
  .mobile-nav-btn.is-primary .mobile-nav-icon svg { width: 23px; height: 23px; }
  .mobile-nav-btn.is-primary small {
    min-height: 10px;
    color: var(--navy-900);
    font-size: 8.8px;
    font-weight: 900;
  }
  .mobile-nav-btn.is-more .mobile-nav-icon { background: #f1f4f8; }
  .mobile-nav-btn.is-more.active { color: var(--navy-900); background: #eef3f8; }
  .mobile-nav-btn.is-more.active .mobile-nav-icon { background: var(--gold-100); }

  .mobile-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 4200;
    display: none;
    align-items: flex-end;
    padding: 14px 10px calc(14px + env(safe-area-inset-bottom, 0px));
    background: rgba(2, 11, 22, .56);
    backdrop-filter: blur(6px);
  }
  .mobile-menu-backdrop.show { display: flex; }
  .mobile-menu-sheet {
    width: 100%;
    max-height: min(76dvh, 620px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .72);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--shadow-lg);
    animation: mobile-sheet-in .2s ease-out;
  }
  .mobile-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 15px 16px 11px;
    border-bottom: 1px solid var(--line);
  }
  .mobile-menu-head h3 { margin: 0; font-size: 17px; }
  .mobile-menu-close {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 10px;
    cursor: pointer;
    color: var(--navy-800);
    background: var(--surface-muted);
    font-size: 19px;
  }
  .mobile-menu-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    max-height: calc(76dvh - 138px);
    overflow: auto;
    padding: 12px;
  }
  .mobile-menu-page {
    min-width: 0;
    min-height: 78px;
    display: grid;
    align-content: center;
    justify-items: center;
    gap: 6px;
    padding: 9px 5px;
    border: 1px solid var(--line);
    border-radius: 14px;
    cursor: pointer;
    color: var(--navy-800);
    background: var(--surface-soft);
    text-align: center;
  }
  .mobile-menu-page.active { border-color: var(--primary-dark); background: var(--gold-100); }
  .mobile-menu-page .mobile-nav-icon { width: 31px; height: 31px; color: var(--navy-800); }
  .mobile-menu-page small {
    max-width: 100%;
    overflow: hidden;
    font-size: 9px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .mobile-menu-footer { padding: 0 12px 12px; }
  .mobile-menu-footer .btn { width: 100%; }
  @keyframes mobile-sheet-in {
    from { transform: translateY(24px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
  }
  .toast {
    left: 12px;
    right: 12px;
    bottom: calc(var(--mobile-nav-height) + 22px + env(safe-area-inset-bottom, 0px));
    max-width: none;
  }
  body.canteen-scan-camera-mode .toast { bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 900px) {
  .modal-backdrop.scan-choice-backdrop { align-items:flex-end; padding:0; }
  .modal.scan-choice-sheet { width:100%; max-width:560px; max-height:none; margin:0; border:0; border-radius:24px 24px 0 0; box-shadow:0 -14px 36px rgba(3,15,30,.22); }
  .modal.scan-choice-sheet .modal-head { padding:14px 17px 12px; border-radius:24px 24px 0 0; }
  .modal.scan-choice-sheet .modal-body { max-height:none; padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px)); }
  .scan-choice-options { grid-template-columns:1fr; }
  .scan-choice-option { min-height:78px; padding:13px; }
}
@media(max-width:640px){.page-head{flex-direction:column;gap:11px}.page-head .actions,.page-head .export-actions{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.page-head .actions .btn,.page-head .export-actions .btn{flex:0 0 auto;white-space:nowrap}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card{padding:12px}.stat-value{font-size:26px}.toolbar{align-items:stretch}.filters{width:100%;display:grid;grid-template-columns:1fr}.filters input,.filters select,.filters .btn{width:100%}.scan-action-grid,.scan-next-actions{grid-template-columns:1fr}.scan-camera-tools{grid-template-columns:1fr 1fr}.scan-camera-tools select{grid-column:1/-1}.scan-camera-error-actions{grid-template-columns:1fr}.scanner-status,.scanner-box{min-height:310px}.calendar-grid{min-width:620px}.calendar{overflow-x:auto}.modal{width:calc(100vw - 16px);max-height:92dvh}.modal-body{max-height:calc(92dvh - 62px);padding:13px}.modal-form,.permission-grid{grid-template-columns:1fr}.modal-actions{position:sticky;bottom:-13px;margin:5px -13px -13px;padding:11px 13px;border-top:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(10px)}.record-card{grid-template-columns:74px minmax(0,1fr)}.record-card img{width:74px;height:74px}.mobile-menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.scan-confirm-actions{grid-template-columns:1fr}}
@media (max-width: 390px) {
  .main { padding-inline: 9px; }
  .topbar { margin-inline: -9px; padding-inline: 9px; }
  .mobile-nav { gap: 0; padding-inline: 4px; }
  .mobile-nav-btn { padding-inline: 1px; }
  .mobile-nav-btn small { font-size: 8.2px; }
  .mobile-nav-btn.is-primary small { font-size: 8px; }
  .mobile-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto;animation-duration:.001ms;animation-iteration-count:1;transition-duration:.001ms}}
@media print{.sidebar,.topbar,.mobile-nav,.mobile-menu-backdrop,.toast,.export-actions,.page-head .actions{display:none}.app{display:block}.main{padding:0}.page{display:none}.page.active{display:block}.card,.stat-card,.report-card{box-shadow:none;break-inside:avoid}}


/* v10.5 explicit QR Kantin eligibility */
.employee-qr-toggle { display:flex; align-items:flex-start; gap:12px; padding:14px 15px; border:1px solid #bfd4ea; border-radius:14px; background:linear-gradient(180deg,#f7fbff,#eef6fd); cursor:pointer; }
.employee-qr-toggle input { width:20px; height:20px; min-height:20px; margin-top:1px; flex:0 0 auto; accent-color:var(--navy-800); }
.employee-qr-toggle span { display:grid; gap:4px; line-height:1.35; }
.employee-qr-toggle strong { color:var(--navy-950); font-size:14px; }
.employee-qr-toggle small { color:var(--muted); font-weight:600; }
.qr-empty-state { min-height:210px; display:grid; place-items:center; align-content:center; gap:9px; padding:28px; text-align:center; border:1px dashed #b9cbe0; border-radius:18px; background:#f8fbfe; }
.qr-empty-state strong { color:var(--navy-950); font-size:18px; }
.qr-empty-state span { max-width:520px; color:var(--muted); line-height:1.5; }
.success-badge { background:#e7f8ed !important; color:#18763a !important; border-color:#bfe7cc !important; }

/* v11 multi-tenant company switcher */
.tenant-switcher-wrap{display:flex;align-items:center;gap:8px;padding:6px 9px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:230px}
.tenant-switcher-label{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.tenant-switcher-wrap select{min-height:34px;padding:5px 30px 5px 9px;border:0;background-color:transparent;font-weight:800;color:var(--ink);max-width:220px}
.side-tenant-name{display:block;margin-top:4px;color:rgba(255,255,255,.86);font-size:11px;font-weight:800;line-height:1.35}
.tenant-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.tenant-access-check{align-items:flex-start;padding:11px}
.tenant-access-check>span{display:grid;gap:2px;min-width:0}
.tenant-access-check strong{font-size:12px;color:var(--ink)}
.tenant-access-check small{font-size:10px;color:var(--muted);font-weight:800;letter-spacing:.06em}
.tenant-badge-row{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}
.tenant-badge{background:rgba(23,48,91,.08);border-color:rgba(23,48,91,.16);color:#17305b}
@media(max-width:900px){.tenant-switcher-wrap{min-width:0;max-width:210px}.tenant-switcher-label{display:none}.tenant-switcher-wrap select{max-width:180px}.topbar-actions{gap:7px}}
@media(max-width:640px){.tenant-switcher-wrap{position:absolute;left:12px;right:12px;top:58px;max-width:none;width:auto;z-index:3}.tenant-switcher-wrap select{max-width:none;width:100%}.topbar{padding-bottom:58px}.tenant-permission-grid{grid-template-columns:1fr}}

/* v11.2 tenant access manager */
.tenant-access-check.is-inactive{opacity:.62}
.tenant-master-card .user-avatar{font-size:12px;font-weight:900;letter-spacing:.04em}
.tenant-current-badge{margin-left:6px;background:#e8f7ef;color:#177245;border-color:#bfe8d0}


/* v11.3.5 - autocomplete dropdown untuk Input Manual Scan Kantin */
.manual-scan-search-field { position:relative; z-index:12; }
.manual-canteen-suggestions { position:absolute; z-index:40; left:0; right:0; top:calc(100% + 6px); max-height:260px; overflow:auto; padding:6px; border:1px solid #cbd8e8; border-radius:13px; background:#fff; box-shadow:0 16px 38px rgba(7,31,57,.18); }
.manual-canteen-suggestions[hidden] { display:none !important; }
.manual-canteen-option { width:100%; display:grid; gap:3px; padding:10px 11px; border:0; border-radius:9px; text-align:left; cursor:pointer; background:transparent; color:var(--ink); font:inherit; }
.manual-canteen-option:hover,.manual-canteen-option.active,.manual-canteen-option[aria-selected="true"] { background:#edf4fb; }
.manual-canteen-option-name { font-weight:900; color:var(--navy-950); }
.manual-canteen-option-meta { font-size:12px; color:var(--muted); }
@media (max-width:700px) {
  .manual-canteen-suggestions { max-height:220px; }
  .manual-canteen-option { padding:11px 10px; }
}
