html{height:100%;--mat-sys-background: light-dark(#f9faf3, #121410);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f1f1eb, #2f312d);--mat-sys-inverse-primary: light-dark(#02e600, #026e00);--mat-sys-inverse-surface: light-dark(#2f312d, #e2e3dc);--mat-sys-on-background: light-dark(#1a1c18, #e2e3dc);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #013a00);--mat-sys-on-primary-container: light-dark(#015300, #77ff61);--mat-sys-on-primary-fixed: light-dark(#002200, #002200);--mat-sys-on-primary-fixed-variant: light-dark(#015300, #015300);--mat-sys-on-secondary: light-dark(#ffffff, #263422);--mat-sys-on-secondary-container: light-dark(#3c4b37, #d7e8cd);--mat-sys-on-secondary-fixed: light-dark(#121f0e, #121f0e);--mat-sys-on-secondary-fixed-variant: light-dark(#3c4b37, #3c4b37);--mat-sys-on-surface: light-dark(#1a1c18, #e2e3dc);--mat-sys-on-surface-variant: light-dark(#43483f, #dfe4d7);--mat-sys-on-tertiary: light-dark(#ffffff, #502400);--mat-sys-on-tertiary-container: light-dark(#723600, #ffdcc7);--mat-sys-on-tertiary-fixed: light-dark(#311300, #311300);--mat-sys-on-tertiary-fixed-variant: light-dark(#723600, #723600);--mat-sys-outline: light-dark(#73796e, #8d9387);--mat-sys-outline-variant: light-dark(#c3c8bc, #43483f);--mat-sys-primary: light-dark(#026e00, #02e600);--mat-sys-primary-container: light-dark(#77ff61, #015300);--mat-sys-primary-fixed: light-dark(#77ff61, #77ff61);--mat-sys-primary-fixed-dim: light-dark(#02e600, #02e600);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#54634d, #bbcbb2);--mat-sys-secondary-container: light-dark(#d7e8cd, #3c4b37);--mat-sys-secondary-fixed: light-dark(#d7e8cd, #d7e8cd);--mat-sys-secondary-fixed-dim: light-dark(#bbcbb2, #bbcbb2);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#f9faf3, #121410);--mat-sys-surface-bright: light-dark(#f9faf3, #383a35);--mat-sys-surface-container: light-dark(#eeeee7, #1e201c);--mat-sys-surface-container-high: light-dark(#e8e9e1, #282b26);--mat-sys-surface-container-highest: light-dark(#e2e3dc, #333531);--mat-sys-surface-container-low: light-dark(#f3f4ed, #1a1c18);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0c0f0b);--mat-sys-surface-dim: light-dark(#dadbd3, #121410);--mat-sys-surface-tint: light-dark(#026e00, #02e600);--mat-sys-surface-variant: light-dark(#dfe4d7, #43483f);--mat-sys-tertiary: light-dark(#964900, #ffb787);--mat-sys-tertiary-container: light-dark(#ffdcc7, #723600);--mat-sys-tertiary-fixed: light-dark(#ffdcc7, #ffdcc7);--mat-sys-tertiary-fixed-dim: light-dark(#ffb787, #ffb787);--mat-sys-neutral-variant20: #2c3229;--mat-sys-neutral10: #1a1c18;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}:root{--rp-brand-600: #00695c;--rp-brand-700: #004d40;--rp-brand-900: #00251a;--rp-brand-gradient: linear-gradient( 135deg, var(--rp-brand-600) 0%, var(--rp-brand-700) 50%, var(--rp-brand-900) 100% );--rp-brand-on-gradient: #ffffff;--rp-page-bg: color-mix(in srgb, var(--mat-sys-primary) 6%, var(--mat-sys-surface));--rp-surface-elevated: color-mix(in srgb, var(--mat-sys-primary) 3.5%, var(--mat-sys-surface));--rp-border-accent: color-mix(in srgb, var(--mat-sys-primary) 22%, var(--mat-sys-outline-variant))}:root{--rp-success: #2e7d32;--rp-success-container: #e8f5e9;--rp-success-on-container: #1b5e20;--rp-warning: #e65100;--rp-warning-container: #fff3e0;--rp-warning-on-container: #bf360c;--rp-info: #0277bd;--rp-info-container: #e1f5fe;--rp-info-on-container: #01579b;--rp-neutral: #757575;--rp-neutral-container: #f5f5f5;--rp-neutral-on-container: #424242}body{color-scheme:light;background-color:var(--rp-page-bg);color:var(--mat-sys-on-surface);font:var(--mat-sys-body-medium);margin:0;height:100%;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}::selection{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.text-display{font-size:32px;font-weight:700;line-height:1.2;letter-spacing:-.5px}.text-headline{font-size:24px;font-weight:600;line-height:1.3}.text-title{font-size:20px;font-weight:500;line-height:1.4}.text-subtitle{font-size:16px;font-weight:500;line-height:1.5}.text-body{font-size:14px;font-weight:400;line-height:1.5}.text-caption{font-size:13px;font-weight:400;color:var(--mat-sys-on-surface-variant)}.text-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--mat-sys-on-surface-variant)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.badge--success{background:var(--rp-success-container);color:var(--rp-success-on-container)}.badge--warning{background:var(--rp-warning-container);color:var(--rp-warning-on-container)}.badge--info{background:var(--rp-info-container);color:var(--rp-info-on-container)}.badge--neutral{background:var(--rp-neutral-container);color:var(--rp-neutral-on-container)}.badge--error{background:var(--mat-sys-error-container);color:var(--mat-sys-on-error-container)}.badge--outline{background:transparent;border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface-variant)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--mat-sys-surface-container) 25%,var(--mat-sys-surface-container-high) 50%,var(--mat-sys-surface-container) 75%);background-size:800px 100%;animation:shimmer 1.5s infinite linear;border-radius:8px}.skeleton--text{height:14px;width:60%;margin-bottom:8px}.skeleton--title{height:20px;width:40%;margin-bottom:12px}.skeleton--number{height:32px;width:80px;margin-bottom:8px}.skeleton--circle{border-radius:50%}.skeleton--card{height:160px}.skeleton--chart{height:240px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:16px;padding-bottom:4px;border-bottom:1px solid var(--rp-border-accent)}.page-header h2{margin:0;font-size:24px;font-weight:600;color:color-mix(in srgb,var(--mat-sys-on-surface) 92%,var(--mat-sys-primary))}.page-header .page-subtitle{font-size:14px;color:var(--mat-sys-on-surface-variant);margin-top:4px}.search-bar{margin-bottom:16px}.search-bar .search-field{width:100%;max-width:480px}.table-container{overflow-x:auto;border-radius:12px;border:1px solid var(--rp-border-accent);background:var(--rp-surface-elevated);box-shadow:0 1px 2px color-mix(in srgb,var(--mat-sys-primary) 8%,transparent),0 0 0 1px color-mix(in srgb,var(--mat-sys-primary) 4%,transparent)}.table-container table{width:100%}.table-container th.mat-mdc-header-cell{background:color-mix(in srgb,var(--mat-sys-primary-container) 55%,var(--mat-sys-surface-container));font-weight:600;font-size:13px;color:var(--mat-sys-on-surface-variant);border-bottom:1px solid var(--rp-border-accent)}.table-container tr.mat-mdc-row:hover{background:color-mix(in srgb,var(--mat-sys-primary) 6%,var(--mat-sys-surface))}.link-text{color:var(--mat-sys-primary);cursor:pointer;font-weight:500}.link-text:hover{text-decoration:underline}.loading-center{display:flex;justify-content:center;padding:48px}.empty-state{text-align:center;padding:48px 24px;color:var(--mat-sys-on-surface-variant)}.empty-state mat-icon,.empty-state .empty-icon{font-size:56px;width:56px;height:56px;opacity:.45;margin-bottom:16px;color:var(--mat-sys-primary)}.empty-state p{font-size:16px;margin:0 0 16px}.form-layout{display:grid;grid-template-columns:2fr 1fr;gap:24px;align-items:start}@media(max-width:960px){.form-layout{grid-template-columns:1fr}}.form-grid{display:flex;flex-direction:column;gap:4px;padding-top:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:600px){.form-row{grid-template-columns:1fr}}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--rp-border-accent)}.card-hover{transition:box-shadow .2s ease-out,transform .2s ease-out;cursor:pointer}.card-hover:hover{box-shadow:0 6px 16px color-mix(in srgb,var(--mat-sys-primary) 14%,transparent),0 2px 6px #0000000f;transform:translateY(-2px)}.card-hover:active{transform:translateY(0) scale(.99);transition-duration:.1s}@media(max-width:768px){.hide-mobile{display:none!important}}@media(min-width:769px){.hide-desktop{display:none!important}}.card-grid{display:flex;flex-wrap:wrap;gap:16px;padding:16px 0}.menu-card{width:200px;border-radius:12px;border:1px solid var(--rp-border-accent);background:var(--rp-surface-elevated);overflow:hidden;transition:box-shadow .2s,border-color .2s;position:relative}.menu-card:hover{box-shadow:0 4px 12px color-mix(in srgb,var(--mat-sys-primary) 12%,transparent),0 2px 4px #0000000f;border-color:color-mix(in srgb,var(--mat-sys-primary) 35%,var(--mat-sys-outline-variant))}.menu-card .card-image{width:100%;height:140px;object-fit:cover;display:block;background:var(--mat-sys-surface-container)}.menu-card .card-image-placeholder{width:100%;height:140px;display:flex;align-items:center;justify-content:center;background:var(--mat-sys-surface-container);color:var(--mat-sys-on-surface-variant)}.menu-card .card-image-placeholder mat-icon{font-size:48px;width:48px;height:48px;opacity:.4}.menu-card .card-body{padding:12px}.menu-card .card-title{font-size:14px;font-weight:500;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-card .card-subtitle{font-size:13px;color:var(--mat-sys-on-surface-variant);margin:0}.menu-card .card-footer{display:flex;align-items:center;justify-content:space-between;padding:0 8px 8px 12px}.menu-card .card-badge{position:absolute;top:8px;right:8px}.menu-card .card-actions{position:absolute;top:4px;left:4px}
