@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--kumon-light-blue:#89cdf2;--kumon-sidebar-blue:#0f5f8f;--kumon-primary-blue:#1976a8;--kumon-deep-blue:#0b4f78;--kumon-soft-blue:#eaf7fe;--app-background:#f7f9fc;--surface:#fff;--text-primary:#1f2937;--text-secondary:#6b7280;--text-muted:#94a3b8;--border:#e5e7eb;--border-light:#eef0f3;--success:#22a06b;--success-bg:#e8f7ef;--success-text:#16794a;--warning:#f59e0b;--warning-bg:#fff5e1;--warning-text:#b76e00;--danger:#e55353;--danger-bg:#fdecec;--danger-text:#c93d3d;--info:#3b82c4;--info-bg:#eaf3fe;--info-text:#2563a8;--neutral:#94a3b8;--neutral-bg:#f1f5f9;--neutral-text:#64748b;--radius-sm:10px;--radius-md:16px;--radius-lg:20px;--radius-full:999px;--shadow-sm:0 2px 8px #0f5f8f0a;--shadow-md:0 8px 24px #0f5f8f1a;--sidebar-width:260px;--transition:all .2s ease}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0;padding:0}body{background:var(--app-background);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif}button,input,select,textarea{font-family:inherit}button{cursor:pointer}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--kumon-sidebar-blue);color:#fff;flex-shrink:0;min-height:100vh;padding:32px 20px}.app-main{background:var(--app-background);flex:1;min-width:0;min-height:100vh;padding:48px}.sidebar-brand{padding:8px 12px 32px}.sidebar-brand-title{color:#fff;letter-spacing:-.5px;margin:0;font-size:24px;font-weight:700}.sidebar-brand-subtitle{color:#ffffffb3;margin-top:4px;font-size:13px}.sidebar-nav{flex-direction:column;gap:8px;display:flex}.sidebar-nav-item{color:#ffffffbf;border-radius:var(--radius-sm);text-align:left;width:100%;transition:var(--transition);background:0 0;border:none;align-items:center;gap:12px;padding:13px 14px;font-size:14px;font-weight:500;display:flex}.sidebar-nav-item:hover{color:#fff;background:#ffffff14}.sidebar-nav-item.active{color:var(--kumon-light-blue);background:#89cdf22e;font-weight:600}.sidebar-nav-icon{flex-shrink:0;width:20px;height:20px}.page-header{width:100%;max-width:1100px;margin:0 0 32px;padding:0}.page-eyebrow{color:var(--text-secondary);margin-bottom:6px;font-size:14px;font-weight:500}.page-title{color:var(--text-primary);letter-spacing:-.6px;margin:0;font-size:28px;font-weight:700}.page-subtitle{color:var(--text-secondary);margin:8px 0 0;font-size:14px}.action-subject-count{color:var(--text-muted);margin-top:4px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px;max-width:1100px;margin-bottom:32px;display:grid}.stat-card{padding:22px}.stat-card-icon{border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:14px;font-size:15px;display:flex}.stat-card-value{color:var(--text-primary);letter-spacing:-1px;font-size:32px;font-weight:700;line-height:1}.stat-card-label{color:var(--text-primary);margin-top:9px;font-size:16px;font-weight:700;line-height:1.2}.btn{border-radius:var(--radius-sm);min-height:44px;transition:var(--transition);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--kumon-primary-blue);color:#fff}.btn-primary:hover{background:var(--kumon-sidebar-blue)}.btn-secondary{border-color:var(--border);color:var(--text-primary);background:#fff}.btn-secondary:hover{background:var(--kumon-soft-blue);border-color:var(--kumon-light-blue)}.btn-accent{background:var(--kumon-light-blue);color:var(--kumon-deep-blue)}.btn-accent:hover{filter:brightness(.96)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.92)}.btn-full{width:100%}.input,.search-input,.select{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:48px;color:var(--text-primary);transition:var(--transition);background:#fff;outline:none;padding:0 14px;font-size:14px}.input:focus,.search-input:focus,.select:focus{border-color:var(--kumon-light-blue);box-shadow:0 0 0 4px #89cdf233}.status-badge{border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-dot{border-radius:50%;width:7px;height:7px}.status-success{background:var(--success-bg);color:var(--success-text)}.status-success .status-dot{background:var(--success)}.status-warning{background:var(--warning-bg);color:var(--warning-text)}.status-warning .status-dot{background:var(--warning)}.status-danger{background:var(--danger-bg);color:var(--danger-text)}.status-danger .status-dot{background:var(--danger)}.status-info{background:var(--info-bg);color:var(--info-text)}.status-info .status-dot{background:var(--info)}.status-neutral{background:var(--neutral-bg);color:var(--neutral-text)}.status-neutral .status-dot{background:var(--neutral)}.section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.section-title{color:var(--text-primary);margin:0;font-size:18px;font-weight:600}.section-description{color:var(--text-secondary);margin:6px 0 0;font-size:14px}.activity-list{overflow:hidden}.activity-row{border-bottom:1px solid var(--border-light);align-items:center;gap:16px;padding:18px 20px;display:flex}.activity-row:last-child{border-bottom:none}.activity-row-status{border-radius:50%;flex-shrink:0;width:10px;height:10px}.activity-row-content{flex:1;min-width:0}.activity-row-name{color:var(--text-primary);font-size:14px;font-weight:600}.activity-row-detail{color:var(--text-secondary);margin-top:4px;font-size:13px}.activity-row-action{flex-shrink:0}.quick-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:1100px;display:grid}.quick-action-card{border:1px solid var(--border);border-radius:var(--radius-lg);text-align:left;min-height:190px;transition:var(--transition);background:#fff;padding:24px}.quick-action-card:hover{border-color:var(--kumon-light-blue);box-shadow:var(--shadow-md);transform:translateY(-2px)}.quick-action-icon{background:var(--kumon-soft-blue);width:48px;height:48px;color:var(--kumon-primary-blue);border-radius:14px;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.quick-action-title{color:var(--text-primary);font-size:18px;font-weight:600}.quick-action-description{color:var(--text-secondary);margin-top:8px;font-size:14px;line-height:1.5}.instructor-page{width:100%;max-width:1100px;margin:0;padding:0}.instructor-page .page-header,.instructor-page .instructor-search-card,.instructor-page .checked-in-section{width:100%;max-width:1100px;margin-left:0;margin-right:0}.instructor-search-card{width:100%;margin-bottom:32px;padding:24px}.instructor-search-input{margin-top:20px}.search-results{flex-direction:column;gap:8px;max-height:350px;margin-top:12px;display:flex;overflow-y:auto}.student-result-avatar,.student-avatar{background:var(--kumon-soft-blue);width:40px;height:40px;color:var(--kumon-primary-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.student-result-name{color:var(--text-primary);flex:1;font-size:15px;font-weight:600}.student-result-arrow{color:var(--text-muted);font-size:20px}.empty-search-result{text-align:center;color:var(--text-secondary);padding:24px}.checked-in-section{width:100%;margin-top:0}.checked-in-list{flex-direction:column;gap:12px;display:flex}.checked-in-student-card{justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.checked-in-student-main{align-items:center;gap:14px;min-width:0;display:flex}.checked-in-student-subjects{color:var(--text-muted);margin-top:4px;font-size:12px}.checked-in-student-info{min-width:0}.checked-in-student-name{color:var(--text-primary);font-size:16px;font-weight:600}.checked-in-student-time{color:var(--text-secondary);margin-top:5px;font-size:13px}.student-time-divider{margin:0 7px}.checked-in-student-actions{flex-shrink:0;align-items:center;gap:12px;display:flex}.empty-state{text-align:center;padding:48px 24px}.empty-state-icon{background:var(--success-bg);width:52px;height:52px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:24px;font-weight:700;display:flex}.empty-state h3{color:var(--text-primary);margin:0;font-size:17px}.empty-state p{color:var(--text-secondary);margin:8px 0 0;font-size:14px}.action-page{justify-content:center;align-items:center;min-height:calc(100vh - 96px);display:flex}.action-card{text-align:center;width:100%;max-width:520px;padding:40px}.action-student-avatar{background:var(--kumon-soft-blue);width:76px;height:76px;color:var(--kumon-primary-blue);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 24px;font-size:30px;font-weight:700;display:flex}.action-time-section{text-align:left;margin:32px 0 24px}.action-time-label{color:var(--text-primary);margin-bottom:10px;font-size:14px;font-weight:600;display:block}.action-time-input{border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;width:100%;height:58px;padding:0 16px;font-family:inherit;font-size:20px}.action-time-input:focus{border-color:var(--kumon-light-blue);box-shadow:0 0 0 4px #89cdf233}.action-confirm-button{width:100%;min-height:56px;font-size:17px}.action-back-button{color:var(--text-secondary);background:0 0;border:none;margin-top:20px;font-family:inherit;font-size:14px}.action-back-button:hover{color:var(--kumon-primary-blue)}.action-message,.instructor-message{color:var(--text-secondary);margin-top:20px;font-size:14px}@media (width<=900px){.sidebar{width:220px;min-width:220px}.app-main{padding:32px 24px}.quick-actions-grid{grid-template-columns:1fr}.sidebar-brand{padding:4px 8px 16px}.sidebar-nav{flex-direction:row;overflow-x:auto}.sidebar-nav-item{white-space:nowrap;width:auto}.app-main{width:100%;padding:24px 16px}.page-title{font-size:24px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:18px}.stat-card-value{font-size:28px}.activity-row{padding:16px}.checked-in-student-card{flex-direction:column;align-items:flex-start}.checked-in-student-actions{justify-content:space-between;width:100%}.action-card{padding:28px 20px}.section-header{flex-direction:column;align-items:flex-start}}.student-checkin-search{width:100%;max-width:1100px;margin-bottom:32px;padding:24px}.student-checkin-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:58px;color:var(--text-primary);transition:var(--transition);background:#fff;outline:none;margin-top:20px;padding:0 18px;font-family:inherit;font-size:18px}.student-checkin-input::placeholder{color:var(--text-muted)}.student-checkin-input:focus{border-color:var(--kumon-light-blue);box-shadow:0 0 0 4px #89cdf233}.student-selection-section{width:100%;max-width:1100px}.student-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.student-selection-card{min-height:170px;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;transition:var(--transition);background:#fff;flex-direction:column;align-items:flex-start;padding:24px;display:flex}.student-selection-card:hover{border-color:var(--kumon-light-blue);box-shadow:var(--shadow-md);transform:translateY(-2px)}.student-selection-avatar{background:var(--kumon-soft-blue);width:48px;height:48px;color:var(--kumon-primary-blue);border-radius:50%;justify-content:center;align-items:center;margin-bottom:18px;font-size:20px;font-weight:700;display:flex}.student-selection-name{color:var(--text-primary);font-size:17px;font-weight:600}.student-selection-action{color:var(--kumon-primary-blue);align-items:center;gap:8px;margin-top:auto;padding-top:14px;font-size:13px;font-weight:600;display:flex}.student-selection-action span{font-size:17px}.student-result-count{border-radius:var(--radius-full);background:var(--kumon-soft-blue);color:var(--kumon-primary-blue);padding:6px 10px;font-size:12px;font-weight:600}.student-empty-state{text-align:center;padding:48px 24px}.student-empty-icon{background:var(--kumon-soft-blue);width:52px;height:52px;color:var(--kumon-primary-blue);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;font-size:24px;font-weight:700;display:flex}.student-empty-state h3{color:var(--text-primary);margin:0;font-size:17px}.student-empty-state p{color:var(--text-secondary);margin:8px 0 0;font-size:14px}.student-checkin-message{color:var(--text-secondary);margin-top:24px}.student-action-page{justify-content:center;align-items:center;min-height:calc(100vh - 96px);padding:32px 0;display:flex}.student-action-card{text-align:center;width:100%;max-width:500px;padding:40px}.student-status{border-radius:var(--radius-md);width:100%;margin:24px 0 16px;padding:24px}.student-status-checked-in{background:var(--success-bg);color:var(--success-text);border:2px solid var(--success)}.student-status-checked-out{background:var(--kumon-soft-blue);color:var(--kumon-primary-blue);border:2px solid var(--kumon-primary-blue)}.student-status-title{font-size:22px;font-weight:700}.student-status-detail{opacity:.8;margin-top:6px;font-size:15px}.student-attendance-button{border-radius:var(--radius-md);color:#fff;cursor:pointer;width:100%;min-height:68px;transition:var(--transition);border:none;font-family:inherit;font-size:22px;font-weight:700}.student-action-avatar{background:var(--kumon-soft-blue);width:84px;height:84px;color:var(--kumon-primary-blue);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 24px;font-size:32px;font-weight:700;display:flex}.student-action-name{color:var(--text-primary);margin:0 0 32px;font-size:28px;font-weight:700}.student-action-loading{color:var(--text-secondary);padding:32px;font-size:16px}.student-status-icon{background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;font-weight:700;display:flex}.student-attendance-button:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.student-checkin-button{background:var(--success)}.student-checkout-button{background:var(--danger)}.student-action-back{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-top:28px;font-family:inherit;font-size:14px}.student-action-back:hover{color:var(--kumon-primary-blue)}.student-action-message{color:var(--text-secondary);margin:20px 0 0;font-size:14px}.settings-section{width:100%;max-width:1100px;margin-bottom:24px;padding:28px}.settings-section-header{align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.settings-section-icon{background:var(--kumon-soft-blue);width:46px;height:46px;color:var(--kumon-primary-blue);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.settings-section-icon.warning{background:var(--warning-bg);color:var(--warning)}.student-form{flex-direction:column;gap:20px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-field{flex-direction:column;gap:8px;display:flex}.form-field label{color:var(--text-primary);font-size:14px;font-weight:600}.form-field input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:46px;color:var(--text-primary);background:#fff;outline:none;padding:0 14px;font-family:inherit;font-size:14px}.form-field input:focus{border-color:var(--kumon-light-blue);box-shadow:0 0 0 4px #89cdf233}.settings-status{color:var(--text-secondary);margin:20px 0 0;font-size:14px}.upload-info{background:var(--kumon-soft-blue);border-radius:var(--radius-sm);margin-bottom:20px;padding:20px}.upload-info-title{color:var(--kumon-primary-blue);margin-bottom:10px;font-size:14px;font-weight:700}.upload-info ul{color:var(--text-secondary);margin:0;padding-left:20px;font-size:14px;line-height:1.7}.file-upload-button{border:2px dashed var(--kumon-light-blue);border-radius:var(--radius-md);width:100%;min-height:100px;color:var(--kumon-primary-blue);cursor:pointer;transition:var(--transition);background:#fff;flex-direction:column;justify-content:center;align-items:center;display:flex}.file-upload-button:hover{background:var(--kumon-soft-blue)}.file-upload-button input{display:none}.file-upload-icon{margin-bottom:6px;font-size:24px;font-weight:700}.file-upload-button small{color:var(--text-muted);margin-top:4px;font-size:12px}.missing-students-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:24px;display:grid}.missing-student-row{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;min-height:64px;transition:var(--transition);align-items:center;gap:12px;padding:12px 16px;display:flex;position:relative}.missing-student-row:hover{border-color:var(--kumon-primary-blue);transform:translateY(-1px)}.missing-student-row:has(input:checked){background:var(--warning-bg);border-color:var(--warning)}.missing-student-row input{cursor:pointer;flex-shrink:0;width:18px;height:18px}.missing-student-avatar{background:var(--kumon-soft-blue);width:36px;height:36px;color:var(--kumon-primary-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.missing-student-name{min-width:0;color:var(--text-primary);font-size:15px;font-weight:600}.missing-students-card{border-color:#f4d49b}.missing-students-actions{gap:10px;margin-bottom:16px;display:flex}.btn:disabled{opacity:.45;cursor:not-allowed}@media (width<=700px){.form-row{grid-template-columns:1fr}.settings-section{padding:22px}}.student-kiosk{background:var(--app-background);min-height:100vh}.student-kiosk-back{z-index:10;color:var(--text-muted);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-family:inherit;font-size:13px;position:fixed;top:20px;left:24px}.student-kiosk-back:hover{color:var(--text-primary);opacity:1;background:#0000000a}.student-kiosk-main{width:100%;max-width:1100px;margin:0 auto;padding:72px 32px 48px}.auth-page{background:var(--app-background);justify-content:center;align-items:center;min-height:100vh;padding:32px;display:flex}.auth-layout{width:100%;max-width:1100px;min-height:680px;box-shadow:var(--shadow-md);background:#fff;border-radius:24px;grid-template-columns:.9fr 1.1fr;display:grid;overflow:hidden}.auth-form-panel{justify-content:center;align-items:center;padding:64px 56px;display:flex}.auth-card{width:100%;max-width:430px}.auth-eyebrow{color:var(--kumon-primary-blue);letter-spacing:.12em;margin-bottom:12px;font-size:12px;font-weight:700}.auth-title{color:var(--text-primary);margin:0;font-size:32px;line-height:1.2}.auth-description{color:var(--text-secondary);margin:12px 0 30px;font-size:15px;line-height:1.6}.auth-form{flex-direction:column;gap:18px;display:flex}.auth-submit{width:100%;min-height:50px;margin-top:8px;font-size:16px}.auth-switch{color:var(--text-secondary);text-align:center;margin:24px 0 0;font-size:14px}.auth-switch button{color:var(--kumon-primary-blue);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.auth-switch button:hover{text-decoration:underline}.auth-brand-subtitle{color:var(--text-secondary);margin-top:4px;font-size:13px}.auth-page>.auth-card{border:1px solid var(--border);box-shadow:var(--shadow-md);background:#fff;border-radius:20px;padding:48px}.onboarding-card{max-width:560px}.auth-icon{background:var(--kumon-soft-blue);width:58px;height:58px;color:var(--kumon-primary-blue);border-radius:16px;justify-content:center;align-items:center;margin-bottom:24px;font-size:26px;display:flex}.auth-info-box{background:var(--kumon-soft-blue);border-radius:var(--radius-sm);margin-bottom:22px;padding:18px 20px}.auth-info-title{color:var(--kumon-primary-blue);margin-bottom:8px;font-size:14px;font-weight:700}.auth-info-box ul{color:var(--text-secondary);margin:0;padding-left:20px;font-size:14px;line-height:1.7}.auth-upload{margin-bottom:20px}@media (width<=800px){.auth-page{padding:20px}}.auth-layout{grid-template-columns:1fr;max-width:520px}.auth-brand-panel{text-align:center;color:#fff;background:#102b4e;flex-direction:column;justify-content:center;align-items:center;padding:56px;display:flex}.auth-brand-name{letter-spacing:-1px;margin-bottom:20px;font-size:44px;font-weight:800}.auth-brand-message{max-width:360px}.auth-brand-message h2{letter-spacing:0;margin:0;font-size:14px;font-weight:500;line-height:1.4}.auth-brand-message p{color:#ffffffad;margin:16px 0 0;font-size:15px;line-height:1.6}.auth-page>.auth-brand{align-self:flex-start;margin-bottom:24px;position:static}.auth-page:has(>.auth-brand){flex-direction:column;justify-content:flex-start}.auth-page>.auth-card{padding:32px 24px}.sidebar-nav{flex:1}.sidebar-logout{color:#fff;cursor:pointer;background:#ffffff14;border:none;border-radius:10px;align-items:center;gap:12px;width:calc(100% - 32px);margin:16px;padding:14px 16px;font-family:inherit;font-size:14px;display:flex}.sidebar-logout:hover{background:#ffffff26}.alert{border-radius:12px;align-items:center;gap:12px;margin-top:20px;padding:14px 16px;font-size:14px;line-height:1.5;display:flex}.alert-success{color:#1f7a4d;background:#eaf8f0;border:1px solid #bfe8cf}.alert-error{color:#b93838;background:#fff0f0;border:1px solid #f3c1c1}.alert-warning{color:#9a6a00;background:#fff8e8;border:1px solid #f0d99c}.alert-info{background:var(--kumon-soft-blue);color:#256b91;border:1px solid #b9e2f5}.alert-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-weight:700;display:flex}.alert-info .alert-icon{font-size:0}.alert-info .alert-icon:after{content:"";border:2px solid #256b9140;border-top-color:#256b91;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.file-upload-button.is-loading{opacity:.6;cursor:wait;pointer-events:none}button:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.checked-in-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.checked-in-grid-card{flex-direction:column;align-items:stretch;gap:16px;display:flex}.checked-in-grid-card .checked-in-student-main{width:100%}.checked-in-grid-card .checked-in-student-actions{flex-direction:column;gap:10px;width:100%;display:flex}.checked-in-grid-card .checked-in-student-actions .btn{width:100%}.checked-in-grid-card{flex-direction:column;justify-content:space-between;min-height:150px;display:flex}.checked-in-grid-card.status-success{background:#d8f3e3;border:2px solid #5bbf7a}.checked-in-grid-card.status-warning{background:#fff0c2;border:2px solid #e0a900}.checked-in-grid-card.status-danger{background:#ffdada;border:2px solid #e05a5a}.checked-in-grid-card .checked-in-student-name{font-size:18px;font-weight:700}.checked-in-grid-card .checked-in-student-time{opacity:.75;margin-top:6px;font-size:14px}.checked-in-grid-card .btn{width:100%;margin-top:16px}.birthday-section{margin-top:32px}.birthday-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.birthday-card{border-radius:var(--radius-md);min-height:110px;transition:var(--transition);border:1px solid #0000;align-items:center;gap:16px;padding:20px;display:flex}.birthday-card-icon{background:#ffffff8c;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:28px;display:flex}.birthday-card-content{min-width:0}.birthday-card-name{color:var(--text-primary);font-size:17px;font-weight:700}.birthday-card-date{color:var(--text-secondary);margin-top:4px;font-size:14px}.birthday-theme-peach{background:#fff0e8;border-color:#f3cbb8}.birthday-theme-blue{background:#eaf3ff;border-color:#c4daf5}.birthday-theme-mint{background:#e8f8f0;border-color:#bfe4d0}.birthday-empty-state{text-align:center;color:var(--text-secondary);padding:40px 24px}.birthday-empty-icon{margin-bottom:10px;font-size:32px}.student-search-hint{color:var(--text-secondary);margin-top:18px;font-size:15px}.student-search-page{flex-direction:column;align-items:center;min-height:calc(100vh - 96px);padding:80px 24px;display:flex}.student-search-header{text-align:center;margin-bottom:36px}.student-search-input{text-align:center;width:100%;max-width:600px;height:72px;font-size:24px}.student-search-page .student-selection-section{width:100%;max-width:900px;margin-top:40px}.student-search-result{border:1px solid var(--border);border-radius:var(--radius-sm);text-align:left;width:100%;min-height:64px;transition:var(--transition);background:#fff;align-items:center;gap:12px;padding:10px 14px;display:flex}.student-search-result:hover{border-color:var(--kumon-light-blue);background:var(--kumon-soft-blue)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app-main,.auth-page,.student-kiosk{animation:.3s fadeIn}.app-shell{flex-direction:row;width:100%;min-height:100vh;display:flex}.upload-steps{grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0;display:grid}.upload-step{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);align-items:flex-start;gap:12px;padding:18px;display:flex}.upload-step-number{background:var(--kumon-soft-blue);width:30px;height:30px;color:var(--kumon-primary-blue);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex}.upload-step-title{color:var(--text-primary);font-size:15px;font-weight:700}.upload-step-description{color:var(--text-secondary);margin-top:4px;font-size:13px;line-height:1.45}@media (width<=700px){.upload-steps{grid-template-columns:1fr}}.form-row-three{grid-template-columns:1fr 1.4fr 100px}.form-optional{color:var(--text-secondary);font-weight:400}.form-subject-count input{text-align:center}@media (width<=700px){.form-row-three{grid-template-columns:1fr}}.missing-students-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:24px 0 16px;display:flex}.missing-students-count{color:var(--text-secondary);font-size:14px;font-weight:500}.missing-students-actions{gap:10px;display:flex}.missing-students-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;margin-top:8px;padding-top:24px;display:flex}.missing-students-footer-text{color:var(--text-secondary);font-size:14px}@media (width<=700px){.missing-students-footer{flex-direction:column;align-items:stretch}.missing-students-footer .btn{width:100%}}.kip-callout{border:1px solid var(--kumon-light-blue);border-radius:var(--radius-lg);background:linear-gradient(135deg,#eaf7fe,#e6f0ff);align-items:flex-start;gap:20px;margin-bottom:28px;padding:24px;display:flex;position:relative}.kip-callout-dismiss{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#ffffffb3;border:none;border-radius:50%;font-size:18px;line-height:1;position:absolute;top:12px;right:12px}.kip-callout-dismiss:hover{color:var(--text-primary);background:#fff}.kip-callout-image{flex-shrink:0;width:120px;height:auto}.kip-callout-bubble{flex:1;min-width:0}.kip-callout-eyebrow{color:var(--kumon-primary-blue);letter-spacing:.08em;margin-bottom:4px;font-size:12px;font-weight:700}.kip-callout-title{color:var(--text-primary);margin:0 0 10px;font-size:20px}.kip-callout-text{color:var(--text-secondary);margin:0 0 12px;font-size:14px;line-height:1.6}.kip-callout-screenshots{margin-bottom:14px}.kip-callout-step{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:#fff;position:relative;overflow:hidden}.kip-callout-step-number{z-index:1;background:var(--kumon-primary-blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex;position:absolute;top:8px;left:8px}.kip-callout-screenshot{width:100%;display:block}.kip-callout-next-hint{color:#fff;background:#1976a8e6;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;font-weight:700;line-height:1;animation:1.6s ease-in-out 2 kip-hint-pulse;display:flex;position:absolute;bottom:8px;right:8px}.kip-callout-step:hover .kip-callout-next-hint{background:var(--kumon-primary-blue);transform:scale(1.1)}@keyframes kip-hint-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.kip-callout-dots{justify-content:center;gap:8px;margin-top:10px;display:flex}.kip-callout-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0}.kip-callout-dot.active{background:var(--kumon-primary-blue)}.kip-lightbox-overlay{z-index:1000;cursor:zoom-out;background:#0f172ad9;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.kip-lightbox-image{border-radius:var(--radius-sm);cursor:default;width:auto;max-width:90vw;height:auto;max-height:85vh;box-shadow:0 20px 60px #0006}.kip-lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:40px;height:40px;font-size:22px;line-height:1;position:absolute;top:20px;right:24px}.kip-lightbox-close:hover{background:#ffffff40}.kip-lightbox-nav{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;width:48px;height:48px;font-size:28px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.kip-lightbox-nav:hover{background:#ffffff40}.kip-lightbox-prev{left:20px}.kip-lightbox-next{right:20px}.kip-lightbox-counter{border-radius:var(--radius-full);color:#fff;background:#ffffff26;padding:6px 14px;font-size:13px;font-weight:600;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}@media (width<=600px){.kip-lightbox-nav{width:40px;height:40px;font-size:22px}.kip-callout{text-align:center;flex-direction:column;align-items:center}}.kip-tour-overlay{z-index:900;opacity:1;background:#0f172a99;justify-content:center;align-items:center;padding:24px;transition:opacity .25s;display:flex;position:fixed;inset:0}.kip-tour-overlay.closing{opacity:0}.kip-tour-card{text-align:center;border-radius:var(--radius-lg);background:#fff;width:100%;max-width:420px;padding:32px;box-shadow:0 20px 60px #0000004d}.kip-tour-image{width:90px;height:auto;margin:0 auto 16px}.kip-tour-eyebrow{color:var(--kumon-primary-blue);letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:700}.kip-tour-title{color:var(--text-primary);margin:0 0 10px;font-size:22px}.kip-tour-text{color:var(--text-secondary);margin:0 0 20px;font-size:14px;line-height:1.6}.kip-tour-dots{justify-content:center;gap:8px;margin-bottom:22px;display:flex}.kip-tour-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.kip-tour-skip{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:13px}.kip-tour-skip:hover{color:var(--text-secondary)}.kip-tour-nav-buttons{gap:10px;margin-left:auto;display:flex}
