*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.5;overscroll-behavior:none}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font-family:inherit;cursor:pointer;border:none;background:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select,textarea{font-family:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input:focus,select:focus,textarea:focus{scroll-margin-top:0}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--color-bg: #f5f5f7;--shadow-apple: 0 2px 10px rgba(0,0,0,.04), 0 10px 30px rgba(0,0,0,.03);--radius-apple: 18px;--transition-smooth: .4s cubic-bezier(.25, 1, .5, 1);--color-primary: #00BD7D;--color-primary-dark: #007A55;--color-primary-light: #e6f9f2;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-text: #0f172a;--color-text-muted: #475569;--color-text-subtle: #94a3b8;--color-success: #10b981;--color-success-light: #d1fae5;--color-danger: #f43f5e;--color-danger-light: #fff1f2;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--sidebar-bg: #061a14;--sidebar-bg-hover: #0c2d23;--sidebar-bg-active: #00BD7D;--sidebar-text: #ccf2e6;--sidebar-text-muted: #66bfa3;--sidebar-text-white: #ffffff;--sidebar-border: rgba(255, 255, 255, .06);--sidebar-surface: rgba(255, 255, 255, .07);--sidebar-surface-hover: rgba(255, 255, 255, .12);--sidebar-focus-ring: rgba(255, 255, 255, .25);--sidebar-danger-bg: rgba(239, 68, 68, .2);--sidebar-danger-bg-active: rgba(239, 68, 68, .35);--sidebar-danger-text: #fca5a5;--sidebar-width: 240px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 12px 24px rgba(0,0,0,.1);--transition: .2s cubic-bezier(.4, 0, .2, 1);--glass-bg: rgba(255, 255, 255, .65);--glass-bg-dense: rgba(255, 255, 255, .77);--glass-border: rgba(255, 255, 255, .77);--glass-blur: blur(24px) saturate(180%);--glass-blur-sm: blur(16px) saturate(160%);--glass-shadow-sm: 0 1px 0 rgba(255,255,255,.9) inset, 0 2px 12px rgba(15,23,42,.07);--glass-shadow: 0 1px 0 rgba(255,255,255,.95) inset, 0 8px 32px rgba(15,23,42,.09), 0 1px 4px rgba(15,23,42,.08);--glass-shadow-lg: 0 1px 0 rgba(255,255,255,.95) inset, 0 20px 56px rgba(15,23,42,.17), 0 4px 16px rgba(15,23,42,.1)}.pointer{cursor:pointer}.app-shell{display:flex;min-height:100vh}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;background-color:var(--color-bg)}.app-content{flex:1;padding:1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1;display:flex;flex-direction:column}.sidebar{width:var(--sidebar-width);background-color:var(--sidebar-bg);display:flex;flex-direction:column;flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto;overflow-x:hidden;transition:width var(--transition);-webkit-overflow-scrolling:touch}.sidebar--collapsed{width:64px}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:1.25rem;border-bottom:1px solid var(--sidebar-border);min-height:64px;flex-shrink:0}.sidebar--collapsed .sidebar-logo{justify-content:center}.sidebar-toggle-btn{margin-left:auto;width:44px;height:44px;border-radius:var(--radius-sm);color:var(--sidebar-text-muted);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition),color var(--transition);flex-shrink:0}.sidebar-toggle-btn:hover{background-color:var(--sidebar-surface-hover);color:var(--sidebar-text-white)}.sidebar--collapsed .sidebar-toggle-btn{margin-left:0}.sidebar-logo-mark{width:34px;height:34px;background-color:var(--color-primary);color:#fff;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0;line-height:1;text-align:center}.sidebar-logo-name{font-size:1.125rem;font-weight:700;color:var(--sidebar-text-white);letter-spacing:-.02em}.sidebar-nav{flex:1;padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.sidebar-group{display:flex;flex-direction:column;gap:2px;margin-bottom:.75rem}.sidebar-group-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text-muted);padding:.5rem .75rem .25rem}.sidebar-link{display:flex;align-items:center;gap:.625rem;padding:.75rem .875rem;border-radius:var(--radius-md);color:var(--sidebar-text);font-size:.875rem;font-weight:500;transition:background-color var(--transition),color var(--transition);min-height:44px}.sidebar-link:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-white)}.sidebar-link:active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-white);transform:scale(.97)}.sidebar-link--active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-white)}.sidebar-link-icon{flex-shrink:0;display:flex;align-items:center}.sidebar-link-label{flex:1;white-space:nowrap;overflow:hidden}.sidebar--collapsed .sidebar-link{justify-content:center;padding:.5rem}.sidebar-footer{padding:.875rem .75rem;border-top:1px solid var(--sidebar-border);display:flex;flex-direction:column;align-items:stretch;gap:.5rem;flex-shrink:0}.sidebar-footer-row{display:flex;align-items:center;gap:.5rem}.sidebar-lang{display:flex;justify-content:center}.sidebar-lang-select{background:var(--sidebar-surface);border:1px solid var(--sidebar-border);border-radius:var(--radius-md);color:var(--sidebar-text);font-family:inherit;font-size:.75rem;font-weight:600;letter-spacing:.04em;padding:.4rem .625rem;cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;transition:background var(--transition),border-color var(--transition),color var(--transition);min-height:34px}.sidebar--collapsed .sidebar-lang-select{width:44px;padding:.4rem .25rem}.sidebar-lang-select:hover{background:var(--sidebar-surface-hover);color:var(--sidebar-text-white);border-color:var(--sidebar-text-muted)}.sidebar-lang-select:focus{outline:2px solid var(--sidebar-focus-ring);outline-offset:2px;color:var(--sidebar-text-white)}.sidebar-lang-select option{background:var(--sidebar-bg);color:var(--sidebar-text);font-weight:500}.sidebar--collapsed .sidebar-footer{flex-direction:column;align-items:center}.sidebar--collapsed .sidebar-footer-row{flex-direction:column;gap:.25rem}.sidebar--collapsed .sidebar-user{justify-content:center}.sidebar-user{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.sidebar-user-avatar{width:32px;height:32px;border-radius:50%;background-color:var(--color-primary);color:#fff;font-weight:600;font-size:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;min-width:0}.sidebar-user-name{font-size:.8125rem;font-weight:600;color:var(--sidebar-text-white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:.6875rem;color:var(--sidebar-text-muted);text-transform:capitalize}.sidebar-logout-btn{width:44px;height:44px;border-radius:var(--radius-md);color:var(--sidebar-text-muted);font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:background-color var(--transition),color var(--transition);flex-shrink:0}.sidebar-logout-btn--expanded{width:100%;height:44px;padding:0 .75rem;gap:.5rem;justify-content:flex-start;font-size:.8125rem;font-weight:500;border:1px solid var(--sidebar-border);margin-top:.25rem}.sidebar-logout-btn:hover{background-color:var(--sidebar-danger-bg);color:var(--sidebar-danger-text)}.sidebar-logout-btn--expanded:hover{border-color:transparent}.sidebar-logout-btn:active{background-color:var(--sidebar-danger-bg-active);color:var(--sidebar-danger-text);transform:scale(.93)}.app-footer{display:flex;align-items:center;justify-content:space-between;padding:.875rem 2rem;border-top:1px solid var(--glass-border);background:var(--glass-bg-dense);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm)}.footer-copy{font-size:.8125rem;color:var(--color-text-muted)}.footer-version{font-size:.75rem;color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.page{padding:2rem 2.5rem;display:flex;flex-direction:column;gap:2rem;max-width:none;flex:1;min-height:0}.page--full-height{height:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;background:#ffffff8c;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.72);padding:1.5rem 2rem;box-shadow:0 1px #ffffffe6 inset,0 8px 32px #0000000f,0 1px 4px #0000000a}.page-title{font-size:2.25rem;color:var(--color-text);letter-spacing:-.03em;font-weight:700}.page-subtitle{font-size:.9375rem;color:var(--color-text-muted);margin-top:.25rem}.page-header-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.module-badge{background-color:var(--color-primary-light);color:var(--color-primary);border-radius:999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.stat-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--glass-shadow-sm);display:flex;align-items:center;gap:1rem;border:1px solid var(--glass-border)}.stat-card--primary .stat-card-icon{background-color:var(--color-primary-light);color:var(--color-primary)}.stat-card--success .stat-card-icon{background-color:var(--color-success-light);color:var(--color-success)}.stat-card--danger .stat-card-icon{background-color:var(--color-danger-light);color:var(--color-danger)}.stat-card--neutral .stat-card-icon{background-color:var(--color-border-light);color:var(--color-text-muted)}.stat-card-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.stat-card-body{display:flex;flex-direction:column;gap:2px}.stat-card-value{font-size:1.375rem;font-weight:700;color:var(--color-text);line-height:1.2;text-transform:capitalize}.stat-card-label{font-size:.8125rem;color:var(--color-text-muted)}.dashboard-section{display:flex;flex-direction:column;gap:1rem}.section-title{font-size:1.0625rem;font-weight:600;color:var(--color-text)}.quickstart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.quickstart-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;box-shadow:var(--glass-shadow-sm);transition:box-shadow var(--transition),border-color var(--transition),transform 80ms ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.quickstart-card:hover{box-shadow:var(--glass-shadow);border-color:var(--color-primary)}.quickstart-card:active{transform:scale(.97);box-shadow:var(--glass-shadow-sm)}.quickstart-icon{font-size:1.5rem;line-height:1}.quickstart-title{font-size:.9375rem;font-weight:600;color:var(--color-text)}.quickstart-desc{font-size:.8125rem;color:var(--color-text-muted);line-height:1.5}@media (max-width: 1024px){.page{padding:.25rem}.page-header{padding:1.25rem 1.5rem}}@media (max-width: 768px){.app-shell{flex-direction:column}.app-content{padding:.5rem;padding-bottom:calc(1.25rem + 64px + 1.5rem + var(--safe-bottom))}.stats-grid{grid-template-columns:1fr 1fr}.page-header{flex-direction:column;padding:1rem 1.25rem}.page{padding:.25rem;gap:1.25rem}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}.page-title{font-size:1.75rem}}.auth-page{min-height:100vh;display:flex;overflow:hidden}.auth-image-panel{flex:1 1 50%;position:relative;overflow:hidden;background-color:var(--sidebar-bg)}.auth-image-panel img{width:100%;height:100%;object-fit:cover;display:block}.auth-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;padding:3rem}.auth-image-tagline{color:#ffffffe0;font-size:1.5rem;font-weight:700;line-height:1.3;letter-spacing:-.02em;max-width:320px}.auth-image-tagline span{color:var(--color-primary)}.auth-form-panel{flex:1 1 50%;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg);padding:3rem 2.5rem;overflow-y:auto}.auth-form-panel--right{order:1}.auth-image-panel--right{order:2}.auth-card{background:var(--glass-bg-dense);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:var(--radius-xl);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-lg);padding:2.5rem 2rem;width:100%;max-width:420px}.auth-card--wide{max-width:520px}.auth-card-header{text-align:center;margin-bottom:2rem}.auth-logo{width:52px;height:52px;background-color:var(--color-primary);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.auth-logo-mark{font-size:1.5rem;font-weight:800;color:#fff}.auth-title{font-size:1.375rem;font-weight:700;color:var(--color-text);margin-bottom:.375rem;letter-spacing:-.02em}.auth-subtitle{font-size:.9375rem;color:var(--color-text-muted)}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.auth-alert{background-color:var(--color-danger-light);color:var(--color-danger);border-radius:var(--radius-md);padding:.75rem 1rem;font-size:.875rem;font-weight:500}.auth-switch{text-align:center;margin-top:1.5rem;font-size:.875rem;color:var(--color-text-muted)}.auth-switch-link{color:var(--color-primary);font-weight:600}.auth-switch-link:hover{text-decoration:underline}@media (max-width: 768px){.auth-page{flex-direction:column}.auth-image-panel{flex:0 0 200px;min-height:200px}.auth-image-panel--right{order:0}.auth-form-panel--right{order:1}.auth-image-overlay{padding:1.5rem}.auth-image-tagline{font-size:1.125rem}.auth-form-panel{flex:1;padding:2rem 1.25rem}.auth-card{max-width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.25rem;min-height:44px;border-radius:var(--radius-md);font-size:.9375rem;font-weight:600;transition:background-color var(--transition),opacity var(--transition),transform 80ms ease;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:active:not(:disabled){transform:scale(.96);opacity:.88}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-dark)}.btn-full{width:100%;margin-top:.25rem;padding-top:.875rem;padding-bottom:.875rem}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-ghost{background-color:transparent;color:var(--color-text-muted)}.btn-ghost:hover:not(:disabled){background-color:var(--color-border-light);color:var(--color-text)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:#e0194a}.btn-sm{padding:.5rem .875rem;font-size:.8125rem;gap:.375rem;min-height:36px}.btn-icon{padding:.5rem;width:44px;height:44px}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge--success{background-color:var(--color-success-light);color:var(--color-success)}.badge--danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge--warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge--neutral{background-color:var(--color-border-light);color:var(--color-text-muted)}.badge--primary{background-color:var(--color-primary-light);color:var(--color-primary)}.card{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);padding:1.25rem;box-shadow:var(--glass-shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.card-title{font-size:1rem;font-weight:600;color:var(--color-text)}.card-subtitle{font-size:.8125rem;color:var(--color-text-muted);margin-top:.125rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.tab-bar{display:flex;gap:.25rem;background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);padding:.3125rem;margin:.5rem;border:1px solid var(--glass-border);flex-wrap:wrap;box-shadow:var(--glass-shadow-sm)}.tab-btn{padding:.5rem .875rem;min-height:38px;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;color:var(--color-text-muted);transition:background-color var(--transition),color var(--transition),transform 80ms ease;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;letter-spacing:.01em}.tab-btn:hover{background:#ffffff80;color:var(--color-text)}.tab-btn:active{transform:scale(.96);color:var(--color-text)}.tab-btn--active{background:var(--color-primary-light);color:var(--color-text);box-shadow:var(--shadow-sm),0 1px #ebebebcc inset}.filter-panel .tab-btn{padding:.375rem .75rem;min-height:34px;font-size:.75rem}.toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.toolbar--between{justify-content:space-between}.search-input-wrapper{position:relative;flex:1;min-width:200px;max-width:360px}.search-input-icon{position:absolute;left:.75rem;top:53.5%;transform:translateY(-50%);color:var(--color-text-subtle);pointer-events:none}.search-input{padding:.5rem .875rem .5rem 2.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;color:var(--color-text);background-color:var(--color-surface);outline:none;width:100%;transition:border-color var(--transition),box-shadow var(--transition);height:44px}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.filter-panel{display:flex;flex-direction:column;gap:.875rem;padding:1rem 1.125rem;background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);animation:filterPanelIn .18s cubic-bezier(.25,1,.5,1) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes filterPanelIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.filter-panel__row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.filter-panel__label{font-size:.75rem;font-weight:600;color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;min-width:3.5rem}.filter-panel__divider{height:1px;background:var(--color-border-light);margin:0}.filter-toggle-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;border-radius:var(--radius-md);color:var(--color-text-muted);border:1px solid transparent;transition:background-color var(--transition),color var(--transition),border-color var(--transition);white-space:nowrap}.filter-toggle-btn:hover{background:var(--color-border-light);color:var(--color-text)}.filter-toggle-btn--active{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#00bd7d33}.filter-toggle-btn .chevron{transition:transform .22s cubic-bezier(.25,1,.5,1)}.filter-toggle-btn--active .chevron{transform:rotate(180deg)}.alert{padding:.875rem 1rem;border-radius:var(--radius-md);font-size:.875rem;display:flex;align-items:flex-start;gap:.625rem;line-height:1.5}.alert--danger{background-color:var(--color-danger-light);color:var(--color-danger)}.alert--warning{background-color:var(--color-warning-light);color:#92400e}.alert--info{background-color:var(--color-primary-light);color:var(--color-primary-dark)}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}.spinner--lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{display:flex;align-items:center;justify-content:center;padding:4rem 2rem}.divider{height:1px;background-color:var(--color-border);margin:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:4rem 2rem;text-align:center}.empty-state-icon{color:var(--color-border);margin-bottom:.25rem}.empty-state-title{font-size:1rem;font-weight:600;color:var(--color-text)}.empty-state-desc{font-size:.875rem;color:var(--color-text-muted);max-width:360px;line-height:1.6}@media (max-width: 768px){.toolbar{flex-direction:column;align-items:stretch}.search-input-wrapper{max-width:none}.card-grid{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-size:.875rem;font-weight:500;color:var(--color-text)}.form-input{padding:.75rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;color:var(--color-text);background-color:var(--color-surface);outline:none;transition:border-color var(--transition),box-shadow var(--transition);min-height:48px}.form-input::placeholder{color:var(--color-text-subtle)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-select{width:100%;padding:.75rem 2.5rem .75rem .875rem;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition),box-shadow var(--transition);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .875rem center;cursor:pointer;font-family:inherit;line-height:1.5;min-height:48px;touch-action:manipulation}.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #00bd7d1f}.form-textarea{width:100%;padding:.75rem .875rem;font-size:1rem;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition),box-shadow var(--transition);resize:vertical;min-height:80px;font-family:inherit;line-height:1.5}.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #00bd7d1f}.form-checkbox-row{display:flex;align-items:center;gap:.625rem;min-height:48px;padding:.5rem 0;font-size:.9375rem;font-weight:500;color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.form-checkbox-row input[type=checkbox]{flex-shrink:0;width:1.125rem;height:1.125rem;accent-color:var(--color-primary);cursor:pointer}.form-checkbox-row:hover{color:var(--color-primary)}.form-error{font-size:.8125rem;color:var(--color-danger);margin-top:.25rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.qty-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}.qty-stepper--inline{width:fit-content}.qty-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:600;color:var(--color-text-muted);background:var(--color-surface);border:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),color var(--transition);-webkit-user-select:none;user-select:none;line-height:1}.qty-btn:hover:not(:disabled){background:var(--color-border-light);color:var(--color-text)}.qty-btn:active:not(:disabled){background:var(--color-primary-light);color:var(--color-primary);transform:scale(.9);transition:transform 60ms ease}.qty-btn:disabled{opacity:.35;cursor:not-allowed}.qty-value{min-width:36px;text-align:center;font-size:.9375rem;font-weight:600;color:var(--color-text);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);padding:0 .25rem;height:40px;display:flex;align-items:center;justify-content:center}.order-covers-group{width:100%}.order-covers-stepper{display:flex;align-items:stretch;border:1.5px solid var(--color-border);border-radius:14px;overflow:hidden;width:100%;background:var(--color-bg);transition:border-color .15s,box-shadow .15s}.order-covers-stepper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #00bd7d24}.order-covers-btn{flex:1;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:400;color:var(--color-text-muted);background:var(--color-surface);border:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),color var(--transition);-webkit-user-select:none;user-select:none;min-height:64px}.order-covers-btn:hover:not(:disabled){background:var(--color-primary-light);color:var(--color-primary-dark)}.order-covers-btn:active:not(:disabled){background:#00bd7d2e;color:var(--color-primary);transform:scale(.93);transition:transform 60ms ease}.order-covers-btn:disabled{opacity:.35;cursor:not-allowed}.order-covers-value{flex:0 0 72px;text-align:center;font-size:1.375rem;font-weight:700;color:var(--color-text);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;min-height:64px;letter-spacing:-.02em}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.table-wrapper{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);overflow:hidden;box-shadow:var(--glass-shadow-sm)}.table-responsive{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table thead{background:#fff6;border-bottom:1px solid rgba(255,255,255,.6)}.table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.table td{padding:.875rem 1rem;color:var(--color-text);border-bottom:1px solid rgba(226,232,240,.5);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#ffffff73}.table-actions{display:flex;align-items:center;gap:.25rem}.table-actions .btn{margin:0 .125rem}@media (max-width: 768px){.table td{padding:1rem}.table th{padding:.875rem 1rem}}.sheet-overlay,.modal-overlay,.bs-overlay,.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a121c8c;backdrop-filter:blur(6px) saturate(160%);-webkit-backdrop-filter:blur(6px) saturate(160%);z-index:500;display:flex;align-items:flex-end;justify-content:center;padding:0;touch-action:none;overscroll-behavior:none}.modal-overlay{z-index:1000}.drawer-overlay{z-index:1100}.sheet-panel,.modal,.bs,.drawer{background:var(--color-surface);border-top-left-radius:22px;border-top-right-radius:22px;border-top:1.5px solid rgba(0,189,125,.18);padding-bottom:calc(85px + 1rem + var(--safe-bottom) + 1rem);width:100%;max-width:640px;max-height:92svh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -2px #00bd7d1f,0 -12px 48px #0a121c38,0 -2px 8px #0a121c1a;animation:sheetIn .3s cubic-bezier(.22,1,.36,1) both;will-change:transform}.drawer{max-height:82svh}.modal--sm,.bs--sm{max-width:420px}.modal--lg,.bs--lg{max-width:740px}@keyframes sheetIn{0%{transform:translateY(100%);opacity:.7}to{transform:translateY(0);opacity:1}}.sheet-handle-zone,.bs-handle-zone{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.875rem 0 .375rem;cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}.sheet-handle-zone:active,.bs-handle-zone:active{cursor:grabbing}.sheet-handle,.bs-handle,.drawer-handle{width:36px;height:4px;background:linear-gradient(90deg,#00bd7d59,#00bd7d33);border-radius:999px;flex-shrink:0;transition:background .2s,width .2s}.drawer-handle{margin:.75rem auto 0}.sheet-handle-zone:hover .sheet-handle,.sheet-handle-zone:active .sheet-handle,.bs-handle-zone:hover .bs-handle,.bs-handle-zone:active .bs-handle{width:48px;background:linear-gradient(90deg,#00bd7da6,#00bd7d66)}.sheet-header,.modal-header,.bs-header,.drawer-header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.25rem .875rem;flex-shrink:0;gap:.75rem}.sheet-header:after,.modal-header:after,.bs-header:after,.drawer-header:after{content:"";position:absolute;left:1.25rem;right:1.25rem;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--color-border-light) 20%,var(--color-border-light) 80%,transparent);pointer-events:none}.sheet-header-inner,.bs-header-inner{display:flex;align-items:center;gap:.625rem;min-width:0}.sheet-brand-dot,.bs-brand-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);flex-shrink:0;box-shadow:0 0 0 3px #00bd7d2e}.sheet-title,.modal-title,.bs-title,.drawer-title{font-size:1rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-close-btn,.modal-close-btn,.bs-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:var(--color-bg);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s;padding:0}.sheet-close-btn:hover,.modal-close-btn:hover,.bs-close-btn:hover{background:#00bd7d1f;color:var(--color-primary)}.sheet-body,.modal-body,.bs-body{padding:1.25rem;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;display:flex;flex-direction:column;gap:1.125rem;flex:1}.sheet-footer,.modal-footer,.bs-footer{display:flex;align-items:center;justify-content:flex-end;gap:.625rem;padding:.875rem 1.25rem;border-top:1px solid var(--color-border-light);background:linear-gradient(to bottom,var(--color-surface),color-mix(in srgb,var(--color-surface) 96%,var(--color-primary) 4%));flex-shrink:0}.bs--dragging{-webkit-user-select:none;user-select:none}[data-sheet-open] .app-content{overflow-y:hidden}.bs-body .form-label{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.bs-body .form-input,.bs-body .form-select,.bs-body .form-textarea{background:var(--color-bg);border-color:var(--color-border);border-radius:12px;font-size:1rem}.bs-body .form-input:focus,.bs-body .form-select:focus,.bs-body .form-textarea:focus{background:var(--color-surface);border-color:var(--color-primary);box-shadow:0 0 0 3px #00bd7d24}.bs-body .form-group{gap:.3rem}.bs-body .form-row{grid-template-columns:1fr;gap:.875rem}@media (min-width: 480px){.bs-body .form-row{grid-template-columns:1fr 1fr}}.bs-body .order-item-row--rich{background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:12px;padding:.625rem .75rem;border-bottom:1px solid var(--color-border-light);transition:border-color .15s}.bs-body .order-item-row--rich:hover{border-color:#00bd7d4d}.bs-body .order-item-row--rich:last-child{border-bottom:1px solid var(--color-border-light)}.bs-body .order-total-preview{border-radius:14px;padding:1rem 1.125rem;border:1.5px solid rgba(0,189,125,.25);background:linear-gradient(135deg,#00bd7d12,#00bd7d21)}.bs-body .order-total-preview strong{font-size:1.25rem;color:var(--color-primary-dark)}.bs-body .qty-stepper{border-radius:12px;border-color:#00bd7d4d}.bs-body .qty-btn:active:not(:disabled){background:#00bd7d24;color:var(--color-primary)}.bs-body .alert--danger{border-radius:12px;font-size:.875rem}.bs-footer .btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);box-shadow:0 2px 10px #00bd7d4d}.bs-footer .btn-primary:hover:not(:disabled){box-shadow:0 4px 16px #00bd7d66;transform:translateY(-1px)}.drawer-search{position:relative;padding:.75rem 1rem;flex-shrink:0;border-bottom:1px solid var(--color-border-light)}.drawer-search .search-input{width:100%;max-width:none}.drawer-cats{display:flex;gap:.375rem;padding:.5rem 1rem;overflow-x:auto;flex-shrink:0;border-bottom:1px solid var(--color-border-light);-webkit-overflow-scrolling:touch;scrollbar-width:none}.drawer-cats::-webkit-scrollbar{display:none}.drawer-cat-btn{flex-shrink:0;padding:.3125rem .75rem;border-radius:999px;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background:var(--color-border-light);border:1px solid transparent;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition),color var(--transition)}.drawer-cat-btn:active{transform:scale(.94)}.drawer-cat-btn--active{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#00bd7d40;font-weight:600}.drawer-items{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;padding:.5rem 0}.drawer-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.875rem 1.25rem;text-align:left;border-bottom:1px solid var(--color-border-light);transition:background var(--transition);touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:56px}.drawer-item:last-child{border-bottom:none}.drawer-item:hover{background:var(--color-border-light)}.drawer-item:active{background:var(--color-primary-light);transform:scale(.98);transition:transform 60ms ease}.drawer-item-name{font-size:.9375rem;font-weight:500;color:var(--color-text);flex:1;text-align:left}.drawer-item-price{font-size:.9375rem;font-weight:700;color:var(--color-primary);white-space:nowrap;margin-left:1rem}@media (min-width: 769px){.sheet-overlay,.modal-overlay,.bs-overlay,.drawer-overlay{align-items:center;padding:1.5rem}.sheet-panel,.modal,.bs,.drawer{border-radius:20px;border:1px solid var(--glass-border);box-shadow:0 0 0 1px #00bd7d14,var(--glass-shadow-lg);max-height:88svh;animation:sheetInDesktop .24s cubic-bezier(.22,1,.36,1) both}.sheet-handle-zone,.bs-handle-zone,.drawer-handle{display:none}.sheet-footer,.modal-footer,.bs-footer{padding-bottom:1rem;border-radius:0 0 20px 20px}.drawer-items{padding-bottom:.5rem}@keyframes sheetInDesktop{0%{transform:translateY(16px) scale(.975);opacity:.3}to{transform:translateY(0) scale(1);opacity:1}}}.kds-board{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;align-items:stretch;flex:1;min-height:0}.kds-col{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);overflow:hidden;box-shadow:var(--glass-shadow-sm);display:flex;flex-direction:column;min-height:300px}.kds-col-header{padding:.75rem 1rem;border-bottom:2px solid currentColor;display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.875rem}.kds-col-count{margin-left:auto;font-size:.75rem;background-color:currentColor;color:#fff;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.kds-col--pending .kds-col-header{color:var(--color-warning)}.kds-col--cooking .kds-col-header{color:var(--color-primary)}.kds-col--ready .kds-col-header{color:var(--color-success)}.kds-col--done .kds-col-header{color:var(--color-text-muted)}.kds-col-body{padding:.75rem;display:flex;flex-direction:column;gap:.75rem;flex:1;overflow-y:auto;min-height:180px;transition:background-color .15s ease}.kds-col-body--drag-over{background-color:rgba(var(--color-primary-rgb, 99, 102, 241),.08);outline:2px dashed var(--color-primary);outline-offset:-4px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.kds-col-body--drag-over-back{background-color:#eab30814;outline:2px dashed var(--color-warning);outline-offset:-4px;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.kds-ticket{background:var(--glass-bg-dense);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);min-height:96px;padding:1rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--glass-shadow-sm);transition:border-color var(--transition),box-shadow var(--transition)}.kds-ticket--warning{border-color:var(--color-warning);box-shadow:var(--glass-shadow-sm),0 0 0 1px var(--color-warning)}.kds-ticket--critical{border-color:var(--color-danger);box-shadow:var(--glass-shadow-sm),0 0 0 1px var(--color-danger);animation:kds-pulse 1.8s ease-in-out infinite}@keyframes kds-pulse{0%,to{box-shadow:var(--glass-shadow-sm),0 0 0 1px var(--color-danger)}50%{box-shadow:var(--glass-shadow-sm),0 0 0 3px #f43f5e59}}.kds-ticket-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.kds-ticket-table{font-weight:700;font-size:.9375rem;color:var(--color-text)}.kds-ticket-time{font-size:.75rem;color:var(--color-text-subtle);display:flex;align-items:center;gap:.25rem}.kds-ticket-items{list-style:none;display:flex;flex-direction:column;gap:.25rem}.kds-ticket-item{font-size:.8125rem;color:var(--color-text-muted);display:flex;gap:.5rem}.kds-ticket-item-qty{font-weight:700;color:var(--color-text);min-width:18px}.kds-ticket-notes{font-size:.75rem;color:var(--color-text-muted);margin:.25rem 0 0;padding:.25rem .5rem;background:var(--color-border-light);border-radius:var(--radius-sm)}.kds-ticket-actions{display:flex;gap:.5rem;margin-top:.5rem}.kds-ticket[draggable=true]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.kds-ticket button,.kds-ticket a{touch-action:manipulation}.kds-ticket-actions .btn{flex:1;min-height:48px;border-radius:var(--radius-lg);font-size:.9375rem;padding:.75rem 1rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.kds-ticket-actions .btn:active:not(:disabled){transform:scale(.94);opacity:.82;transition:transform 60ms ease,opacity 60ms ease}.kds-ticket--dragging{opacity:.4;cursor:grabbing}.kds-ticket[draggable=true]{cursor:grab}.kds-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.kds-confirm-dialog{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--glass-border);box-shadow:0 24px 64px #0003;padding:1.75rem;max-width:380px;width:100%;display:flex;flex-direction:column;gap:1rem}.kds-confirm-dialog h3{font-size:1.0625rem;font-weight:700;color:var(--color-text)}.kds-confirm-dialog p{font-size:.875rem;color:var(--color-text-muted);line-height:1.6}.kds-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}@media (min-width: 1100px){.kds-board{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (min-width: 768px) and (max-width: 1099px){.kds-board{grid-template-columns:repeat(3,1fr);gap:.875rem}}@media (max-width: 900px){.kds-board{grid-template-columns:1fr 1fr}}@media (max-width: 768px){.kds-board{grid-template-columns:1fr}}.menu-category-list{display:flex;flex-direction:column;gap:.5rem}.category-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);overflow:hidden;box-shadow:var(--glass-shadow-sm);transition:box-shadow var(--transition),border-color var(--transition)}.category-card:has(.category-card-header:hover){border-color:var(--color-primary);box-shadow:var(--glass-shadow)}.category-card--expanded{border-color:var(--color-primary)}.category-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.category-card-header:hover .category-card-name{color:var(--color-primary)}.category-card-meta{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.category-card-icon{width:2.25rem;height:2.25rem;border-radius:var(--radius-md);background:var(--color-primary);opacity:.12;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.category-card-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;color:var(--color-primary);opacity:8.3}.category-card-name{font-size:.9375rem;font-weight:700;color:var(--color-text);transition:color var(--transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-card-count{font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap}.category-card-expand{border-top:1px solid var(--color-border-light);padding:0}.menu-item-list{display:flex;flex-direction:column}.menu-item-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:transparent;border-bottom:1px solid var(--color-border-light);font-size:.875rem;transition:background var(--transition);min-height:3.25rem}.menu-item-row:last-child{border-bottom:none}.menu-item-row:hover{background:var(--color-bg-hover, rgba(0,0,0,.03))}.menu-item-row-info{display:flex;flex-direction:column;gap:.125rem;flex:1;min-width:0}.menu-item-row-name{font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item-row-desc{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item-row-price{font-size:.9375rem;font-weight:700;color:var(--color-primary);white-space:nowrap;margin-left:1rem;letter-spacing:-.01em}.order-item-row{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;border-bottom:1px solid var(--color-border-light)}.order-item-row:last-child{border-bottom:none}.order-item-qty{width:64px;flex-shrink:0}.order-item-row--rich{padding:.5rem 0;gap:.625rem;align-items:center}.order-item-name-col{flex:1;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0}.order-item-name-label{font-size:.875rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.order-item-line-price{font-size:.8125rem;font-weight:600;color:var(--color-primary);white-space:nowrap}.order-total-preview{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-primary-light);border-radius:var(--radius-md);font-size:.9375rem;color:var(--color-primary-dark)}.order-total-preview strong{font-size:1.125rem;font-weight:700}.order-add-actions{display:flex;gap:.5rem;margin-top:.625rem;flex-wrap:wrap}.order-add-picker-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;min-height:40px;border-radius:10px;font-size:.875rem;font-weight:600;color:var(--color-primary-dark);background:var(--color-primary-light);border:1.5px solid rgba(0,189,125,.3);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),box-shadow var(--transition),transform 80ms ease;-webkit-user-select:none;user-select:none}.order-add-picker-btn:hover{background:#00bd7d2e;box-shadow:0 2px 8px #00bd7d38}.order-add-picker-btn:active{transform:scale(.96);opacity:.88}.order-add-manual-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;min-height:40px;border-radius:10px;font-size:.875rem;font-weight:500;color:var(--color-text-muted);background:transparent;border:1.5px solid var(--color-border);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),border-color var(--transition),color var(--transition),transform 80ms ease;-webkit-user-select:none;user-select:none}.order-add-manual-btn:hover{background:var(--color-surface);border-color:var(--color-text-muted);color:var(--color-text)}.order-add-manual-btn:active{transform:scale(.96);opacity:.88}.new-order-footer{gap:.625rem}.orders-sticky-header{position:sticky;top:0;z-index:10}.orders-filters-sticky{position:sticky;top:0;z-index:9;background:var(--color-bg);padding:.5rem 0;margin:-.5rem 0}.orders-desktop-view{display:block}.orders-desktop-toolbar{display:flex}.orders-mobile-view,.orders-fab,.page-fab,.orders-mobile-filters{display:none}.orders-mobile-tabs{display:flex;gap:.375rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.125rem}.orders-mobile-tabs::-webkit-scrollbar{display:none}.orders-mobile-tab{flex-shrink:0;padding:.4375rem .875rem;min-height:36px;border-radius:999px;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition),color var(--transition),border-color var(--transition)}.orders-mobile-tab:active{transform:scale(.94)}.orders-mobile-tab--active{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#00bd7d4d;font-weight:600}.orders-mobile-search{position:relative;margin-top:.625rem}.orders-mobile-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);pointer-events:none;display:flex}.orders-mobile-search-clear{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.orders-mobile-search-clear:hover{background:var(--color-border-light);color:var(--color-text)}.orders-mobile-search-input{width:100%;height:44px;padding:0 2.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.orders-mobile-search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.orders-mobile-cards{display:flex;flex-direction:column;gap:.75rem}.order-card{background:var(--glass-bg-dense);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);padding:1rem 1.125rem;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow var(--transition),transform 80ms ease}.order-card:active{transform:scale(.975);box-shadow:var(--glass-shadow)}.order-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.order-card-resource{font-size:1rem;font-weight:700;color:var(--color-text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-card-meta{display:flex;align-items:center;gap:.875rem;font-size:.8125rem;color:var(--color-text-muted)}.order-card-meta span{display:flex;align-items:center}.order-card-total{margin-left:auto;font-weight:700;color:var(--color-text);font-size:.9375rem}@media (max-width: 768px){.orders-desktop-view,.orders-desktop-toolbar{display:none}.orders-mobile-view{display:block}.orders-mobile-filters{display:block;position:sticky;top:0;z-index:20;background:var(--color-bg);padding:.75rem 0 .625rem;margin:-.5rem 0 .75rem;border-bottom:1px solid var(--color-border-light)}.page-fab,.orders-fab{display:flex;align-items:center;justify-content:center;position:fixed;bottom:calc(64px + 1rem + var(--safe-bottom) + 1rem);right:1.5rem;width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;box-shadow:0 4px 16px #00bd7d73;z-index:100;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),transform 80ms ease,box-shadow var(--transition)}.page-fab:active,.orders-fab:active{transform:scale(.91);box-shadow:0 2px 8px #00bd7d4d}.orders-header-new-btn,.resources-header-new-btn,.users-header-new-btn,.order-add-manual-btn{display:none}.resource-chip-grid{grid-template-columns:repeat(4,1fr)}}.bookings-sticky-header{position:sticky;top:0;z-index:30;background:var(--color-bg)}.bookings-desktop-view{display:block}.bookings-desktop-toolbar{display:flex}.bookings-mobile-view,.bookings-mobile-filters{display:none}.bookings-mobile-tabs{display:flex;gap:.375rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.125rem}.bookings-mobile-tabs::-webkit-scrollbar{display:none}.bookings-mobile-tab{flex-shrink:0;padding:.4375rem .875rem;min-height:36px;border-radius:999px;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition),color var(--transition),border-color var(--transition)}.bookings-mobile-tab:active{transform:scale(.94)}.bookings-mobile-tab--active{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#00bd7d4d;font-weight:600}.bookings-mobile-status-bar{display:flex;gap:.3rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-top:.5rem;padding-bottom:.125rem}.bookings-mobile-status-bar::-webkit-scrollbar{display:none}.bookings-mobile-status-pill{flex-shrink:0;padding:.25rem .625rem;min-height:28px;border-radius:999px;font-size:.75rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition),color var(--transition),border-color var(--transition)}.bookings-mobile-status-pill:active{transform:scale(.94)}.bookings-mobile-status-pill--active{background:var(--color-primary-light);color:var(--color-primary-dark);border-color:#00bd7d4d;font-weight:600}.bookings-mobile-search{position:relative;margin-top:.625rem}.bookings-mobile-search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);pointer-events:none;display:flex}.bookings-mobile-search-clear{position:absolute;right:.625rem;top:50%;transform:translateY(-50%);color:var(--color-text-subtle);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.bookings-mobile-search-clear:hover{background:var(--color-border-light);color:var(--color-text)}.bookings-mobile-search-input{width:100%;height:44px;padding:0 2.25rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;color:var(--color-text);background:var(--color-surface);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.bookings-mobile-search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.bookings-mobile-cards{display:flex;flex-direction:column;gap:.75rem}.booking-card{background:var(--glass-bg-dense);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow-sm);padding:1rem 1.125rem;display:flex;flex-direction:column;gap:.5rem;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:box-shadow var(--transition),transform 80ms ease}.booking-card:active{transform:scale(.975);box-shadow:var(--glass-shadow)}.booking-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.booking-card-name{font-size:1rem;font-weight:700;color:var(--color-text);flex:1;display:flex;align-items:center;gap:.375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-card-name-icon{flex-shrink:0;color:var(--color-primary)}.booking-card-meta{display:flex;align-items:center;gap:.75rem;font-size:.8125rem;color:var(--color-text-muted);flex-wrap:wrap}.booking-card-meta span{display:flex;align-items:center}.booking-card-resource{font-weight:600;color:var(--color-text)}.booking-card-datetime{display:flex;align-items:center}.booking-card-covers{margin-left:auto;font-weight:500}.booking-card-cancel{margin-top:.25rem;align-self:flex-start;padding:.25rem .625rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--color-danger);border:1px solid color-mix(in srgb,var(--color-danger) 30%,transparent);background:transparent;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition),color var(--transition)}.booking-card-cancel:hover{background:color-mix(in srgb,var(--color-danger) 8%,transparent)}@media (max-width: 768px){.bookings-desktop-view,.bookings-desktop-toolbar{display:none}.bookings-mobile-view{display:block}.bookings-mobile-filters{display:block;position:sticky;top:0;z-index:20;background:var(--color-bg);padding:.75rem 0 .625rem;margin:-.5rem 0 .75rem;border-bottom:1px solid var(--color-border-light)}.bookings-header-new-btn{display:none}}.resource-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.resource-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);border-left:4px solid var(--color-border);padding:1rem;display:flex;flex-direction:column;gap:.5rem;position:relative;box-shadow:var(--glass-shadow-sm);transition:box-shadow var(--transition),transform 80ms ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;cursor:default}.resource-card:hover{box-shadow:var(--glass-shadow)}.resource-card:active{transform:scale(.98)}.resource-card--free{border-left-color:var(--color-success)}.resource-card--occupied{border-left-color:var(--color-danger)}.resource-card--reserved{border-left-color:var(--color-warning)}.resource-card--cleaning{border-left-color:var(--color-text-subtle)}.resource-card-dot{position:absolute;top:.875rem;right:.875rem;width:8px;height:8px;border-radius:50%}.resource-card-dot--free{background-color:var(--color-success)}.resource-card-dot--occupied{background-color:var(--color-danger)}.resource-card-dot--reserved{background-color:var(--color-warning)}.resource-card-dot--cleaning{background-color:var(--color-text-subtle)}.resource-card-icon{width:36px;height:36px;border-radius:var(--radius-md);background-color:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.resource-card-name{font-weight:700;font-size:.9375rem;color:var(--color-text);padding-right:1.25rem;line-height:1.2}.resource-card-meta{font-size:.75rem;color:var(--color-text-muted)}.resource-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.5rem;border-top:1px solid var(--color-border-light)}.resource-card-zone{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-border-light);border-radius:var(--radius-sm);padding:.125rem .4375rem;width:fit-content}.resource-type-badge{display:inline-flex;align-items:center;gap:.3125rem;font-size:.8125rem;color:var(--color-text-muted)}.status-badge{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:500}.resource-status-badge--free{color:var(--color-success)}.resource-status-badge--occupied{color:var(--color-danger)}.resource-status-badge--reserved{color:var(--color-warning)}.resource-status-badge--cleaning{color:var(--color-text-muted)}.resource-filter-chip{display:inline-flex;align-items:center;gap:.3125rem;font-size:.8125rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.25rem .625rem;cursor:pointer;transition:background var(--transition),color var(--transition),border-color var(--transition);white-space:nowrap}.resource-filter-chip:hover{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary-light)}.resource-filter-chip--active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary);font-weight:600}.resource-stats{display:flex;gap:.75rem;flex-wrap:wrap}.resource-stat{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.25rem .625rem}.resource-stat-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.resource-stat strong{color:var(--color-text);font-weight:600}.users-desktop-view{display:block}.users-mobile-view{display:none}.users-card-list{display:flex;flex-direction:column;gap:.625rem}.users-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:.875rem 1rem;display:flex;align-items:center;gap:.75rem}.users-card-avatar{width:36px;height:36px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.users-card-info{flex:1;min-width:0}.users-card-name{display:flex;align-items:center;gap:.375rem;font-weight:600;font-size:.9rem;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.users-card-email{font-size:.8rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.125rem}.users-card-badges{display:flex;align-items:center;gap:.375rem;margin-top:.375rem}.users-card-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}@media (max-width: 768px){.users-desktop-view{display:none}.users-mobile-view{display:block}.resource-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.settings-section{background:var(--glass-bg);backdrop-filter:var(--glass-blur-sm);-webkit-backdrop-filter:var(--glass-blur-sm);border-radius:var(--radius-lg);border:1px solid var(--glass-border);overflow:hidden;box-shadow:var(--glass-shadow-sm)}.settings-section-header{padding:1.25rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.5)}.settings-section-title{font-size:1rem;font-weight:600;color:var(--color-text)}.settings-section-subtitle{font-size:.8125rem;color:var(--color-text-muted);margin-top:.125rem}.settings-section-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.settings-section-footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.5);background:#ffffff4d;display:flex;justify-content:flex-end}.module-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:.875rem 0;border-bottom:1px solid var(--color-border-light)}.module-toggle-row:last-child{border-bottom:none}.module-toggle-info{display:flex;flex-direction:column;gap:.125rem}.module-toggle-name{font-weight:600;font-size:.9375rem;color:var(--color-text)}.module-toggle-desc{font-size:.8125rem;color:var(--color-text-muted)}.toggle-switch{width:44px;height:24px;border-radius:999px;border:none;cursor:pointer;transition:background-color var(--transition);position:relative;flex-shrink:0}.toggle-switch--on{background-color:var(--color-primary)}.toggle-switch--off{background-color:var(--color-border)}.toggle-switch:after{content:"";position:absolute;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left var(--transition);box-shadow:0 1px 3px #0003}.toggle-switch--on:after{left:calc(100% - 21px)}.toggle-switch--off:after{left:3px}@media (max-width: 768px){.toggle-switch{width:52px;height:28px}.toggle-switch:after{width:22px;height:22px}.toggle-switch--on:after{left:calc(100% - 25px)}.toggle-switch--off:after{left:3px}}.mobile-topbar,.mobile-bottom-nav,.mobile-more-overlay,.mobile-more-sheet{display:none}@media (max-width: 768px){.sidebar{display:none}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;height:calc(52px + var(--safe-top));padding:var(--safe-top) 1rem 0;background-color:var(--sidebar-bg);flex-shrink:0;border-bottom:1px solid var(--sidebar-border)}.mobile-topbar-brand{display:flex;align-items:center;gap:.5rem}.mobile-topbar-name{font-size:1rem;font-weight:700;color:var(--sidebar-text-white);letter-spacing:-.02em}.mobile-topbar-user{display:flex;align-items:center}.sidebar-user-avatar--sm{width:28px;height:28px;font-size:.75rem}.mobile-bottom-nav{display:flex;align-items:center;justify-content:space-around;position:fixed;bottom:calc(1rem + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:200;width:calc(100% - 2rem);max-width:420px;height:64px;padding:0 .5rem;background-color:var(--sidebar-bg);border-radius:999px;box-shadow:0 8px 32px #00000047,0 2px 8px #0000002e;border:1px solid var(--sidebar-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.mobile-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;height:52px;border-radius:15px;color:var(--sidebar-text-white);transition:color var(--transition),background-color var(--transition);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.mobile-tab:active{transform:scale(.9)}.mobile-tab--active{color:var(--sidebar-text-muted);background-color:none}.mobile-tab-icon{display:flex;align-items:center;justify-content:center;line-height:1}.mobile-tab-label{font-size:.6rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.mobile-more-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background-color:#00000073;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in .18s ease}.mobile-more-sheet{display:flex;flex-direction:column;position:fixed;bottom:0;left:0;right:0;z-index:400;background-color:var(--sidebar-bg);border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);border-top:1px solid var(--sidebar-border);transform:translateY(100%);transition:transform .3s cubic-bezier(.25,1,.5,1);overflow:hidden;padding-bottom:calc(10px + 1rem)}.mobile-more-sheet--open{transform:translateY(0)}.mobile-more-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;flex-shrink:0}.mobile-more-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-text-muted)}.mobile-more-close{width:32px;height:32px;border-radius:50%;background-color:var(--sidebar-surface);color:var(--sidebar-text-muted);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition),color var(--transition)}.mobile-more-close:hover{background-color:var(--sidebar-surface-hover);color:var(--sidebar-text-white)}.mobile-more-items{padding:.25rem .75rem;display:flex;flex-direction:column;gap:2px}.mobile-more-link{display:flex;align-items:center;gap:.875rem;padding:.875rem;border-radius:var(--radius-lg);color:var(--sidebar-text);font-size:.9375rem;font-weight:500;min-height:52px;transition:background-color var(--transition),color var(--transition);-webkit-tap-highlight-color:transparent}.mobile-more-link:active,.mobile-more-link--active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-white)}.mobile-more-link-icon{flex-shrink:0;display:flex;align-items:center}.mobile-more-link-label{flex:1}.mobile-more-footer{margin:.5rem .75rem 0;padding:1rem;border-top:1px solid var(--sidebar-border);display:flex;flex-direction:column;gap:.875rem;flex-shrink:0;border-radius:var(--radius-lg)}.mobile-more-user{display:flex;align-items:center;gap:.75rem;min-width:0}.mobile-more-footer-actions{display:flex;align-items:center;gap:.625rem}.mobile-more-footer-actions .sidebar-lang{flex:1;justify-content:flex-start}.mobile-more-logout-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:var(--radius-md);border:1px solid var(--sidebar-border);background:transparent;color:var(--sidebar-text);font-size:.8125rem;font-weight:500;cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition);white-space:nowrap;min-height:44px}.mobile-more-logout-btn:hover,.mobile-more-logout-btn:active{background-color:var(--sidebar-danger-bg);color:var(--sidebar-danger-text);border-color:transparent}}.install-prompt{position:fixed;bottom:calc(1.25rem + var(--safe-bottom));left:50%;transform:translate(-50%);z-index:500;display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;width:calc(100% - 2rem);max-width:420px;background:var(--glass-bg-dense);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow-lg);animation:install-prompt-in .32s cubic-bezier(.25,1,.5,1) both}@keyframes install-prompt-in{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.install-prompt__icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.install-prompt__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.install-prompt__title{font-size:.875rem;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.install-prompt__subtitle{font-size:.75rem;color:var(--color-text-muted)}.install-prompt__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.install-prompt__btn-install{padding:.5rem .875rem;min-height:36px;background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:.8125rem;font-weight:600;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),transform 80ms ease}.install-prompt__btn-install:hover{background:var(--color-primary-dark)}.install-prompt__btn-install:active{transform:scale(.94)}.install-prompt__btn-dismiss{width:32px;height:32px;border-radius:50%;color:var(--color-text-subtle);display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition),color var(--transition)}.install-prompt__btn-dismiss:hover{background:var(--color-border-light);color:var(--color-text-muted)}@media (max-width: 768px){.install-prompt{bottom:calc(1.25rem + 64px + 1rem + var(--safe-bottom));max-width:calc(100% - 2rem)}}
