.sidebar-overlay[data-v-1b79f603]{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:250}.sidebar[data-v-1b79f603]{width:220px;background:var(--color-card);border-right:1px solid var(--color-border);padding:24px 0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;box-shadow:2px 0 12px #4a37280f}.sidebar-logo[data-v-1b79f603]{padding:0 20px 24px;text-align:center;border-bottom:1px solid var(--color-border);margin-bottom:8px}.sidebar-logo h1[data-v-1b79f603]{font-size:1.25rem;color:var(--color-primary);font-weight:700}.sidebar-logo .logo-icon[data-v-1b79f603]{font-size:2rem;display:block;margin-bottom:4px}.sidebar-nav[data-v-1b79f603]{display:flex;flex-direction:column;flex:1;padding:8px 12px;overflow-y:auto;-webkit-overflow-scrolling:touch}.nav-item[data-v-1b79f603]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);color:var(--color-text-light);font-size:.95rem;font-weight:500;transition:all .2s;margin-bottom:2px;cursor:pointer}.nav-item[data-v-1b79f603]:hover{background:var(--color-background);color:var(--color-text)}.nav-item.active[data-v-1b79f603]{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;box-shadow:0 4px 12px #ff7b5e4d}.nav-item .nav-icon[data-v-1b79f603]{font-size:1.3rem;width:28px;text-align:center}.nav-logout[data-v-1b79f603]{margin-top:auto;border-top:1px solid var(--color-border);padding-top:12px}.topbar[data-v-1b79f603]{display:none;background:var(--color-card);padding:12px 16px;border-bottom:1px solid var(--color-border);align-items:center;justify-content:space-between;position:sticky;top:0;z-index:99;box-shadow:var(--shadow-sm)}.topbar-title[data-v-1b79f603]{font-size:1.1rem;font-weight:700;color:var(--color-primary)}.topbar-menu-btn[data-v-1b79f603]{background:none;font-size:1.5rem;padding:4px;color:var(--color-text);border:none;cursor:pointer}@media (max-width: 768px),(orientation: portrait){.sidebar-overlay[data-v-1b79f603]{display:block}.sidebar[data-v-1b79f603]{display:none}.sidebar.mobile-open[data-v-1b79f603]{display:flex;position:fixed;z-index:300;width:260px}.topbar[data-v-1b79f603]{display:flex}}@media (max-height: 500px) and (orientation: landscape){.sidebar[data-v-1b79f603]{padding:8px 0}.sidebar-logo[data-v-1b79f603]{padding:0 16px 8px;margin-bottom:4px}.sidebar-logo .logo-icon[data-v-1b79f603]{font-size:1.3rem;margin-bottom:0}.sidebar-logo h1[data-v-1b79f603]{font-size:.95rem}.nav-item[data-v-1b79f603]{padding:6px 12px;font-size:.82rem;margin-bottom:1px}.nav-item .nav-icon[data-v-1b79f603]{font-size:1rem;width:24px}.nav-logout[data-v-1b79f603]{padding-top:6px}}.app-container[data-v-39ca6cc7]{display:flex;min-height:100vh;max-width:1200px;margin:0 auto}.main-area[data-v-39ca6cc7]{margin-left:220px;flex:1;padding:24px 32px;min-height:100vh}.bottom-nav[data-v-39ca6cc7],.mobile-topbar[data-v-39ca6cc7]{display:none}.layout-mobile[data-v-39ca6cc7]{max-width:100vw;overflow-x:hidden}.layout-mobile .main-area[data-v-39ca6cc7]{margin-left:0;padding:56px 12px 80px;max-width:100vw;overflow-x:hidden;box-sizing:border-box}.layout-mobile .mobile-topbar[data-v-39ca6cc7]{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:300;height:44px;background:linear-gradient(135deg,#ff7b5e,#e5664a);color:#fff;font-size:1rem;font-weight:700;padding:0 12px;padding-top:env(safe-area-inset-top,0)}.tb-title[data-v-39ca6cc7]{flex:1;text-align:center}.tb-actions[data-v-39ca6cc7]{display:flex;gap:4px}.tb-btn[data-v-39ca6cc7]{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:4px}.layout-mobile .bottom-nav[data-v-39ca6cc7]{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:300;background:#fff;border-top:1px solid #f0e6dc;padding:4px 0 env(safe-area-inset-bottom,4px);justify-content:space-around;align-items:center;height:64px;box-shadow:0 -2px 12px #4a372814}.layout-mobile .bottom-nav-item[data-v-39ca6cc7]{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;border-radius:14px;cursor:pointer;transition:all .2s;min-width:56px}.layout-mobile .bottom-nav-item.active[data-v-39ca6cc7]{background:linear-gradient(135deg,#ff7b5e,#e5664a);color:#fff;transform:scale(1.08)}.layout-mobile .bn-icon[data-v-39ca6cc7]{font-size:1.4rem}.layout-mobile .bn-label[data-v-39ca6cc7]{font-size:.65rem;font-weight:600;color:#8a7a6e}.layout-mobile .bottom-nav-item.active .bn-label[data-v-39ca6cc7]{color:#fff}.modal-overlay[data-v-39ca6cc7]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:400;display:flex;align-items:center;justify-content:center;padding:20px}.settings-card[data-v-39ca6cc7]{background:#fff;border-radius:16px;padding:24px;max-width:340px;width:100%}.set-row[data-v-39ca6cc7]{display:flex;align-items:center;gap:8px;margin:10px 0}.set-row span[data-v-39ca6cc7]:first-child{width:80px}.set-row input[type=range][data-v-39ca6cc7]{flex:1}.btn[data-v-39ca6cc7]{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:24px;font-size:.9rem;font-weight:600;border:none;cursor:pointer;font-family:inherit}.btn-primary[data-v-39ca6cc7]{background:linear-gradient(135deg,#ff7b5e,#e5664a);color:#fff}.btn-full[data-v-39ca6cc7]{width:100%;margin-top:12px}.logout-card[data-v-39ca6cc7]{background:#fff;border-radius:16px;padding:24px;max-width:300px;width:100%;text-align:center}.logout-card h3[data-v-39ca6cc7]{margin-bottom:20px;color:#4a3728}.logout-actions[data-v-39ca6cc7]{display:flex;gap:12px;justify-content:center}.logout-actions .btn[data-v-39ca6cc7]{flex:1}:root{--color-primary: #FF7B5E;--color-primary-dark: #e5664a;--color-primary-light: #ff9a82;--color-secondary: #FFD166;--color-secondary-dark: #e6bc4d;--color-background: #FFF8F0;--color-card: #FFFFFF;--color-text: #4A3728;--color-text-light: #8a7a6e;--color-points: #4ECDC4;--color-points-dark: #3ab8b0;--color-danger: #FF6B6B;--color-success: #51CF66;--color-border: #f0e6dc;--shadow-sm: 0 2px 8px rgba(74, 55, 40, .08);--shadow-md: 0 4px 16px rgba(74, 55, 40, .12);--shadow-lg: 0 8px 32px rgba(74, 55, 40, .16);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;background-color:var(--color-background);color:var(--color-text);line-height:1.6;min-height:100vh;overflow-x:hidden}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-dark)}button{cursor:pointer;font-family:inherit;border:none;outline:none;transition:all .2s ease}input,select,textarea{font-family:inherit;outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:24px;font-size:.9rem;font-weight:600;transition:all .2s}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;box-shadow:0 4px 12px #ff7b5e4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ff7b5e66}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-dark));color:var(--color-text);box-shadow:0 4px 12px #ffd1664d}.btn-secondary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #ffd16666}.btn-outline{background:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background:var(--color-primary);color:#fff}.btn-danger{background:var(--color-danger);color:#fff}.btn-ghost{background:transparent;color:var(--color-text-light);padding:8px 12px}.btn-ghost:hover{background:var(--color-background);color:var(--color-text)}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--color-text);margin-bottom:6px}.form-input{width:100%;padding:12px 16px;border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;color:var(--color-text);background:var(--color-card);transition:border-color .2s}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #ff7b5e26}.form-input::placeholder{color:#bbb}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--color-text-light)}.loading-spinner:after{content:"";width:32px;height:32px;border:3px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-left:12px}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:var(--radius-sm);color:#fff;font-weight:500;z-index:1000;animation:slideInRight .3s ease;box-shadow:var(--shadow-lg)}.toast-success{background:var(--color-success)}.toast-error{background:var(--color-danger)}.toast-info{background:var(--color-primary)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.file-input-hidden{display:none}.card{background:var(--color-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:20px;transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.page-header{margin-bottom:24px}.page-header h2{font-size:1.5rem;font-weight:700;color:var(--color-text)}.page-header p{color:var(--color-text-light);font-size:.9rem;margin-top:4px}@media (max-width: 768px),(orientation: portrait){.student-grid,.snack-grid{grid-template-columns:repeat(2,1fr)!important}.modal-overlay{z-index:400!important}.modal-card{max-width:95vw!important;padding:16px;border-radius:12px 12px 0 0;position:fixed;bottom:0;top:auto!important;max-height:70vh;overflow-y:auto!important}.filter-row{flex-wrap:wrap;gap:4px}.filter-row>*{font-size:.78rem!important}.header-row{flex-wrap:wrap;gap:4px}.header-row>*{font-size:.78rem!important}.btn{padding:8px 14px;font-size:.82rem}.btn-sm{padding:5px 10px;font-size:.75rem}.form-input{padding:8px 10px;font-size:.85rem}input,select,textarea{font-size:16px!important}}
