.login-logo{border:1px solid #e2e8f0;border-radius:999px;display:block;height:36px;margin-bottom:16px;object-fit:cover;width:36px}.app-sidebar{padding:0}.app-sidebar-brand{padding:20px}.app-sidebar-logo{background:#f8fafc;overflow:hidden;padding:0}.app-sidebar-logo img{display:block;height:100%;object-fit:cover;width:100%}.app-sidebar-nav{margin-top:0;padding:0 12px 16px}.app-sidebar-link{border-radius:12px;min-height:44px}.app-header{min-height:56px;padding:12px 24px}.app-header-greeting{color:#64748b;font-size:14px}.app-header .secondary-button{background:transparent;border-color:transparent;color:#64748b;min-height:44px}.app-header .secondary-button:hover{background:#f1f5f9;color:#0f172a}.app-nav-inner{overscroll-behavior-inline:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.app-nav-inner::-webkit-scrollbar{display:none}.app-nav-link{border-radius:12px;color:#64748b;transition:background-color .15s ease,color .15s ease}.app-nav-link.is-active,.app-nav-link:focus-visible,.app-nav-link:hover{background:#eff6ff;color:#1d4ed8}.app-nav-link:focus-visible{outline:3px solid rgb(59 130 246/28%);outline-offset:2px}.data-workspace{gap:16px}.confirm-delete-dialog-backdrop{align-items:center;background:rgb(15 23 42/48%);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.confirm-delete-dialog{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 20px 45px rgb(15 23 42/20%);max-width:420px;padding:24px;width:100%}.confirm-delete-dialog h2{color:#0f172a;font-size:20px;line-height:1.35;margin:0}.confirm-delete-dialog-description{color:#64748b;line-height:1.6;margin:10px 0 0}.confirm-delete-dialog-error{margin:14px 0 0}.confirm-delete-dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.confirm-delete-dialog-actions .danger-button,.confirm-delete-dialog-actions .secondary-button{min-width:88px}.talk-dashboard{margin-top:24px}.talk-stat-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.talk-stat-card{align-items:center;background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;display:flex;gap:16px;min-height:126px;padding:20px}.talk-stat-card-indigo .talk-stat-icon{background:#eef2ff;color:#6366f1}.talk-stat-card-red .talk-stat-icon{background:#fef2f2;color:#ef4444}.talk-stat-icon{align-items:center;border-radius:12px;display:inline-flex;flex:0 0 48px;font-size:24px;height:48px;justify-content:center}.talk-stat-card p{color:#64748b;font-size:13px;font-weight:600}.talk-stat-card strong{color:#0f172a;display:block;font-size:30px;line-height:1.15;margin-top:4px}.talk-stat-card small{color:#94a3b8;display:block;font-size:11px;margin-top:4px}.talk-dashboard-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.talk-chart-card{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;min-width:0;padding:20px}.talk-chart-heading{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.talk-chart-heading h3{font-size:16px;line-height:1.35}.talk-breakdown-chart,.talk-trend-chart{min-width:0;position:relative}.talk-breakdown-chart{height:190px;margin:12px -4px 4px}.talk-donut{border-radius:50%;height:128px;margin:20px auto;position:relative;width:128px}.talk-donut:after{background:#ffffff;border-radius:50%;content:"";inset:25px;position:absolute}.talk-chart-legend{display:grid;gap:9px;list-style:none}.talk-chart-legend li{align-items:center;display:grid;gap:8px;grid-template-columns:10px minmax(0,1fr) auto;font-size:13px}.talk-legend-swatch{border-radius:50%;display:block;height:9px;width:9px}.talk-legend-label{overflow-wrap:anywhere}.talk-chart-empty,.talk-feedback{color:#64748b;font-size:13px;padding:32px 0 12px;text-align:center}.talk-feedback-error{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;color:#9a3412;display:flex;gap:12px;justify-content:center;padding:14px 16px;text-align:left}.talk-trend-card{min-height:300px}.talk-trend-chart{color:#6366f1;height:210px;margin-top:18px}.talk-top-students{display:grid;gap:10px;list-style:none;margin-top:18px}.talk-top-students li{align-items:center;background:#f8fafc;border-radius:10px;display:grid;gap:10px;grid-template-columns:28px minmax(0,1fr) auto;padding:10px 12px}.talk-rank{align-items:center;background:#e0e7ff;border-radius:50%;color:#4338ca;display:inline-flex;font-size:12px;font-weight:700;height:26px;justify-content:center;width:26px}.talk-top-student-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.talk-top-student-name small{color:#94a3b8;display:block;font-size:11px;margin-top:2px}.talk-record-list{display:grid;gap:16px;margin-top:22px}.talk-record-card{background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 1px 2px rgb(15 23 42/4%);display:flex;gap:24px;justify-content:space-between;padding:22px}.talk-record-card-main{min-width:0}.talk-record-card-heading{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.talk-record-card h3{font-size:19px;line-height:1.35}.talk-student-link{color:#0f172a;text-decoration:none}.talk-student-link:focus-visible,.talk-student-link:hover{color:#2563eb}.talk-student-subtitle{color:#64748b;font-size:13px;margin-top:3px}.talk-attention-badge{align-items:center;border-radius:999px;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:600;line-height:1;min-height:32px;padding:6px 10px;white-space:nowrap}.talk-attention-badge.is-normal{background:#ecfdf5;color:#047857}.talk-attention-badge.is-watch{background:#fffbeb;color:#b45309}.talk-attention-badge.is-focus{background:#fff7ed;color:#c2410c}.talk-attention-badge.is-crisis{background:#fef2f2;color:#b91c1c}.talk-record-meta{display:grid;gap:12px 22px;grid-template-columns:repeat(3,minmax(150px,1fr));margin-top:18px}.talk-record-meta p{color:#0f172a;font-size:13px;overflow-wrap:anywhere}.talk-record-meta p span{color:#94a3b8;display:block;font-size:11px;margin-bottom:2px}.talk-record-actions{align-items:flex-start;display:flex;flex:0 0 auto;flex-wrap:wrap;gap:8px;justify-content:flex-end}.talk-delete-control{display:inline-flex;flex-direction:column;gap:6px}.talk-student-card-heading{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.talk-student-card-heading h2{font-size:20px;margin-top:4px}.talk-audio-panel{display:grid;gap:10px}.talk-audio-panel .panel-heading{margin-bottom:0}.talk-audio-player{display:block;max-width:100%;width:100%}.form-success{color:#047857;font-size:13px;min-height:20px}.attendance-created-success,.attendance-delete-success,.dorm-created-success,.dorm-delete-success{margin-top:16px}.talk-loading-card,.talk-loading-heading{animation:talk-loading-pulse 1.4s ease-in-out infinite;background:#e2e8f0;border-radius:12px}.talk-loading-heading{height:100px;margin-bottom:24px;max-width:720px}.talk-loading-grid{display:grid;gap:16px}.talk-loading-card{height:150px}@keyframes talk-loading-pulse{50%{opacity:.55}}@media (max-width:560px){.confirm-delete-dialog-backdrop{align-items:flex-end;padding:12px}.confirm-delete-dialog-actions{flex-direction:column-reverse}.confirm-delete-dialog-actions .danger-button,.confirm-delete-dialog-actions .secondary-button{justify-content:center;width:100%}.talk-dashboard-grid,.talk-stat-grid{grid-template-columns:1fr}.talk-record-card{flex-direction:column;padding:18px}.talk-record-card-heading,.talk-student-card-heading{align-items:flex-start;flex-direction:column}.talk-record-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.talk-record-actions{justify-content:flex-start}}.growth-project-combobox,.growth-student-combobox{min-width:0;position:relative}.growth-project-combobox>label,.growth-student-combobox>label{color:var(--foreground);display:block;font-size:13px;font-weight:650;line-height:1.4;margin-bottom:7px}.growth-project-trigger{align-items:center;background:#ffffff;border:1px solid #cbd5e1;border-radius:10px;color:var(--foreground);display:flex;gap:12px;justify-content:space-between;min-height:42px;padding:9px 11px;text-align:left;width:100%}.growth-project-trigger:focus-visible,.growth-project-trigger:hover:not(:disabled),.growth-student-input-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgb(37 99 235/14%);outline:none}.growth-project-trigger:disabled{cursor:not-allowed;opacity:.65}.growth-project-trigger-placeholder,.growth-project-trigger-value{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.growth-project-trigger-placeholder{color:#64748b}.growth-project-status{border-radius:999px;font-size:11px;font-weight:650;line-height:1.2;padding:4px 7px;white-space:nowrap}.growth-project-status-in_progress{background:#eff6ff;color:#1d4ed8}.growth-project-status-completed{background:#f1f5f9;color:#475569}.growth-project-status-draft{background:#fef3c7;color:#92400e}.growth-selector-popover{background:#ffffff;border:1px solid #dbe3ee;border-radius:12px;box-shadow:0 14px 30px rgb(15 23 42/14%);left:0;max-width:100%;position:absolute;top:calc(100% + 6px);width:100%;z-index:30}.growth-project-popover{padding:8px}.growth-selector-search-shell{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;color:#94a3b8;display:flex;gap:8px;padding:8px 10px}.growth-selector-search-shell:focus-within{background:#ffffff;border-color:var(--accent);box-shadow:0 0 0 3px rgb(37 99 235/12%)}.growth-selector-search-shell input{background:transparent;border:0;color:var(--foreground);min-width:0;outline:0;padding:0;width:100%}.growth-selector-option-list{max-height:250px;overflow-y:auto;padding:6px 0}.growth-selector-option{align-items:center;background:#ffffff;border:0;border-radius:8px;color:var(--foreground);display:flex;font-size:13px;gap:12px;justify-content:space-between;min-height:40px;padding:8px 10px;text-align:left;width:100%}.growth-selector-option:focus-visible,.growth-selector-option:hover:not(:disabled){background:#eff6ff;outline:none}.growth-selector-option-name{align-items:center;display:flex;gap:7px;min-width:0}.growth-selector-option-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.growth-selector-option-action{color:#2563eb;flex:0 0 auto;font-size:12px;white-space:nowrap}.growth-selector-clear{color:#64748b;justify-content:flex-start}.growth-selector-empty{color:#94a3b8;font-size:13px;margin:0;padding:12px 10px;text-align:center}.growth-project-create-option{align-items:center;background:#ffffff;border:0;border-top:1px solid #eef2f7;color:#2563eb;display:flex;font-size:13px;font-weight:650;gap:7px;padding:10px;text-align:left;width:100%}.growth-project-create-option:focus-visible,.growth-project-create-option:hover{background:#eff6ff;outline:none}.growth-project-create-panel{border-top:1px solid #eef2f7;display:grid;gap:7px;padding:12px 2px 2px}.growth-project-create-panel>label{color:#475569;font-size:12px;font-weight:650}.growth-project-create-panel>input{background:#ffffff;border:1px solid #cbd5e1;border-radius:9px;min-height:40px;padding:8px 10px}.growth-project-create-panel>input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(37 99 235/12%);outline:0}.growth-project-create-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.growth-project-create-actions .primary-button,.growth-project-create-actions .secondary-button{min-height:36px;padding:7px 11px;width:auto}.growth-student-input-shell{align-items:center;background:#ffffff;border:1px solid #cbd5e1;border-radius:10px;cursor:text;display:flex;flex-wrap:wrap;gap:7px;min-height:42px;padding:5px 8px}.growth-student-input-shell input{background:transparent;border:0;flex:1 1 160px;min-height:30px;min-width:120px;outline:0;padding:3px 4px}.growth-student-input-shell .growth-chip{flex:0 1 auto;font-size:12px;max-width:100%;padding:5px 8px}.growth-selector-help{color:#94a3b8;font-size:12px;line-height:1.5;margin:6px 0 0}.growth-student-combobox>.growth-selector-popover{max-height:250px;overflow-y:auto;padding:6px}.growth-student-combobox>.growth-selector-popover .growth-selector-option{padding:9px 10px}.student-gpa-overview{display:grid;gap:18px}.student-gpa-overview .panel-heading{margin-bottom:0}.gpa-overview-summary{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.gpa-overview-trend-card,.gpa-overview-value{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;min-width:0;padding:14px}.gpa-overview-value{display:grid;gap:8px}.gpa-overview-record-trends>span,.gpa-overview-trend-card>span,.gpa-overview-trend-list>div>span,.gpa-overview-value>span{color:#64748b;font-size:12px;font-weight:650}.gpa-overview-value strong{color:var(--foreground);font-size:24px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.gpa-overview-trend-card{display:grid;gap:10px}.gpa-overview-trend-list{display:grid;gap:7px}.gpa-overview-record-trends>span,.gpa-overview-trend-list>div{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between}.gpa-trend{align-items:center;display:inline-flex;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;gap:3px;white-space:nowrap}.gpa-trend-icon{font-size:15px;line-height:1}.gpa-trend-label{font-size:11px;font-weight:600}.gpa-trend-up{color:#047857}.gpa-trend-down{color:#dc2626}.gpa-trend-baseline,.gpa-trend-flat,.gpa-trend-missing{color:#64748b}.gpa-overview-records{min-width:0}.gpa-overview-records-heading{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:10px}.gpa-overview-records-heading h3{font-size:15px}.gpa-overview-list{display:grid;gap:10px}.gpa-overview-record{align-items:center;background:#ffffff;border:1px solid #e2e8f0;border-radius:12px;display:grid;gap:12px;grid-template-columns:minmax(130px,1fr) auto minmax(230px,1.2fr);min-width:0;padding:12px 14px}.gpa-overview-record-heading{display:grid;gap:4px;min-width:0}.gpa-overview-record-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gpa-overview-record-values{align-items:center;color:#334155;display:flex;flex-wrap:wrap;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;gap:10px;white-space:nowrap}.gpa-overview-record-trends{display:grid;gap:4px;min-width:0}.gpa-overview-note{margin-top:-8px}@media (max-width:960px){.gpa-overview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gpa-overview-record{grid-template-columns:minmax(130px,1fr) auto}.gpa-overview-record-trends{border-top:1px solid #eef2f7;grid-column:1/-1;padding-top:9px}}@media (max-width:560px){.gpa-overview-record,.gpa-overview-summary{grid-template-columns:minmax(0,1fr)}.gpa-overview-record{align-items:start}.gpa-overview-record-trends,.gpa-overview-record-values{grid-column:auto}.gpa-overview-record-trends{width:100%}.growth-project-create-actions{justify-content:stretch}.growth-project-create-actions .primary-button,.growth-project-create-actions .secondary-button{flex:1 1}}.settings-page{max-width:840px;min-width:0}.settings-page-description{color:var(--muted);font-size:14px;margin-top:8px}.settings-page-content{margin-top:24px}.settings-page-content>.settings-stack{margin-top:0}.settings-stack{display:grid;gap:20px;min-width:0;margin-top:28px}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 2px rgb(15 23 42/4%);min-width:0;overflow:hidden}.settings-card-header{align-items:flex-start;border-bottom:1px solid #f1f5f9;display:flex;gap:12px;justify-content:space-between;min-width:0;padding:20px 24px 16px}.settings-card-header>svg{color:var(--muted);flex:0 0 auto;height:20px;margin-top:1px;width:20px}.settings-card-header h2,.settings-card-header h3{color:var(--foreground);font-size:16px;line-height:1.35;min-width:0}.settings-card-kicker{color:var(--accent)!important;font-size:11px!important;font-weight:700;letter-spacing:.08em;line-height:1.3!important;margin:0 0 5px!important;text-transform:uppercase}.settings-card-header p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.settings-card-content{min-width:0;padding:20px 24px 24px}.settings-logo-content{align-items:center;display:flex;flex-wrap:wrap;gap:18px}.settings-logo-copy{min-width:0}.settings-logo-copy strong{color:var(--foreground);display:block;font-size:14px;overflow-wrap:anywhere}.settings-logo-copy p{color:var(--muted);font-size:13px;line-height:1.6;margin-top:5px;overflow-wrap:anywhere}.settings-logo-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.settings-logo-actions .primary-button{cursor:pointer;width:auto}.settings-logo-actions input[type=file]{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}.settings-branding-form,.settings-inline-form{display:grid;gap:20px;min-width:0}.settings-field{display:flex;flex-direction:column;gap:7px;min-width:0}.settings-field-narrow{max-width:420px}.settings-field label{color:var(--foreground);font-size:14px;font-weight:600}.settings-field input{background:#ffffff;border:1px solid #cbd5e1;border-radius:10px;color:var(--foreground);height:42px;min-width:0;padding:0 12px;width:100%}.settings-field input::placeholder{color:#94a3b8}.settings-submit-button{justify-content:center;min-width:128px;width:auto}.settings-card-content>p{color:var(--muted);font-size:13px}.settings-backup-summary{display:grid;gap:18px;min-width:0}.settings-backup-status-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:10px 12px;min-width:0}.settings-backup-status{border-radius:999px;display:inline-flex;flex:0 0 auto;font-size:12px;font-weight:700;line-height:1.3;padding:6px 10px}.settings-backup-status-verified{background:#ecfdf5;color:#047857}.settings-backup-status-no_backup,.settings-backup-status-not_configured{background:#fefce8;color:#a16207}.settings-backup-status-manifest_invalid,.settings-backup-status-verification_failed{background:#fef2f2;color:#b91c1c}.settings-backup-status-unavailable{background:#f1f5f9;color:#475569}.settings-backup-notice,.settings-backup-warning{color:var(--muted);font-size:13px;line-height:1.6;margin:2px 0 0;min-width:0;overflow-wrap:anywhere}.settings-backup-warning{color:#a16207}.settings-backup-grid{display:grid;gap:12px 16px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;min-width:0}.settings-backup-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;min-width:0;padding:12px}.settings-backup-grid dt{color:var(--muted);font-size:12px;line-height:1.4}.settings-backup-grid dd{color:var(--foreground);font-size:14px;font-weight:700;line-height:1.5;margin:4px 0 0;overflow-wrap:anywhere}.settings-logo{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:16px;display:flex;flex:0 0 80px;height:80px;justify-content:center;max-width:100%;overflow:hidden;width:80px}.settings-logo img{display:block;height:100%;max-width:100%;object-fit:cover;width:100%}.settings-form{display:grid;gap:18px;min-width:0}.settings-form .field-group{min-width:0}.settings-form input,.settings-form select,.settings-form textarea{max-width:100%;min-width:0}.settings-form input:focus,.settings-form select:focus,.settings-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(37 99 235/14%);outline:none}.settings-field-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.settings-field-grid>*{min-width:0}.settings-action-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px 12px;min-width:0}.settings-action-row .primary-button,.settings-action-row .secondary-button{justify-content:center;max-width:100%;width:auto}.settings-feedback{border-radius:10px;font-size:13px;line-height:1.5;max-width:100%;overflow-wrap:anywhere;padding:10px 12px}.settings-feedback-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.settings-feedback-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857}.settings-feedback button{background:transparent;border:0;color:inherit;font-weight:600;margin-left:8px;padding:0;text-decoration:underline;text-underline-offset:2px}.settings-session-list{display:grid;gap:16px;min-width:0}.settings-session-group{background:#ffffff;border:1px solid var(--border);border-radius:12px;min-width:0;overflow:hidden}.settings-session-group-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;gap:14px;justify-content:space-between;min-width:0;padding:16px 18px}.settings-session-group-header h3{color:var(--foreground);font-size:14px;line-height:1.4}.settings-session-group-header p{color:var(--muted);font-size:12px;line-height:1.5;margin-top:4px}.settings-session-row{display:grid;gap:12px;min-width:0;padding:16px 18px}.settings-session-row+.settings-session-row{border-top:1px solid #f1f5f9}.settings-session-row-heading{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.settings-session-row-heading strong{color:var(--foreground);font-size:14px}.settings-session-badge{background:#eff6ff;border-radius:999px;color:var(--accent);font-size:11px;font-weight:700;padding:3px 8px}.settings-session-details{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}.settings-session-details dt{color:var(--muted);font-size:11px;line-height:1.4}.settings-session-details dd{color:var(--foreground);font-size:12px;line-height:1.5;margin-top:3px;overflow-wrap:anywhere}.settings-session-row .secondary-button{justify-self:start;width:auto}.settings-session-empty{padding:16px 18px}.settings-placeholder,.settings-session-empty{color:var(--muted);font-size:13px;line-height:1.6}.settings-placeholder{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;min-width:0;padding:16px}.settings-member-management-content{display:grid;gap:24px}.settings-member-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:grid;gap:16px;padding:16px}.settings-member-list-heading{border-bottom:1px solid #f1f5f9;display:grid;gap:4px;padding-bottom:12px}.settings-member-list-heading h3{color:var(--foreground);font-size:14px}.settings-member-list-heading p,.settings-member-note{color:var(--muted);font-size:12px;line-height:1.6}.settings-member-list{display:grid;gap:12px;min-width:0}.settings-member-row{align-items:start;border:1px solid var(--border);border-radius:12px;display:grid;gap:16px;grid-template-columns:minmax(150px,.6fr) minmax(0,1.4fr);min-width:0;padding:16px}.settings-member-actions,.settings-member-identity,.settings-member-password-field{display:grid;gap:8px;min-width:0}.settings-member-identity strong{color:var(--foreground);font-size:15px;overflow-wrap:anywhere}.settings-member-badges{display:flex;flex-wrap:wrap;gap:6px}.settings-member-badge{background:#eff6ff;border-radius:999px;color:var(--accent);font-size:11px;font-weight:700;line-height:1.3;padding:4px 8px}.settings-member-badge-disabled{background:#fef2f2;color:#b91c1c}.settings-member-password-field{max-width:360px}.settings-member-password-field label{color:var(--muted);font-size:12px;font-weight:600}.settings-member-password-field input{background:#ffffff;border:1px solid #cbd5e1;border-radius:9px;color:var(--foreground);height:40px;min-width:0;padding:0 10px;width:100%}.settings-member-action-buttons{display:flex;flex-wrap:wrap;gap:8px}.settings-member-action-buttons button{justify-content:center;min-width:112px}.settings-member-note{align-self:center;background:#f8fafc;border-radius:8px;padding:8px 10px}.settings-audit-link-content{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.settings-audit-link-content>div{min-width:0}.settings-subpage-heading{align-items:flex-end;display:flex;gap:16px;justify-content:space-between}.settings-audit-table-wrap{border:1px solid var(--border);border-radius:12px;min-width:0;overflow-x:auto}.settings-audit-table{border-collapse:collapse;min-width:720px;width:100%}.settings-audit-table td,.settings-audit-table th{border-bottom:1px solid #f1f5f9;padding:12px 14px;text-align:left;vertical-align:top}.settings-audit-table th{background:#f8fafc;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.settings-audit-table td{color:var(--foreground);font-size:12px;line-height:1.5}.settings-audit-table tbody tr:last-child td{border-bottom:0}.settings-audit-table code{color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap}.settings-audit-empty{color:var(--muted)!important;text-align:center!important}.settings-about-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.settings-about-grid>div{background:#f8fafc;border-radius:12px;min-width:0;padding:14px}.settings-about-grid span{color:var(--muted);display:block;font-size:12px}.settings-about-grid strong{color:var(--foreground);display:block;font-size:14px;margin-top:5px;overflow-wrap:anywhere}.settings-about-note{line-height:1.6;margin-top:16px}.app-nav-brand{align-items:center;display:flex;gap:10px;min-width:0;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-left)) 4px max(16px,env(safe-area-inset-right))}.app-nav-brand-logo{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;display:flex;flex:0 0 32px;height:32px;justify-content:center;max-width:100%;object-fit:cover;overflow:hidden;width:32px}.app-nav-brand-logo img{display:block;height:100%;object-fit:cover;width:100%}.app-nav-brand-copy{display:flex;flex:1 1 auto;flex-direction:column;line-height:1.3;min-width:0}.app-nav-brand-copy,.app-nav-brand-copy>*{overflow-wrap:anywhere;word-break:break-word}.app-nav-brand-copy>*{max-width:100%}.app-nav-brand-copy p:first-child,.app-nav-brand-copy strong{color:var(--foreground);font-size:13px;font-weight:700}.app-nav-brand-copy p:last-child,.app-nav-brand-copy span:last-child{color:var(--muted);font-size:11px;margin-top:2px}.app-nav-brand+.app-nav-inner{padding-top:6px}@media (max-width:560px){.app-header{padding:12px max(16px,env(safe-area-inset-left)) 12px max(16px,env(safe-area-inset-right))}.app-nav-inner{gap:4px;padding-bottom:8px}.app-nav-brand+.app-nav-inner,.app-nav-inner{padding-top:4px}}@media (max-width:390px){.settings-page{padding-left:14px;padding-right:14px}.settings-card-content,.settings-card-header{padding-left:16px;padding-right:16px}.settings-session-group-header{align-items:flex-start;flex-direction:column}.settings-session-group-header .secondary-button,.settings-session-row .secondary-button{width:100%}.settings-session-details{grid-template-columns:minmax(0,1fr)}.settings-about-grid,.settings-backup-grid,.settings-field-grid{grid-template-columns:1fr}.settings-action-row{align-items:stretch;flex-direction:column}.settings-action-row .primary-button,.settings-action-row .secondary-button,.settings-action-row button{justify-content:center;width:100%}.settings-feedback{padding:10px}.settings-feedback button{display:block;margin-left:0;margin-top:4px}.app-nav-brand{align-items:flex-start;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.app-nav-brand-copy,.app-nav-brand-copy>*{overflow-wrap:anywhere;word-break:break-word}.app-nav-inner{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}}.app-content,.attendance-record-header>*,.attendance-workspace,.dashboard-page,.data-panel,.data-panel-heading>*,.data-preview-heading>*,.data-workspace,.dorm-record-header>*,.dorm-workspace,.growth-analytics-heading>*,.growth-analytics-panel,.growth-project-timeline-heading>*,.growth-workspace,.page-heading>*,.panel-heading>*,.settings-page,.student-card,.talk-chart-card,.talks-workspace,.workspace-heading>*,.workspace-page,.workspace-panel{min-width:0}.student-card-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:22px;min-width:0}.student-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 2px rgb(15 23 42/4%);display:grid;gap:16px;padding:18px}.student-card-header{align-items:flex-start;display:flex;gap:12px;min-width:0}.student-card-avatar{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:14px;color:#1d4ed8;display:inline-flex;flex:0 0 44px;font-size:18px;font-weight:700;height:44px;justify-content:center;width:44px}.student-card-identity{min-width:0}.student-card-identity h3{color:var(--foreground);font-size:17px;line-height:1.35;overflow-wrap:anywhere}.student-card-identity p{color:var(--muted);font-size:13px;margin-top:3px;overflow-wrap:anywhere}.student-card-details{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.student-card-details>div{min-width:0}.student-card-details dt{color:var(--muted);font-size:12px;line-height:1.4}.student-card-details dd{color:var(--foreground);font-size:13px;line-height:1.5;margin-top:3px;overflow-wrap:anywhere}.student-card-footer{align-items:center;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding-top:12px}.danger-button,.primary-button,.secondary-button{min-height:44px}.data-preview-table-wrap,.import-batch-history-table-wrap,.table-wrap{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.data-preview-table-wrap:focus-visible,.import-batch-history-table-wrap:focus-visible,.table-wrap:focus-visible{outline:3px solid rgb(59 130 246/28%);outline-offset:2px}.settings-logo-actions:focus-within{border-radius:10px;outline:3px solid rgb(59 130 246/28%);outline-offset:3px}.talk-ai-job-card{max-height:min(320px,calc(100dvh - 32px));overflow-y:auto}.data-panel p,.import-batch-history strong,.import-batch-history td,.legacy-migration-panel,.legacy-migration-panel label,.talk-ai-job-note,.talk-ai-job-note p,.talk-audio-panel{overflow-wrap:anywhere}@media (max-width:1023px){.dashboard-page,.workspace-page{padding:28px 24px 48px}.student-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-analytics-grid{grid-template-columns:minmax(0,1fr)}.growth-radar-data-list{display:grid;gap:8px 16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.talk-dashboard-grid{grid-template-columns:minmax(0,1fr)}.attendance-record-header,.dorm-record-header,.talk-record-card{flex-direction:column}.attendance-record-actions,.dorm-record-actions,.talk-record-actions{justify-content:flex-start;width:100%}.talk-record-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-timeline-filter{min-width:min(220px,100%)}.app-shell:has(.talk-ai-job-card) .app-content{padding-bottom:calc(180px + env(safe-area-inset-bottom))}.talk-ai-job-card{bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right))}}@media (max-width:840px){.attendance-filter-form,.dorm-filter-form,.student-filter-form,.talk-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-analytics-grid,.talk-dashboard-grid{grid-template-columns:minmax(0,1fr)}.talk-record-card{flex-direction:column}.data-preview-table-wrap:before,.import-batch-history-table-wrap:before{color:var(--muted);content:"左右滑动查看完整表格";display:block;font-size:12px;line-height:1.4;padding:10px 12px 0}}@media (max-width:760px){.growth-timeline-record{grid-template-columns:10px minmax(0,1fr)}.growth-timeline-record-heading{align-items:flex-start;flex-direction:column;gap:6px}.growth-timeline-record-heading time{white-space:normal}.growth-timeline-record-actions{grid-column:2;justify-content:flex-start;width:100%}.growth-timeline-filter{min-width:0;width:100%}.settings-about-grid,.settings-field-grid,.settings-session-details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.dashboard-page,.workspace-page{padding:24px 16px 44px}.data-panel-heading,.data-preview-heading,.growth-analytics-heading,.panel-heading,.workspace-heading{align-items:flex-start;flex-direction:column}.workspace-heading h1{font-size:24px}.data-panel-heading .inline-button,.data-preview-heading .inline-button,.heading-actions,.panel-heading .heading-actions{width:100%}.data-panel-heading .inline-button,.data-preview-heading .inline-button,.heading-actions>a,.heading-actions>button,.panel-heading .heading-actions>a,.panel-heading .heading-actions>button{justify-content:center;max-width:100%;width:100%}.student-card-grid{grid-template-columns:minmax(0,1fr)}.student-card-details{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-filter-form,.dorm-filter-form,.student-filter-form,.talk-filter-form{grid-template-columns:minmax(0,1fr)}.attendance-filter-form .filter-submit,.dorm-filter-form .filter-submit,.student-filter-form .filter-submit,.talk-filter-form .filter-submit{width:100%}.growth-radar-data-list,.growth-stat-grid,.settings-about-grid,.settings-field-grid,.settings-session-details,.talk-record-meta,.talk-stat-grid{grid-template-columns:minmax(0,1fr)}.data-panel,.growth-analytics-panel,.settings-card-content,.talk-chart-card,.talk-record-card{padding:18px}.talk-record-card-heading,.talk-student-card-heading{align-items:flex-start;flex-direction:column}.talk-ai-job-card{bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));width:auto}.settings-action-row,.settings-logo-actions{align-items:stretch;flex-direction:column}.settings-action-row>*,.settings-logo-actions>*{justify-content:center;width:100%}.settings-logo-actions .file-picker-trigger{width:100%}}@media (prefers-reduced-motion:reduce){.student-card,.talk-ai-job-card,.workspace-tabs,.workspace-tabs>a{animation:none;scroll-behavior:auto;transition:none}}.workspace-tabs{align-items:center;align-self:flex-start;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;box-sizing:border-box;display:inline-flex;gap:2px;height:54px;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;padding:4px;scrollbar-width:none;width:max-content}.workspace-tabs::-webkit-scrollbar{display:none}.workspace-tabs>a{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:#475569;display:inline-flex;flex:0 0 auto;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:0 14px;text-align:center;text-decoration:none;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}.workspace-tab-icon{color:currentColor;flex:0 0 auto;height:16px;width:16px}@media (hover:hover) and (pointer:fine){.workspace-tabs>a:hover{background:#eaf2ff;color:#1d4ed8}}.workspace-tabs>a.is-active{background:#fff;border-color:#bfdbfe;box-shadow:0 1px 3px rgb(15 23 42/8%);color:#1d4ed8;font-weight:600}.workspace-tabs>a.is-active:hover{background:#fff}.workspace-tabs>a:focus-visible{outline:3px solid rgb(37 99 235/34%);outline-offset:-2px}.workspace-tabs>a:active{transform:scale(.98)}@media (max-width:560px){.workspace-tabs{align-self:stretch;width:100%}.workspace-tabs>a{flex:1 0 max-content;min-width:max-content;padding-left:12px;padding-right:12px}}@media (prefers-reduced-motion:reduce){.workspace-tab-icon,.workspace-tabs,.workspace-tabs>a{animation:none;scroll-behavior:auto;transition:none}.workspace-tabs>a:active{transform:none}}.file-picker{display:grid;gap:6px;min-width:0}.file-picker-control{align-items:center;display:flex;min-height:42px;min-width:0}.file-picker-input{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.file-picker-trigger:focus-within{outline:3px solid rgb(59 130 246/28%);outline-offset:3px}.file-picker-trigger{cursor:pointer;justify-content:center;min-height:42px;min-width:112px;white-space:nowrap}.file-picker-input:disabled{cursor:not-allowed;opacity:.65}.file-picker:has(.file-picker-input:disabled) .file-picker-trigger{cursor:not-allowed;opacity:.65}.file-picker-description,.file-picker-name{color:var(--muted);font-size:12px;line-height:1.45;margin:0;min-width:0;overflow-wrap:anywhere}.file-picker-name{color:var(--foreground);font-weight:600}.settings-logo-actions .file-picker{align-items:flex-start}.settings-logo-actions .file-picker-name{display:none}.settings-logo-actions .file-picker-trigger,.settings-submit-button{min-width:132px}.workspace-tabs-row{margin-top:16px}.workspace-tabs-row .workspace-tabs{margin-top:0}.growth-tab-panel{display:grid;gap:18px;margin-top:16px}.growth-analytics-dashboard,.growth-tab-panel>.growth-empty-list,.growth-tab-panel>.growth-timeline{margin-top:0}.growth-radar-total{align-items:baseline;display:inline-flex;gap:6px;white-space:nowrap}.growth-radar-total strong{color:var(--foreground);font-size:16px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.growth-radar-empty{align-items:center;color:var(--muted);display:flex;font-size:13px;gap:12px;justify-content:space-between;line-height:1.5;margin-top:-2px}.growth-radar-empty .text-link{flex:0 0 auto;font-weight:600}.growth-radar-chart-shell{min-height:280px;position:relative;width:100%}.growth-radar-chart{height:280px;min-width:0;position:relative;width:100%}.growth-radar-chart .recharts-responsive-container{max-width:100%}.growth-radar-chart .recharts-surface{display:block;overflow:visible}.growth-radar-chart .recharts-polar-angle-axis-tick-value{fill:var(--muted);font-size:12px;font-weight:500}.growth-radar-chart .recharts-radar-polygon{stroke:#004098;stroke-width:2}.growth-radar-chart .recharts-radar-polygon .recharts-polygon{fill:color-mix(in srgb,#004098 20%,transparent);stroke:#004098;stroke-width:2}.growth-radar-chart .recharts-polar-grid-concentric-polygon{fill:transparent;stroke:#cbd5e1}.growth-radar-zero{align-items:center;color:var(--muted);display:flex;font-size:14px;inset:0;justify-content:center;pointer-events:none;position:absolute}.growth-radar-data-list{display:grid;gap:8px 12px;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:4px 0 0;min-width:0;padding:0}.growth-radar-data-list li{align-items:center;border-top:1px solid #f1f5f9;color:var(--muted);display:flex;font-size:12px;gap:8px;justify-content:space-between;line-height:1.4;min-width:0;padding-top:8px}.growth-radar-axis-summary-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.growth-radar-axis-summary-count{color:var(--foreground);flex:0 0 auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:560px){.workspace-tabs-row{margin-top:12px}.growth-radar-chart,.growth-radar-chart-shell{min-height:250px}.growth-radar-chart{height:250px}.growth-radar-empty{align-items:flex-start;flex-direction:column;gap:4px}.growth-radar-data-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.attendance-ranking-card,.attendance-trend-card,.data-panel,.dorm-rating-card,.dorm-trend-card,.settings-card,.workspace-panel{min-width:0}.workspace-tabs>a{box-sizing:border-box;height:44px;line-height:1.35;min-height:44px}.student-filter-form{align-items:end;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;grid-template-columns:minmax(220px,2fr) repeat(5,minmax(112px,1fr)) auto auto;margin-top:20px;padding:16px}.attendance-filter-form input,.attendance-filter-form select,.attendance-filter-form>.field-group,.dorm-filter-form input,.dorm-filter-form select,.dorm-filter-form>.field-group,.student-filter-form input,.student-filter-form select,.student-filter-form>.field-group{min-width:0}.attendance-filter-form .filter-clear,.dorm-filter-form .filter-clear,.student-filter-form .filter-clear{align-self:center;grid-column:auto;white-space:nowrap}.attendance-filter-form .filter-submit,.dorm-filter-form .filter-submit,.student-filter-form .filter-submit{align-self:end;min-width:72px}.form-span-full{grid-column:1/-1}.student-detail-grid{align-items:stretch;margin-top:24px}.student-detail-grid>.workspace-panel{height:100%;margin-top:0}.student-form,.talk-form{display:grid;gap:18px;min-width:0}.student-form>.form-section,.student-form>.workspace-panel,.talk-form>.form-section,.talk-form>.workspace-panel{margin-top:0}.student-form .field-group,.student-form .form-grid,.talk-form .field-group,.talk-form .form-grid{min-width:0}.student-form .readonly-field{overflow-wrap:anywhere}.student-detail-grid .detail-grid{gap:10px 12px}.student-detail-grid .detail-field{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;min-width:0;padding:10px 12px}.student-detail-grid .detail-field dd{font-weight:600;overflow-wrap:anywhere}.student-detail-grid .detail-notes{margin-top:16px;padding-top:14px}.student-talk-panel{background:linear-gradient(135deg,#eff6ff,#ffffff 68%);border-color:#bfdbfe;display:grid;gap:12px}.student-talk-panel .panel-heading{margin-bottom:0}.student-talk-panel .muted-text{color:#475569}.student-talk-panel .heading-actions{flex:0 0 auto}.gpa-panel{gap:18px;padding-top:18px}.gpa-summary-row{border-bottom:0;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:0}.gpa-summary-row span{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:var(--muted);font-size:13px;line-height:1.45;padding:11px 12px}.gpa-form-grid{gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.gpa-form-grid>label{color:var(--foreground);display:grid;gap:7px;min-width:0;font-size:13px;font-weight:650;line-height:1.4}.gpa-form-grid input,.gpa-form-grid textarea{background:#ffffff;border:1px solid #cbd5e1;border-radius:10px;color:var(--foreground);min-width:0;padding:9px 11px;width:100%}.gpa-form-grid input{height:42px}.gpa-form-grid textarea{min-height:72px;resize:vertical}.gpa-form-grid input:focus,.gpa-form-grid textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgb(37 99 235/14%);outline:none}.gpa-form .form-actions{align-items:center;margin-top:0}.gpa-form .form-error{min-height:0}.gpa-record-card{background:#f8fafc;border-color:#e2e8f0;border-radius:14px;gap:14px;padding:18px}.gpa-record-card>form:last-child{border-top:1px solid #e2e8f0;justify-content:space-between;padding-top:14px}.talk-form .form-grid{gap:16px}.talk-form .field-group input,.talk-form .field-group select,.talk-form .field-group textarea{min-width:0}.talk-form .field-group select{height:42px;padding-bottom:8px;padding-top:8px}.talk-student-summary{align-items:center;background:#eff6ff;border-color:#bfdbfe;border-radius:12px;margin-bottom:18px;min-height:46px}.talk-ai-launch-panel{background:linear-gradient(135deg,#f8fafc,#eff6ff);border-color:#dbeafe}.talk-ai-launch-panel .panel-heading{margin-bottom:0}.talk-ai-launch-controls{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;max-width:none}.talk-ai-launch-controls .field-group{min-width:0}.talk-ai-launch-controls input[type=file]{background:#ffffff;border:1px dashed #93c5fd;border-radius:10px;color:var(--muted);min-height:42px;padding:8px;width:100%}.talk-ai-launch-controls .secondary-button{min-width:142px}.talk-ai-job-card{background:rgb(255 255 255/96%);border-color:#bfdbfe;border-radius:14px;box-shadow:0 14px 36px rgb(15 23 42/16%);padding:16px 18px}.talk-ai-job-heading{align-items:center}.talk-ai-job-heading strong{color:var(--foreground);line-height:1.45}.talk-ai-job-meta{color:var(--muted);font-size:12px;line-height:1.5;margin-top:8px}.talk-ai-job-card .section-label{color:#2563eb}.talk-ai-job-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:grid;gap:10px;margin-top:14px;padding:11px 12px}.talk-ai-job-note p{color:#475569;line-height:1.55;margin:0}.talk-ai-job-note .primary-button{justify-self:start;min-height:38px;padding:7px 12px;width:auto}.talk-ai-job-card-failed{border-color:#fecaca}.talk-ai-job-card-failed .section-label{color:#b91c1c}.talk-ai-job-failure-note{background:#fef2f2;border-color:#fecaca}.attendance-statistics-grid{align-items:stretch;display:grid;margin-top:24px}.attendance-metrics-grid,.attendance-statistics-grid{gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-metrics-grid{margin-top:0}.attendance-stat-card{align-items:center;display:flex;flex-direction:row;gap:14px;min-height:112px;min-width:0;padding:18px}.attendance-stat-icon{align-items:center;border-radius:12px;display:flex;flex:0 0 46px;height:46px;justify-content:center;width:46px}.attendance-stat-content{min-width:0}.attendance-stat-label{color:var(--muted);font-size:12px;letter-spacing:.04em;margin:0}.attendance-stat-value{color:var(--foreground);font-size:30px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1;margin-top:4px}.attendance-stat-subtext{font-size:12px;margin-top:4px}.attendance-ranking-card,.attendance-trend-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 1px 2px rgb(15 23 42/4%);display:flex;flex-direction:column;min-height:244px;overflow:hidden;padding:20px}.attendance-ranking-card{min-height:176px}.attendance-card-heading{align-items:center;display:flex;gap:8px;margin-bottom:16px;min-width:0}.attendance-card-heading h3{color:var(--foreground);font-size:14px;font-weight:650;line-height:1.35;min-width:0}.attendance-chart-empty{align-items:center;color:var(--muted);display:flex;flex:1 1;flex-direction:column;font-size:14px;justify-content:center;min-height:168px;padding:8px 0}.attendance-chart-empty .empty-inline{margin-top:8px;padding:0}.attendance-ranking-list{display:grid;gap:8px;list-style:none;margin:0;min-width:0;padding:0}.attendance-ranking-item{align-items:center;background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-width:0;min-height:40px;padding:8px 10px}.attendance-ranking-label{align-items:center;display:flex;gap:10px;min-width:0;overflow:hidden}.attendance-ranking-rank{align-items:center;background:#cbd5e1;border-radius:999px;color:#ffffff;display:inline-flex;flex:0 0 24px;font-size:12px;font-weight:700;height:24px;justify-content:center;width:24px}.attendance-ranking-rank-1{background:#f87171}.attendance-ranking-rank-2{background:#94a3b8}.attendance-ranking-name{color:#334155;font-size:14px;font-weight:550;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-ranking-count{color:#dc2626;flex:0 0 auto;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:650;min-width:52px;text-align:right;white-space:nowrap}.attendance-trend-chart{flex:1 1 auto;height:190px;min-height:190px;min-width:0}.attendance-trend-chart .recharts-responsive-container,.dorm-trend-chart .recharts-responsive-container{max-width:100%}.attendance-status-distribution{margin-top:16px;padding:20px}.attendance-status-distribution-list{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;min-width:0;padding:0}.attendance-status-distribution-item{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;gap:10px;justify-content:flex-start;min-width:0;padding:10px 12px}.attendance-status-distribution-item .attendance-status-badge{justify-self:start;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-status-count{color:#475569;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:650;min-width:0;text-align:left;white-space:nowrap}.attendance-filter-form,.dorm-filter-form{align-items:end;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;gap:12px;margin-top:20px;padding:14px}.attendance-filter-form,.dorm-filter-form{grid-template-columns:minmax(0,1fr) minmax(160px,220px) auto auto}.attendance-filter-form .filter-clear,.dorm-filter-form .filter-clear{align-self:center}.dorm-trend-card{min-height:280px;overflow:hidden}.dorm-trend-chart{height:190px;min-height:190px;min-width:0;width:100%}.dorm-last-check-value{display:inline-flex;flex-direction:column;font-size:17px;gap:2px;line-height:1.25}.dorm-last-check-value time:last-child{color:var(--muted);font-size:13px;font-weight:600}.dorm-trend-legend{border-top:1px solid #f1f5f9;display:flex;flex-wrap:wrap;gap:8px 18px;list-style:none;margin:10px 0 0;padding:10px 0 0}.dorm-trend-legend li{align-items:center;color:var(--muted);display:inline-flex;font-size:12px;gap:6px;min-width:0}.dorm-trend-legend-swatch{border-radius:999px;display:inline-block;flex:0 0 20px;height:3px;width:20px}.dorm-trend-legend-swatch-excellent{background:var(--dorm-rating-excellent-color)}.dorm-trend-legend-swatch-normal{background:var(--dorm-rating-normal-color)}.dorm-trend-legend-swatch-needs_rectification{background:var(--dorm-rating-needs-rectification-color)}.student-attendance-summary{display:grid;gap:14px}.student-attendance-summary .panel-heading{margin-bottom:0}.student-attendance-summary>.muted-text{margin-top:-4px}.attendance-status-summary,.attendance-student-records{display:grid;gap:8px;list-style:none;margin:0;padding:0}.attendance-status-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.attendance-status-summary li{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:var(--muted);display:flex;font-size:13px;gap:8px;justify-content:space-between;min-width:0;padding:10px 12px}.attendance-status-summary strong{color:var(--foreground);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.attendance-student-records{border-top:1px solid var(--border);padding-top:12px}.attendance-student-records li{align-items:center;background:#f8fafc;border-radius:10px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;min-width:0;padding:9px 10px}.attendance-student-record-context,.attendance-student-records time{color:var(--muted);font-size:12px;min-width:0}.attendance-student-record-context{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-export-option>span,.data-panel-heading>div,.data-preview-heading>div{min-width:0}.data-panel-heading .inline-button,.data-preview-heading .inline-button{flex:0 0 auto}.data-export-option{min-width:0}.data-task-progress{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:18px;padding:12px}.data-task-progress-label{align-items:center;color:var(--muted);display:flex;font-size:12px;justify-content:space-between;gap:12px}.data-progress-track{background:#e2e8f0;border-radius:999px;height:7px;margin-top:9px;overflow:hidden}.data-progress-fill{background:#2563eb;border-radius:inherit;height:100%;transition:width .2s ease}.data-progress-fill.is-indeterminate{animation:data-progress-slide 1.4s ease-in-out infinite;width:42%}@keyframes data-progress-slide{0%{transform:translateX(-110%)}to{transform:translateX(250%)}}.settings-card-content>*,.settings-card-header>div,.settings-session-group-header>div{min-width:0}.settings-card-header{min-height:92px}.settings-card-content{display:grid;gap:18px}.settings-card-content .login-form{gap:16px;max-width:460px}.settings-logo-content{align-items:flex-start}.settings-logo-copy{flex:1 1 260px}.settings-action-row{justify-content:space-between}.settings-action-row .settings-feedback{flex:1 1 240px}.settings-about-grid,.settings-backup-grid,.settings-session-details{min-width:0}@media (max-width:1180px){.student-filter-form{grid-template-columns:repeat(4,minmax(0,1fr))}.student-filter-form>.field-group:first-child{grid-column:span 2}}@media (max-width:960px){.student-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.student-filter-form>.field-group:first-child{grid-column:span 3}.gpa-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dorm-statistics-top{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.attendance-filter-form,.attendance-statistics-grid,.dorm-filter-form{grid-template-columns:minmax(0,1fr)}.attendance-status-distribution-list{grid-template-columns:repeat(2,minmax(0,1fr))}.talk-ai-launch-controls,.talk-form .form-grid{grid-template-columns:minmax(0,1fr)}.talk-ai-launch-controls .secondary-button{width:100%}.student-attendance-summary .panel-heading,.student-talk-panel .panel-heading{align-items:flex-start;flex-direction:column}.student-talk-panel .heading-actions{width:100%}.student-talk-panel .heading-actions>a{flex:1 1}}@media (max-width:560px){.student-filter-form{grid-template-columns:minmax(0,1fr)}.student-filter-form>.field-group:first-child{grid-column:auto}.attendance-filter-form .filter-clear,.dorm-filter-form .filter-clear,.student-filter-form .filter-clear,.student-filter-form .filter-submit{justify-self:start}.attendance-metrics-grid,.attendance-status-distribution-list,.gpa-form-grid,.gpa-summary-row{grid-template-columns:minmax(0,1fr)}.form-span-full{grid-column:auto}.attendance-ranking-card,.attendance-status-distribution,.attendance-trend-card,.dorm-trend-card{padding:16px}.attendance-student-records li{align-items:start;grid-template-columns:minmax(0,1fr) auto}.attendance-student-records time{grid-column:1/-1}.attendance-student-record-context{white-space:normal}.dorm-trend-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card-content,.settings-card-header{padding-left:18px;padding-right:18px}.settings-action-row{align-items:stretch;flex-direction:column}.settings-action-row .primary-button,.settings-action-row .secondary-button,.settings-action-row .settings-feedback,.settings-action-row button{width:100%}.talk-ai-job-note .primary-button{justify-self:stretch;width:100%}.settings-subpage-heading{align-items:stretch;flex-direction:column}.settings-audit-link-content>a,.settings-subpage-heading>a{justify-content:center;width:100%}.settings-member-row{grid-template-columns:minmax(0,1fr)}.settings-member-password-field{max-width:none}.settings-member-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-member-action-buttons button:last-child{grid-column:1/-1}}@media (max-width:1023px){.app-nav{background:var(--surface);border-bottom:0;border-top:1px solid #e2e8f0;bottom:0;box-shadow:0 -8px 24px rgb(15 23 42/8%);display:block;left:0;padding-bottom:0;position:fixed;right:0;top:auto;z-index:100}.app-nav-brand{display:none}.app-nav-inner{gap:4px;justify-content:flex-start;overflow-x:auto;padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right))}.app-nav-link{align-items:center;flex:0 0 auto;flex-direction:column;font-size:11px;gap:3px;justify-content:center;min-height:52px;min-width:68px;padding:5px 8px}.app-nav-link:focus-visible,.app-nav-link:hover{margin-top:0}.app-nav-label{line-height:1.2}.app-content{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.talk-ai-job-card{bottom:calc(76px + env(safe-area-inset-bottom))}}@media (min-width:561px) and (max-width:1023px){.app-nav-inner{justify-content:space-between;overflow-x:hidden}.app-nav-link{flex:1 1;min-width:0}}@media (max-width:560px){.app-nav-inner{gap:4px;overflow-x:auto}}@media (max-width:390px){.app-nav-inner{gap:2px;padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.app-nav-link,.app-nav-link:focus-visible,.app-nav-link:hover{font-size:10px;min-width:64px;padding-left:6px;padding-right:6px}.settings-member-form,.settings-member-row{padding:14px}.settings-member-action-buttons{grid-template-columns:minmax(0,1fr)}.settings-member-action-buttons button:last-child{grid-column:auto}}.app-skip-link{background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--accent);font-weight:600;left:max(12px,env(safe-area-inset-left));min-height:44px;padding:10px 16px;position:fixed;top:max(12px,env(safe-area-inset-top));transform:translateY(calc(-100% - 24px - env(safe-area-inset-top)));z-index:1000}.app-skip-link:focus{outline:3px solid var(--focus);outline-offset:2px;transform:none}#workspace-content:focus{outline:none}.confirm-delete-dialog-backdrop{padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.confirm-delete-dialog{max-height:calc(100dvh - max(20px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom)));overflow-wrap:anywhere;overflow-y:auto;overscroll-behavior:contain;animation:workspace-dialog-in .16s ease-out}.confirm-delete-dialog h2{text-wrap:balance}.confirm-delete-dialog-description{text-wrap:pretty}.confirm-delete-dialog .danger-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@keyframes workspace-dialog-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:560px){.confirm-delete-dialog-backdrop{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.confirm-delete-dialog{max-height:calc(100dvh - max(12px, env(safe-area-inset-top)) - max(12px, env(safe-area-inset-bottom)));padding:20px}}@media (prefers-reduced-motion:reduce){.confirm-delete-dialog,.talk-loading-card,.talk-loading-heading{animation:none}.app-nav-link{transition:none}}.breadcrumb-row,.page-heading h1,.talk-record-card-heading h3,.talk-student-card-heading h2,.talk-student-summary strong,.workspace-heading h1{overflow-wrap:anywhere}.talk-record-card,.talk-record-card-heading>div,.talk-student-card-heading>div,.talk-student-summary strong{min-width:0}.workspace-heading>.heading-actions{flex-shrink:0;max-width:100%}.talk-record-meta p span{color:#64748b}@media (max-width:1023px){.app-shell:has(.talk-ai-job-card) .app-content{padding-bottom:calc(min(320px, calc(100dvh - 92px - env(safe-area-inset-bottom))) + 92px + env(safe-area-inset-bottom))}.talk-ai-job-card{max-height:min(320px,calc(100dvh - 92px - env(safe-area-inset-bottom)))}}