.app-page{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.app-page-head{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.app-page-title{color:var(--color-text);margin:0;font-size:20px;font-weight:700;line-height:1.3}.app-page-subtitle{font-size:var(--text-ui);color:var(--color-text-soft);margin:2px 0 0}.app-page-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.app-page-body{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.app-toolbar{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.app-toolbar-grow{flex:260px;min-width:200px}.app-toolbar-end{margin-left:auto}.app-toolbar .MuiTextField-root{flex:140px;min-width:0}.app-toolbar .MuiOutlinedInput-root{border-radius:var(--radius-pill);min-height:35px;font-size:var(--text-ui);color:var(--color-text-soft);font-weight:600}.app-toolbar .MuiOutlinedInput-notchedOutline{border-color:var(--color-border-strong)}@media (width<=1024px),(pointer:coarse){.app-toolbar .MuiOutlinedInput-root,.app-toolbar .MuiSelect-select{min-height:48px}}.app-card.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-xs)}.app-card-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) 0;display:flex}.app-card-title{color:var(--color-text);margin:0;font-size:15px;font-weight:600}.app-card-subtitle{font-size:var(--text-ui);color:var(--color-text-soft);margin:2px 0 0}.app-card .app-card-body{padding:var(--space-4) var(--space-5)}.app-card .app-card-body.app-card-body--flush{padding:0}.app-card--overflow{overflow:hidden}.btn.app-btn{--app-btn-bg:var(--color-primary);--app-btn-fg:#fff;--app-btn-border:var(--color-primary);--app-btn-hover-bg:var(--color-secondary);--app-btn-hover-fg:#fff;--app-btn-hover-border:var(--color-secondary);justify-content:center;align-items:center;gap:var(--space-2);min-height:32px;padding:0 var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-ui);white-space:nowrap;color:var(--app-btn-fg);background:var(--app-btn-bg);border:1px solid var(--app-btn-border);font-weight:600;display:inline-flex}.btn.app-btn:hover,.btn.app-btn:focus-visible,.btn.app-btn:active{color:var(--app-btn-hover-fg);background:var(--app-btn-hover-bg);border-color:var(--app-btn-hover-border)}.btn.app-btn:focus-visible{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-primary)}.btn.app-btn:disabled,.btn.app-btn.disabled{opacity:.55;cursor:not-allowed;color:var(--app-btn-fg);background:var(--app-btn-bg);border-color:var(--app-btn-border)}.btn.app-btn--sm{min-height:28px;padding:0 var(--space-3)}.btn.app-btn--outline{--app-btn-bg:var(--color-surface);--app-btn-fg:var(--color-primary);--app-btn-border:var(--color-primary);--app-btn-hover-bg:color-mix(in srgb, var(--color-primary) 8%, #fff);--app-btn-hover-fg:var(--color-primary);--app-btn-hover-border:var(--color-primary)}.btn.app-btn--danger{--app-btn-bg:var(--color-surface);--app-btn-fg:var(--color-error);--app-btn-border:var(--color-error);--app-btn-hover-bg:color-mix(in srgb, var(--color-error) 8%, #fff);--app-btn-hover-fg:var(--color-error);--app-btn-hover-border:var(--color-error)}.btn.app-btn--secondary{--app-btn-bg:var(--color-surface);--app-btn-fg:var(--color-text);--app-btn-border:var(--color-border-strong);--app-btn-hover-bg:var(--color-hover);--app-btn-hover-fg:var(--color-text);--app-btn-hover-border:var(--color-border-strong)}.btn.app-btn--gradient{--app-btn-bg:var(--color-primary);--app-btn-fg:#fff;--app-btn-border:var(--color-primary);--app-btn-hover-bg:var(--color-secondary);--app-btn-hover-fg:#fff;--app-btn-hover-border:var(--color-secondary)}.btn.app-btn--ghost{--app-btn-bg:transparent;--app-btn-fg:var(--color-text-soft);--app-btn-border:transparent;--app-btn-hover-bg:var(--color-hover);--app-btn-hover-fg:var(--color-text);--app-btn-hover-border:transparent}.btn.app-btn--icon{min-width:32px;padding:0 var(--space-2)}.btn.app-row-action{--app-btn-fg:var(--color-primary);--app-btn-hover-fg:var(--color-secondary);width:32px;min-width:32px;height:32px;padding:0}.btn.app-row-action--danger{--app-btn-fg:var(--color-error);--app-btn-hover-fg:var(--color-error);--app-btn-hover-bg:color-mix(in srgb, var(--color-error) 8%, var(--color-surface))}.btn.app-row-action.is-active{--app-btn-bg:var(--color-selected)}.app-row-action svg{flex-shrink:0;font-size:22px}@media (width<=1024px),(pointer:coarse){.btn.app-row-action{width:48px;min-width:48px;height:48px;min-height:48px}}.app-pill{--pill-color:var(--color-text-soft);border-radius:var(--radius-pill);font-family:var(--font-body);white-space:nowrap;color:var(--pill-color);background:color-mix(in srgb, var(--pill-color) 12%, #fff);align-items:center;gap:5px;padding:1px 10px;font-size:11px;font-weight:600;line-height:18px;display:inline-flex}.app-pill--success{--pill-color:var(--color-success)}.app-pill--danger{--pill-color:var(--color-error)}.app-pill--warning{--pill-color:var(--color-warning-strong)}.app-pill--info{--pill-color:var(--color-primary)}.app-pill--neutral{--pill-color:var(--color-text-soft)}.app-pill-dot{background:var(--pill-color);border-radius:50%;width:6px;height:6px}.app-stat{padding:var(--space-4);gap:6px;display:grid}.app-stat-top{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-ui);color:var(--color-text-soft);font-weight:600;display:flex}.app-stat-icon{color:var(--stat-accent,var(--color-primary));font-size:18px}.app-stat-value{color:var(--color-text);font-size:26px;font-weight:700;line-height:1.1}.app-stat-delta{font-size:var(--text-ui);color:var(--color-success);align-items:center;gap:3px;font-weight:600;display:inline-flex}.app-stat-delta.is-negative{color:var(--color-error)}.app-stat-delta.is-flat{color:var(--color-text-muted)}.app-stat-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.app-tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:100%;box-shadow:var(--shadow-xs);scrollbar-width:thin;gap:2px;padding:4px;display:inline-flex;overflow-x:auto}.app-tab{border-radius:var(--radius-sm);white-space:nowrap;font-family:var(--font-body);font-size:var(--text-ui);color:var(--color-text-soft);transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;flex-shrink:0;padding:7px 16px;font-weight:600}.app-tab:hover{color:var(--color-text)}.app-tab.is-active{background:var(--color-primary);color:#fff}.app-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (width<=1024px),(pointer:coarse){.app-tabs--wrap-mobile{flex-wrap:wrap;overflow:visible}.app-tabs--wrap-mobile .app-tab{white-space:normal;overflow-wrap:anywhere;flex:104px;min-width:0;min-height:48px}}.app-state{justify-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center;animation:riseIn var(--duration-slow) var(--ease-standard);font-family:var(--font-body);display:grid}.app-state-icon{color:var(--color-text-muted);font-size:32px;font-family:var(--font-body)}.app-state-title{color:var(--color-text);font-size:15px;font-weight:600;font-family:var(--font-body);margin:0}.app-state-text{max-width:420px;font-size:var(--text-ui);color:var(--color-text-soft);font-family:var(--font-body);margin:0}.app-loading{gap:var(--space-3);padding:var(--space-4) var(--space-5);font-family:var(--font-body);display:grid}.app-alert{--alert-color:var(--color-primary);align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, var(--alert-color) 28%, #fff);border-radius:var(--radius-md);background:color-mix(in srgb, var(--alert-color) 8%, #fff);font-size:var(--text-ui);color:var(--color-text);font-family:var(--font-body);animation:riseIn var(--duration-slow) var(--ease-standard);overflow-wrap:anywhere;flex-wrap:wrap;display:flex}.app-alert--success{--alert-color:var(--color-success)}.app-alert--danger{--alert-color:var(--color-error)}.app-alert--warning{--alert-color:var(--color-warning-strong)}@media (width<=1024px),(pointer:coarse){.btn.app-btn{min-width:48px;min-height:48px}.btn.app-btn--sm{min-height:48px}.app-tab{min-width:48px;min-height:48px}}.app-alert-icon{color:var(--alert-color);flex:none;font-size:18px}.app-alert-body{flex:1;min-width:min(100%,160px)}.app-alert-title{font-weight:600}.app-field .MuiInputBase-root .MuiInputBase-input:not([type=checkbox]):not([type=radio]){min-height:0;box-shadow:none;padding:var(--space-2) var(--space-3);background:0 0;border:0;border-radius:0;outline:none}.app-field .MuiInputBase-root .MuiInputBase-inputMultiline:not([type=checkbox]):not([type=radio]){padding:0}.app-field .MuiOutlinedInput-root{min-height:36px}.app-field .MuiInputLabel-root{margin-bottom:0}.app-field--select .MuiInputLabel-root{white-space:normal;overflow-wrap:anywhere;max-width:100%;margin-bottom:var(--space-2);font-family:var(--font-body);font-size:var(--text-ui);font-weight:var(--font-weight-semibold);line-height:var(--line-body);color:var(--color-text-soft);pointer-events:auto;transition:color .15s;position:static;transform:none}.app-field--select .MuiInputLabel-root.Mui-error{color:var(--color-error)}.app-field--select .MuiInputLabel-root.Mui-disabled{color:var(--color-text-muted)}@media (width<=1024px),(pointer:coarse){.app-field .MuiOutlinedInput-root{min-height:48px}.app-field .MuiInputLabel-outlined:not(.MuiInputLabel-shrink){transform:translate(14px,15px)scale(1)}}.app-dialog .app-dialog-title-with-close{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.app-dialog-title-with-close>span{overflow-wrap:anywhere;min-width:0}.app-dialog-title-with-close>.MuiIconButton-root{color:var(--color-text-soft);flex-shrink:0}.app-dialog .feedback-details-text{margin:var(--space-4) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.feedback-details .app-kv-row{grid-template-columns:104px minmax(0,1fr);align-items:start;padding-inline:0;display:grid}.feedback-details .app-kv-value{text-align:left;overflow-wrap:anywhere;min-width:0}.feedback-details-rating{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:inline-flex}.app-dialog .MuiDialog-container{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.app-dialog .MuiDialog-paper{margin:var(--space-4);width:calc(100% - var(--space-7));max-height:calc(100% - var(--space-7))}.app-dialog .form-control,.app-dialog .form-select,.app-dialog .form-label,.app-dialog .form-helper,.app-dialog .invalid-feedback{font-family:var(--font-body);font-size:var(--text-ui);line-height:var(--line-body)}.app-dialog .MuiDialogActions-root>.app-btn{flex-shrink:0}.app-dialog-secondary-action{min-width:0;max-width:100%;margin-inline-end:auto}@media (width<=1024px),(pointer:coarse){.app-dialog .MuiDialogContent-root input:not([type=checkbox]):not([type=radio]),.app-dialog .MuiDialogContent-root select,.app-dialog .MuiDialogContent-root textarea,.app-dialog .MuiDialogContent-root .input-group-action{min-height:48px}.app-dialog .MuiDialogContent-root button{min-width:48px;min-height:48px}.app-dialog .customer-optin-field label{align-items:center;min-height:48px;display:flex}}.app-table-footer{padding:0 var(--space-4) var(--space-3)}.app-table-footer .pagination-bar{margin:0}.app-avatar{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-primary) 12%, #fff);width:36px;height:36px;color:var(--color-primary);font-size:var(--text-ui);flex:none;place-items:center;font-weight:700;display:inline-grid;overflow:hidden}.app-avatar img{object-fit:cover;width:100%;height:100%}.app-stars{color:#f5a623;vertical-align:middle;gap:1px;font-size:14px;display:inline-flex}.app-stars .is-empty{color:var(--color-border-strong)}.app-muted{color:var(--color-text-soft);font-size:var(--text-ui)}.app-kv{display:grid}.app-kv-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--text-ui);display:flex}.app-kv-row:last-child{border-bottom:0}.app-kv-label{color:var(--color-text-soft)}.app-kv-value{text-align:right;word-break:break-word;font-weight:600}
