:root,[data-theme=light]{--bg:#f5f7f6;--surface:#fff;--surface-raised:#fff;--surface-sunken:#eef1ef;--border:#dee2e6;--border-strong:#868e96;--ink:#212529;--ink-muted:#5f6770;--chrome:#595a5b;--on-chrome:#fff;--primary:#198754;--primary-hover:#157347;--primary-active:#146c43;--on-primary:#fff;--primary-text:#146c43;--primary-subtle:#e3f1ea;--focus-ring:#0f5132;--success:#198754;--success-subtle:#d1e7dd;--success-ink:#0f5132;--danger:#dc3545;--on-danger:#fff;--danger-subtle:#f8d7da;--danger-ink:#842029;--warning:#ffc107;--on-warning:#212529;--warning-subtle:#fff3cd;--warning-ink:#664d03;--info:#0dcaf0;--on-info:#212529;--info-subtle:#cff4fc;--info-ink:#055160;--app-kantine:#198754;--app-kantine-subtle:#e3f1ea;--app-wartung:#0a58ca;--app-wartung-subtle:#e3edfb;--app-admin:#595a5b;--app-admin-subtle:#eceeef;--scrim:rgba(0,0,0,.5);--overlay:rgba(0,0,0,.75);--shadow-sm:0 1px 2px rgba(16,24,20,.06),0 1px 3px rgba(16,24,20,.08);--shadow-md:0 8px 16px rgba(16,24,20,.1);--shadow-lg:0 16px 48px rgba(16,24,20,.18)}[data-theme=dark]{--bg:#121417;--surface:#1c1f23;--surface-raised:#26292e;--surface-sunken:#0d0f11;--border:#343a40;--border-strong:#6b737c;--ink:#e6e9ec;--ink-muted:#9aa3ad;--chrome:#26292e;--on-chrome:#e6e9ec;--primary:#4cc38a;--primary-hover:#63cf9b;--primary-active:#3aa874;--on-primary:#06140d;--primary-text:#4cc38a;--primary-subtle:#1d3a2c;--focus-ring:#8fe0b8;--success:#4cc38a;--success-subtle:#1d3a2c;--success-ink:#8fe0b8;--danger:#ff6b78;--on-danger:#1a0507;--danger-subtle:#3d1a1e;--danger-ink:#ffb3ba;--warning:#ffda6a;--on-warning:#1a1400;--warning-subtle:#3a3013;--warning-ink:#ffe08a;--info:#6edff6;--on-info:#04232a;--info-subtle:#123840;--info-ink:#a6ecfa;--app-kantine:#4cc38a;--app-kantine-subtle:#1d3a2c;--app-wartung:#6ea8fe;--app-wartung-subtle:#162a47;--app-admin:#adb5bd;--app-admin-subtle:#2a2e33;--scrim:rgba(0,0,0,.65);--overlay:rgba(0,0,0,.8);--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 8px 16px rgba(0,0,0,.5);--shadow-lg:0 16px 48px rgba(0,0,0,.6)}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--sidebar-width:264px;--rail-width:80px;--drawer-width:300px;--appbar-height:56px;--bottomnav-height:64px;--touch-target:44px;--touch-target-kiosk:56px;--content-max:1280px;--bp-md:768px;--bp-lg:992px;--bp-kiosk:1024px;--bp-xl:1280px;--z-sticky:1000;--z-appbar:1030;--z-backdrop:1070;--z-drawer:1080;--z-overlay:9999;--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif;--font-mono:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:24px;margin:0;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.vf-num{font-variant-numeric:tabular-nums}.vf-muted{color:var(--ink-muted)}[data-app=kantine]{--app-accent:var(--app-kantine);--app-accent-subtle:var(--app-kantine-subtle)}[data-app=wartung]{--app-accent:var(--app-wartung);--app-accent-subtle:var(--app-wartung-subtle)}[data-app=admin]{--app-accent:var(--app-admin);--app-accent-subtle:var(--app-admin-subtle)}.vf-btn{align-items:center;background:var(--surface);border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink);cursor:pointer;display:inline-flex;font:600 15px/20px var(--font-sans);gap:var(--space-2);justify-content:center;min-height:var(--touch-target);padding:0 var(--space-4);text-decoration:none;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,transform .1s ease;-moz-user-select:none;user-select:none;-webkit-user-select:none;white-space:nowrap}.vf-btn:active{transform:scale(.98)}.vf-btn[aria-disabled=true],.vf-btn[disabled]{opacity:.5;pointer-events:none}.vf-btn .bi{font-size:18px;line-height:1}.vf-btn--primary{background:var(--primary);color:var(--on-primary)}.vf-btn--primary:hover{background:var(--primary-hover)}.vf-btn--primary:active{background:var(--primary-active)}.vf-btn--outline{border-color:var(--border-strong)}.vf-btn--outline:hover{background:var(--primary-subtle);border-color:var(--primary);color:var(--primary-text)}.vf-btn--ghost{background:transparent;color:var(--ink)}.vf-btn--ghost:hover{background:var(--surface-sunken)}.vf-btn--danger{background:var(--danger);color:var(--on-danger)}.vf-btn--danger-outline{background:var(--surface);border-color:var(--danger);color:var(--danger-ink)}.vf-btn--sm{border-radius:var(--radius-sm);font-size:14px;min-height:36px;padding:0 var(--space-3)}.vf-btn--lg{font-size:17px;min-height:var(--touch-target-kiosk);padding:0 var(--space-5)}.vf-btn--block{display:flex;width:100%}.vf-btn--icon{padding:0;width:var(--touch-target)}.vf-btn--attention{animation:vf-pulse 1.2s ease-in-out infinite;background:var(--danger);color:var(--on-danger)}@keyframes vf-pulse{50%{box-shadow:0 0 0 6px var(--danger-subtle)}}.vf-badge{align-items:center;background:var(--surface-sunken);border-radius:var(--radius-pill);color:var(--ink);display:inline-flex;font:600 12px/16px var(--font-sans);gap:var(--space-1);padding:2px var(--space-2);white-space:nowrap}.vf-badge .bi{font-size:12px}.vf-badge--success{background:var(--success-subtle);color:var(--success-ink)}.vf-badge--danger{background:var(--danger-subtle);color:var(--danger-ink)}.vf-badge--warning{background:var(--warning-subtle);color:var(--warning-ink)}.vf-badge--info{background:var(--info-subtle);color:var(--info-ink)}.vf-badge--solid{background:var(--primary);color:var(--on-primary)}.vf-badge--app{background:var(--app-accent-subtle);color:var(--ink)}.vf-badge--app:before{background:var(--app-accent);border-radius:var(--radius-pill);content:"";height:8px;width:8px}.vf-alert{align-items:flex-start;background:var(--info-subtle);border-radius:var(--radius-md);color:var(--info-ink);display:flex;font-size:15px;gap:var(--space-3);line-height:22px;padding:var(--space-3) var(--space-4)}.vf-alert>.bi{flex:none;font-size:20px;line-height:22px}.vf-alert__body{flex:1;min-width:0}.vf-alert__title{display:block;font-weight:600}.vf-alert__close{background:none;border:0;border-radius:var(--radius-sm);color:inherit;cursor:pointer;flex:none;font-size:16px;height:var(--touch-target);margin:-10px -10px -10px 0;width:var(--touch-target)}.vf-alert--success{background:var(--success-subtle);color:var(--success-ink)}.vf-alert--danger{background:var(--danger-subtle);color:var(--danger-ink)}.vf-alert--warning{background:var(--warning-subtle);color:var(--warning-ink)}.vf-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.vf-card__header{align-items:center;display:flex;gap:var(--space-2);padding:var(--space-4) var(--space-4) 0}.vf-card__title{flex:1;font-size:18px;font-weight:600;line-height:24px;margin:0}.vf-card__body{padding:var(--space-4)}.vf-card--interactive{cursor:pointer;transition:transform .15s ease-in-out,box-shadow .15s ease-in-out}.vf-card--interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.vf-stat{align-items:center;display:flex;gap:var(--space-4);padding:var(--space-4)}.vf-stat__icon{background:var(--app-accent-subtle,var(--primary-subtle));border-radius:var(--radius-md);color:var(--app-accent,var(--primary-text));display:grid;flex:none;font-size:24px;height:52px;place-items:center;width:52px}.vf-stat__icon--warning{background:var(--warning-subtle);color:var(--warning-ink)}.vf-stat__icon--danger{background:var(--danger-subtle);color:var(--danger-ink)}.vf-stat__label{color:var(--ink-muted);font-size:14px;line-height:20px;margin:0}.vf-stat__value{font-size:26px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em;line-height:32px;margin:0}.vf-stat__trend{color:var(--ink-muted);font-size:12px;line-height:16px}.vf-apps{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.vf-app-tile{align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--ink);display:flex;flex-direction:column;gap:var(--space-3);min-height:132px;padding:var(--space-4);text-decoration:none;transition:transform .15s ease-in-out,box-shadow .15s ease-in-out,border-color .15s}.vf-app-tile:hover{border-color:var(--app-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.vf-app-tile__icon{background:var(--app-accent-subtle);border-radius:var(--radius-md);color:var(--app-accent);display:grid;font-size:24px;height:48px;place-items:center;width:48px}.vf-app-tile__name{font-size:17px;font-weight:600;line-height:22px}.vf-app-tile__meta{color:var(--ink-muted);font-size:13px;line-height:18px;margin-top:-8px}.vf-app-tile__count{margin-left:auto}.vf-app-tile__top{align-items:flex-start;display:flex;width:100%}.vf-app{background:var(--bg);container:vf-app/inline-size}.vf-shell{display:grid;grid-template-areas:"appbar" "main" "bottom";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;min-height:100dvh}.vf-shell>.vf-sidebar{display:none;grid-area:nav}.vf-shell>.vf-appbar{grid-area:appbar}.vf-shell>.vf-main{grid-area:main;overflow:auto}.vf-shell>.vf-bottomnav{grid-area:bottom}@container vf-app (min-width: 768px){.vf-shell{grid-template-areas:"nav appbar" "nav main";grid-template-columns:var(--rail-width) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.vf-shell>.vf-sidebar{display:flex}.vf-shell>.vf-bottomnav,.vf-sidebar .vf-nav__count,.vf-sidebar .vf-nav__group-label,.vf-sidebar .vf-nav__label,.vf-sidebar .vf-sidebar__brand-name,.vf-sidebar .vf-sidebar__user-text{display:none}.vf-sidebar .vf-nav__item{justify-content:center;padding:0}.vf-sidebar .vf-nav__group{border-top:1px solid var(--border);padding-top:var(--space-2)}.vf-sidebar .vf-sidebar__brand,.vf-sidebar .vf-sidebar__user{justify-content:center}.vf-appbar__menu{display:none}.vf-main__inner{padding:var(--space-5)}}@container vf-app (min-width: 992px){.vf-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.vf-sidebar .vf-nav__count,.vf-sidebar .vf-nav__label,.vf-sidebar .vf-sidebar__brand-name,.vf-sidebar .vf-sidebar__user-text{display:initial}.vf-sidebar .vf-nav__group-label{display:flex}.vf-sidebar .vf-nav__item{justify-content:flex-start;padding:0 var(--space-3)}.vf-sidebar .vf-nav__group{border-top:0;padding-top:0}.vf-sidebar .vf-sidebar__brand,.vf-sidebar .vf-sidebar__user{justify-content:flex-start}.vf-main__inner{padding:var(--space-6)}}@container vf-app (min-width: 1280px){.vf-main__inner{margin-inline:auto;max-width:var(--content-max)}}.vf-appbar{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;gap:var(--space-2);min-height:calc(var(--appbar-height) + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--space-3) 0;position:sticky;top:0;z-index:var(--z-appbar)}.vf-appbar--chrome{background:var(--chrome);border-bottom-color:transparent;color:var(--on-chrome)}.vf-appbar__title{flex:1;font-size:17px;font-weight:600;line-height:22px;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vf-appbar__app{color:var(--app-accent,var(--ink-muted));display:block;font-size:12px;font-weight:600;letter-spacing:.02em;line-height:14px}.vf-appbar--chrome .vf-appbar__app{color:inherit;opacity:.8}.vf-avatar{background:var(--primary-subtle);border-radius:var(--radius-pill);color:var(--primary-text);display:grid;flex:none;font:700 14px/1 var(--font-sans);height:36px;place-items:center;width:36px}.vf-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:100dvh;overflow-y:auto;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);position:sticky;top:0}.vf-sidebar__brand{align-items:center;color:var(--ink);display:flex;font-size:19px;font-weight:800;gap:var(--space-2);height:var(--appbar-height);letter-spacing:-.02em;padding:0 var(--space-4);text-decoration:none}.vf-wordmark{background:var(--primary);border-radius:var(--radius-sm);color:var(--on-primary);display:grid;flex:none;font:800 14px/1 var(--font-sans);height:32px;letter-spacing:-.04em;place-items:center;width:32px}.vf-sidebar__brand-name b{color:var(--primary-text);font-weight:800}.vf-nav{list-style:none;margin:0;padding:var(--space-2) var(--space-3)}.vf-nav,.vf-nav__group{display:flex;flex-direction:column;gap:2px}.vf-nav__group{margin-top:var(--space-2)}.vf-nav__group-label{align-items:center;color:var(--ink-muted);display:flex;font:700 12px/16px var(--font-sans);gap:var(--space-2);letter-spacing:.05em;padding:var(--space-2) var(--space-3) var(--space-1);text-transform:uppercase}.vf-nav__group-label:before{background:var(--app-accent,var(--border-strong));border-radius:var(--radius-pill);content:"";height:8px;width:8px}.vf-nav__item{align-items:center;border-radius:var(--radius-sm);color:var(--ink);display:flex;font-size:15px;gap:var(--space-3);line-height:20px;min-height:var(--touch-target);padding:0 var(--space-3);text-decoration:none;transition:background-color .15s ease-in-out,color .15s ease-in-out}.vf-nav__item .bi{color:var(--ink-muted);font-size:18px;text-align:center;width:20px}.vf-nav__item:hover{background:var(--surface-sunken)}.vf-nav__item[aria-current=page]{background:var(--primary-subtle);color:var(--primary-text);font-weight:600}.vf-nav__item[aria-current=page] .bi{color:var(--primary-text)}.vf-nav__count{margin-left:auto}.vf-sidebar__user{align-items:center;border-top:1px solid var(--border);display:flex;gap:var(--space-3);margin-top:auto;padding:var(--space-4)}.vf-sidebar__user-text{font-size:14px;line-height:18px;min-width:0}.vf-sidebar__user-text small{color:var(--ink-muted);display:block;font-size:12px}.vf-bottomnav{background:var(--surface);border-top:1px solid var(--border);bottom:0;display:grid;grid-auto-columns:1fr;grid-auto-flow:column;min-height:calc(var(--bottomnav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);position:sticky;z-index:var(--z-appbar)}.vf-bottomnav__item{align-items:center;color:var(--ink-muted);display:flex;flex-direction:column;font:500 12px/16px var(--font-sans);gap:2px;justify-content:center;min-height:var(--bottomnav-height);text-decoration:none}.vf-bottomnav__item .bi{border-radius:var(--radius-pill);display:grid;font-size:20px;height:30px;line-height:1;place-items:center;transition:background-color .15s;width:56px}.vf-bottomnav__item[aria-current=page]{color:var(--primary-text);font-weight:700}.vf-bottomnav__item[aria-current=page] .bi{background:var(--primary-subtle)}.vf-main__inner{padding:var(--space-4)}.vf-page-header{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-5)}.vf-page-header__text{flex:1 1 240px;min-width:0}.vf-page-header__title{font-size:26px;font-weight:650;letter-spacing:-.01em;line-height:32px;margin:0}.vf-page-header__sub{color:var(--ink-muted);font-size:15px;margin:var(--space-1) 0 0}.vf-page-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.vf-breadcrumb{align-items:center;color:var(--ink-muted);display:flex;font-size:13px;gap:var(--space-1);margin-bottom:var(--space-1)}.vf-breadcrumb a{color:var(--primary-text);text-decoration:none}.vf-field{display:flex;flex-direction:column;gap:6px}.vf-label{color:var(--ink);font:600 14px/20px var(--font-sans)}.vf-hint{color:var(--ink-muted);font-size:13px;line-height:18px}.vf-input,.vf-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);font:400 16px/24px var(--font-sans);min-height:var(--touch-target);padding:0 var(--space-3);transition:border-color .15s,box-shadow .15s;width:100%}.vf-select{background-image:linear-gradient(45deg,transparent 50%,var(--ink-muted) 50%),linear-gradient(135deg,var(--ink-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.vf-input::-moz-placeholder{color:var(--ink-muted)}.vf-input::placeholder{color:var(--ink-muted)}.vf-input:focus,.vf-select:focus{border-color:var(--focus-ring);outline:2px solid var(--focus-ring);outline-offset:1px}.vf-field--invalid .vf-input{border-color:var(--danger)}.vf-field--invalid .vf-hint{color:var(--danger-ink)}.vf-search{position:relative}.vf-search .bi{color:var(--ink-muted);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.vf-search .vf-input{border-radius:var(--radius-pill);padding-left:38px}.vf-stepper{align-items:stretch;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.vf-stepper button{background:var(--surface-sunken);border:0;color:var(--ink);cursor:pointer;font-size:22px;min-height:var(--touch-target-kiosk);width:var(--touch-target-kiosk)}.vf-stepper button:active{background:var(--border)}.vf-stepper input{-moz-appearance:textfield;background:var(--surface);border:0;color:var(--ink);font:700 20px/1 var(--font-sans);font-variant-numeric:tabular-nums;text-align:center;width:64px}.vf-stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.vf-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);container:vf-table/inline-size;overflow:hidden}.vf-table{border-collapse:collapse;font-size:15px;line-height:20px;width:100%}.vf-table thead{display:none}.vf-table tr{border-top:1px solid var(--border);display:grid;gap:2px var(--space-3);grid-template-columns:1fr auto;padding:var(--space-3) var(--space-4)}.vf-table tbody tr:first-child{border-top:0}.vf-table td{padding:0}.vf-table td[data-label]:before{color:var(--ink-muted);content:attr(data-label) ": ";font-size:13px}.vf-table td.vf-table__primary{font-size:16px;font-weight:600}.vf-table td.vf-table__primary:before{content:none}.vf-table td.vf-table__end{align-self:center;grid-column:2;grid-row:1/span 3;text-align:right}.vf-table td.vf-table__end:before{content:none}.vf-table tbody tr:hover{background:var(--surface-sunken)}@container vf-table (min-width: 640px){.vf-table thead{display:table-header-group}.vf-table tr{display:table-row}.vf-table th{background:var(--surface-sunken);color:var(--ink-muted);font:700 12px/16px var(--font-sans);letter-spacing:.05em;text-align:left;text-transform:uppercase}.vf-table td,.vf-table th{padding:var(--space-3) var(--space-4)}.vf-table td{border-top:1px solid var(--border)}.vf-table td[data-label]:before{content:none}.vf-table td.vf-table__primary{font-size:15px}.vf-table .vf-num,.vf-table th.vf-num{text-align:right}}.vf-pagination{align-items:center;color:var(--ink-muted);display:flex;flex-wrap:wrap;font-size:14px;gap:var(--space-3);justify-content:space-between}.vf-pagination__pages{display:flex;gap:var(--space-1)}.vf-page{background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--ink);cursor:pointer;display:grid;font:500 14px/1 var(--font-sans);height:40px;min-width:40px;padding:0 var(--space-2);place-items:center;text-decoration:none}.vf-page:hover{background:var(--surface-sunken)}.vf-page[aria-current=page]{background:var(--primary);color:var(--on-primary);font-weight:700}.vf-page--hide-sm{display:none}@media(min-width:576px){.vf-page--hide-sm{display:grid}}.vf-sheet-layer{align-items:flex-end;background:var(--scrim);container:vf-sheet/inline-size;display:flex;inset:0;justify-content:center;position:fixed;z-index:var(--z-drawer)}.vf-sheet{background:var(--surface-raised);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);color:var(--ink);max-height:90dvh;overflow:auto;padding:var(--space-2) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom));width:100%}.vf-sheet:before{background:var(--border-strong);border-radius:var(--radius-pill);content:"";display:block;height:4px;margin:0 auto var(--space-3);width:40px}.vf-sheet__header{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.vf-sheet__title{flex:1;font-size:20px;font-weight:600;line-height:26px;margin:0}.vf-sheet__footer{display:flex;flex-direction:column-reverse;gap:var(--space-2);margin-top:var(--space-5)}@container vf-sheet (min-width: 768px){.vf-sheet-layer>.vf-sheet{align-self:center;border-radius:var(--radius-xl);padding:var(--space-5);width:min(560px,100% - 48px)}.vf-sheet:before{display:none}.vf-sheet__footer{flex-direction:row;justify-content:flex-end}}.vf-overlay{background:var(--overlay);color:#fff;display:grid;inset:0;place-items:center;position:fixed;text-align:center;z-index:var(--z-overlay)}.vf-spinner{animation:vf-spin .8s linear infinite;border:4px solid hsla(0,0%,100%,.25);border-radius:var(--radius-pill);border-top-color:currentcolor;height:48px;margin:0 auto var(--space-3);width:48px}.vf-spinner--inline{border-color:var(--primary-subtle);border-top-color:var(--primary);border-width:2px;display:inline-block;height:20px;margin:0;width:20px}@keyframes vf-spin{to{transform:rotate(1turn)}}.vf-skeleton{animation:vf-shimmer 1.4s ease infinite;background:linear-gradient(90deg,var(--surface-sunken),var(--border),var(--surface-sunken));background-size:200% 100%;border-radius:var(--radius-sm);display:block;height:16px}@keyframes vf-shimmer{to{background-position:-200% 0}}.vf-kiosk{background:var(--bg);container:vf-kiosk/inline-size;display:flex;flex-direction:column;min-height:100dvh;touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none}.vf-kiosk__header{align-items:center;background:var(--chrome);color:var(--on-chrome);display:flex;gap:var(--space-3);min-height:60px;padding:var(--space-2) var(--space-4)}.vf-kiosk__header h1{flex:1;font-size:20px;font-weight:700;line-height:26px;margin:0}.vf-kiosk__main{flex:1;overflow:auto;padding:var(--space-3)}.vf-kiosk__footer{align-items:center;background:var(--chrome);color:var(--on-chrome);display:flex;font-size:12px;justify-content:space-between;line-height:16px;padding:var(--space-1) var(--space-3)}.vf-alpha{display:grid;gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr))}@container vf-kiosk (min-width: 600px){.vf-alpha{grid-template-columns:repeat(6,minmax(0,1fr))}}@container vf-kiosk (min-width: 900px){.vf-alpha{grid-template-columns:repeat(7,minmax(0,1fr))}}.vf-alpha__key{aspect-ratio:4/3;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--ink);cursor:pointer;display:grid;font:600 clamp(18px,2.15cqi,30px)/1 var(--font-sans);min-height:var(--touch-target-kiosk);place-items:center;text-decoration:none;transition:background-color .1s,transform .1s}.vf-alpha__key:active{background:var(--primary-subtle);transform:scale(.97)}.vf-alpha__key--wide{aspect-ratio:auto;font-size:clamp(16px,1.75cqi,24px);gap:var(--space-1);grid-column:span 2}.vf-alpha__key--attention{animation:vf-pulse 1.2s ease-in-out infinite;background:var(--danger);border-color:var(--danger);color:var(--on-danger)}.vf-alpha__key[aria-disabled=true]{opacity:.35;pointer-events:none}.vf-product{align-items:center;background:var(--surface);border-top:1px solid var(--border);display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr);padding:var(--space-3) var(--space-4)}.vf-product:first-child{border-top:0}@container vf-kiosk (min-width: 640px){.vf-product{grid-template-columns:minmax(0,1fr) auto}}.vf-product__name{font-size:clamp(17px,1.95cqi,26px);font-weight:700;line-height:1.25;margin:0}.vf-product__meta{color:var(--ink-muted);font-size:13px;font-variant-numeric:tabular-nums;line-height:18px;margin:2px 0 0}.vf-product__actions{align-items:stretch;display:flex;gap:var(--space-2)}.vf-product__actions .vf-btn{min-height:var(--touch-target-kiosk)}.vf-price{font-size:20px;font-variant-numeric:tabular-nums;font-weight:700;line-height:24px}@media(prefers-reduced-motion:reduce){.vf-alpha__key--attention,.vf-btn--attention,.vf-skeleton,.vf-spinner{animation-duration:0s;animation-iteration-count:1}.vf-alpha__key:active,.vf-app-tile:hover,.vf-btn:active,.vf-card--interactive:hover{transform:none}}:root{--bs-body-font-family:var(--font-sans);--bs-body-bg:var(--bg);--bs-body-color:var(--ink);--bs-secondary-color:var(--ink-muted);--bs-border-color:var(--border);--bs-border-radius:var(--radius-sm);--bs-border-radius-lg:var(--radius-lg);--bs-primary:var(--primary);--bs-primary-rgb:25,135,84;--bs-link-color:var(--primary-text);--bs-link-color-rgb:20,108,67;--bs-link-hover-color:var(--primary-active);--bs-link-hover-color-rgb:19,101,63;--bs-focus-ring-color:var(--focus-ring)}.text-muted{color:var(--ink-muted)!important}.bg-primary{background-color:var(--chrome)!important}.badge.bg-primary{background-color:var(--primary)!important}.text-primary{color:var(--primary-text)!important}.btn{--bs-btn-border-radius:var(--radius-md);--bs-btn-font-weight:500}.btn-sm{--bs-btn-border-radius:var(--radius-sm)}.btn-primary{--bs-btn-color:var(--on-primary);--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-color:var(--on-primary);--bs-btn-hover-bg:var(--primary-hover);--bs-btn-hover-border-color:var(--primary-hover);--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:var(--on-primary);--bs-btn-active-bg:var(--primary-active);--bs-btn-active-border-color:var(--primary-active);--bs-btn-disabled-color:var(--on-primary);--bs-btn-disabled-bg:var(--primary);--bs-btn-disabled-border-color:var(--primary)}.btn-outline-primary{--bs-btn-color:var(--primary-text);--bs-btn-border-color:var(--primary);--bs-btn-hover-color:var(--on-primary);--bs-btn-hover-bg:var(--primary);--bs-btn-hover-border-color:var(--primary);--bs-btn-active-color:var(--on-primary);--bs-btn-active-bg:var(--primary-active);--bs-btn-active-border-color:var(--primary-active)}.card{--bs-card-border-radius:var(--radius-lg);--bs-card-inner-border-radius:calc(var(--radius-lg) - 1px);--bs-card-border-color:var(--border);--bs-card-bg:var(--surface)}.form-control,.form-select{min-height:var(--touch-target)}@media(pointer:coarse){.form-control-sm,.form-select-sm,.input-group-sm>.form-control,.input-group-sm>.form-select{font-size:16px}}.btn:focus-visible,.form-control:focus,.form-select:focus{border-color:var(--focus-ring);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--focus-ring)}
