.header{display:flex;align-items:center;height:var(--header-height);padding:0 var(--space-3);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100;gap:var(--space-2)}.header-left{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.sidebar-toggle{display:none}.header-brand{display:flex;align-items:center;gap:var(--space-2)}.header-logo{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-600),var(--primary-400));border-radius:var(--radius-md);color:#fff;box-shadow:0 2px 8px #6366f14d;flex-shrink:0}.header-brand-name{font-size:var(--text-base);font-weight:700;background:linear-gradient(135deg,var(--primary-300),var(--secondary-400));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap}.header-nav{display:flex;align-items:center;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:0 var(--space-2)}.header-nav::-webkit-scrollbar{display:none}.header-nav-tab{display:flex;align-items:center;gap:4px;padding:6px 10px;border:none;background:none;font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap;position:relative;font-family:var(--font-family)}.header-nav-tab:hover{color:var(--text-primary);background:var(--surface-2)}.header-nav-tab.active{color:var(--primary-400);background:var(--primary-50, rgba(99, 102, 241, .08));font-weight:600}.header-nav-tab.active:after{content:"";position:absolute;bottom:-1px;left:4px;right:4px;height:2px;background:var(--primary-400);border-radius:2px 2px 0 0}.header-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.btn-text-desktop{display:inline}@media(max-width:900px){.header-nav-label{display:none}.header-nav-tab{padding:6px 8px}.header-brand-name{display:none}}@media(max-width:768px){.header{height:auto;min-height:var(--header-height);align-items:center;flex-wrap:wrap;padding:var(--space-1) var(--space-2);gap:var(--space-1)}.header-left{min-width:0}.sidebar-toggle{display:flex}.header-actions{margin-left:auto}.header-nav{order:3;flex:0 0 100%;width:100%;padding:var(--space-1) 0 0;gap:var(--space-1);border-top:1px solid var(--border-subtle)}.header-nav-tab{flex:0 0 auto;min-width:58px;flex-direction:column;justify-content:center;gap:1px;padding:5px 8px;font-size:11px}.header-nav-label{display:inline;line-height:1.1}.header-nav-tab.active:after{bottom:-2px}.btn-text-desktop{display:none}}.preview-dropdown{position:absolute;top:100%;right:0;z-index:200;background:var(--surface-1);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:180px;padding:var(--space-1);margin-top:var(--space-1);animation:fadeIn .15s ease}.preview-dropdown button{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;background:none;font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition-fast);font-family:var(--font-family)}.preview-dropdown button:hover{background:var(--bg-tertiary)}.preview-dropdown button.active{background:var(--primary-50);color:var(--primary-600);font-weight:600}.preview-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-5);background:linear-gradient(135deg,var(--accent-500),var(--accent-600, #d97706));color:#fff;font-size:var(--text-sm);font-weight:600;animation:fadeIn .2s ease}.preview-banner-content{display:flex;align-items:center;gap:var(--space-2)}.preview-staff-sub{position:absolute;left:-100%;top:0;min-width:140px;max-height:300px;overflow-y:auto}.student-list{width:var(--sidebar-width);min-width:var(--sidebar-width);height:calc(100vh - var(--header-height));min-height:0;background:var(--bg-secondary);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden}.student-list-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-4)}.student-list-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.student-count{font-size:var(--text-xs)}.student-search{position:relative;padding:0 var(--space-4);margin-bottom:var(--space-3)}.search-icon{position:absolute;left:28px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);pointer-events:none}.search-input{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) 36px;font-family:var(--font-family);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);outline:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.search-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 2px #6366f11a}.search-input::placeholder{color:var(--text-tertiary)}.student-items,.student-list-content{flex:1 1 0;min-height:0;overflow-y:auto;padding:0 var(--space-2)}.student-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-3);margin-bottom:2px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);text-align:left;font-family:var(--font-family);color:var(--text-primary);animation:slideInLeft var(--transition-base) both}.student-item:hover{background:var(--surface-1)}.student-item.active{background:#6366f11a;border-color:#6366f133}.student-avatar{width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-weight:600;font-size:var(--text-sm);color:#fff}.student-avatar.high{background:linear-gradient(135deg,#059669,var(--success))}.student-avatar.medium{background:linear-gradient(135deg,var(--accent-600),var(--accent-400))}.student-avatar.low{background:linear-gradient(135deg,#dc2626,#f87171)}.student-item-info{flex:1;min-width:0}.student-item-name{display:block;font-size:var(--text-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-item-meta{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.student-item-arrow{color:var(--text-tertiary);flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.student-item:hover .student-item-arrow,.student-item.active .student-item-arrow{opacity:1}@media(max-width:768px){.student-list{width:100%;min-width:100%;height:auto;max-height:36svh;border-right:none;border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.student-list-header{padding:var(--space-3) var(--space-3) var(--space-2)}.student-search{padding:0 var(--space-3)}}.student-sort-btn{display:flex;align-items:center;gap:4px;font-size:11px;white-space:nowrap;color:var(--text-tertiary);padding:4px 8px}.student-sort-btn:hover{color:var(--text-primary)}.student-classrooms{display:block;font-size:10px;color:var(--text-tertiary);margin-top:1px}.student-list-header{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-2)}.student-list-controls{display:flex;align-items:center;gap:4px}.student-view-btn{padding:4px 6px;color:var(--text-tertiary)}.student-view-btn.active{color:var(--primary-500);background:#6366f11a}.student-grade-group{margin-bottom:2px}.student-grade-header{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--surface-1);border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family);font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);transition:background var(--transition-fast)}.student-grade-header:hover{background:var(--surface-hover)}.student-grade-label{flex:1;text-align:left}.student-grade-count{font-weight:400;color:var(--text-tertiary);font-size:10px}.student-grade-items{animation:slideUp var(--transition-fast)}.sl-filter-toggle{padding:4px 6px;color:var(--text-tertiary);position:relative}.sl-filter-toggle.active{color:var(--primary-500);background:#6366f11a}.sl-filter-toggle.has-filter{color:var(--primary-500)}.sl-filter-badge{position:absolute;top:-2px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--primary-500);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;pointer-events:none}.sl-filter-panel{padding:8px var(--space-3);border-bottom:1px solid var(--border-subtle);animation:slideUp .15s ease}.sl-filter-section{margin-bottom:8px}.sl-filter-section:last-of-type{margin-bottom:4px}.sl-filter-label{font-size:10px;font-weight:600;color:var(--text-tertiary);margin-bottom:4px;letter-spacing:.3px}.sl-filter-cat-header{display:flex;align-items:center;gap:4px;width:100%;padding:4px 0;background:transparent;border:none;cursor:pointer;font-family:var(--font-family);font-size:11px;font-weight:600;color:var(--text-secondary);text-align:left;transition:color .15s}.sl-filter-cat-header:hover{color:var(--primary-500)}.sl-filter-cat-count{font-size:9px;font-weight:400;color:var(--text-tertiary);margin-left:2px}.sl-filter-chips{display:flex;flex-wrap:wrap;gap:4px}.sl-filter-chip{padding:3px 8px;font-size:11px;font-family:var(--font-family);font-weight:500;border:1px solid var(--border-subtle);border-radius:12px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap;line-height:1.4}.sl-filter-chip:hover{background:var(--surface-hover);border-color:var(--text-tertiary)}.sl-filter-chip.active{background:#6366f126;border-color:var(--primary-500);color:var(--primary-500);font-weight:600;box-shadow:0 0 0 1px #6366f11a}.sl-filter-clear{display:flex;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-family:var(--font-family);color:var(--text-tertiary);background:transparent;border:1px dashed var(--border-subtle);border-radius:8px;cursor:pointer;margin-top:4px;transition:color .15s,border-color .15s}.sl-filter-clear:hover{color:#ef4444;border-color:#ef4444}.sl-keyword-input{width:100%;padding:6px 28px;font-family:var(--font-family);font-size:12px;color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);outline:none;transition:border-color .15s,box-shadow .15s}.sl-keyword-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 2px #6366f11a}.sl-keyword-input::placeholder{color:var(--text-tertiary);font-size:11px}.sl-match-tags{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.sl-match-tag{font-size:9px;font-weight:600;padding:1px 6px;border-radius:8px;line-height:1.4;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.learning-status{max-width:900px}.status-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}.status-summary-4{grid-template-columns:repeat(4,1fr)}.summary-card.clickable{cursor:pointer;transition:box-shadow .2s,border-color .2s}.summary-card.clickable:hover{box-shadow:0 0 0 2px var(--primary-300);border-color:var(--primary-300)}.summary-card.editing{border-color:var(--primary-400);box-shadow:0 0 0 2px #6366f140}.hours-edit-inline{display:flex;flex-direction:column;gap:6px;align-items:center}.hours-input{width:60px;font-size:var(--text-xl);font-weight:700;text-align:center;border:1px solid var(--primary-400);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);padding:2px 4px;outline:none}.hours-input:focus{border-color:var(--primary-500);box-shadow:0 0 0 2px #6366f133}.hours-edit-actions{display:flex;gap:4px}.btn-xs{padding:2px 6px!important;font-size:11px!important;min-height:22px!important}.summary-meta{display:flex;flex-direction:column;align-items:center;gap:1px;margin-top:4px}.hours-source-badge{font-size:10px;font-weight:600;color:var(--primary-400);background:#6366f11a;padding:1px 6px;border-radius:8px}.hours-updated-at{font-size:9px;color:var(--text-tertiary)}.summary-unit{font-size:var(--text-xs);font-weight:500;color:var(--text-tertiary);margin-left:2px}.coaching-stat{font-size:10px;color:var(--text-tertiary)}.hearing-section{padding:var(--space-5);margin-bottom:var(--space-6)}.hearing-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.hearing-header h4{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600}.hearing-hint{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-3)}@media(max-width:1024px){.status-summary-4{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.status-summary-4{grid-template-columns:1fr}}.summary-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5)}.summary-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#6366f126;color:var(--primary-400);border-radius:var(--radius-md)}.summary-icon.success{background:#22c55e26;color:var(--secondary-400)}.summary-icon.warning{background:#f59e0b26;color:var(--accent-400)}.summary-info{display:flex;flex-direction:column}.summary-value{font-size:var(--text-xl);font-weight:700}.summary-label{font-size:var(--text-xs);color:var(--text-tertiary)}.section-title{font-size:var(--text-lg);font-weight:600;margin-bottom:var(--space-4);color:var(--text-primary)}.subject-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.subject-card{padding:var(--space-5)}.subject-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.subject-icon{font-size:var(--text-2xl)}.subject-name{flex:1;font-size:var(--text-lg);font-weight:600}.subject-details{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);background:var(--bg-tertiary);border-radius:var(--radius-md)}.subject-detail-row{display:flex;justify-content:space-between;align-items:center}.detail-label{font-size:var(--text-sm);color:var(--text-tertiary)}.detail-value{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.confidence-control{display:flex;flex-direction:column;gap:var(--space-2)}.confidence-header{display:flex;justify-content:space-between;align-items:center}.confidence-value{font-size:var(--text-sm);font-weight:600;color:var(--text-accent)}.confidence-slider{width:100%;height:6px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;margin-top:var(--space-1)}.confidence-slider::-webkit-slider-track{height:6px;background:var(--bg-tertiary);border-radius:var(--radius-full)}.confidence-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--primary-500);border-radius:50%;border:2px solid var(--primary-300);cursor:pointer;margin-top:-6px;transition:box-shadow var(--transition-fast)}.confidence-slider::-webkit-slider-thumb:hover{box-shadow:0 0 0 6px #6366f133}.notes-section{padding:var(--space-5)}.notes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.notes-title{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary)}.notes-title h3{font-size:var(--text-base);font-weight:600}.notes-content{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.8;white-space:pre-wrap}@media(max-width:768px){.status-summary,.subject-cards,.subjects-grid{grid-template-columns:1fr}}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.combo-box{position:relative;flex:1}.combo-input-wrap{display:flex;align-items:center;position:relative}.combo-input-wrap .info-value-input{padding-right:48px}.combo-toggle{position:absolute;right:20px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;display:flex;align-items:center}.combo-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:#ef444426;border:none;color:var(--danger);cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:50%;width:16px;height:16px;justify-content:center}.combo-clear:hover{background:#ef44444d}.combo-toggle:hover{color:var(--text-primary)}.combo-dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:200px;overflow-y:auto;margin-top:2px}.combo-option{padding:6px 10px;font-size:var(--text-xs);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.combo-option:hover{background:var(--bg-tertiary)}.combo-option.active{background:#6366f126;color:var(--primary-400);font-weight:500}.info-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.info-label{font-size:var(--text-xs);color:var(--text-tertiary);min-width:36px;flex-shrink:0}.info-value-input{flex:1;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--text-xs);color:var(--text-primary);outline:none;transition:border-color var(--transition-fast)}.info-value-input:focus{border-color:var(--primary-400)}.info-value-input::placeholder{color:var(--text-tertiary);opacity:.7}.confidence-ticks{display:flex;justify-content:space-between;padding:0 2px;margin-top:2px}.confidence-tick{font-size:10px;color:var(--text-tertiary);font-weight:500;width:16px;text-align:center;opacity:.5;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.confidence-tick.filled{opacity:1;font-weight:700}.exam-profile-section{padding:var(--space-5);margin-bottom:var(--space-6)}.exam-profile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.exam-profile-header h4{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:700;color:var(--primary-400)}.exam-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-4) var(--space-5);margin-bottom:var(--space-4)}.ep-field{display:flex;flex-direction:column;gap:var(--space-1)}.ep-label{font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.ep-radio-group{display:flex;align-items:center;gap:var(--space-2)}.ep-radio{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-secondary);transition:background .15s,border-color .15s,color .15s}.ep-radio input{display:none}.ep-radio.active{background:#6366f11f;border-color:var(--primary-400);color:var(--primary-400)}.ep-radio:hover:not(.active){border-color:var(--border-default);background:var(--surface-2)}.ep-number-input{width:80px;padding:5px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-primary);font-size:14px;font-weight:600;text-align:center;outline:none;transition:border-color .15s}.ep-number-input:focus{border-color:var(--primary-400);box-shadow:0 0 0 2px #6366f126}.ep-number-input::placeholder{color:var(--text-tertiary);font-weight:400}.ep-judgment-group{display:flex;gap:4px}.ep-judgment-btn{width:32px;height:32px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .1s}.ep-judgment-btn:hover:not(.active){border-color:var(--border-default);transform:scale(1.05)}.ep-judgment-btn.active.judgment-A{background:#22c55e26;border-color:#22c55e;color:#22c55e}.ep-judgment-btn.active.judgment-B{background:#3b82f626;border-color:#3b82f6;color:#3b82f6}.ep-judgment-btn.active.judgment-C{background:#f59e0b26;border-color:#f59e0b;color:#d97706}.ep-judgment-btn.active.judgment-D{background:#f9731626;border-color:#f97316;color:#ea580c}.ep-judgment-btn.active.judgment-E{background:#ef444426;border-color:#ef4444;color:#ef4444}.ep-section{margin-bottom:var(--space-4)}.ep-section .ep-label{margin-bottom:var(--space-2);display:block}.ep-chip-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ep-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500;border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.ep-chip:hover:not(.active){border-color:var(--border-default)}.ep-chip.active{background:#6366f11f;border-color:#6366f166;color:var(--primary-400);font-weight:600}.ep-chip.removable{cursor:default;background:#f973161a;border-color:#f973164d;color:#ea580c}.ep-chip-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:inherit;cursor:pointer;padding:0;margin-left:2px;opacity:.6;transition:opacity .15s}.ep-chip-remove:hover{opacity:1}.ep-add-input{display:inline-flex;align-items:center;gap:4px}.ep-add-input input{width:120px;padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-primary);font-size:12px;outline:none}.ep-add-input input:focus{border-color:var(--primary-400)}.university-section{padding:var(--space-5);margin-bottom:var(--space-6)}.university-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.university-header h4{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:700;color:#7c3aed}.university-empty{text-align:center;padding:var(--space-6);color:var(--text-tertiary);font-size:13px}.university-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.university-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-tertiary);overflow:hidden;transition:border-color .15s}.university-card:hover{border-color:var(--border-default)}.uni-card-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#7c3aed0f;border-bottom:1px solid var(--border-subtle)}.uni-priority{font-size:12px;font-weight:700;color:#7c3aed}.uni-remove{color:var(--text-tertiary)!important;opacity:.5;transition:opacity .15s}.uni-remove:hover{opacity:1;color:#ef4444!important}.uni-card-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.uni-field label{display:block;font-size:10px;font-weight:600;color:var(--text-tertiary);margin-bottom:2px;text-transform:uppercase;letter-spacing:.05em}.uni-field input[type=text],.uni-field input[type=date]{width:100%;padding:5px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-1);color:var(--text-primary);font-size:13px;outline:none;transition:border-color .15s}.uni-field input:focus{border-color:var(--primary-400)}.uni-field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.uni-type-radio{display:flex;gap:var(--space-2)}.uni-type-radio label{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:16px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid var(--border-subtle);background:var(--bg-tertiary);color:var(--text-secondary);text-transform:none;letter-spacing:0;transition:background .15s,border-color .15s}.uni-type-radio label input{display:none}.uni-type-radio label.active{background:#7c3aed1a;border-color:#7c3aed;color:#7c3aed}.schedule{max-width:900px}.schedule-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.schedule-header .section-title{display:flex;align-items:center;gap:var(--space-2);margin-bottom:0}.schedule-form{padding:var(--space-5);margin-bottom:var(--space-6);animation:slideUp var(--transition-base)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}.schedule-section{margin-bottom:var(--space-6)}.schedule-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-3)}.schedule-list{display:flex;flex-direction:column;gap:var(--space-2)}.schedule-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);position:relative;overflow:hidden;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.schedule-item:hover{border-color:var(--border-strong)}.schedule-type-indicator{position:absolute;left:0;top:0;bottom:0;width:3px}.schedule-type-indicator.class{background:var(--primary-500)}.schedule-type-indicator.meeting{background:var(--accent-500)}.schedule-type-indicator.other{background:var(--secondary-500)}.schedule-item-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-secondary);flex-shrink:0}.schedule-item-info{flex:1;min-width:0}.schedule-item-title{display:block;font-size:var(--text-sm);font-weight:500}.schedule-item-meta{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.past-item{opacity:.5}@media(max-width:768px){.schedule-form .form-row{grid-template-columns:1fr}}.availability-section{padding:var(--space-4);margin-bottom:var(--space-5);animation:slideUp var(--transition-base)}.avail-grid{display:grid;grid-template-columns:50px repeat(7,1fr);gap:2px}.avail-day-header{text-align:center;padding:6px 0;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.avail-day-header:hover{background:var(--bg-secondary);border-color:var(--primary-400)}.avail-day-header.all-ng{background:#ef444426;color:var(--danger);border-color:#ef44444d}.avail-time-label{font-size:10px;color:var(--text-tertiary);display:flex;align-items:center;justify-content:flex-end;padding-right:6px}.avail-cell{width:100%;height:24px;border:1px solid var(--border-subtle);border-radius:3px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);background:none;padding:0}.avail-cell.ok{background:#22c55e26;border-color:#22c55e33}.avail-cell.ok:hover{background:#22c55e4d}.avail-cell.ng{background:#ef444440;border-color:#ef444466}.avail-cell.ng:hover{background:#ef444466}.shift-linked-item{border-left:3px solid var(--primary-500)!important;background:#6366f10a}.shift-linked-item .schedule-type-label{color:var(--primary-400)}.shift-link-section{margin-top:var(--space-3);padding:var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.shift-link-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.shift-link-item{display:flex;align-items:center;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast)}.shift-link-item:hover{background:var(--surface-hover)}.shift-link-item.checked{background:#6366f114}.shift-link-item.already-linked{opacity:.6;cursor:default}.shift-link-item input[type=checkbox]{accent-color:var(--primary-500)}.shift-link-day{font-weight:600;color:var(--primary-400);min-width:20px}.shift-link-time{color:var(--text-secondary);min-width:80px}.shift-link-staff{color:var(--accent-400)}.shift-link-subject{color:var(--text-tertiary)}.shift-link-type{color:var(--text-tertiary);font-size:10px}.shift-link-badge{margin-left:auto;font-size:10px;color:var(--secondary-400);font-weight:500}.coaching-chat{display:flex;flex-direction:column;height:calc(100vh - var(--header-height) - 140px);max-width:900px}.cc-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:8px;flex-wrap:wrap}.cc-coach-toggle{display:inline-flex;align-items:center;gap:8px;padding:5px 14px 5px 6px;border-radius:20px;cursor:pointer;font-size:12px;font-weight:600;border:none;font-family:var(--font-family);transition:background .2s,opacity .2s}.cc-coach-toggle[data-active=true]{background:#10b9811f;color:#10b981}.cc-coach-toggle[data-active=false]{background:var(--surface-2);color:var(--text-tertiary)}.cc-coach-toggle:hover{opacity:.85}.cc-coach-toggle:disabled{opacity:.5;cursor:not-allowed}.cc-coach-icon{width:24px;height:24px;border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--surface-2);flex-shrink:0}.cc-coach-icon img{width:100%;height:100%;object-fit:cover}.cc-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.cc-status-dot[data-active=true]{background:#10b981}.cc-status-dot[data-active=false]{background:var(--text-tertiary)}.cc-exam-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid var(--border-subtle);background:var(--surface-2);color:var(--text-secondary);font-family:var(--font-family);transition:background .2s,color .2s,border-color .2s}.cc-exam-toggle[data-active=true]{background:linear-gradient(135deg,#7c3aed1a,#ec48991a);border-color:#7c3aed4d;color:#7c3aed}.cc-exam-toggle input[type=checkbox]{width:14px;height:14px;accent-color:#7c3aed;cursor:pointer}.cc-settings-wrapper{position:relative;margin-left:auto}.cc-settings-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;font-family:var(--font-family);transition:background .15s,color .15s,border-color .15s}.cc-settings-btn:hover{background:var(--surface-3, rgba(255,255,255,.08));color:var(--text-primary);border-color:var(--primary-400)}.cc-settings-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 8px 24px #00000040;z-index:50;padding:4px 0;animation:cc-menu-in .15s ease}@keyframes cc-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cc-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 14px;border:none;background:none;color:var(--text-secondary);font-size:12px;font-weight:500;font-family:var(--font-family);cursor:pointer;text-align:left;transition:background .1s,color .1s}.cc-menu-item:hover{background:#6366f114;color:var(--text-primary)}.cc-menu-item.danger{color:var(--danger, #ef4444)}.cc-menu-item.danger:hover{background:#ef444414}.cc-menu-divider{height:1px;background:var(--border-subtle);margin:4px 0}.cc-coach-panel{padding:10px 14px;border-top:1px solid var(--border-subtle)}.cc-coach-panel-title{font-size:11px;font-weight:700;color:var(--text-tertiary);margin-bottom:8px;display:flex;align-items:center;gap:4px;text-transform:uppercase;letter-spacing:.5px}.cc-coach-gender-btns{display:flex;gap:6px;margin-bottom:8px}.cc-coach-gender-btn{flex:1;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer;background:var(--surface-2);border:2px solid transparent;border-radius:8px;color:var(--text-primary);font-family:var(--font-family);transition:background .15s,border-color .15s}.cc-coach-gender-btn[data-selected=true]{background:#6366f126;border-color:var(--primary-500)}.cc-coach-input-row{display:flex;gap:6px;align-items:center}.cc-coach-input-row input{flex:1;font-size:12px;padding:4px 8px}.quick-actions{display:flex;gap:var(--space-2);padding-bottom:var(--space-4);overflow-x:auto;flex-wrap:wrap}.quick-action-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--text-xs);font-weight:500;color:var(--primary-300);background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.quick-action-btn:hover:not(:disabled){background:#6366f133;border-color:#6366f166;transform:translateY(-1px)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed}.quick-action-btn.accent{color:var(--accent-400);background:#f59e0b1a;border-color:#f59e0b33}.quick-action-btn.accent:hover:not(:disabled){background:#f59e0b33;border-color:#f59e0b66}.quick-action-btn.ghost{color:var(--text-tertiary);background:transparent;border-color:var(--border-subtle)}.quick-action-btn.ghost:hover:not(:disabled){background:var(--surface-1)}.chat-error{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:#ef444414;border:1px solid rgba(239,68,68,.2);border-left:3px solid #ef4444;border-radius:var(--radius-md);color:#f87171;font-size:var(--text-sm);margin-bottom:var(--space-3);animation:slideUp var(--transition-base)}.chat-error-header{display:flex;align-items:center;gap:var(--space-2)}.chat-error-message{flex:1;font-weight:500}.chat-error-actions{display:flex;align-items:center;gap:var(--space-3);padding-left:24px}.chat-error-retry{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;font-family:var(--font-family);font-size:12px;font-weight:600;color:#fff;background:#ef4444;border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .15s}.chat-error-retry:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.chat-error-retry:disabled{opacity:.5;cursor:not-allowed}.chat-error-hint{font-size:11px;color:var(--text-tertiary);font-weight:400}.chat-error-network,.chat-error-timeout{background:#f59e0b14;border-color:#f59e0b40;border-left-color:#f59e0b;color:#f59e0b}.chat-error-network .chat-error-retry,.chat-error-timeout .chat-error-retry{background:#f59e0b}.chat-error-network .chat-error-retry:hover,.chat-error-timeout .chat-error-retry:hover{background:#d97706}.chat-error-rate_limit{background:#3b82f614;border-color:#3b82f633;border-left-color:#3b82f6;color:#60a5fa}.chat-error-api_key{background:#8b5cf614;border-color:#8b5cf633;border-left-color:#8b5cf6;color:#a78bfa}.chat-error-content_filter{background:#6b728014;border-color:#6b728033;border-left-color:#6b7280;color:#9ca3af}.error-dismiss{background:none;border:none;color:inherit;cursor:pointer;padding:2px 4px;font-size:14px;opacity:.6;transition:opacity .15s}.error-dismiss:hover{opacity:1}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-4)}.chat-welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-12) var(--space-6);gap:var(--space-4);flex:1}.welcome-icon{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-600),var(--primary-400));border-radius:var(--radius-xl);color:#fff;animation:pulse-glow 2s infinite}.chat-welcome h3{font-size:var(--text-xl);font-weight:600}.chat-welcome p{color:var(--text-tertiary);font-size:var(--text-sm);max-width:400px}.coaching-start-btn{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;max-width:280px;margin:16px auto 12px;padding:12px 24px;font-size:15px;font-weight:700;font-family:var(--font-family);background:linear-gradient(135deg,#4f46e5,#6366f1)!important;color:#fff!important;border:none!important;border-radius:12px;cursor:pointer;box-shadow:0 4px 14px #4f46e566;transition:transform .15s,box-shadow .15s,opacity .15s;letter-spacing:.5px}.coaching-start-btn:hover:not(:disabled){transform:scale(1.03);box-shadow:0 6px 20px #6366f166}.coaching-start-btn:active:not(:disabled){transform:scale(.97)}.coaching-start-btn:disabled{opacity:.5;cursor:not-allowed}.coaching-start-btn.exam-mode{background:linear-gradient(135deg,#7c3aed,#db2777)!important;box-shadow:0 4px 14px #7c3aed4d}.welcome-mode-info{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.mode-card{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary)}.mode-emoji{font-size:var(--text-lg)}.chat-message{display:flex;gap:var(--space-3);animation:slideUp var(--transition-base)}.chat-message.user{flex-direction:row-reverse}.message-avatar{width:32px;height:32px;min-width:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0}.chat-message.assistant .message-avatar{background:linear-gradient(135deg,var(--primary-600),var(--primary-400));color:#fff}.chat-message.user .message-avatar{background:var(--surface-2);color:var(--text-secondary)}.message-content{max-width:80%}.message-text{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:1.7;word-wrap:break-word}.chat-message.assistant .message-text{background:var(--surface-1);border:1px solid var(--border-subtle);border-top-left-radius:var(--radius-sm)}.chat-message.user .message-text{background:linear-gradient(135deg,var(--primary-700),var(--primary-600));color:#fff;border-top-right-radius:var(--radius-sm)}.chat-message.streaming .message-text{border-color:var(--primary-500);box-shadow:0 0 12px #6366f126}.chat-message.optimistic .message-text{opacity:.8}.chat-message.optimistic .message-actions:after{content:"送信中...";font-size:10px;color:var(--text-tertiary);font-style:italic}@keyframes optimistic-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.chat-message.optimistic{animation:optimistic-in .25s ease-out}.message-bubble-wrap{display:flex;flex-direction:column;max-width:85%;min-width:0}.message-actions{display:flex;align-items:center;gap:2px;padding:2px 4px 0;min-height:22px}.message-actions.user{justify-content:flex-end}.message-actions.assistant{justify-content:flex-start}.message-actions .message-time{font-size:10px;color:var(--text-tertiary);margin-right:4px;opacity:.7}.msg-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;font-family:var(--font-family);color:var(--text-tertiary);background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:color .15s,background .15s,border-color .15s,opacity .15s;opacity:0}.chat-message:hover .msg-action-btn,.msg-action-btn:focus{opacity:1}.msg-action-btn:hover:not(:disabled){color:var(--primary-300);background:#6366f114;border-color:#6366f12e}.msg-action-btn:disabled{opacity:.3;cursor:not-allowed}.chat-message.editing .message-bubble-wrap{max-width:90%}.message-edit-form{display:flex;flex-direction:column;gap:8px;width:100%}.message-edit-textarea{width:100%;min-height:60px;max-height:200px;padding:10px 14px;font-family:var(--font-family);font-size:var(--text-sm);line-height:1.6;color:var(--text-primary);background:var(--surface-1);border:2px solid var(--primary-500);border-radius:var(--radius-lg);outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.message-edit-textarea:focus{box-shadow:0 0 0 3px #6366f126}.message-edit-actions{display:flex;gap:6px;justify-content:flex-end}.edit-save-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 14px;font-family:var(--font-family);font-size:12px;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));border:none;border-radius:6px;cursor:pointer;transition:background .15s,transform .15s}.edit-save-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-500),var(--primary-400));transform:translateY(-1px)}.edit-save-btn:disabled{opacity:.5;cursor:not-allowed}.edit-cancel-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;font-family:var(--font-family);font-size:12px;font-weight:500;color:var(--text-tertiary);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.edit-cancel-btn:hover{background:var(--surface-3, rgba(255,255,255,.06));color:var(--text-secondary)}.typing-indicator{display:flex;gap:4px;padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);border-top-left-radius:var(--radius-sm)}.typing-indicator span{width:8px;height:8px;background:var(--text-tertiary);border-radius:50%;animation:typing-dots 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.chat-input-container{padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.chat-input-wrapper{display:flex;align-items:flex-end;gap:var(--space-2);background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-2);transition:border-color var(--transition-fast)}.chat-input-wrapper:focus-within{border-color:var(--primary-500);box-shadow:0 0 0 3px #6366f11a}.chat-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-family:var(--font-family);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);resize:none;max-height:120px;line-height:1.5}.chat-input::placeholder{color:var(--text-tertiary)}.send-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-600),var(--primary-500));color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.send-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-500),var(--primary-400));transform:scale(1.05)}.send-btn:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.coaching-chat{height:calc(100vh - var(--header-height) - 180px)}.quick-actions{flex-wrap:nowrap;overflow-x:auto;padding-bottom:var(--space-3)}.message-content{max-width:85%}.welcome-mode-info{flex-direction:column}}.parent-report{max-width:900px}.report-header{margin-bottom:var(--space-6)}.report-header .section-title{display:flex;align-items:center;gap:var(--space-2)}.report-description{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-2)}.report-list{display:flex;flex-direction:column;gap:var(--space-3)}.report-item{padding:var(--space-4) var(--space-5);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.report-item:hover{border-color:var(--border-strong)}.report-item-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.report-item-info{display:flex;align-items:center;gap:var(--space-3)}.report-date{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.report-item-actions{display:flex;align-items:center;gap:var(--space-2);color:var(--text-tertiary)}.report-preview{font-size:var(--text-sm);color:var(--text-tertiary);margin-top:var(--space-3);line-height:1.6}.report-item-content{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);animation:fadeIn var(--transition-fast)}.report-text{font-size:var(--text-sm);line-height:1.8;color:var(--text-secondary)}.report-text strong{color:var(--text-primary)}.test-results{display:flex;flex-direction:column;gap:var(--space-4)}.test-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-3)}.test-stat-card{padding:var(--space-4);text-align:center}.stat-subject{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2)}.stat-score{font-size:28px;font-weight:800;color:var(--text-primary)}.stat-diff{display:inline-flex;align-items:center;gap:2px;font-size:var(--text-xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-full);margin-top:var(--space-1)}.stat-diff.up{color:var(--secondary-400);background:#34d3991a}.stat-diff.down{color:var(--danger);background:#ef44441a}.stat-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.stat-empty{font-size:var(--text-sm);color:var(--text-tertiary);padding:var(--space-4) 0}.test-graph-section{padding:var(--space-4)}.test-graph-section h4{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);margin-bottom:var(--space-4)}.simple-graph{display:flex;flex-direction:column;gap:var(--space-4)}.graph-row{display:flex;align-items:flex-end;gap:var(--space-3)}.graph-label{font-size:var(--text-base);width:28px;flex-shrink:0}.graph-bars{display:flex;align-items:flex-end;gap:6px;flex:1;height:80px}.graph-bar-wrap{flex:1;max-width:40px;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.graph-bar{width:100%;border-radius:4px 4px 0 0;min-height:4px;transition:height .4s ease}.graph-bar-label{font-size:9px;font-weight:700;color:var(--text-tertiary);margin-top:2px}.test-header{display:flex;align-items:center;justify-content:space-between}.test-header h3{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base)}.test-form{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.test-form .form-row{display:flex;gap:var(--space-2);align-items:center}.form-divider{color:var(--text-tertiary);font-weight:600;flex-shrink:0}.test-form .form-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.test-group{display:flex;flex-direction:column;gap:var(--space-2)}.test-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0}.test-group-date{font-size:var(--text-sm);font-weight:700}.test-group-type{font-size:var(--text-xs);padding:2px 8px;background:var(--primary-900);color:var(--primary-300);border-radius:var(--radius-full);font-weight:600}.test-total-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:var(--radius-full);background:#ecfdf5;color:#047857;font-size:var(--text-xs);font-weight:800;white-space:nowrap}.test-item{padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);position:relative}.test-item-focused{border-color:#8b5cf6!important;box-shadow:0 0 0 3px #8b5cf62e,var(--shadow-sm)}.test-item-composite{align-items:flex-start}.test-composite-main{display:flex;flex:1;min-width:0;flex-direction:column;gap:8px}.test-composite-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:800;font-size:var(--text-sm)}.test-score-chip-grid{display:flex;gap:6px;flex-wrap:wrap}.test-score-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:var(--radius-md);background:var(--surface-2, #f9fafb);border:1px solid var(--border-subtle);color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.test-score-chip strong{color:var(--text-primary);font-weight:700}.test-item-subject{font-weight:700;font-size:var(--text-sm);min-width:60px;flex-shrink:0}.score-bar-wrap{flex:1;display:flex;align-items:center;gap:var(--space-3)}.score-bar{flex:1;height:8px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}.score-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.score-value{font-weight:800;font-size:var(--text-sm);min-width:60px;text-align:right;white-space:nowrap}.score-max{font-weight:400;font-size:var(--text-xs);color:var(--text-tertiary)}.test-item-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-tertiary);flex-shrink:0}.test-rank{font-weight:600}.test-notes{max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.test-added-by{font-size:10px}.test-item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.test-item:hover .test-item-actions{opacity:1}.test-item-actions .btn-icon{width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center}.test-edit-inline{display:flex;align-items:center;gap:6px;flex:1}.test-edit-inline input{width:60px;padding:3px 6px;font-size:var(--text-sm);border:1px solid var(--primary-300);border-radius:var(--radius-sm);text-align:center;background:var(--surface-1);color:var(--text-primary)}.test-edit-inline input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #6366f126}.test-edit-inline .edit-divider{color:var(--text-tertiary);font-weight:600;font-size:var(--text-xs)}@media(max-width:600px){.test-item{flex-wrap:wrap}.test-item-meta{width:100%;margin-top:var(--space-1)}}.test-header-actions{display:flex;gap:var(--space-2);align-items:center}.multi-subject-grid{display:flex;flex-direction:column;gap:8px}.subject-score-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;border:1px solid var(--border);transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,opacity .2s ease,transform .2s ease}.subject-score-row.enabled{border-color:var(--primary-200);background:var(--primary-900)}.subject-toggle{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;min-width:90px;cursor:pointer}.subject-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.subject-score-inputs{display:flex;align-items:center;gap:6px;flex:1}.score-input{max-width:80px}.max-score-input{max-width:60px}.ai-advice-card{padding:16px;border-radius:12px;border:1px solid var(--secondary-400);background:linear-gradient(135deg,#34d3990d,#3b82f60d)}.ai-advice-card h4{display:flex;align-items:center;gap:8px;font-size:.9rem;margin-bottom:8px;color:var(--secondary-400)}.ai-advice-card p{font-size:.88rem;line-height:1.6;color:var(--text-primary);white-space:pre-wrap}.billing{display:flex;flex-direction:column;gap:var(--space-4)}.billing-month-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.billing-month-label{font-size:var(--text-lg);font-weight:800;min-width:120px;text-align:center}.billing-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.billing-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);color:var(--card-color, var(--text-primary));text-align:center}.billing-card-label{font-size:var(--text-xs);color:var(--text-tertiary);font-weight:600}.billing-card-value{font-size:var(--text-lg);font-weight:800;color:var(--card-color)}.billing-header{display:flex;align-items:center;justify-content:space-between}.billing-header h4{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base)}.billing-form{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.billing-form .form-row{display:flex;gap:var(--space-2)}.billing-form .form-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.billing-list{display:flex;flex-direction:column;gap:var(--space-2)}.billing-item{padding:var(--space-3) var(--space-4)}.billing-item-main{display:flex;align-items:center;gap:var(--space-3)}.billing-status-btn{width:32px;height:32px;min-width:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid var(--status-color);background:none;color:var(--status-color);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.billing-status-btn:hover{background:var(--surface-2);transform:scale(1.1)}.billing-item-info{flex:1;min-width:0}.billing-item-top{display:flex;justify-content:space-between;align-items:center}.billing-category{font-size:var(--text-xs);font-weight:700;padding:2px 8px;background:var(--surface-3);border-radius:var(--radius-full)}.billing-amount{font-size:var(--text-base);font-weight:800}.billing-item-desc{font-size:var(--text-sm);color:var(--text-secondary);margin-top:2px}.billing-item-meta{display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1);flex-wrap:wrap}.billing-status-label{font-weight:700}.billing-item-actions{display:flex;gap:var(--space-1);flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.billing-item:hover .billing-item-actions{opacity:1}@media(max-width:600px){.billing-summary{grid-template-columns:1fr}.billing-item-actions{opacity:1}}.billing-item-unit{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:1px;font-weight:500}.billing-email-result{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm)}.billing-email-result.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:var(--secondary-400)}.billing-email-result.info{background:#6366f11a;border:1px solid rgba(99,102,241,.3);color:var(--primary-400)}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.teaching-report{display:flex;flex-direction:column;gap:16px}.teaching-report-header{display:flex;justify-content:space-between;align-items:center}.teaching-report-header h3{display:flex;align-items:center;gap:8px;font-size:1.1rem;font-weight:600}.teaching-report-form{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:12px;border:1px solid var(--border);animation:fadeInUp .3s ease}.teaching-report-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.teaching-report-form .form-group{display:flex;flex-direction:column;gap:4px}.teaching-report-form label{font-size:.82rem;font-weight:500;color:var(--text-secondary)}.teaching-report-form .required{color:var(--danger)}.understanding-selector{display:flex;gap:6px;flex-wrap:wrap}.understanding-btn{padding:6px 12px;border-radius:20px;border:1.5px solid var(--border);background:transparent;font-size:.82rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,opacity .2s ease,transform .2s ease;color:var(--text-secondary)}.understanding-btn:hover{border-color:var(--primary)}.understanding-btn.active{font-weight:600;color:var(--text-primary)}.teaching-report-list{display:flex;flex-direction:column;gap:12px}.teaching-report-card{padding:16px;border-radius:12px;border:1px solid var(--border);transition:border-color .2s}.teaching-report-card:hover{border-color:var(--primary-200)}.report-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}.report-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.report-date{display:flex;align-items:center;gap:4px;font-size:.85rem;font-weight:500;color:var(--text-secondary)}.report-subject-badge{padding:2px 10px;border-radius:12px;background:var(--primary-100);color:var(--primary);font-size:.78rem;font-weight:600}.report-understanding{font-size:.82rem;font-weight:500}.report-instructor{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-tertiary)}.report-card-content{display:flex;flex-direction:column;gap:4px}.report-card-content p{font-size:.88rem;line-height:1.5;margin:0;color:var(--text-primary)}.report-card-content strong{color:var(--text-secondary);font-weight:500}.report-memo{color:var(--text-tertiary)!important;font-style:italic}.il-container{display:flex;flex-direction:column;gap:16px}.il-summary-section{display:flex;flex-direction:column;gap:8px}.il-summary-card{background:linear-gradient(135deg,#ede9fe,#e0e7ff);border:1px solid #c7d2fe;border-radius:var(--radius-lg);padding:14px 18px}.il-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px;font-weight:700;color:#4338ca}.il-summary-header span{display:flex;align-items:center;gap:5px}.il-summary-date{font-weight:500;font-size:11px;color:#6366f1;opacity:.7}.il-summary-body{font-size:13px;line-height:1.8;color:#1e1b4b;white-space:pre-wrap}.il-summary-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:var(--radius-md);font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border-color .2s,box-shadow .2s;align-self:flex-start}.il-summary-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.il-summary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.il-spinner{animation:il-spin 1s linear infinite}@keyframes il-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.il-form{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px}.il-form-header{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:var(--text-primary);margin-bottom:12px}.il-form-row{display:flex;gap:8px;margin-bottom:10px}.il-form-date{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--surface-2, #f9fafb);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary)}.il-form-date select{border:none;outline:none;background:transparent;font-size:13px;color:var(--text-primary);cursor:pointer}.il-date-input{border:none;outline:none;background:transparent;font-size:13px;color:var(--text-primary);cursor:pointer;font-family:inherit}.il-date-input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;filter:invert(.4)}.il-date-label{font-size:12px;color:var(--text-tertiary);white-space:nowrap}.il-form-content{width:100%;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:13px;line-height:1.6;resize:vertical;min-height:80px;background:var(--surface-1);color:var(--text-primary);transition:border-color .15s;box-sizing:border-box;font-family:inherit}.il-form-content:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 2px #6366f11a}.il-form.il-dragover{border-color:#6366f1;background:#6366f10a;box-shadow:0 0 0 2px #6366f126}.il-image-previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;padding:8px;background:var(--surface-2, #f3f4f6);border-radius:var(--radius-md);border:1px dashed var(--border-subtle)}.il-image-preview{position:relative;width:80px;height:80px;border-radius:8px;overflow:hidden;border:2px solid var(--border-subtle);transition:border-color .15s}.il-image-preview:hover{border-color:#6366f1}.il-image-preview img{width:100%;height:100%;object-fit:cover;cursor:pointer}.il-image-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;background:#0009;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}.il-image-preview:hover .il-image-remove{opacity:1}.il-form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:10px;gap:8px}.il-form-tools{display:flex;align-items:center;gap:8px}.il-tool-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:var(--surface-2, #f3f4f6);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:12px;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.il-tool-btn:hover{background:var(--surface-1);color:#6366f1;border-color:#6366f1}.il-image-count{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--text-tertiary)}.il-form-save{display:inline-flex;align-items:center;gap:5px;padding:7px 16px;background:#6366f1;color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.il-form-save:hover{background:#4f46e5}.il-form-save:disabled{opacity:.4;cursor:not-allowed}.il-list{display:flex;flex-direction:column;gap:8px}.il-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:12px 16px;transition:box-shadow .15s}.il-card:hover{box-shadow:var(--shadow-sm)}.il-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.il-card-date{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#6366f1}.il-card-delete{padding:3px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s,border-color .15s;opacity:0}.il-card:hover .il-card-delete{opacity:1}.il-card-delete:hover{color:#dc2626;background:#dc262614}.il-card-edit{padding:3px;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s}.il-card-edit:hover{color:#6366f1;background:#6366f114}.il-card-edit-save{padding:3px;background:transparent;border:none;color:#059669;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s}.il-card-edit-save:hover{color:#047857;background:#05966914}.il-card-edit-save:disabled{opacity:.4;cursor:not-allowed}.il-card-editing{border-color:#6366f1;box-shadow:0 0 0 2px #6366f11f}.il-card-body{font-size:13px;line-height:1.7;color:var(--text-primary);white-space:pre-wrap}.il-card-images{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.il-card-image{width:120px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--border-subtle);cursor:pointer;transition:transform .15s,box-shadow .15s}.il-card-image:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.il-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000000d9;display:flex;align-items:center;justify-content:center;cursor:pointer;animation:il-fadeIn .2s ease}.il-lightbox img{max-width:90vw;max-height:90vh;border-radius:8px;box-shadow:0 8px 32px #0006;cursor:default}.il-lightbox-close{position:absolute;top:16px;right:16px;background:#ffffff26;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .15s}.il-lightbox-close:hover{background:#ffffff4d}@keyframes il-fadeIn{0%{opacity:0}to{opacity:1}}.il-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;color:var(--text-tertiary);font-size:13px}.absence-history{animation:fadeIn .2s ease}.abs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);flex-wrap:wrap;gap:8px}.abs-header h3{font-size:15px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:6px;margin:0}.abs-summary-badges{display:flex;gap:8px;flex-wrap:wrap}.abs-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600}.abs-badge.total{background:#6366f11a;color:var(--primary-400);border:1px solid rgba(99,102,241,.2)}.abs-badge.pending{background:#f59e0b1a;color:#d97706;border:1px solid rgba(245,158,11,.2)}.abs-badge.confirmed{background:#22c55e1a;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.abs-badge.cancelled{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.abs-table{width:100%;border-collapse:collapse;font-size:13px}.abs-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.abs-table td{padding:10px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.abs-table tr:hover td{background:#6366f108}.abs-table tr.cancelled td{opacity:.5;text-decoration:line-through}.abs-table tr.expanded td{background:#6366f10a;border-bottom:none}.abs-date-cell{font-weight:600;color:var(--text-primary);white-space:nowrap}.abs-date-day{font-size:11px;color:var(--text-tertiary);margin-left:4px}.abs-reason{max-width:200px;word-break:break-word}.abs-reason-type{font-weight:600;color:var(--text-secondary)}.abs-reason-detail{font-size:12px;color:var(--text-tertiary);margin-top:2px}.abs-sender{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.abs-sender.student{background:#3b82f61a;color:#3b82f6}.abs-sender.parent{background:#a855f71a;color:#a855f7}.abs-sender.admin{background:#f59e0b1a;color:#d97706}.abs-status{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap}.abs-status.no-makeup{background:#9ca3af1a;color:#6b7280;border:1px solid rgba(156,163,175,.2)}.abs-status.has-makeup{background:#22c55e1a;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.abs-status.awaiting{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.abs-status.overdue{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.abs-status.manual{background:#7c3aed1a;color:#7c3aed;border:1px solid rgba(124,58,237,.2)}.abs-status.cancelled{background:#ef44440f;color:#9ca3af;border:1px solid rgba(239,68,68,.1)}.abs-actions{display:flex;gap:4px}.abs-action-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--surface-1);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.abs-action-btn:hover{background:var(--primary-50, rgba(99, 102, 241, .08));color:var(--primary-400);border-color:var(--primary-200, rgba(99, 102, 241, .3))}.abs-action-btn.active{background:#6366f11a;color:var(--primary-400);border-color:#6366f14d}.abs-expand-row td{padding:0!important;border-bottom:1px solid var(--border-subtle)}.abs-expand-content{padding:12px 16px 16px;background:var(--surface-1);border-radius:0 0 var(--radius-md) var(--radius-md)}.abs-expand-section{margin-bottom:12px}.abs-expand-section:last-child{margin-bottom:0}.abs-expand-title{font-size:12px;font-weight:700;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:6px}.abs-makeup-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#22c55e0f;border:1px solid rgba(34,197,94,.15);border-radius:var(--radius-md);font-size:13px}.abs-makeup-card.manual{background:#7c3aed0f;border-color:#7c3aed26}.abs-makeup-info{flex:1;display:flex;flex-direction:column;gap:2px}.abs-makeup-date{font-weight:700;color:var(--text-primary)}.abs-makeup-detail{font-size:12px;color:var(--text-secondary)}.abs-makeup-registered{font-size:11px;color:var(--text-tertiary);margin-top:2px}.abs-manual-form{padding:14px;background:#7c3aed0a;border:1px solid rgba(124,58,237,.12);border-radius:var(--radius-md)}.abs-manual-form-title{font-size:13px;font-weight:700;color:#7c3aed;margin-bottom:10px;display:flex;align-items:center;gap:6px}.abs-manual-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.abs-manual-form-grid .full-width{grid-column:1 / -1}.abs-manual-form-label{font-size:11px;font-weight:600;color:var(--text-tertiary);margin-bottom:3px}.abs-manual-form-actions{display:flex;gap:6px;justify-content:flex-end}.abs-empty{text-align:center;padding:40px 20px;color:var(--text-tertiary)}.abs-empty-icon{font-size:36px;margin-bottom:8px;opacity:.5}.abs-empty-text{font-size:14px;font-weight:600;margin-bottom:4px}.abs-empty-sub{font-size:12px}.abs-linked-shifts{display:flex;flex-direction:column;gap:6px;margin-top:6px}.abs-linked-shift-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#6366f10a;border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}.abs-linked-shift-item .subject{font-weight:600}.abs-linked-shift-item .time{color:var(--text-tertiary)}.abs-instructor-confirmed{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:#16a34a;font-weight:600}.abs-filters{display:flex;gap:6px;margin-bottom:var(--space-3);flex-wrap:wrap}.abs-filter-btn{padding:4px 12px;border-radius:16px;font-size:12px;font-weight:600;border:1px solid var(--border-subtle);background:var(--surface-1);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.abs-filter-btn:hover{background:#6366f10f}.abs-filter-btn.active{background:#6366f11a;color:var(--primary-400);border-color:#6366f14d}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.coaching-report-tab{display:flex;flex-direction:column;gap:var(--space-4)}.crt-stats-bar{display:flex;gap:var(--space-3);flex-wrap:wrap}.crt-stat{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}.crt-stat .crt-stat-value{font-weight:700;color:var(--text-primary);font-size:14px}.crt-summary-card{background:var(--surface-1);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--border-subtle)}.crt-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.crt-summary-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:var(--text-sm);color:var(--primary-400)}.crt-summary-body{display:flex;flex-direction:column;gap:10px}.crt-summary-row{display:flex;gap:8px;align-items:flex-start}.crt-summary-row .crt-icon{flex-shrink:0;margin-top:2px}.crt-summary-label{font-size:11px;color:var(--text-tertiary);margin-bottom:2px}.crt-summary-text{font-size:var(--text-sm);color:var(--text-primary);line-height:1.5}.crt-level-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:10px;font-size:var(--text-xs);font-weight:600;color:#fff}.crt-meta-time{font-size:10px;color:var(--text-tertiary)}.crt-exam-mini{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}.crt-exam-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;background:#6366f114;color:var(--primary-400);border:1px solid rgba(99,102,241,.15)}.crt-month-group{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-1)}.crt-month-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;background:var(--bg-tertiary);border-bottom:1px solid transparent;transition:background .15s;-webkit-user-select:none;user-select:none}.crt-month-header:hover{background:var(--surface-2)}.crt-month-header.open{border-bottom-color:var(--border-subtle)}.crt-month-label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;color:var(--text-primary)}.crt-month-count{font-size:11px;font-weight:500;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px}.crt-month-body{display:flex;flex-direction:column}.crt-message{padding:10px 14px;border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:background .1s}.crt-message:last-child{border-bottom:none}.crt-message:hover{background:#6366f10a}.crt-message-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.crt-message-date{font-size:11px;font-weight:600;color:var(--text-tertiary)}.crt-message-role{font-size:10px;padding:1px 6px;border-radius:6px;font-weight:600}.crt-message-role.ai{background:#6366f11a;color:var(--primary-400)}.crt-message-role.user{background:#22c55e1a;color:#22c55e}.crt-message-preview{font-size:13px;color:var(--text-secondary);line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.crt-message-full{font-size:13px;color:var(--text-primary);line-height:1.7;white-space:pre-wrap;word-break:break-word;padding-top:4px}.crt-empty{text-align:center;padding:var(--space-8);color:var(--text-tertiary)}.crt-empty h4{margin:var(--space-3) 0 var(--space-2);color:var(--text-secondary);font-size:var(--text-sm)}.crt-empty p{font-size:13px}.student-detail{flex:1;display:flex;flex-direction:column;height:calc(100vh - var(--header-height));overflow:hidden}.detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);animation:fadeIn var(--transition-base)}.detail-header-info{display:flex;flex-direction:column;gap:var(--space-2)}.detail-name{font-size:var(--text-2xl);font-weight:700}.detail-meta{display:flex;gap:var(--space-2);flex-wrap:wrap}.detail-header-actions{display:flex;gap:var(--space-2)}.detail-content{flex:1;overflow-y:auto;padding:var(--space-6);animation:fadeIn var(--transition-base)}.student-detail>.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.student-detail>.empty-state h3{font-size:var(--text-lg);color:var(--text-secondary)}@media(max-width:768px){.student-detail{height:auto;min-height:0;overflow:visible;border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:var(--bg-secondary)}.detail-header{padding:var(--space-4);align-items:flex-start;flex-direction:column;gap:var(--space-3)}.detail-header-info,.detail-header-actions{width:100%;min-width:0}.detail-header-actions{overflow-x:auto;padding-bottom:2px}.detail-content{padding:var(--space-4);overflow:visible}.detail-name{font-size:var(--text-xl);word-break:keep-all;overflow-wrap:anywhere}.learning-advice-bar{padding:6px var(--space-4)}.learning-advice-bar-inner{align-items:flex-start}}.detail-tabs{display:flex;flex-wrap:nowrap;gap:var(--space-1);padding:0 var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.detail-tabs::-webkit-scrollbar{display:none}.detail-tabs .tab{flex-shrink:0}.learning-advice-bar{padding:6px var(--space-6);background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle)}.learning-advice-bar-inner{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;background:#6366f10f;border:1px solid rgba(99,102,241,.15);font-size:var(--text-xs);min-height:32px}.learning-advice-icon{color:var(--primary-400);flex-shrink:0}.learning-advice-text{flex:1;color:var(--text-primary);line-height:1.4}.learning-advice-text.placeholder{color:var(--text-tertiary);font-style:italic}.learning-advice-text.loading{display:flex;align-items:center;gap:6px;color:var(--text-secondary)}.learning-advice-refresh{flex-shrink:0;opacity:.5;transition:opacity .2s}.learning-advice-bar-inner:hover .learning-advice-refresh{opacity:1}.learning-advice-error{font-size:10px;color:var(--danger);padding:2px 12px}.btn-xs{padding:2px 4px;font-size:10px}.month-calendar{background:var(--surface-1);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:var(--space-4)}.calendar-upcoming-banner{background:linear-gradient(135deg,#6366f10f,#8b5cf60f);border:1px solid rgba(99,102,241,.15);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-3)}.calendar-upcoming-title{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;color:var(--primary-500);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.calendar-upcoming-list{display:flex;flex-direction:column;gap:6px}.calendar-upcoming-item{display:flex;align-items:center;gap:var(--space-2);padding:8px 12px;background:var(--surface-1);border-radius:var(--radius-md);border-left:3px solid #6366f1;box-shadow:0 1px 2px #0000000a;transition:transform .15s}.calendar-upcoming-item.ongoing{background:linear-gradient(135deg,#6366f114,#6366f105);box-shadow:0 1px 4px #6366f11f}.calendar-upcoming-item:hover{transform:translate(2px)}.calendar-upcoming-emoji{font-size:16px;flex-shrink:0}.calendar-upcoming-info{display:flex;flex-direction:column;flex:1;min-width:0}.calendar-upcoming-label{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.calendar-upcoming-date{font-size:var(--text-xs);color:var(--text-tertiary)}.calendar-upcoming-badge{background:var(--primary-500);color:#fff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);flex-shrink:0;animation:pulse-badge 2s ease-in-out infinite}@keyframes pulse-badge{0%,to{opacity:1}50%{opacity:.7}}.month-calendar-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.month-calendar-header h2{font-size:var(--text-lg);font-weight:700;min-width:120px;text-align:center}.calendar-event-form{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--space-3);border:1px solid var(--border-subtle)}.calendar-form-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.calendar-form-type-group{display:flex;gap:4px;flex-wrap:wrap}.calendar-type-btn{padding:4px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--surface-1);font-size:var(--text-xs);cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.calendar-type-btn:hover{border-color:var(--primary-300)}.calendar-type-btn.active{font-weight:600}.mc-schedule-type-selector{display:flex;flex-direction:column;gap:8px;width:100%}.mc-schedule-scope-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 10px;border:1px solid var(--border-subtle);border-left-width:4px;border-radius:8px;background:var(--surface-1);color:var(--text-secondary);font-size:var(--text-xs)}.mc-schedule-scope-summary.closure{border-left-color:#ef4444}.mc-schedule-scope-summary.portal{border-left-color:#2563eb}.mc-schedule-scope-summary.internal{border-left-color:#0f766e}.mc-schedule-scope-summary strong{color:var(--text-primary);font-size:var(--text-sm)}.mc-schedule-scope-summary em,.mc-schedule-type-section-header em{display:inline-flex;align-items:center;min-height:20px;padding:2px 8px;border-radius:var(--radius-full);background:#6366f117;color:var(--primary-700);font-style:normal;font-size:11px;font-weight:700;white-space:nowrap}.mc-schedule-scope-kicker{color:var(--text-tertiary);font-weight:700}.mc-schedule-type-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:8px;width:100%}.mc-schedule-type-section{min-width:0;padding:9px 10px;border-radius:8px;background:#ffffffb8;border-left:4px solid var(--border-subtle)}.mc-schedule-type-section.closure{border-left-color:#ef4444;background:#ef44440b}.mc-schedule-type-section.portal{border-left-color:#2563eb;background:#2563eb0b}.mc-schedule-type-section.internal{border-left-color:#0f766e;background:#0f766e0b}.mc-schedule-type-section.other{border-left-color:#64748b}.mc-schedule-type-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px}.mc-schedule-type-section-header div{display:flex;min-width:0;flex-direction:column;gap:2px}.mc-schedule-type-section-header strong{color:var(--text-primary);font-size:var(--text-sm);line-height:1.25}.mc-schedule-type-section-header span{color:var(--text-tertiary);font-size:11px;line-height:1.35}.mc-schedule-type-buttons{display:flex;flex-wrap:wrap;gap:5px}.calendar-type-btn.mc-schedule-type-btn{min-height:28px}.mc-schedule-type-selector.compact .mc-schedule-type-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}.mc-general-edit-row .mc-schedule-type-selector{flex:1}.calendar-event-form .input-field{padding:4px 8px;font-size:var(--text-xs)}.mc-google-panel{display:flex;flex-direction:column;gap:8px;margin-bottom:var(--space-3);padding:10px 12px;background:#0f766e0a;border:1px solid rgba(15,118,110,.16);border-radius:var(--radius-md)}.mc-google-panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.mc-google-title{display:flex;align-items:center;gap:7px;font-size:var(--text-xs);font-weight:700;color:#0f766e}.mc-google-status{display:inline-flex;align-items:center;padding:1px 8px;border-radius:var(--radius-full);font-size:10px;font-weight:700;background:#f59e0b1f;color:#b45309}.mc-google-status.connected{background:#10b9811f;color:#047857}.mc-google-fields{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(190px,1fr) minmax(160px,1fr) auto;gap:6px;align-items:center}.mc-google-fields .input-field{min-width:0}.mc-google-toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:var(--text-xs);font-weight:600;color:var(--text-secondary)}.mc-google-save-btn,.mc-google-auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 10px;border:1px solid rgba(15,118,110,.28);border-radius:var(--radius-sm);background:#0f766e;color:#fff;font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:opacity .15s,background .15s;white-space:nowrap}.mc-google-auth-btn{background:var(--surface-1);color:#0f766e}.mc-google-save-btn:hover,.mc-google-auth-btn:hover{opacity:.86}.mc-google-save-btn:disabled,.mc-google-auth-btn:disabled{opacity:.45;cursor:not-allowed}.mc-google-redirect{font-size:10px;color:var(--text-tertiary);overflow-wrap:anywhere}.mc-google-redirect code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.mc-admin-only-note{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#0f766e12;border:1px solid rgba(15,118,110,.18);border-radius:var(--radius-sm);color:#0f766e;font-size:var(--text-xs);font-weight:600}.mc-admin-only-note-edit{margin:4px 0 8px}.mc-time-range-row{align-items:center;gap:var(--space-2)}.mc-time-block{display:inline-flex;align-items:center;gap:5px;min-height:38px}.mc-time-label{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);white-space:nowrap}.mc-time-hour{width:64px;text-align:center}.mc-time-minute{width:68px;text-align:center}.mc-time-unit,.mc-time-separator{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);white-space:nowrap}.month-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.month-calendar-day-header{padding:6px 4px;text-align:center;font-size:var(--text-xs);font-weight:600;background:var(--bg-secondary);color:var(--text-secondary)}.month-calendar-day-header.sunday{color:#ef4444}.month-calendar-day-header.saturday{color:#6366f1}.month-calendar-cell{min-height:86px;padding:6px;background:var(--bg-primary);position:relative;transition:background .1s}.month-calendar-cell.clickable{cursor:pointer}.month-calendar-cell.clickable:hover{background:#6366f10a}.month-calendar-cell.empty{background:var(--bg-secondary)}.month-calendar-cell.today{background:#6366f10f}.month-calendar-cell.today .cell-day-number{background:var(--primary-500);color:#fff;border-radius:var(--radius-full);width:22px;height:22px;display:flex;align-items:center;justify-content:center}.month-calendar-cell.selected{background:#6366f11a;box-shadow:inset 0 0 0 2px var(--primary-400)}.month-calendar-cell.holiday{background:#ef44440a}.month-calendar-cell.sunday .cell-day-number{color:#ef4444}.month-calendar-cell.saturday .cell-day-number{color:#6366f1}.cell-day-number{font-size:11px;font-weight:600;margin-bottom:2px}.cell-events{display:flex;flex-direction:column;gap:2px;margin-top:2px}.cell-event-tag{min-height:18px;padding:3px 6px;border-radius:4px;font-size:9px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;display:flex;align-items:center}.cell-event-text{min-width:0;overflow:hidden;text-overflow:ellipsis}.cell-event-more{font-size:8px;color:var(--text-tertiary);line-height:1.4}.calendar-month-events{margin-top:var(--space-3);border-top:1px solid var(--border-subtle);padding-top:var(--space-3)}.calendar-month-events-title{font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);margin-bottom:var(--space-2)}.calendar-event-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border-subtle);border-left:3px solid #ef4444;border-radius:var(--radius-md);margin-bottom:6px;font-size:var(--text-xs);transition:background .1s}.calendar-event-chip:hover{background:var(--bg-tertiary)}.calendar-event-chip.mc-scroll-highlight,.mc-general-edit-panel.mc-scroll-highlight{border-color:#6366f18c;box-shadow:0 0 0 3px #6366f12e}.calendar-event-chip-emoji{font-size:14px;flex-shrink:0}.calendar-event-chip-label{font-weight:600;color:var(--text-primary);flex:1}.calendar-event-chip-date{color:var(--text-tertiary);font-size:var(--text-xs);white-space:nowrap}.calendar-event-chip-delete{background:none;border:none;cursor:pointer;padding:2px;color:var(--text-tertiary);opacity:.5;border-radius:var(--radius-sm);transition:background .15s,color .15s,border-color .15s}.calendar-event-chip-delete:hover{opacity:1;color:#ef4444;background:#ef444414}@media(max-width:768px){.month-calendar-cell{min-height:62px;padding:4px}.mc-google-fields{grid-template-columns:1fr}.mc-google-toggle{white-space:normal}.mc-schedule-type-grid,.mc-schedule-type-selector.compact .mc-schedule-type-grid{grid-template-columns:1fr}.mc-schedule-scope-summary{align-items:flex-start;flex-direction:column;gap:4px}.mc-time-range-row{align-items:stretch}.mc-time-block{width:100%;display:grid;grid-template-columns:auto minmax(58px,1fr) auto minmax(64px,1fr) auto;min-height:44px}.mc-time-hour,.mc-time-minute{width:100%;min-height:44px}.mc-time-separator{display:none}.cell-event-tag{min-height:16px;font-size:7px;padding:2px 3px}.calendar-upcoming-item{padding:6px 8px}}.mc-leave-fields{gap:var(--space-2)}.mc-leave-label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);white-space:nowrap}.mc-leave-select{min-width:100px;max-width:160px}.mc-affected-panel{margin-top:var(--space-2);background:#8b5cf60a;border:1px solid rgba(139,92,246,.15);border-radius:var(--radius-md);overflow:hidden}.mc-affected-header{display:flex;align-items:center;gap:6px;padding:8px 12px;font-size:var(--text-xs);font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.mc-affected-header:hover{background:#8b5cf60f}.mc-affected-list{display:flex;flex-direction:column;gap:4px;padding:0 8px 8px;max-height:280px;overflow-y:auto}.mc-affected-item{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:var(--surface-1);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);transition:border-color .2s,opacity .2s}.mc-affected-item.resolved{border-color:#10b9814d;opacity:.75}.mc-affected-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mc-affected-time{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);white-space:nowrap}.mc-affected-subject{font-size:var(--text-xs);color:#8b5cf6;font-weight:500}.mc-affected-room{font-size:var(--text-xs);color:var(--text-tertiary)}.mc-affected-students{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.mc-affected-actions{display:flex;gap:6px;align-items:center}.mc-action-select{min-width:100px;max-width:120px;font-size:11px!important}.mc-action-detail{flex:1;font-size:11px!important}.mc-pending-badge{font-size:10px;font-weight:600;color:#f59e0b;white-space:nowrap;animation:pulse-badge 2s ease-in-out infinite}.mc-resolved-badge{font-size:10px;font-weight:600;color:#10b981;white-space:nowrap}.calendar-event-chip-reason{font-size:var(--text-xs);color:var(--text-tertiary);font-style:italic}.calendar-event-chip-edit{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:#8b5cf6;opacity:.6;transition:opacity .15s,background .15s}.calendar-event-chip-edit:hover{opacity:1;background:#8b5cf61a}.calendar-event-chip.mc-editing{border-left-color:#8b5cf6!important;background:#8b5cf60a}.mc-edit-panel{margin:0 0 8px;padding:12px;background:#8b5cf608;border:1px solid rgba(139,92,246,.15);border-top:none;border-radius:0 0 10px 10px}.mc-edit-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:600;color:#8b5cf6}.mc-edit-save-btn{display:flex;align-items:center;gap:4px;background:#8b5cf6;color:#fff;border:none;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}.mc-edit-save-btn:hover{background:#7c3aed}.mc-edit-save-btn:disabled{opacity:.6;cursor:not-allowed}.mc-edit-cancel-btn{background:none;border:1px solid rgba(0,0,0,.12);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;color:var(--text-secondary);transition:background .15s}.mc-edit-cancel-btn:hover{background:#0000000a}.mc-edit-empty{text-align:center;padding:16px;color:var(--text-tertiary);font-size:13px}.mc-edit-row{padding:8px 10px;margin-bottom:6px;border-radius:8px;border-left:3px solid #ef4444;background:#ef444408}.mc-edit-row.resolved{border-left-color:#10b981;background:#10b98108}.mc-edit-row-info{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.mc-edit-time{font-size:13px;font-weight:600;color:var(--text-primary)}.mc-edit-subject{font-size:12px;color:#8b5cf6;font-weight:500}.mc-edit-date{font-size:11px;color:var(--text-tertiary)}.mc-edit-row-actions{display:flex;gap:6px;align-items:center}.mc-edit-select{flex:0 0 auto;padding:4px 8px;border:1px solid rgba(0,0,0,.12);border-radius:6px;font-size:12px;background:#fff;cursor:pointer}.mc-edit-detail{flex:1;min-width:0;padding:4px 8px;border:1px solid rgba(0,0,0,.12);border-radius:6px;font-size:12px}.mc-edit-detail:focus,.mc-edit-select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 2px #8b5cf626}.mc-spot-badge{font-size:10px;font-weight:600;color:#059669;white-space:nowrap}.mc-spot-panel{margin:0 0 6px;padding:10px;background:#0596690a;border:1px solid rgba(5,150,105,.15);border-radius:10px}.mc-spot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:#059669}.mc-spot-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap}.mc-spot-time{padding:4px 6px;border:1px solid rgba(0,0,0,.12);border-radius:6px;font-size:12px;width:90px}.mc-spot-subject,.mc-spot-room,.mc-spot-location{padding:4px 8px;border:1px solid rgba(0,0,0,.12);border-radius:6px;font-size:12px;width:80px;background:#fff}.mc-spot-location{width:120px}.mc-spot-time:focus,.mc-spot-subject:focus,.mc-spot-room:focus,.mc-spot-location:focus{outline:none;border-color:#059669;box-shadow:0 0 0 2px #05966926}.mc-spot-remove{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:#ef4444;opacity:.5;transition:opacity .15s}.mc-spot-remove:hover{opacity:1}.mc-spot-empty{text-align:center;padding:12px;color:var(--text-tertiary);font-size:12px}.mc-target-row{flex-direction:column;align-items:stretch!important;gap:6px!important}.mc-target-type-group{display:flex;gap:4px}.mc-target-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--surface-1);font-size:var(--text-xs);font-family:var(--font-family);cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.mc-target-btn:hover{border-color:var(--primary-300)}.mc-target-btn.active{font-weight:600}.mc-target-detail{display:flex;flex-direction:column;gap:6px;padding:6px 0 0}.mc-target-chips{display:flex;flex-wrap:wrap;gap:4px}.mc-target-chip{padding:3px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--surface-1);font-size:11px;font-family:var(--font-family);cursor:pointer;transition:background .15s,color .15s,border-color .15s;display:inline-flex;align-items:center;gap:4px}.mc-target-chip:hover{border-color:var(--primary-300)}.mc-target-chip.active{background:var(--primary-500);color:#fff;border-color:var(--primary-500);font-weight:600}.mc-target-chip-remove{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;color:#ffffffb3;transition:color .15s}.mc-target-chip-remove:hover{color:#fff}.mc-target-student-search{position:relative}.mc-target-student-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:0 4px 12px #0000001f;z-index:20;max-height:180px;overflow-y:auto}.mc-target-student-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;background:none;border:none;border-bottom:1px solid var(--border-subtle);font-size:12px;font-family:var(--font-family);cursor:pointer;text-align:left;transition:background .1s}.mc-target-student-option:last-child{border-bottom:none}.mc-target-student-option:hover{background:#6366f10f}.mc-target-student-option:disabled{opacity:.4;cursor:not-allowed}.mc-target-student-grade{font-size:10px;color:var(--text-tertiary);font-weight:600}.mc-target-badge{font-size:10px;font-weight:600;color:#f59e0b;background:#f59e0b1a;padding:1px 8px;border-radius:var(--radius-full);white-space:nowrap}.mc-admin-badge,.mc-google-synced-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:1px 8px;border-radius:var(--radius-full);white-space:nowrap}.mc-admin-badge{color:#0f766e;background:#0f766e1f}.mc-google-synced-badge{color:#2563eb;background:#2563eb1a}.mc-edit-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f172a61;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.mc-edit-modal{width:min(920px,96vw);max-height:92vh;display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 24px 60px #0f172a40;overflow:hidden}.mc-edit-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-left:5px solid var(--primary-500);border-bottom:1px solid var(--border-subtle);background:linear-gradient(180deg,#6366f10f,#fff0)}.mc-edit-modal-eyebrow{font-size:11px;font-weight:700;color:var(--text-tertiary);margin-bottom:4px}.mc-edit-modal-header h3{margin:0;font-size:18px;font-weight:800;color:var(--text-primary)}.mc-edit-modal-close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface-1);color:var(--text-secondary);cursor:pointer}.mc-edit-modal-close:hover{background:#0000000a}.mc-edit-modal-body{display:flex;flex-direction:column;gap:10px;padding:16px 18px;overflow-y:auto}.mc-edit-modal .mc-general-edit-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center}.mc-edit-modal .mc-general-edit-row>.input-field,.mc-edit-modal .mc-general-edit-row>select.input-field{width:100%;min-width:0}.mc-edit-modal .mc-general-edit-row .mc-target-type-group,.mc-edit-modal .mc-general-edit-row .calendar-form-type-group,.mc-edit-modal .mc-general-edit-row .mc-target-chips{min-width:0;flex-wrap:wrap}.mc-general-edit-row-indent{grid-template-columns:92px minmax(0,1fr)}.mc-general-edit-row-indent:before{content:""}.mc-edit-modal .mc-target-student-search{min-width:220px}.mc-edit-modal-section{margin-top:4px}.mc-edit-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-top:1px solid var(--border-subtle);background:var(--bg-tertiary)}.mc-edit-modal-footer-actions{display:flex;align-items:center;gap:8px}@media(max-width:720px){.mc-edit-modal-overlay{align-items:flex-end;padding:10px}.mc-edit-modal{width:100%;max-height:94vh;border-radius:12px 12px 0 0}.mc-edit-modal .mc-general-edit-row{grid-template-columns:1fr;gap:5px;align-items:stretch}.mc-general-edit-row-indent:before{content:none}.mc-edit-modal-footer{align-items:stretch;flex-direction:column-reverse}.mc-edit-modal-footer-actions{justify-content:flex-end}}.mc-substitute-warning{margin-top:4px;padding:8px 10px;background:#f59e0b0f;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-sm);font-size:11px}.mc-substitute-warning-header{font-weight:600;color:#d97706;margin-bottom:6px;font-size:11px}.mc-substitute-conflict-row{display:flex;align-items:center;gap:8px;padding:4px 6px;background:#f59e0b0a;border-radius:4px;margin-bottom:3px}.mc-conflict-info{font-size:11px;font-weight:500;color:var(--text-primary);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mc-conflict-reassign{min-width:100px;max-width:140px;padding:3px 6px!important;font-size:11px!important;border-color:#f59e0b4d!important}.mc-conflict-reassign:focus{border-color:#f59e0b!important;box-shadow:0 0 0 2px #f59e0b26!important}.mc-action-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;animation:mc-dialog-fadein .15s ease-out}@keyframes mc-dialog-fadein{0%{opacity:0}to{opacity:1}}.mc-action-dialog{background:var(--surface-1, #fff);border-radius:16px;padding:24px;min-width:280px;max-width:340px;box-shadow:0 20px 60px #00000040;animation:mc-dialog-slidein .2s ease-out;text-align:center}@keyframes mc-dialog-slidein{0%{transform:scale(.9) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.mc-action-dialog-title{font-size:16px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.mc-action-dialog-subtitle{font-size:12px;color:var(--text-tertiary);margin-bottom:20px}.mc-action-dialog-buttons{display:flex;gap:10px;margin-bottom:12px}.mc-action-dialog-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border:none;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:transform .1s,box-shadow .15s}.mc-action-dialog-btn:hover{transform:translateY(-1px)}.mc-action-dialog-btn:active{transform:translateY(0)}.mc-action-dialog-btn.edit{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 4px 14px #8b5cf659}.mc-action-dialog-btn.edit:hover{box-shadow:0 6px 20px #8b5cf673}.mc-action-dialog-btn.delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 4px 14px #ef44444d}.mc-action-dialog-btn.delete:hover{box-shadow:0 6px 20px #ef444466}.mc-action-dialog-cancel{background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:13px;font-family:var(--font-family);padding:6px 16px;border-radius:8px;transition:background .15s,color .15s;width:100%}.mc-action-dialog-cancel:hover{background:#0000000a;color:var(--text-secondary)}.mc-general-edit-panel{margin:0 0 8px;padding:14px;background:#6366f108;border:1px solid rgba(99,102,241,.15);border-top:none;border-radius:0 0 10px 10px}.mc-general-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:600;color:#6366f1}.mc-general-edit-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.mc-general-edit-label{font-size:11px;font-weight:600;color:var(--text-secondary);white-space:nowrap;min-width:40px}.mc-general-edit-panel .input-field{padding:5px 8px;font-size:12px;border:1px solid rgba(0,0,0,.12);border-radius:6px}.mc-general-edit-panel .input-field:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.instructor-dash{padding:var(--space-6);max-width:900px;margin:0 auto}.instructor-dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.instructor-dash-header h1{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.instructor-dash-user{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);background:var(--surface-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full)}.instructor-tabs{display:flex;gap:var(--space-1);margin-bottom:var(--space-5);border-bottom:2px solid var(--border-subtle);padding-bottom:0}.instructor-tab{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.instructor-tab:hover{color:var(--text-primary);background:var(--surface-2);border-radius:var(--radius-md) var(--radius-md) 0 0}.instructor-tab.active{color:var(--primary-500);border-bottom-color:var(--primary-500)}.instructor-tab-content{animation:fadeInUp .2s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.instructor-shifts{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.instructor-shift-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.instructor-shift-card:hover{border-color:var(--primary-400);box-shadow:var(--shadow-md);transform:translateY(-1px)}.instructor-shift-card.active{border-color:var(--primary-500);background:#6366f10a;box-shadow:0 0 0 2px #6366f126}.shift-card-day{font-size:var(--text-lg);font-weight:700;color:var(--primary-500);min-width:36px;text-align:center}.shift-card-info{flex:1;display:flex;flex-direction:column;gap:2px}.shift-card-time{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.shift-card-detail{font-size:var(--text-xs);color:var(--text-tertiary);display:flex;gap:var(--space-3);flex-wrap:wrap}.shift-card-memo{margin-top:5px;padding:6px 8px;border-radius:var(--radius-md);background:#6366f10f;border:1px solid rgba(99,102,241,.14);color:var(--text-secondary);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.shift-card-students{display:flex;gap:var(--space-1);flex-wrap:wrap}.shift-card-student-tag{font-size:11px;padding:1px 8px;background:var(--bg-tertiary);border-radius:var(--radius-full);color:var(--text-secondary)}.instructor-report-form{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);margin-top:var(--space-4)}.instructor-report-form h3{font-size:var(--text-base);font-weight:600;margin-bottom:var(--space-4);color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.report-students-preview{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--surface-2);border-radius:var(--radius-md)}.report-student-chip{font-size:var(--text-sm);padding:var(--space-1) var(--space-3);background:var(--primary-500);color:#fff;border-radius:var(--radius-full);font-weight:500}.report-student-chip.unselected{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer}.report-student-chip.unselected:hover{background:var(--primary-100, rgba(99, 102, 241, .15));color:var(--primary-500)}.instructor-recent-reports{margin-top:var(--space-6)}.instructor-recent-reports h3{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-3)}.recent-report-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-2);font-size:var(--text-sm)}.recent-report-date{font-weight:600;color:var(--text-secondary);min-width:70px}.recent-report-content{flex:1;color:var(--text-primary)}.recent-report-meta{font-size:var(--text-xs);color:var(--text-tertiary);margin-top:2px}.instructor-empty{text-align:center;padding:var(--space-8);color:var(--text-tertiary)}.instructor-empty-icon{font-size:48px;margin-bottom:var(--space-3)}.instructor-salary-header{margin-bottom:var(--space-5)}.instructor-salary-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5)}.instructor-salary-badge{display:inline-block;font-size:var(--text-xs);font-weight:700;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--primary-500);color:#fff;margin-bottom:var(--space-4)}.instructor-salary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-primary)}.instructor-salary-row small{font-size:var(--text-xs);color:var(--text-tertiary);margin-left:var(--space-1)}.instructor-salary-val{font-weight:600;font-variant-numeric:tabular-nums}.instructor-salary-breakdown{padding:var(--space-2) 0 var(--space-2) var(--space-5);border-bottom:1px solid var(--border-subtle)}.instructor-salary-breakdown-item{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-secondary);padding:2px 0}.instructor-salary-total{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) 0 var(--space-2);font-size:var(--text-lg);font-weight:700;color:var(--primary-500)}.instructor-salary-reports{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.instructor-salary-report-row{display:grid;grid-template-columns:60px 1fr 60px 100px 50px;gap:var(--space-2);font-size:var(--text-xs);padding:var(--space-2) var(--space-1);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.instructor-salary-report-row:nth-child(2n){background:var(--surface-2)}.instructor-schedule{display:flex;flex-direction:column;gap:var(--space-4)}.instructor-schedule-day{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.instructor-schedule-day-label{font-size:var(--text-sm);font-weight:700;padding:var(--space-3) var(--space-5);background:linear-gradient(135deg,var(--primary-500),var(--primary-600, #4f46e5));color:#fff}.instructor-schedule-shifts{display:flex;flex-direction:column}.instructor-schedule-shift{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.instructor-schedule-shift:last-child{border-bottom:none}.schedule-shift-time{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-2)}.schedule-shift-details{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.schedule-shift-tag{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-xs);padding:2px var(--space-3);background:var(--surface-2);border-radius:var(--radius-full);color:var(--text-secondary)}.schedule-shift-students{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-top:var(--space-1)}.report-mode-switcher{display:flex;gap:var(--space-1);margin-bottom:var(--space-4);background:var(--surface-2);border-radius:var(--radius-lg);padding:3px}.report-mode-btn{flex:1;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--text-tertiary);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.report-mode-btn:hover{color:var(--text-primary)}.report-mode-btn.active{background:var(--surface-1);color:var(--primary-500);box-shadow:var(--shadow-sm)}.free-report-students{margin-bottom:var(--space-4)}.free-student-grid{display:flex;flex-wrap:wrap;gap:var(--space-2)}.free-student-chip{display:inline-flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);-webkit-user-select:none;user-select:none}.free-student-chip:hover{border-color:var(--primary-400);background:#6366f10f}.free-student-chip.selected{background:var(--primary-500);color:#fff;border-color:var(--primary-500)}.quick-date-row{display:flex;align-items:center;gap:var(--space-1);margin-bottom:var(--space-4);flex-wrap:wrap;padding:var(--space-2) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md)}.quick-date-btn{padding:3px 10px;font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap}.quick-date-btn:hover{border-color:var(--primary-400);color:var(--primary-500)}.quick-date-btn.active{background:var(--primary-500);color:#fff;border-color:var(--primary-500)}.quick-date-btn small{font-size:10px;margin-left:2px;opacity:.8}.quick-date-arrow{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-secondary);background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);flex-shrink:0}.quick-date-arrow:hover:not(:disabled){border-color:var(--primary-400);color:var(--primary-500);background:#6366f10f}.quick-date-arrow:disabled{opacity:.3;cursor:not-allowed}.quick-date-current{font-size:var(--text-sm);font-weight:700;color:var(--primary-500);min-width:70px;text-align:center}.quick-date-divider{width:1px;height:20px;background:var(--border-subtle);margin:0 var(--space-1);flex-shrink:0}.quick-date-calendar-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;transition:border-color .15s,background .15s}.quick-date-calendar-wrap:hover{border-color:var(--primary-400);background:#6366f10f}.quick-date-calendar-icon{color:var(--text-secondary);pointer-events:none}.quick-date-calendar-input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%;border:none;padding:0;margin:0}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;font-size:10px;font-weight:700;color:#fff;background:#ef4444;border-radius:99px;padding:0 4px;margin-left:4px}.today-shifts{display:flex;flex-direction:column;gap:var(--space-4)}.today-shift-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color .2s}.today-shift-card:hover{border-color:var(--primary-300, #a5b4fc)}.today-shift-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.today-shift-time{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:700;color:var(--primary-500)}.today-shift-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.today-shift-memo{margin-bottom:var(--space-3);padding:8px 10px;border-radius:var(--radius-md);background:#6366f10f;border:1px solid rgba(99,102,241,.14);color:var(--text-secondary);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.today-students{display:flex;flex-direction:column;gap:var(--space-2)}.today-student-exam{font-size:10px;font-weight:700;padding:1px 6px;border-radius:var(--radius-full);background:linear-gradient(135deg,#faf5ff,#fdf2f8);color:#7c3aed;border:1px solid #e9d5ff;margin-left:var(--space-2)}.today-report-label{font-weight:600;color:var(--text-secondary);margin-right:var(--space-2)}.today-student-list{display:flex;flex-direction:column;gap:var(--space-3)}.today-student-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color .2s}.today-student-card:hover{border-color:var(--primary-300, #a5b4fc)}.today-student-card.absent{border-left:3px solid #ef4444;background:#ef444408}.today-student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.today-student-name{display:flex;align-items:center;font-weight:700;font-size:var(--text-base);color:var(--text-primary)}.today-student-grade{font-size:11px;font-weight:600;padding:1px 8px;border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-secondary);margin-left:var(--space-2)}.today-absent-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--radius-full);background:#ef44441f;color:#ef4444}.today-student-shifts{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-2)}.today-shift-chip{display:inline-flex;align-items:center;gap:3px;font-size:12px;padding:2px 10px;background:#6366f114;color:var(--primary-500);border-radius:var(--radius-full);font-weight:500}.today-exam-info{display:flex;align-items:center;gap:var(--space-2);font-size:11px;color:#7c3aed;padding:4px 8px;background:linear-gradient(135deg,#faf5ff,#fdf2f8);border:1px solid #e9d5ff;border-radius:var(--radius-md);margin-bottom:var(--space-2)}.today-student-memo{font-size:12px;color:var(--text-secondary);padding:6px 10px;background:#f59e0b0f;border-left:2px solid #f59e0b;border-radius:0 var(--radius-md) var(--radius-md) 0;margin-bottom:var(--space-2)}.today-last-report{font-size:11px;padding:6px 10px;background:var(--surface-2);border-radius:var(--radius-md)}.today-last-report-label{font-weight:600;color:var(--text-secondary);margin-bottom:2px}.today-last-report-content{color:var(--text-tertiary);line-height:1.5}@media(max-width:640px){.instructor-dash{padding:var(--space-3) var(--space-3) 70px}.instructor-dash-header h1{font-size:var(--text-base)}.instructor-dash-user{font-size:var(--text-xs);padding:var(--space-1) var(--space-3)}.instructor-tabs{position:fixed;bottom:0;left:0;right:0;z-index:100;display:flex;gap:0;margin:0;padding:0;border-bottom:none;border-top:1px solid var(--border-subtle);background:var(--surface-0, #fff);box-shadow:0 -2px 10px #00000014}.instructor-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:18px;border-bottom:none;margin:0;border-radius:0;min-width:0}.instructor-tab .tab-label-text{font-size:9px;line-height:1}.instructor-tab.active{border-bottom:none;background:#6366f10f}.tab-badge{position:absolute;top:2px;right:2px;min-width:14px;height:14px;font-size:9px}.instructor-tab{position:relative}.instructor-shift-card{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-3)}.shift-card-day{font-size:var(--text-base)}.form-row{flex-direction:column}.form-group{width:100%}.quick-date-row{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.quick-date-row::-webkit-scrollbar{display:none}.quick-date-btn{flex-shrink:0}.instructor-salary-report-row{grid-template-columns:50px 1fr 50px;font-size:11px}.instructor-salary-report-row>span:nth-child(4),.instructor-salary-report-row>span:nth-child(5),.instructor-salary-report-row>span:nth-child(6){display:none}.report-mode-switcher{margin-bottom:var(--space-3)}.report-mode-btn{font-size:var(--text-xs);padding:var(--space-2) var(--space-2)}.instructor-report-form,.instructor-schedule-shift{padding:var(--space-3)}}.lia-container{padding:0}.lia-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.lia-card{display:flex;align-items:center;gap:14px;padding:18px 20px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.lia-card-active{background:linear-gradient(135deg,#ede9fe,#e0e7ff);border-color:#c7d2fe}.lia-card-value{font-size:24px;font-weight:800;color:var(--text-primary)}.lia-card-label{font-size:12px;color:var(--text-tertiary);font-weight:500}.lia-recent-tests-panel{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.lia-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.lia-section-header h3{display:flex;align-items:center;gap:8px;margin:0 0 3px;font-size:15px;font-weight:800}.lia-section-header p{margin:0;color:var(--text-tertiary);font-size:12px}.lia-link-btn,.lia-open-btn,.lia-read-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:12px;font-weight:700;white-space:nowrap;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s}.lia-link-btn{padding:7px 12px;background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}.lia-link-btn:hover,.lia-open-btn:hover{background:#ede9fe;color:#5b21b6}.lia-recent-test-list{display:flex;flex-direction:column;gap:8px}.lia-recent-test-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:var(--surface-0, #fff);border:1px solid var(--border-subtle);border-left:3px solid #8b5cf6;border-radius:var(--radius-md);cursor:pointer}.lia-recent-test-item:hover{border-color:#c4b5fd;box-shadow:0 6px 18px #7c3aed14}.lia-recent-test-item.is-unread{background:linear-gradient(90deg,#8b5cf614,#ffffffe6)}.lia-recent-test-main{min-width:0;flex:1}.lia-recent-test-title,.lia-recent-test-name,.lia-recent-test-detail,.lia-recent-test-scores{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.lia-recent-test-title{margin-bottom:4px}.lia-test-badge,.lia-unread-badge,.lia-warning-badge,.lia-total-pill{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px 8px;font-size:11px;font-weight:700;line-height:1.4}.lia-test-badge{background:#ede9fe;color:#7c3aed}.lia-unread-badge{background:#fee2e2;color:#dc2626}.lia-warning-badge{background:#fef3c7;color:#92400e}.lia-total-pill{background:#ecfdf5;color:#047857}.lia-recent-test-name{font-size:15px;font-weight:800;color:var(--text-primary)}.lia-recent-test-grade{padding:2px 8px;border-radius:var(--radius-full);font-size:11px;background:#eef2ff;color:#4f46e5}.lia-recent-test-detail,.lia-recent-test-scores{margin-top:4px;color:var(--text-tertiary);font-size:12px}.lia-recent-test-detail strong{color:var(--text-secondary)}.lia-recent-test-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lia-open-btn{padding:7px 12px;background:#f8fafc;color:#4f46e5;border:1px solid #e0e7ff}.lia-read-btn{padding:7px 12px;background:#10b981;color:#fff}.lia-read-btn:hover{background:#059669}.lia-read-btn:disabled{opacity:.55;cursor:wait}.lia-empty-row{padding:18px;border-radius:var(--radius-md);background:var(--surface-2, #f9fafb);color:var(--text-tertiary);font-size:13px;text-align:center}.lia-view-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;margin-bottom:16px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.lia-view-tab{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:132px;padding:9px 14px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:13px;font-weight:800;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.lia-view-tab.active{background:#eef2ff;color:#4f46e5;box-shadow:inset 0 0 0 1px #c7d2fe}.lia-view-tab:hover{background:#f5f3ff;color:#4f46e5}.lia-tests-board{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm)}.lia-tests-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;align-items:center;gap:10px;margin-bottom:10px}.lia-tests-search{margin-bottom:0}.lia-test-unread-filter{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;background:#f8fafc;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);font-size:12px;font-weight:700;white-space:nowrap}.lia-test-result-count{margin:0 0 10px;color:var(--text-tertiary);font-size:12px;font-weight:700}.lia-test-result-table-wrap{overflow-x:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.lia-test-result-table{min-width:980px;border:none}.lia-test-result-table th,.lia-test-result-table td{vertical-align:middle}.lia-test-name-cell{min-width:150px;font-weight:800}.lia-score-summary-cell{max-width:320px;color:var(--text-tertiary);font-size:12px;line-height:1.5}.lia-test-status-stack,.lia-test-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.lia-test-source-portal,.lia-test-source-admin{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px 8px;font-size:11px;font-weight:800;white-space:nowrap}.lia-test-source-portal{background:#ecfeff;color:#0e7490}.lia-test-source-admin{background:#f3f4f6;color:#6b7280}.lia-row-unread-test{background:linear-gradient(90deg,#8b5cf614,#ffffffeb)}.lia-makeup-board{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm)}.lia-makeup-count{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:var(--radius-full);background:#ecfdf5;color:#047857;font-size:12px;font-weight:800;white-space:nowrap}.lia-makeup-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:10px;margin-bottom:12px}.lia-makeup-mode-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:#f8fafc}.lia-makeup-mode-tabs button{min-width:84px;padding:7px 12px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:800;cursor:pointer}.lia-makeup-mode-tabs button.active{background:#fff;color:#047857;box-shadow:inset 0 0 0 1px #a7f3d0}.lia-makeup-list,.lia-makeup-student-groups{display:flex;flex-direction:column;gap:8px}.lia-makeup-item{display:grid;grid-template-columns:148px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border-subtle);border-left:3px solid #10b981;border-radius:var(--radius-md);background:#fff}.lia-makeup-item.is-today{background:linear-gradient(90deg,#10b98114,#fffffff0)}.lia-makeup-date{display:flex;flex-direction:column;gap:3px;color:var(--text-tertiary);font-size:12px;font-weight:700}.lia-makeup-date strong{color:var(--text-primary);font-size:14px}.lia-makeup-main{min-width:0}.lia-makeup-title,.lia-makeup-detail,.lia-makeup-sub{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.lia-makeup-title{margin-bottom:4px}.lia-makeup-student,.lia-makeup-group-name{border:none;background:transparent;padding:0;font:inherit;cursor:pointer}.lia-makeup-status,.lia-makeup-archived,.lia-makeup-today{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px 8px;font-size:11px;font-weight:800;white-space:nowrap}.lia-makeup-status{background:#eef2ff;color:#4f46e5}.lia-makeup-status.status-confirmed,.lia-makeup-status.status-approved,.lia-makeup-status.status-acknowledged{background:#ecfdf5;color:#047857}.lia-makeup-status.status-overdue,.lia-makeup-status.status-conflict{background:#fef3c7;color:#92400e}.lia-makeup-archived{background:#f3f4f6;color:#6b7280}.lia-makeup-today{background:#d1fae5;color:#047857}.lia-makeup-detail{color:var(--text-secondary);font-size:12px;line-height:1.5}.lia-makeup-sub{margin-top:4px;color:var(--text-tertiary);font-size:11px;font-weight:700}.lia-makeup-student-group{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff;overflow:hidden}.lia-makeup-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px;border-bottom:1px solid var(--border-subtle);background:#f8fafc;font-size:14px;font-weight:800}.lia-makeup-group-head span{color:var(--text-tertiary);font-size:12px}.lia-makeup-mini-list{display:flex;flex-direction:column}.lia-makeup-mini-item{display:grid;grid-template-columns:150px 92px minmax(0,1fr);gap:8px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--border-subtle);font-size:12px}.lia-makeup-mini-item:last-child{border-bottom:none}.lia-makeup-mini-date{color:var(--text-primary);font-weight:800}.lia-makeup-mini-slot{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lia-makeup-mini-more{padding:8px 14px;color:var(--text-tertiary);font-size:12px;font-weight:700}.lia-latest-test-cell{display:flex;flex-direction:column;gap:4px;min-width:190px}.lia-latest-test-link{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:0;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;text-align:left}.lia-latest-test-link:hover .lia-latest-test-name{color:#4f46e5;text-decoration:underline;text-underline-offset:2px}.lia-latest-test-name{font-weight:800;color:var(--text-primary);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lia-latest-test-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px;color:var(--text-tertiary);font-size:11px;font-weight:700}.lia-latest-test-empty{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:3px 9px;border-radius:var(--radius-full);background:#f3f4f6;color:#999;font-size:12px;font-weight:700}.lia-settings-panel{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px}.lia-settings-panel h3{margin:0 0 12px;font-size:15px;font-weight:700}.lia-mode-options{display:flex;gap:12px;margin-bottom:12px}.lia-mode-option{display:flex;align-items:flex-start;gap:8px;padding:12px 16px;border:2px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;flex:1;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.lia-mode-option.selected{border-color:#6366f1;background:#f5f3ff}.lia-mode-option input[type=radio]{margin-top:3px}.lia-mode-option strong{display:block;font-size:14px;margin-bottom:2px}.lia-mode-option span{font-size:12px;color:#888}.lia-override-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-bottom:12px;cursor:pointer}.lia-save-btn{padding:8px 20px;background:#6366f1;color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.lia-save-btn:hover{background:#4f46e5}.lia-search{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:16px}.lia-search input{border:none;outline:none;width:100%;font-size:14px;background:transparent;color:var(--text-primary)}.lia-table-wrap{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow-x:auto}.lia-table{width:100%;border-collapse:collapse;min-width:920px}.lia-table th{text-align:left;padding:10px 14px;background:var(--surface-2, #f9fafb);font-size:12px;font-weight:600;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);white-space:nowrap}.lia-table td{padding:10px 14px;font-size:14px;border-bottom:1px solid var(--border-subtle)}.lia-name{font-weight:600}.lia-reason{font-size:12px;color:var(--text-tertiary)}.lia-inactive-alert{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:1px solid #fbbf24;border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:20px}.lia-inactive-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.lia-dismiss-all-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#fff;border:1px solid #d97706;border-radius:var(--radius-md);color:#92400e;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.lia-dismiss-all-btn:hover{background:#fef3c7}.lia-dismiss-all-btn:disabled{opacity:.5;cursor:not-allowed}.lia-inactive-list{display:flex;flex-direction:column;gap:6px}.lia-inactive-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ffffffb3;border-radius:var(--radius-md);border:1px solid #fde68a}.lia-inactive-student{display:flex;align-items:center;gap:8px}.lia-inactive-name{font-weight:600;font-size:13px;color:#6366f1;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:color .15s}.lia-inactive-name:hover{color:#4338ca}.lia-inactive-grade{font-size:11px;color:#78716c;background:#0000000d;padding:1px 6px;border-radius:8px}.lia-inactive-days{font-size:12px;color:#b45309;font-weight:600}.lia-dismiss-btn{padding:4px 12px;background:transparent;border:1px solid #d97706;border-radius:var(--radius-md);color:#92400e;font-size:11px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.lia-dismiss-btn:hover{background:#fef3c7}.lia-dismiss-btn:disabled{opacity:.5;cursor:not-allowed}.lia-dismiss-btn-sm{padding:4px 8px;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.lia-dismiss-btn-sm:hover{background:#fef3c7;border-color:#d97706}.lia-dismiss-btn-sm:disabled{opacity:.5;cursor:not-allowed}.lia-name-link{display:inline-flex;align-items:center;color:#6366f1;cursor:pointer;text-decoration:none;transition:color .15s}.lia-name-link:hover{color:#4338ca;text-decoration:underline}.lia-row-inactive{background:#fffbeb!important}.lia-row-inactive td{border-bottom-color:#fde68a}.lia-last-used{font-size:12px;color:var(--text-tertiary)}.lia-last-used-warn{font-size:12px;color:#b45309;font-weight:600}.lia-exam-year-select{padding:4px 8px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);color:var(--text-primary);font-size:13px;font-weight:600}.lia-exam-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;border:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s;-webkit-user-select:none;user-select:none}.lia-exam-badge.on{background:#dcfce7;color:#16a34a}.lia-exam-badge.off{background:#f3f4f6;color:#999}.lia-exam-badge:hover{box-shadow:0 1px 4px #0000001a;transform:scale(1.02)}.lia-exam-badge:disabled{opacity:.5;cursor:not-allowed;transform:none}@media(max-width:768px){.lia-container{padding:var(--space-3)}.lia-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.lia-card{align-items:flex-start;padding:var(--space-3)}.lia-mode-options{flex-direction:column}.lia-section-header,.lia-recent-test-item,.lia-recent-test-actions{align-items:stretch;flex-direction:column}.lia-view-tabs{display:grid;grid-template-columns:1fr;width:100%}.lia-view-tab{width:100%}.lia-tests-toolbar,.lia-makeup-toolbar,.lia-makeup-item,.lia-makeup-mini-item{grid-template-columns:1fr}.lia-makeup-mode-tabs{width:100%}.lia-makeup-mode-tabs button{flex:1}.lia-link-btn,.lia-open-btn,.lia-read-btn{width:100%}.lia-settings-panel{padding:var(--space-3)}.lia-table-wrap{max-width:100%;-webkit-overflow-scrolling:touch}.lia-inactive-header,.lia-inactive-item{align-items:flex-start;flex-direction:column}}@media(max-width:430px){.lia-summary{grid-template-columns:1fr}}.mobile-admin-shell{min-height:100vh;background:linear-gradient(180deg,#f8fafc,#eef2ff 48%,#f8fafc);color:#111827;font-family:var(--font-family, -apple-system, BlinkMacSystemFont, sans-serif);padding-bottom:92px}.mobile-admin-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:#ffffffeb;border-bottom:1px solid rgba(99,102,241,.14);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.mobile-admin-header>div:first-child{min-width:0}.mobile-admin-header span{display:block;color:#6366f1;font-size:12px;font-weight:700}.mobile-admin-header h1{margin:2px 0 0;font-size:22px;line-height:1.2;letter-spacing:0}.mobile-admin-header-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto}.mobile-admin-header button,.mobile-admin-icon-btn,.mobile-admin-small-btn{min-height:40px;border:1px solid rgba(99,102,241,.2);border-radius:10px;background:#fff;color:#4f46e5;font:inherit;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px}.mobile-admin-icon-btn{width:42px;padding:0}.mobile-admin-main{width:min(100%,720px);margin:0 auto;padding:16px}.mobile-admin-stack{display:grid;gap:14px}.mobile-admin-hero{display:flex;justify-content:space-between;gap:14px;padding:18px;color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:16px;box-shadow:0 14px 30px #4f46e538}.mobile-admin-hero h1,.mobile-admin-hero p{margin:0}.mobile-admin-hero h1{color:#fff;font-size:24px;line-height:1.25}.mobile-admin-hero p{margin-top:8px;font-size:14px;line-height:1.7;color:#ffffffd1}.mobile-admin-kicker{display:inline-block;margin-bottom:6px;color:#ffffffc2;font-size:12px;font-weight:700}.mobile-admin-card{background:#fffffff5;border:1px solid rgba(148,163,184,.22);border-radius:14px;box-shadow:0 8px 22px #0f172a0f;padding:14px}.mobile-admin-filter-card{display:grid;grid-template-columns:1fr;gap:10px}.mobile-admin-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-admin-stat-grid .mobile-admin-card span{display:block;color:#64748b;font-size:12px;font-weight:700}.mobile-admin-stat-grid .mobile-admin-card strong{display:block;margin-top:4px;color:#4f46e5;font-size:22px;line-height:1.2}.mobile-admin-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-admin-menu-grid button,.mobile-admin-more-list button,.mobile-admin-card-toggle,.mobile-admin-student-list button,.mobile-admin-bill-list button,.mobile-admin-picker-list button,.mobile-admin-report-list button{width:100%;border:1px solid rgba(148,163,184,.2);border-radius:12px;background:#fff;color:#111827;font:inherit}.mobile-admin-menu-grid button{min-height:72px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800}.mobile-admin-calendar-page{display:block;margin:-4px -8px 0}.mobile-admin-calendar-page .month-calendar{border-radius:14px;padding:12px;box-shadow:0 8px 22px #0f172a0f}.mobile-admin-calendar-page .month-calendar-header{flex-wrap:wrap;justify-content:center;gap:8px}.mobile-admin-calendar-page .month-calendar-header h2{min-width:132px;font-size:20px}.mobile-admin-calendar-page .calendar-event-form,.mobile-admin-calendar-page .mc-general-edit-panel,.mobile-admin-calendar-page .mc-edit-panel{border-radius:12px}.mobile-admin-calendar-page .calendar-form-row,.mobile-admin-calendar-page .mc-general-edit-row,.mobile-admin-calendar-page .mc-edit-row,.mobile-admin-calendar-page .mc-edit-row-actions{align-items:stretch}.mobile-admin-calendar-page .calendar-form-row .input-field,.mobile-admin-calendar-page .mc-leave-select,.mobile-admin-calendar-page .mc-edit-select,.mobile-admin-calendar-page .mc-edit-detail{min-height:42px}.mobile-admin-calendar-page .calendar-event-chip{align-items:flex-start;flex-wrap:wrap;gap:6px;padding:10px}.mobile-admin-calendar-page .calendar-event-chip-label{min-width:0;flex:1 1 160px}.mobile-admin-calendar-page .calendar-event-chip-date{width:100%;white-space:normal}.mobile-admin-calendar-page .calendar-event-chip-edit,.mobile-admin-calendar-page .calendar-event-chip-delete{min-width:34px;min-height:34px}.mobile-admin-calendar-page .mc-general-edit-header{gap:10px;flex-wrap:wrap}.mobile-admin-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-admin-toolbar h2,.mobile-admin-section-head h3{margin:0;font-size:20px;line-height:1.35}.mobile-admin-toolbar p,.mobile-admin-section-head p{margin:4px 0 0;color:#64748b;font-size:13px;line-height:1.6}.mobile-admin-chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.mobile-admin-chip-row-wrap{flex-wrap:wrap;overflow:visible}.mobile-admin-chip-row button{flex:0 0 auto;min-height:38px;border:1px solid rgba(99,102,241,.18);border-radius:999px;background:#fff;color:#475569;font:inherit;font-size:13px;font-weight:700;padding:0 14px}.mobile-admin-chip-row button.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.mobile-admin-list,.mobile-admin-board-list,.mobile-admin-report-list{display:grid;gap:10px}.mobile-admin-row-card{padding:0;overflow:hidden}.mobile-admin-row-card>div,.mobile-admin-row-card>strong,.mobile-admin-row-card>p,.mobile-admin-row-card>small{padding-left:14px;padding-right:14px}.mobile-admin-row-card>div:first-child{padding:14px}.mobile-admin-row-card strong{font-size:15px}.mobile-admin-row-card p,.mobile-admin-row-card small{display:block;margin:4px 0 0;color:#64748b;font-size:13px;line-height:1.5}.mobile-admin-field,.mobile-admin-search{display:grid;gap:6px}.mobile-admin-field span{color:#475569;font-size:12px;font-weight:800}.mobile-admin-field input,.mobile-admin-field select,.mobile-admin-field textarea,.mobile-admin-search input{width:100%;min-height:44px;border:1px solid rgba(99,102,241,.18);border-radius:10px;background:#fff;color:#111827;font:inherit;font-size:16px;padding:10px 12px;box-sizing:border-box}.mobile-admin-field textarea{resize:vertical;line-height:1.7}.mobile-admin-search{position:relative}.mobile-admin-search svg{position:absolute;left:12px;top:50%;color:#94a3b8;transform:translateY(-50%)}.mobile-admin-search input{padding-left:40px}.mobile-admin-student-list,.mobile-admin-picker-list{max-height:330px;display:grid;gap:8px;overflow-y:auto;padding-right:2px}.mobile-admin-student-list button,.mobile-admin-picker-list button{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;text-align:left}.mobile-admin-student-list button.active,.mobile-admin-picker-list button.active{border-color:#4f46e5;background:#eef2ff;color:#3730a3}.mobile-admin-student-list span,.mobile-admin-picker-list span{font-weight:800}.mobile-admin-student-list small,.mobile-admin-picker-list small{color:#64748b;font-size:12px}.mobile-admin-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.mobile-admin-bill-list{display:grid;gap:8px}.mobile-admin-bill-list button,.mobile-admin-report-list button{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:12px;text-align:left}.mobile-admin-bill-list button strong,.mobile-admin-report-list button strong{color:#4f46e5}.mobile-admin-bill-list button small,.mobile-admin-report-list button small{grid-column:1 / -1;color:#64748b}.mobile-admin-editor-card,.mobile-admin-rate-editor{display:grid;gap:12px}.mobile-admin-editor-card{margin-bottom:calc(104px + env(safe-area-inset-bottom));scroll-margin:16px 0 calc(120px + env(safe-area-inset-bottom))}.mobile-admin-primary-btn{min-height:48px;border:none;border-radius:12px;background:#4f46e5;color:#fff;font:inherit;font-size:16px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px}.mobile-admin-primary-btn:disabled{opacity:.58}.mobile-admin-card-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;text-align:left}.mobile-admin-card-toggle p{margin:4px 0 0;color:#64748b;font-size:13px}.mobile-admin-pay{flex:0 0 auto;color:#4f46e5;font-weight:900}.mobile-admin-report-list{max-height:360px;overflow-y:auto;padding:0 14px 14px}.mobile-admin-salary-detail{display:grid;gap:12px;padding:0 14px 14px}.mobile-admin-salary-breakdown{display:grid;gap:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.mobile-admin-salary-breakdown-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;background:#f8fafc;color:#334155}.mobile-admin-salary-breakdown-head strong,.mobile-admin-salary-report-list-head strong{font-size:14px}.mobile-admin-salary-breakdown-head span,.mobile-admin-salary-report-list-head span{color:#4f46e5;font-size:13px;font-weight:900}.mobile-admin-salary-breakdown-row,.mobile-admin-salary-breakdown-subrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:40px;border-top:1px solid #edf2f7;padding:8px 12px}.mobile-admin-salary-breakdown-row span,.mobile-admin-salary-breakdown-subrow span{min-width:0;color:#64748b;font-size:13px;line-height:1.45}.mobile-admin-salary-breakdown-row strong,.mobile-admin-salary-breakdown-subrow strong{color:#111827;font-size:14px;font-variant-numeric:tabular-nums;text-align:right}.mobile-admin-salary-breakdown-subrow{min-height:34px;background:#fbfdff;padding-left:24px}.mobile-admin-salary-breakdown-subrow span,.mobile-admin-salary-breakdown-subrow strong{font-size:12px}.mobile-admin-salary-breakdown-row .danger{color:#ef4444}.mobile-admin-salary-breakdown-row.strong{min-height:54px;margin:8px;border-top:none;border-radius:10px;background:#eef2ff}.mobile-admin-salary-breakdown-row.strong span{color:#334155;font-weight:900}.mobile-admin-salary-breakdown-row.strong strong{color:#4f46e5;font-size:20px}.mobile-admin-salary-report-list{display:grid;gap:8px}.mobile-admin-salary-report-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 2px 0}.mobile-admin-salary-report-card{width:100%;min-height:104px;display:grid;gap:8px;border:1px solid rgba(148,163,184,.24);border-radius:12px;background:#fff;color:#111827;font:inherit;padding:12px;text-align:left}.mobile-admin-salary-report-main,.mobile-admin-salary-report-pay{display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-admin-salary-report-main span{flex:0 0 auto;color:#4f46e5;font-size:13px;font-weight:900}.mobile-admin-salary-report-main strong{min-width:0;color:#111827;font-size:15px}.mobile-admin-salary-report-meta,.mobile-admin-salary-report-counts{display:flex;flex-wrap:wrap;gap:6px}.mobile-admin-salary-report-meta span,.mobile-admin-salary-report-counts span{min-height:24px;display:inline-flex;align-items:center;border-radius:999px;background:#f1f5f9;color:#475569;font-size:12px;font-weight:800;padding:0 8px}.mobile-admin-salary-report-pay{border-top:1px dashed #e2e8f0;padding-top:8px;color:#64748b;font-size:12px;font-weight:800}.mobile-admin-salary-report-pay strong{color:#4f46e5;font-size:16px;font-variant-numeric:tabular-nums}.mobile-admin-report-modal{display:grid;gap:14px}.mobile-admin-report-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-right:42px}.mobile-admin-report-modal-head span{color:#4f46e5;font-size:13px;font-weight:900}.mobile-admin-report-modal-head h3{margin:2px 0 0;color:#111827;font-size:20px;line-height:1.35}.mobile-admin-report-modal-head p{margin:4px 0 0;color:#64748b;font-size:13px}.mobile-admin-warning-note{border:1px solid #fed7aa;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:13px;font-weight:800;line-height:1.6;padding:10px 12px}.mobile-admin-report-modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-admin-report-modal-actions button{min-height:48px;border:1px solid rgba(99,102,241,.2);border-radius:10px;background:#fff;color:#4f46e5;font:inherit;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:6px}.mobile-admin-report-modal-actions button.primary{border-color:#4f46e5;background:#4f46e5;color:#fff}.mobile-admin-report-modal-actions button.danger{border-color:#ef444447;color:#dc2626}.mobile-admin-report-modal-actions button:disabled{opacity:.55}.mobile-admin-report-edit{display:grid;gap:12px}.mobile-admin-report-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-admin-report-detail{display:grid;gap:12px}.mobile-admin-report-detail-grid,.mobile-admin-report-detail-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-admin-report-detail-grid div,.mobile-admin-report-detail-counts div,.mobile-admin-report-text-block{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:10px}.mobile-admin-report-detail-grid span,.mobile-admin-report-detail-counts span,.mobile-admin-report-text-block span{display:block;color:#64748b;font-size:12px;font-weight:800;line-height:1.45}.mobile-admin-report-detail-grid strong,.mobile-admin-report-detail-counts strong{display:block;margin-top:4px;color:#111827;font-size:14px;line-height:1.45;overflow-wrap:anywhere}.mobile-admin-report-text-block p{margin:6px 0 0;color:#1f2937;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:420px){.mobile-admin-report-edit-grid,.mobile-admin-report-detail-grid,.mobile-admin-report-detail-counts{grid-template-columns:minmax(0,1fr)}}.mobile-admin-rate-summary{display:flex;flex-wrap:wrap;gap:8px}.mobile-admin-rate-summary span,.mobile-admin-target-preview{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:800;padding:0 10px}.mobile-admin-inline-note{border:1px solid rgba(99,102,241,.16);border-radius:10px;background:#f8fafc;color:#475569;font-size:13px;font-weight:700;line-height:1.6;padding:10px 12px}.mobile-admin-rate-editor h4{margin:4px 0 0;color:#334155;font-size:14px}.mobile-admin-rate-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.mobile-admin-check{display:flex;align-items:center;gap:10px;color:#334155;font-size:14px;font-weight:700}.mobile-admin-check input{width:20px;height:20px}.mobile-admin-board-list article{border:1px solid rgba(148,163,184,.18);border-radius:12px;padding:12px;background:#fff}.mobile-admin-board-list article strong{display:block;font-size:15px}.mobile-admin-board-list article p{display:-webkit-box;margin:6px 0;color:#475569;font-size:13px;line-height:1.6;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.mobile-admin-board-list article small{color:#94a3b8;font-size:12px}.mobile-admin-more-list{display:grid;gap:8px}.mobile-admin-more-list button{min-height:50px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:0 12px;text-align:left;font-weight:800}.mobile-admin-empty,.mobile-admin-loading{display:grid;place-items:center;gap:8px;min-height:150px;color:#64748b;text-align:center}.mobile-admin-empty-icon{font-size:34px}.mobile-admin-empty p{margin:0;font-size:13px;line-height:1.6}.mobile-admin-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:#0f172a73;padding:16px 16px calc(96px + env(safe-area-inset-bottom))}.mobile-admin-modal{position:relative;width:min(100%,560px);max-height:calc(100dvh - 132px - env(safe-area-inset-bottom));overflow-y:auto;border-radius:18px;background:#fff;padding:18px;box-shadow:0 24px 60px #0f172a40;overscroll-behavior:contain}.mobile-admin-modal h3{margin:0 40px 14px 0;font-size:20px}.mobile-admin-modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#fff}.mobile-admin-modal-grid{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:14px}.mobile-admin-modal-grid span{color:#64748b}.mobile-admin-modal-body{margin:16px 0 0;color:#334155;line-height:1.8;white-space:pre-wrap}.mobile-admin-invoice-modal{display:grid;gap:14px}.mobile-admin-invoice-head{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding-right:42px}.mobile-admin-invoice-kicker{color:#64748b;font-size:12px;font-weight:800}.mobile-admin-invoice-title{justify-self:start;border-radius:8px;background:#4338ca;color:#fff;font-size:14px;font-weight:900;letter-spacing:0;padding:8px 14px}.mobile-admin-invoice-message{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#334155;font-size:13px;line-height:1.7;padding:12px}.mobile-admin-invoice-table{border:1px solid #dbe4ff;border-radius:12px;overflow:hidden;background:#fff}.mobile-admin-invoice-row{display:grid;grid-template-columns:minmax(0,1fr) 54px 92px;gap:8px;align-items:start;border-top:1px solid #e2e8f0;padding:10px;font-size:13px}.mobile-admin-invoice-row:first-child{border-top:none}.mobile-admin-invoice-row span:nth-child(2),.mobile-admin-invoice-row span:nth-child(3){text-align:right;font-variant-numeric:tabular-nums}.mobile-admin-invoice-row small{display:block;margin-top:3px;color:#64748b;font-size:11px;line-height:1.4}.mobile-admin-invoice-row-head{background:#4338ca;color:#fff;font-size:12px;font-weight:900}.mobile-admin-invoice-group{border-top:1px solid #c7d2fe}.mobile-admin-invoice-subject,.mobile-admin-invoice-bill-total{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px}.mobile-admin-invoice-subject{background:#eef2ff}.mobile-admin-invoice-subject strong{min-width:0;color:#1e293b;font-size:13px}.mobile-admin-invoice-subject button{flex:0 0 auto;min-height:32px;border:1px solid rgba(99,102,241,.2);border-radius:999px;background:#fff;color:#4f46e5;font:inherit;font-size:12px;font-weight:800;display:inline-flex;align-items:center;gap:4px;padding:0 10px}.mobile-admin-invoice-bill-total{border-top:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;font-size:12px;font-weight:800}.mobile-admin-invoice-bill-total strong{color:#4f46e5;font-size:15px}.mobile-admin-invoice-total{width:min(100%,260px);justify-self:end;display:grid;grid-template-columns:1fr auto;overflow:hidden;border:1px solid #dbe4ff;border-radius:10px}.mobile-admin-invoice-total span,.mobile-admin-invoice-total strong{padding:9px 12px;border-top:1px solid #e2e8f0;font-size:13px}.mobile-admin-invoice-total span:first-child,.mobile-admin-invoice-total span:first-child+strong{border-top:none}.mobile-admin-invoice-total span{background:#eef2ff;font-weight:800}.mobile-admin-invoice-total strong{text-align:right;font-variant-numeric:tabular-nums}.mobile-admin-invoice-total span:last-of-type,.mobile-admin-invoice-total span:last-of-type+strong{background:#4338ca;color:#fff}.mobile-admin-bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid rgba(99,102,241,.16);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.mobile-admin-bottom-nav button{min-width:0;min-height:56px;border:none;border-radius:12px;background:transparent;color:#64748b;font:inherit;font-size:11px;font-weight:800;display:grid;place-items:center;gap:3px}.mobile-admin-bottom-nav button.active{background:#eef2ff;color:#4f46e5}.mobile-admin-floating-more{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:31;min-height:42px;border:none;border-radius:999px;background:#111827;color:#fff;font:inherit;font-size:13px;font-weight:800;padding:0 14px;box-shadow:0 12px 24px #0f172a2e}.spin{animation:mobile-admin-spin .9s linear infinite}@keyframes mobile-admin-spin{to{transform:rotate(360deg)}}@media(min-width:841px){.mobile-admin-shell{max-width:780px;margin:0 auto;border-right:1px solid rgba(148,163,184,.16);border-left:1px solid rgba(148,163,184,.16)}}:root{--primary-50: #eef2ff;--primary-100: #e0e7ff;--primary-200: #c7d2fe;--primary-300: #a5b4fc;--primary-400: #818cf8;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--primary-800: #3730a3;--primary-900: #312e81;--secondary-50: #ecfdf5;--secondary-100: #d1fae5;--secondary-200: #a7f3d0;--secondary-300: #6ee7b7;--secondary-400: #34d399;--secondary-500: #10b981;--secondary-600: #059669;--accent-400: #fbbf24;--accent-500: #f59e0b;--accent-600: #d97706;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--bg-primary: #13131f;--bg-secondary: #1a1a2c;--bg-tertiary: #22223a;--surface-1: #2a2a48;--surface-2: #33335a;--surface-3: #3d3d68;--surface-hover: #45457a;--glass-bg: rgba(42, 42, 72, .7);--glass-border: rgba(99, 102, 241, .2);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3);--glass-blur: blur(12px);--text-primary: #f5f7fa;--text-secondary: #b0bec5;--text-tertiary: #8392a5;--text-accent: #b4bffc;--border-subtle: rgba(148, 163, 184, .18);--border-default: rgba(148, 163, 184, .25);--border-strong: rgba(148, 163, 184, .4);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-family: "Noto Sans JP", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--sidebar-width: 280px;--header-height: 64px}[data-theme=light]{--bg-primary: #f5f5f8;--bg-secondary: #eeeef2;--bg-tertiary: #e4e4ea;--surface-1: #ffffff;--surface-2: #f8f8fb;--surface-3: #f0f0f5;--surface-hover: #e8e8ee;--glass-bg: rgba(255, 255, 255, .75);--glass-border: rgba(99, 102, 241, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .08);--text-primary: #1a1a2e;--text-secondary: #555570;--text-tertiary: #8888a0;--text-accent: #4338ca;--border-subtle: rgba(0, 0, 0, .06);--border-default: rgba(0, 0, 0, .1);--border-strong: rgba(0, 0, 0, .18);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .1);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(99, 102, 241, .15)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(ellipse at 20% 0%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,rgba(16,185,129,.06) 0%,transparent 50%);pointer-events:none;z-index:0}#root{position:relative;z-index:1;min-height:100vh}a{color:var(--primary-400);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-300)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.glass-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.surface-card{background:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap;line-height:1.5}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--primary-600),var(--primary-500));color:#fff;border-color:var(--primary-500);box-shadow:0 2px 8px #6366f14d}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-500),var(--primary-400));box-shadow:0 4px 16px #6366f166;transform:translateY(-1px)}.btn-secondary{background:var(--surface-2);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover{background:var(--surface-3);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:var(--surface-1);color:var(--text-primary)}.btn-success{background:linear-gradient(135deg,#059669,var(--success));color:#fff;box-shadow:0 2px 8px #22c55e4d}.btn-success:hover{box-shadow:0 4px 16px #22c55e66;transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,#dc2626,var(--danger));color:#fff}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.input-field{width:100%;padding:var(--space-3) var(--space-4);font-family:var(--font-family);font-size:var(--text-sm);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-default);border-radius:var(--radius-md);outline:none;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast)}.input-field:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #6366f126}.input-field::placeholder{color:var(--text-tertiary);opacity:.6}.input-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}textarea.input-field{resize:vertical;min-height:80px}select.input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' 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 12px center;padding-right:36px}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:#6366f126;color:var(--primary-400)}.badge-success{background:#22c55e26;color:var(--secondary-400)}.badge-warning{background:#f59e0b26;color:var(--accent-400)}.badge-danger{background:#ef444426;color:#f87171}.progress-bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow);background:linear-gradient(90deg,var(--primary-600),var(--primary-400))}.progress-fill.high{background:linear-gradient(90deg,#059669,var(--success))}.progress-fill.medium{background:linear-gradient(90deg,var(--accent-600),var(--accent-400))}.progress-fill.low{background:linear-gradient(90deg,#dc2626,#f87171)}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);padding:0 var(--space-4);overflow-x:auto}.tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-weight:500;color:var(--text-tertiary);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast),transform var(--transition-fast);white-space:nowrap;font-family:var(--font-family)}.tab:hover{color:var(--text-secondary)}.tab.active{color:var(--primary-400);border-bottom-color:var(--primary-500)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast);padding:var(--space-4)}.modal,.modal-content{background:var(--bg-secondary);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp var(--transition-base)}.modal.modal-lg{max-width:700px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:var(--text-xl);font-weight:600}.modal-body{padding:var(--space-6)}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 #6366f166}50%{box-shadow:0 0 0 8px #6366f100}}@keyframes typing-dots{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.animate-fade-in{animation:fadeIn var(--transition-base)}.animate-slide-up{animation:slideUp var(--transition-base)}.dashboard-alerts{margin:0;border-bottom:1px solid var(--border-subtle);background:var(--surface-1);animation:fadeIn var(--transition-fast)}.dashboard-alerts-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-2) var(--space-6);background:transparent;border:none;cursor:pointer;color:var(--warning);font-family:var(--font-family);font-size:var(--text-sm);font-weight:600;transition:background var(--transition-fast)}.dashboard-alerts-toggle:hover{background:var(--surface-hover)}.dashboard-alerts-toggle-left{display:flex;align-items:center;gap:var(--space-2)}.dashboard-alerts-list{display:flex;flex-direction:column;gap:1px;padding:0 var(--space-4) var(--space-3);animation:slideUp var(--transition-fast)}.dashboard-alert-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border-left:3px solid transparent;transition:background var(--transition-fast)}.dashboard-alert-item:hover{background:var(--surface-hover)}.dashboard-alert-warning{border-left-color:var(--warning);background:#f59e0b0f}.dashboard-alert-info{border-left-color:var(--info);background:#3b82f60f}.dashboard-alert-danger{border-left-color:var(--danger);background:#ef44440f}.dashboard-alert-content{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.dashboard-alert-icon{font-size:var(--text-lg);flex-shrink:0}.dashboard-alert-text{display:flex;flex-direction:column;min-width:0}.dashboard-alert-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.dashboard-alert-detail{font-size:var(--text-xs);color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-alert-dismiss-btn{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border:1px solid rgba(16,185,129,.25);border-radius:var(--radius-md);background:#10b98114;color:var(--success, #10b981);font-size:var(--text-xs);font-weight:700;line-height:1;cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),transform var(--transition-fast)}.dashboard-alert-dismiss-btn:hover{background:#10b98124;transform:translateY(-1px)}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-main{display:flex;flex:1;height:calc(100vh - var(--header-height));min-width:0}.admin-page-shell{width:100%;min-width:0}.admin-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);padding:var(--space-3) var(--space-4) 0}.admin-calendar-wrap{padding:0 var(--space-4);min-width:0}.admin-student-workspace{height:70vh;min-height:400px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);text-align:center;color:var(--text-tertiary);gap:var(--space-4)}.empty-state svg{opacity:.4}.empty-state p{font-size:var(--text-sm);max-width:300px}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);padding:var(--space-1) var(--space-3);background:var(--surface-3);color:var(--text-primary);font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.tooltip:hover:after{opacity:1}.form-group{margin-bottom:var(--space-5)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:768px){:root{--sidebar-width: 100%;--header-height: 96px}.app-main{flex-direction:column;height:auto;min-height:0;overflow:visible}.admin-page-shell{overflow-x:hidden;padding-bottom:var(--space-6)}.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);padding:var(--space-3)}.admin-calendar-wrap{padding:0 var(--space-3)}.admin-student-workspace{height:auto;min-height:0;gap:var(--space-3);padding:0 var(--space-3) var(--space-4)}.dashboard-alerts{margin:var(--space-2) var(--space-3) 0}.dashboard-alert-item,.dashboard-alerts-toggle{align-items:flex-start;gap:var(--space-2)}.dashboard-alert-detail{white-space:normal}.form-row{grid-template-columns:1fr}}@media(max-width:430px){.admin-summary-grid{grid-template-columns:1fr}}.preview-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.preview-modal{width:520px;max-width:95vw;max-height:90vh;background:#fff;border-radius:16px;overflow-y:auto;box-shadow:0 24px 64px #0003,0 0 0 1px #0000000d;position:relative}.preview-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f8f8fb;border-bottom:1px solid rgba(0,0,0,.08);position:sticky;top:0;z-index:2}.preview-modal-close{border:none;background:none;color:#64748b;cursor:pointer;padding:4px;border-radius:4px;font-size:18px}.preview-modal-close:hover{color:#1e293b;background:#0000000f}.preview-modal-body{padding:0}.preview-modal-body .student-app{padding:12px;min-height:auto}.preview-modal-body .student-login{min-height:auto;padding:var(--space-4) 0}.preview-tab-btn{padding:6px 14px;border-radius:8px;border:1px solid rgba(0,0,0,.12);background:transparent;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s;font-family:var(--font-family)}.preview-tab-btn:hover{background:#0000000a;color:#334155}.preview-tab-btn.active{background:linear-gradient(135deg,#6366f11f,#a855f714);border-color:#6366f14d;color:#4f46e5}.preview-modal-body{font-family:Noto Sans JP,Inter,-apple-system,BlinkMacSystemFont,sans-serif!important;font-size:14px!important;line-height:1.6!important;-webkit-font-smoothing:antialiased}.preview-modal-body *{box-sizing:border-box}.preview-modal-body .pp-container{max-width:100%!important;min-height:auto!important;padding:0!important;border-radius:0 0 12px 12px!important}.preview-modal-body .student-app{max-width:100%!important;min-height:auto!important;border-radius:0 0 12px 12px!important}.preview-modal-body .chat-container{height:400px!important;margin:0 12px 10px!important}.preview-modal-body .invoice-preview{background:#fff!important;color:#1a1a1a!important;font-family:Noto Sans JP,Hiragino Sans,Yu Gothic,sans-serif!important;font-size:11px!important;line-height:1.6!important;padding:15mm 20mm!important;width:210mm!important;min-height:auto!important;box-shadow:0 4px 24px #00000026!important;position:relative!important}.preview-modal-body .invoice-preview *{color:inherit!important;box-sizing:border-box!important}.preview-modal-body .inv-header{display:flex!important;justify-content:space-between!important;align-items:flex-start!important;margin-bottom:10mm!important}.preview-modal-body .inv-customer-name{font-size:18px!important;font-weight:700!important;color:#1a1a1a!important}.preview-modal-body .inv-title{display:inline-block!important;background:#2d3748!important;color:#fff!important;font-size:16px!important;font-weight:700!important;padding:4px 18px!important;letter-spacing:4px!important}.preview-modal-body .inv-title-block{text-align:right!important}.preview-modal-body .inv-title-date,.preview-modal-body .inv-title-no{font-size:11px!important;color:#555!important}.preview-modal-body .inv-company{text-align:right!important;font-size:10px!important;color:#1a1a1a!important}.preview-modal-body .inv-company-name{font-size:14px!important;font-weight:700!important;color:#1a1a1a!important}.preview-modal-body .inv-middle{display:flex!important;gap:8mm!important;margin-bottom:8mm!important}.preview-modal-body .inv-message-box{flex:1!important;border:1px solid #ccc!important;padding:8px 12px!important;font-size:10px!important;color:#1a1a1a!important;background:#fff!important}.preview-modal-body .inv-bank-title{font-weight:700!important;color:#1a1a1a!important}.preview-modal-body .inv-bank-detail{color:#1a1a1a!important}.preview-modal-body .inv-due-line{text-align:right!important;font-size:12px!important;color:#4338ca!important;font-weight:500!important}.preview-modal-body .inv-due-line strong{font-weight:700!important}.preview-modal-body .inv-table{width:100%!important;border-collapse:collapse!important;background:#fff!important}.preview-modal-body .inv-table th{background:#2d3748!important;color:#fff!important;padding:6px 10px!important;font-size:10px!important;font-weight:700!important;border:1px solid #2d3748!important}.preview-modal-body .inv-table td{padding:6px 10px!important;border:1px solid #ccc!important;font-size:10px!important;color:#1a1a1a!important;background:#fff!important}.preview-modal-body .inv-footer-table{margin-left:auto!important;border-collapse:collapse!important}.preview-modal-body .inv-ft-label{padding:5px 14px!important;font-size:10px!important;font-weight:700!important;color:#1a1a1a!important;background:#f7f7f7!important;border:1px solid #ccc!important}.preview-modal-body .inv-ft-value{padding:5px 14px!important;font-size:11px!important;font-weight:700!important;color:#1a1a1a!important;border:1px solid #ccc!important}.preview-modal-body .inv-ft-grand .inv-ft-label.grand{background:#2d3748!important;color:#fff!important;border-color:#2d3748!important}.preview-modal-body .inv-ft-grand .inv-ft-value.grand{border:2px solid #2d3748!important;background:#eef2ff!important}
