:root { --gift-green:#293126; --gift-gold:#b98a3c; --gift-gold-soft:#f0e2bd; --gift-copper:#a96342; }
html,body { width:100%; max-width:100%; min-width:0; overflow-x:hidden; }
.app-shell { width:100%; max-width:100%; min-width:0; }
.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; }
button,input,select { font:inherit; }
button { color:inherit; }
.gift-main { padding-bottom:36px; }
.gift-main .topbar { height:88px; align-items:center; }
.gift-breadcrumb { display:block; margin-bottom:3px; color:#9b6f2e; font-size:10px; font-weight:850; letter-spacing:1.35px; }
.gift-main .topbar h1 { font-size:29px; }
.gift-main .topbar p { font-size:14px; }
.gift-main .header-actions { gap:10px; padding-top:5px; }
.gift-main .profile { gap:9px; margin-left:2px; padding-left:14px; }
.gift-main .profile strong { font-size:13px; }
.gift-main .profile small { font-size:11px; }
.gift-access-chip { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 14px; border:1px solid #dccba6; border-radius:11px; color:#796126; background:#fff9ea; font-size:12px; font-weight:800; cursor:pointer; }
.gift-access-chip.is-active { color:#536a38; border-color:#c9d1b0; background:#f2f6e8; }
.gift-access-chip svg { width:17px; height:17px; }
.gift-main .app-launch { gap:8px; min-height:42px; padding:0 14px; border-radius:11px; font-size:12px; }
.gift-main .app-launch svg { width:17px; height:17px; }
.gift-main .moreos-logout-button { min-height:42px; padding:0 14px; border-color:#d9cbb9; border-radius:11px; color:#684c3b; background:#fffaf4; box-shadow:0 3px 10px rgba(83,63,43,.06); font-size:12px; }
.gift-main .moreos-logout-button:hover { transform:translateY(-1px); border-color:#ca9673; background:#fff; box-shadow:0 7px 16px rgba(83,63,43,.1); }
.gift-main .moreos-logout-button:disabled { transform:none; }
.gift-main .moreos-logout-button svg { color:#a55e41; }

.gift-toolbar-top { display:flex; align-items:center; justify-content:space-between; gap:22px; margin:20px 0 14px; padding:21px 23px; border:1px solid #d9cfbd; border-radius:19px; color:#fff; background:radial-gradient(circle at 82% 0,rgba(204,159,77,.24),transparent 30%),linear-gradient(135deg,#283026,#454b32); box-shadow:0 13px 30px rgba(50,55,39,.13); }
.gift-toolbar-top > div > p { max-width:760px; margin:7px 0 0; color:rgba(255,255,255,.78); font-size:13px; line-height:1.5; }
.gift-live-dot { display:inline-flex; align-items:center; gap:7px; color:#f1cf85; font-size:10px; font-weight:850; letter-spacing:1px; text-transform:uppercase; }
.gift-live-dot i { width:7px; height:7px; border-radius:50%; background:#d9ad55; box-shadow:0 0 0 4px rgba(217,173,85,.12); }
.gift-primary-button,.gift-secondary-button,.gift-danger-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 18px; border:0; border-radius:11px; font-size:13px; font-weight:800; cursor:pointer; }
.gift-primary-button { color:#243024; background:#e5bd6b; box-shadow:0 7px 18px rgba(0,0,0,.12); }
.gift-toolbar-top .gift-primary-button { min-height:49px; padding-inline:20px; }
.gift-primary-button:disabled { opacity:.5; cursor:not-allowed; }
.gift-primary-button svg { width:17px; height:17px; }
.gift-secondary-button { color:#544d43; border:1px solid #d8ccbb; background:#fff; }
.gift-danger-button { color:#923c37; border:1px solid #d7aaa6; background:#fff2f0; }

.gift-system-message { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:12px; margin-bottom:14px; padding:13px 15px; border:1px solid #e0d3b8; border-radius:14px; background:#fff9ec; }
.gift-system-message.is-good { border-color:#cad5b4; background:#f2f6ea; }
.gift-system-message.is-error { border-color:#dfb5b0; background:#fff3f1; }
.gift-system-message > span { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; color:#8a6a28; background:#f1e2ba; }
.gift-system-message > span svg { width:20px; height:20px; }
.gift-system-message strong,.gift-system-message p { display:block; margin:0; }
.gift-system-message strong { font-size:13px; }
.gift-system-message p { margin-top:3px; color:var(--muted); font-size:11px; line-height:1.4; }
.gift-system-message button { min-height:42px; padding:0 14px; border:1px solid #d6c29b; border-radius:10px; color:#735b27; background:#fff; font-size:12px; font-weight:750; cursor:pointer; }

.gift-kpi-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.gift-kpi-grid article { display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:12px; min-height:122px; padding:15px; border:1px solid var(--line); border-radius:15px; background:var(--card); box-shadow:0 7px 18px rgba(63,48,30,.045); }
.gift-kpi-grid article.liability { border-color:#d8c497; background:linear-gradient(145deg,#fffdf8,#f8efda); }
.gift-kpi-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; }
.gift-kpi-icon svg { width:22px; height:22px; }
.gift-kpi-icon.gold { color:#82651e; background:#f2e2b8; }.gift-kpi-icon.sand { color:#8d6e4d; background:#f2e5d6; }.gift-kpi-icon.olive { color:#5d6738; background:#e6ebd5; }.gift-kpi-icon.green { color:#477050; background:#dcecdf; }.gift-kpi-icon.muted { color:#68716a; background:#e7ebe8; }.gift-kpi-icon.copper { color:#9b5739; background:#f1dace; }
.gift-kpi-grid small,.gift-kpi-grid strong,.gift-kpi-grid em { display:block; }
.gift-kpi-grid small { min-height:30px; color:#71695f; font-size:11px; font-weight:700; line-height:1.35; }
.gift-kpi-grid strong { margin-top:2px; font-size:26px; line-height:1; }
.gift-kpi-grid em { margin-top:7px; color:#8f877e; font-size:10px; font-style:normal; }

.gift-channel-strip { display:grid; grid-template-columns:1fr 1px 1fr 1px 1fr; align-items:center; margin:12px 0; padding:14px 20px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.gift-channel-strip > div { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:2px 12px; padding:0 18px; }
.gift-channel-strip > div:first-child { padding-left:0; }.gift-channel-strip > div:last-child { padding-right:0; }
.gift-channel-strip span { color:#786e63; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.7px; }
.gift-channel-strip strong { grid-row:1 / span 2; grid-column:2; color:#363229; font-size:24px; }
.gift-channel-strip small { color:#948c82; font-size:10px; }
.gift-channel-strip > i { width:1px; height:36px; background:var(--line); }

.gift-list-panel { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:#fff; box-shadow:0 8px 24px rgba(56,42,26,.05); }
.gift-list-panel > header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 19px 13px; }
.gift-list-panel h2 { margin:2px 0 0; font-size:21px; }.gift-list-panel header p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.gift-list-actions { display:flex; align-items:center; gap:8px; }
.gift-refresh { display:inline-flex; align-items:center; gap:7px; min-height:42px; padding:0 14px; border:1px solid #ddd3c6; border-radius:10px; background:#fff; font-size:12px; font-weight:750; cursor:pointer; }.gift-refresh:disabled { opacity:.45; cursor:not-allowed; }.gift-refresh svg { width:16px; height:16px; }
.gift-reset-button { min-height:42px; padding:0 14px; border:1px solid #e2c2bd; border-radius:10px; color:#8b4540; background:#fff8f6; font-size:12px; font-weight:750; cursor:pointer; }.gift-reset-button:disabled { opacity:.45; cursor:not-allowed; }
.gift-filters { display:grid; grid-template-columns:minmax(270px,1fr) 190px 190px; gap:10px; padding:13px 19px; border-block:1px solid var(--line); background:#fbf8f3; }
.gift-filters label:not(.gift-search) { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:8px; color:#6f675e; font-size:10px; font-weight:800; text-transform:uppercase; }
.gift-filters input,.gift-filters select { width:100%; height:44px; border:1px solid #ddd3c5; border-radius:10px; color:#3e3932; background:#fff; font-size:14px; font-weight:400; line-height:1.35; text-transform:none; }
.gift-search { position:relative; display:block; }.gift-search svg { position:absolute; z-index:1; top:12px; left:12px; width:19px; height:19px; color:#968c80; }.gift-search input { padding:0 13px 0 41px; }
.gift-filters select { padding:0 9px; }
.gift-table-wrap { overflow:auto; }
.gift-table-wrap table { width:100%; min-width:1080px; border-collapse:collapse; }
.gift-table-wrap th { padding:12px 14px; color:#7c7369; background:#fff; font-size:10px; font-weight:800; letter-spacing:.65px; text-align:left; text-transform:uppercase; }
.gift-table-wrap td { padding:15px 14px; border-top:1px solid #eee6dc; color:#4f4941; font-size:12px; vertical-align:middle; }
.gift-table-wrap tbody tr:not(.gift-empty-row) { cursor:pointer; transition:background .16s; }.gift-table-wrap tbody tr:not(.gift-empty-row):hover { background:#fdf9f2; }
.gift-code { color:#454d2f; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; font-weight:800; letter-spacing:.25px; white-space:nowrap; }
.gift-status { display:inline-flex; align-items:center; gap:6px; padding:6px 9px; border-radius:20px; font-size:10px; font-weight:800; white-space:nowrap; }.gift-status::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }
.gift-status.generated { color:#8b6b46; background:#f3e7d7; }.gift-status.active { color:#5f723c; background:#e8eddc; }.gift-status.reserved { color:#98672a; background:#faebcc; }.gift-status.redeemed { color:#3f7052; background:#dfeee4; }.gift-status.blocked { color:#a24541; background:#f6e0de; }.gift-status.expired { color:#68716b; background:#e9ece9; }
.gift-row-action { display:grid; place-items:center; width:42px; height:42px; border:1px solid #e0d7cb; border-radius:10px; background:#fff; cursor:pointer; }.gift-row-action svg { width:17px; height:17px; }
.gift-empty-row td { height:245px; text-align:center; }.gift-empty-row span { display:grid; place-items:center; width:50px; height:50px; margin:0 auto 9px; border-radius:15px; color:#8d7132; background:#f2e5c6; }.gift-empty-row span svg { width:24px; height:24px; }.gift-empty-row strong { display:block; font-size:17px; font-weight:700; line-height:1.2; }.gift-empty-row p { margin:6px 0 0; color:var(--muted); font-size:12px; }
.gift-list-panel > footer { display:flex; justify-content:space-between; gap:20px; padding:12px 19px; border-top:1px solid var(--line); color:#847c73; background:#fcfaf6; font-size:11px; }
.gift-load-more { min-height:40px; padding:0 14px; border:1px solid #d9c9ad; border-radius:999px; color:#5a603d; background:#fffaf1; font:inherit; font-weight:800; cursor:pointer; }

.gift-dialog { width:min(650px,calc(100% - 30px)); max-height:calc(100dvh - 30px); overflow:auto; padding:0; border:0; border-radius:20px; color:#302c26; background:#fffdf9; box-shadow:0 28px 80px rgba(39,31,21,.28); }.gift-dialog::backdrop { background:rgba(38,35,29,.54); backdrop-filter:blur(5px); }
.gift-dialog-shell { display:block; margin:0; padding:22px; }.gift-dialog-shell > header { display:grid; grid-template-columns:45px 1fr 38px; align-items:center; gap:11px; margin-bottom:18px; }.gift-dialog-shell > header > span { display:grid; place-items:center; width:45px; height:45px; border-radius:13px; color:#856723; background:#f0e0b6; }.gift-dialog-shell > header > span svg { width:23px; height:23px; }.gift-dialog-shell header small { color:#9a712f; font-size:10px; font-weight:850; letter-spacing:1.1px; }.gift-dialog-shell h2 { margin:1px 0 0; font-size:25px; font-weight:700; line-height:1.1; }.gift-dialog-shell > p { color:var(--muted); font-size:12px; line-height:1.55; }
.gift-dialog-close { display:grid; place-items:center; width:42px; height:42px; border:0; border-radius:50%; background:#f2ede6; cursor:pointer; }.gift-dialog-close svg { width:18px; height:18px; }
.gift-dialog-shell > label,.gift-form-grid label { display:grid; gap:7px; color:#504a42; font-size:13px; font-weight:650; line-height:1.35; }.gift-dialog-shell input,.gift-dialog-shell select { width:100%; height:50px; padding:0 14px; border:1px solid #ded2c1; border-radius:10px; color:#302c26; background:#fff; font-size:16px; font-weight:400; line-height:1.4; letter-spacing:0; text-transform:none; }.gift-dialog-shell input::placeholder { color:#8a8278; font-weight:400; opacity:1; }
.gift-dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }.gift-dialog-status { min-height:16px; margin:8px 0 0!important; color:#a1423e!important; }.gift-dialog-status.is-good { color:#58733b!important; }
.gift-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }.gift-form-grid .wide { grid-column:1/-1; }
.gift-dialog-shell select:disabled { color:#5e5549; border-color:#ddd2bf; background:#f3eee5; cursor:not-allowed; opacity:1; }
.gift-product-summary { display:grid; grid-template-columns:43px 1fr; gap:12px; margin-top:17px; padding:14px; border:1px solid #dfd0ad; border-radius:12px; background:#fff8e8; }.gift-product-summary > span { display:grid; place-items:center; width:43px; height:43px; border-radius:11px; color:#816421; background:#f0dfb0; }.gift-product-summary svg { width:22px; height:22px; }.gift-product-summary strong { display:block; font-size:13px; }.gift-product-summary p { margin:4px 0 0; color:#746d64; font-size:11px; line-height:1.45; }
.gift-product-summary.is-restaurant { border-color:#ddbea9; background:#fff4ed; }.gift-product-summary.is-restaurant > span { color:#914f31; background:#f1d5c4; }
.gift-value-options { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }.gift-value-options[hidden] { display:none; }.gift-value-options span { padding:6px 9px; border:1px solid #dbb89f; border-radius:999px; color:#79452e; background:#fffaf6; font-size:11px; font-weight:800; }
.gift-detail-dialog { width:min(760px,calc(100% - 30px)); }.gift-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.gift-detail-grid > div { min-height:78px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fff; }.gift-detail-grid small,.gift-detail-grid strong { display:block; }.gift-detail-grid small { color:#857d74; font-size:10px; font-weight:800; letter-spacing:.65px; text-transform:uppercase; }.gift-detail-grid strong { margin-top:5px; font-size:12px; word-break:break-word; }.gift-history { margin-top:17px; }.gift-history h3 { margin:0 0 9px; font-size:15px; }.gift-history ol { margin:0; padding:0; list-style:none; }.gift-history li { position:relative; display:grid; grid-template-columns:12px 1fr auto; gap:9px; padding:10px 0; border-top:1px solid var(--line); font-size:11px; }.gift-history li::before { content:''; width:8px; height:8px; margin-top:3px; border-radius:50%; background:#9a7b39; }.gift-history li small { color:#817970; }
.gift-export-success { display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; margin-top:13px; padding:14px; border:1px solid #c9d6b2; border-radius:11px; background:#f0f6e7; }.gift-export-success strong,.gift-export-success small { display:block; }.gift-export-success small { margin-top:3px; color:#6f7865; font-size:10px; }
.gift-reset-dialog { width:min(660px,calc(100% - 30px)); }
.gift-reset-dialog .gift-reset-icon { color:#91433e; background:#f5ded9; }
.gift-reset-warning { margin:0 0 18px; padding:16px; border:1px solid #e1beb8; border-radius:13px; background:#fff5f2; }
.gift-reset-warning strong { display:block; color:#7c3733; font-size:14px; line-height:1.4; }
.gift-reset-warning p { margin:7px 0 0; color:#705f59; font-size:12px; line-height:1.55; }
.gift-reset-dialog label b { color:#7c3733; font-weight:850; }

@media (max-width:1320px) { .gift-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.gift-filters { grid-template-columns:1fr 170px 170px; } }
@media (max-width:1050px) { .gift-main { padding-top:12px; }.gift-main .topbar { height:78px; }.gift-kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .gift-main .header-actions .gift-access-chip { display:none; }.gift-main .app-launch { width:42px; min-width:42px; padding:0; justify-content:center; }.gift-main .app-launch span,.gift-main .profile > div:not(.avatar) { display:none; }.gift-main .profile { margin-left:0; padding-left:9px; } }
@media (max-width:760px) { .gift-main .topbar { align-items:flex-start; }.gift-main .header-actions .gift-access-chip,.gift-main .header-actions .app-launch { display:none; }.gift-toolbar-top { align-items:flex-start; flex-direction:column; }.gift-primary-button { width:100%; }.gift-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.gift-channel-strip { grid-template-columns:1fr; gap:8px; }.gift-channel-strip > i { width:100%; height:1px; }.gift-channel-strip > div { padding:3px 0; }.gift-filters { grid-template-columns:1fr 1fr; }.gift-search { grid-column:1/-1; }.gift-system-message { grid-template-columns:38px 1fr; }.gift-system-message button { grid-column:1/-1; }.gift-list-panel > header { align-items:flex-start; }.gift-list-actions { flex-direction:column-reverse; align-items:stretch; }.gift-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:610px) { .gift-main .moreos-logout-button { width:42px; min-width:42px; padding:0; } }
@media (max-width:520px) { .gift-main .topbar { height:70px; }.gift-main .topbar p { display:none; }.gift-main .profile { padding-left:0; border-left:0; }.gift-main .profile > .avatar { display:none; }.gift-toolbar-top { margin-top:13px; padding:17px; }.gift-kpi-grid { grid-template-columns:1fr 1fr; gap:7px; }.gift-kpi-grid article { grid-template-columns:38px 1fr; min-height:110px; padding:12px; }.gift-kpi-icon { width:38px; height:38px; }.gift-kpi-grid small { min-height:28px; font-size:10px; }.gift-kpi-grid strong { font-size:22px; }.gift-kpi-grid em { font-size:9px; }.gift-filters { grid-template-columns:1fr; }.gift-search { grid-column:auto; }.gift-list-panel > footer { flex-direction:column; gap:3px; }.gift-form-grid,.gift-detail-grid { grid-template-columns:1fr; }.gift-form-grid .wide { grid-column:auto; }.gift-dialog-shell { padding:18px; }.gift-dialog-shell input,.gift-dialog-shell select { height:52px; font-size:16px; }.gift-dialog-actions { flex-direction:column-reverse; }.gift-dialog-actions button { width:100%; }.gift-export-success { grid-template-columns:1fr; } }

/* Keep the dashboard canvas tied to the visual viewport on iOS/Safari. */
@media (max-width:1050px) {
  .main-content.gift-main { width:100%; max-width:100%; min-width:0; margin-left:0!important; }
  .gift-main > * { min-width:0; max-width:100%; }
  .gift-list-panel,.gift-table-wrap { width:100%; max-width:100%; min-width:0; }
  .gift-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
}

/* 2026 cadeaukaart refresh: grotere bediening en een rustige centrale administratie. */
.gift-toolbar-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) 180px auto;
  align-items:center;
  min-height:178px;
  padding:28px 30px;
  border-color:#315647;
  border-radius:24px;
  background:#183a2f;
  box-shadow:0 18px 42px rgba(24,58,47,.16);
}
.gift-admin-copy h2{
  max-width:720px;
  margin:8px 0 0;
  color:#fff;
  font-size:clamp(25px,2.3vw,36px);
  line-height:1.12;
}
.gift-toolbar-top .gift-admin-copy>p{font-size:15px;line-height:1.55}
.gift-live-dot{color:#eba9c2;font-size:11px}
.gift-live-dot i{background:#e69ab7;box-shadow:0 0 0 4px rgba(230,154,183,.13)}
.gift-admin-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  aspect-ratio:1.58;
  width:180px;
  padding:17px;
  border:1px solid rgba(233,168,192,.55);
  border-radius:16px;
  background:#0f2b22;
  box-shadow:0 14px 28px rgba(7,24,18,.25);
  transform:rotate(-3deg);
}
.gift-admin-card small{color:#e6a6bf;font-size:9px;font-weight:850;letter-spacing:.15em}
.gift-admin-card strong{color:#fff;font-size:18px;letter-spacing:.035em}
.gift-admin-card span{color:rgba(255,255,255,.64);font-size:8px;letter-spacing:.1em}
.gift-primary-button{
  min-height:52px;
  border:1px solid #c85e87;
  border-radius:14px;
  background:#b94e78;
  color:#fff;
  box-shadow:0 10px 24px rgba(12,34,26,.22);
  font-size:14px;
}
.gift-toolbar-top .gift-primary-button{min-height:54px;padding-inline:22px}
.gift-system-message{min-height:72px;padding:15px 17px;border-radius:16px;background:#fff}
.gift-system-message strong{font-size:15px}.gift-system-message p{font-size:13px}
.gift-system-message>span{color:#41634f;background:#e5eee7}
.gift-kpi-grid{gap:12px}
.gift-kpi-grid article{min-height:132px;padding:18px;border-radius:17px}
.gift-kpi-grid article.liability{border-color:#e4c9d4;background:#fcf3f7}
.gift-kpi-grid small{font-size:12px}.gift-kpi-grid strong{font-size:30px}.gift-kpi-grid em{font-size:11px}
.gift-channel-strip{padding:17px 22px;border-radius:16px}
.gift-channel-strip span,.gift-channel-strip small{font-size:11px}
.gift-list-panel{border-radius:20px}
.gift-list-panel>header{padding:21px 22px 16px}
.gift-list-panel h2{font-size:24px}.gift-list-panel header p{font-size:13px}

@media(max-width:1100px){
  .gift-toolbar-top{grid-template-columns:minmax(0,1fr) auto}
  .gift-admin-card{display:none}
}
@media(max-width:760px){
  .gift-toolbar-top{display:flex;min-height:0;padding:23px}
  .gift-admin-copy h2{font-size:27px}
  .gift-toolbar-top .gift-admin-copy>p{font-size:14px}
}
@media(max-width:520px){
  .gift-toolbar-top{padding:20px 18px}
  .gift-kpi-grid article{min-height:118px;padding:14px}
  .gift-kpi-grid small{font-size:11px}
  .gift-kpi-grid strong{font-size:25px}
}
