:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-darker: #1e40af;--color-primary-light: #60a5fa;--color-primary-bg: #dbeafe;--color-primary-bg-light: #eff6ff;--color-success: #10b981;--color-success-dark: #059669;--color-success-bg: #d1fae5;--color-danger: #ef4444;--color-danger-dark: #dc2626;--color-danger-bg: #fee2e2;--color-warning: #f59e0b;--color-warning-dark: #d97706;--color-warning-bg: #fef3c7;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-white: #ffffff;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .12);--shadow-xl: 0 8px 24px rgba(0, 0, 0, .16);--z-dropdown: 100;--z-sticky: 200;--z-modal-backdrop: 300;--z-modal: 400;--z-modal-nested: 450;--z-modal-top: 500;--z-toast: 600;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--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}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}.modal-overlay-common{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:20px}.modal-container-common{background:#fff;border-radius:var(--radius-xl);padding:28px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.mud-header-row{display:flex;align-items:center;justify-content:center;position:relative;border-bottom:2px solid var(--color-gray-200);margin-bottom:16px}.mud-subject-tabs{display:flex;justify-content:center;gap:4px;padding-bottom:0}.mud-subject-btn{padding:8px 18px;border:none;border-bottom:3px solid transparent;background:none;font-size:14px;font-weight:600;color:var(--color-gray-500);cursor:pointer;margin-bottom:-2px;border-radius:4px 4px 0 0;transition:all .15s}.mud-subject-btn:hover{color:var(--subject-color, var(--color-gray-700));background:var(--color-gray-100)}.mud-subject-btn.active{color:var(--subject-color, #1d4ed8);border-bottom-color:var(--subject-color, var(--color-primary-dark));background:color-mix(in srgb,var(--subject-color, #3b82f6) 10%,white)}.mud-header-right{position:absolute;right:0;display:flex;gap:4px}.mud-mode-btn{padding:6px 14px;background:none;border:1px solid #cbd5e1;border-radius:6px;color:var(--color-gray-500);font-size:12px;cursor:pointer;white-space:nowrap;transition:all .2s}.mud-mode-btn:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.mud-mode-btn.active{background:var(--color-primary-bg-light);border-color:var(--color-primary-dark);color:#1d4ed8;font-weight:600}@media(max-width:600px){.mud-header-row{flex-wrap:wrap;gap:8px}.mud-subject-tabs{width:100%}.mud-header-right{position:static;width:100%;justify-content:center;padding-bottom:8px}.mud-subject-btn{padding:8px 12px;font-size:13px}}.hidden-input{display:none}.form-input-common{width:100%;padding:8px;border-radius:6px;border:1px solid #e2e8f0}.form-field-sm{margin-bottom:12px}.form-field-md{margin-bottom:16px}.subject-btn-common{padding:12px;font-size:.9rem;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;white-space:nowrap}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%}.app.sapix-theme{min-height:100vh;background:var(--color-gray-100);padding:24px;width:100%;overflow-x:hidden}.app-header{color:#1d1d1f;margin-bottom:16px;padding:6px 32px;background:linear-gradient(135deg,var(--color-gray-200) 0%,var(--color-gray-300) 100%);border-radius:20px;box-shadow:var(--shadow-md);border:1px solid rgba(0,0,0,.06)}.header-content{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:nowrap;min-height:40px}.header-content h1{font-size:1.5rem;margin:0;font-weight:600;letter-spacing:-.02em;line-height:1}.target-schools{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}.target-badge{background:#fff;color:#1d1d1f;padding:6px 14px;border-radius:16px;font-size:.875rem;font-weight:500;border:1px solid rgba(0,0,0,.1);box-shadow:var(--shadow-sm)}.container{max-width:1200px;margin:0 auto;width:100%;overflow-x:hidden}.sample-schedule-prompt{background:#fff;border-radius:20px;padding:32px;text-align:center;margin:24px 0;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}.sample-schedule-prompt p{color:#1d1d1f;font-size:1.0625rem;margin-bottom:20px;font-weight:500;letter-spacing:-.01em}.load-sample-btn{background:var(--color-primary);color:#fff;border:none;border-radius:12px;padding:14px 28px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #007aff40}.load-sample-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #007aff4d;background:#0071e3}.load-sample-btn:active{transform:scale(.98)}.view-switcher{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:4px;background:#fff9;border-radius:14px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-sm);width:fit-content;margin:24px auto}.view-switcher button{padding:10px 20px;border:none;background:transparent;color:#1d1d1f;border-radius:10px;cursor:pointer;font-size:.9375rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.view-switcher button:hover{background:#0000000a}.view-switcher button.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-md)}.filter-buttons{display:flex;gap:8px;margin:20px 0;justify-content:center;flex-wrap:wrap}.filter-buttons button{padding:8px 16px;border:1px solid rgba(255,255,255,.3);background:#ffffff26;color:#fff;border-radius:20px;cursor:pointer;font-size:.9375rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.filter-buttons button:hover{background:#ffffff40}.filter-buttons button.active{background:#fff;color:var(--color-primary);border-color:#fff}.edit-view{background:#fff;border-radius:20px;padding:32px;box-shadow:var(--shadow-sm);margin-bottom:24px;border:1px solid rgba(0,0,0,.04)}.edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid #d2d2d7}.edit-header h2{font-size:1.75rem;color:#1d1d1f;margin:0;font-weight:600;letter-spacing:-.02em}.back-btn{background:var(--color-gray-100);color:#1d1d1f;border:none;border-radius:10px;padding:10px 20px;font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.back-btn:hover{background:#e8e8ed;transform:scale(.98)}.add-task-toggle-btn{display:block;width:100%;padding:14px 24px;margin:16px 0;font-size:1rem;font-weight:600;border:none;border-radius:14px;cursor:pointer;background:var(--color-primary);color:#fff;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #007aff40}.add-task-toggle-btn:hover{background:#0071e3;transform:translateY(-1px);box-shadow:0 4px 12px #007aff4d}.add-task-toggle-btn:active{transform:scale(.98)}.add-task-toggle-btn.close{background:var(--color-gray-100);color:#86868b;box-shadow:none;margin-bottom:12px}.add-task-toggle-btn.close:hover{background:#e8e8ed;box-shadow:none;transform:none}@media(max-width:768px){.app.sapix-theme{padding:16px}.app-header{padding:6px 20px}.header-content h1{font-size:1.25rem}.view-switcher button{padding:8px 16px;font-size:.875rem}.edit-view{padding:24px}.edit-header h2{font-size:1.375rem}.back-btn{padding:8px 16px;font-size:.875rem}}@media(max-width:480px){.app-header{padding:4px 16px;border-radius:16px}.header-content h1{font-size:1.05rem;flex:1;min-width:0;font-weight:600}.view-switcher{width:100%;margin:16px 0}.view-switcher button{padding:8px 10px;font-size:.75rem}.edit-view{padding:20px;border-radius:16px}.edit-header{flex-direction:column;gap:12px;align-items:flex-start}.edit-header h2{font-size:1.25rem}.back-btn{align-self:stretch;text-align:center}}.toast-container{position:fixed;top:20px;right:20px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--color-white);border-radius:8px;box-shadow:var(--shadow-lg);min-width:250px;max-width:400px;opacity:0;transform:translate(400px);transition:all .3s ease;pointer-events:auto}.toast-show{opacity:1;transform:translate(0)}.toast-icon{font-size:20px;flex-shrink:0}.toast-message{flex:1;font-size:14px;color:var(--color-gray-800);line-height:1.5}.toast-success{border-left:4px solid var(--color-success)}.toast-error{border-left:4px solid var(--color-danger)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-info{border-left:4px solid var(--color-primary)}@media(max-width:640px){.toast-container{top:10px;right:10px;left:10px}.toast{min-width:auto;max-width:none}}.common-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--color-gray-500)}.common-loading-spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:common-spin .8s linear infinite;margin-bottom:12px}.common-loading-text{font-size:var(--text-base);margin:0}@keyframes common-spin{to{transform:rotate(360deg)}}.settings-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:var(--z-modal, 400);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.settings-modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-gray-200, #e2e8f0)}.settings-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-gray-800, #1e293b)}.settings-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:var(--color-gray-100, #f1f5f9);border-radius:8px;font-size:1.2rem;color:var(--color-gray-500, #64748b);cursor:pointer;transition:all .15s ease}.settings-close:hover{background:var(--color-gray-200, #e2e8f0);color:var(--color-gray-700, #334155)}.settings-body{overflow-y:auto;padding:16px 20px;flex:1}.settings-section{margin-bottom:20px}.settings-section-title{margin:0 0 12px;font-size:.9rem;font-weight:700;color:var(--color-gray-600, #475569);letter-spacing:.02em}.storage-info{background:var(--color-gray-50, #f8fafc);border-radius:12px;padding:12px 16px}.storage-stat{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--color-gray-200, #e2e8f0)}.storage-stat:last-child{border-bottom:none}.storage-label{font-size:.85rem;color:var(--color-gray-600, #475569)}.storage-value{font-size:.85rem;font-weight:600;color:var(--color-gray-800, #1e293b)}.storage-orphan-section{margin-top:12px;background:#fef3c7;border:1px solid #fbbf24;border-radius:10px;padding:12px 14px}.storage-orphan-info{margin-bottom:10px}.storage-orphan-label{font-size:.85rem;font-weight:600;color:#92400e}.storage-orphan-desc{margin:4px 0 0;font-size:.78rem;color:#a16207}.storage-cleanup-btn{width:100%;padding:8px 16px;border:none;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease;background:#f59e0b;color:#fff}.storage-cleanup-btn:hover{background:#d97706}.storage-cleanup-btn.confirm{background:var(--color-danger, #ef4444)}.storage-cleanup-btn.confirm:hover{background:var(--color-danger-dark, #dc2626)}.storage-cleanup-btn:disabled{opacity:.6;cursor:not-allowed}.storage-clean-msg{margin:8px 0 0;font-size:.82rem;color:var(--color-gray-500, #64748b);text-align:center;padding:8px 0}.storage-error{margin:0;font-size:.85rem;color:var(--color-danger, #ef4444);text-align:center;padding:12px 0}.settings-footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--color-gray-200, #e2e8f0)}.settings-close-btn{padding:7px 20px;border:1px solid var(--color-gray-300, #cbd5e1);background:#fff;border-radius:8px;font-size:.82rem;font-weight:600;color:var(--color-gray-700, #334155);cursor:pointer;transition:all .15s ease}.settings-close-btn:hover{background:var(--color-gray-50, #f8fafc);border-color:var(--color-gray-400, #94a3b8)}@media(max-width:480px){.settings-overlay{padding:8px}.settings-modal{border-radius:12px}.settings-header,.settings-body{padding:12px 16px}.settings-footer{padding:10px 16px}}.gemini-usage-bar{width:100%;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin:8px 0}.gemini-usage-fill{height:100%;background:#3b82f6;border-radius:4px;transition:width .3s ease}.gemini-usage-fill.over{background:#ef4444}.gemini-low{color:#ef4444!important;font-weight:700}.gemini-usage-note{margin:8px 0 0;font-size:.75rem;color:#94a3b8;line-height:1.5}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary-darker) 0%,var(--color-primary) 100%);padding:20px}.auth-card{background:#fff;border-radius:20px;padding:12px;box-shadow:var(--shadow-xl);text-align:center;max-width:400px;width:100%}.auth-card h2{font-size:2rem;color:var(--color-primary-darker);margin-bottom:20px;font-weight:700}.auth-description{color:var(--color-gray-500);font-size:1rem;margin-bottom:30px;line-height:1.6}.google-signin-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;padding:14px 24px;background:#fff;border:2px solid var(--color-gray-200);border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition-slow);color:var(--color-gray-800);box-shadow:var(--shadow-md)}.google-signin-btn:hover{background:var(--color-gray-50);border-color:#cbd5e1;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.google-signin-btn:active{transform:translateY(0)}.auth-loading{color:#fff;font-size:1.2rem;font-weight:600}.auth-user-info{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}.user-profile{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;border-radius:50%;border:2px solid var(--color-primary)}.user-name{font-size:.95rem;font-weight:600;color:var(--color-gray-800)}.signout-btn{padding:8px 16px;background:var(--color-danger);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.signout-btn:hover{background:var(--color-danger-dark);transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.settings-gear-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:var(--color-gray-100);border-radius:8px;color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-normal);flex-shrink:0}.settings-gear-btn:hover{background:var(--color-gray-200);color:var(--color-gray-800)}@media(max-width:768px){.auth-card{padding:6px}.auth-card h2{font-size:1.6rem}.auth-description{font-size:.95rem}.google-signin-btn{padding:12px 20px;font-size:.95rem}.auth-user-info{gap:10px}.user-name{font-size:.9rem}.signout-btn{font-size:.85rem;padding:7px 14px}}@media(max-width:480px){.auth-card{padding:4px}.auth-card h2{font-size:1.4rem}.auth-description{font-size:.9rem}.google-signin-btn{padding:10px 16px;font-size:.9rem}.auth-user-info{flex-direction:row;align-items:center;padding:6px 8px;gap:6px;margin-bottom:0;flex-shrink:0}.user-profile{gap:6px}.user-avatar{width:28px;height:28px;border-width:1px}.user-name{display:none}.signout-btn{padding:4px 8px;font-size:.7rem;border-radius:4px}.settings-gear-btn{width:28px;height:28px}.settings-gear-btn svg{width:16px;height:16px}}.today-week-view{margin-bottom:30px}.priority-section{background:var(--color-white);border-radius:16px;padding:0;margin-bottom:20px;box-shadow:var(--shadow-md);overflow:hidden;transition:all .3s ease}.priority-section:hover{box-shadow:var(--shadow-lg)}.homework-section .section-header{background:linear-gradient(135deg,#6366f1,#4f46e5)}.week-homework-section .section-header{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.today-section .section-header{background:linear-gradient(135deg,var(--color-danger) 0%,var(--color-danger-dark) 100%)}.week-section .section-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%)}.section-header{padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;justify-content:space-between;align-items:center;transition:all .2s ease}.section-header:hover{opacity:.95}.section-header h2{margin:0;color:#fff;font-size:1.25rem;font-weight:700;display:flex;align-items:center;gap:10px}.task-count{font-size:.9rem;font-weight:600;background:#ffffff40;padding:3px 10px;border-radius:10px;margin-left:6px}.toggle-icon{color:#fff;font-size:1.2rem;transition:transform .2s ease}.task-grid{padding:16px;display:grid;gap:8px;background:var(--color-gray-50);max-width:100%;overflow:hidden}.priority-task{border-radius:10px;padding:6px 10px;display:flex;gap:8px;align-items:center;transition:all .2s ease;border:1px solid rgba(0,0,0,.08);position:relative;box-shadow:var(--shadow-sm);width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.priority-task.clickable-row{cursor:pointer}.priority-task:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.priority-task.completed{opacity:.5}.priority-task.completed .task-title{text-decoration:line-through;color:#86868b}.task-priority-badge{background:#0000000d;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:600;flex-shrink:0;border:1px solid transparent}.hw-priority-num{font-size:.75rem;font-weight:800;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000000f;flex-shrink:0}.task-checkbox{width:18px;height:18px;cursor:pointer;flex-shrink:0;accent-color:var(--color-primary)}.task-date{background:#e0e7ff;color:#3730a3;padding:2px 8px;border-radius:5px;font-size:.75rem;font-weight:600;margin-left:auto}.task-title{font-size:.875rem;font-weight:500;color:#1d1d1f;margin:0;line-height:1.3;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.task-meta{display:none}.edit-btn{background:#0000000d;color:var(--color-gray-500);border:none;border-radius:6px;width:26px;height:26px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);opacity:.7}.no-tasks-message{text-align:center;padding:12px;color:var(--color-gray-500);font-size:1rem}.week-homework-grid{padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--color-gray-50)}.week-day-block{background:#fff;border-radius:10px;padding:10px 14px;border:1px solid rgba(0,0,0,.06)}.week-day-block.is-today{border-color:#6366f1;box-shadow:0 0 0 1px #6366f140}.week-day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid rgba(0,0,0,.06)}.week-day-label{font-size:.85rem;font-weight:700;color:#374151;display:flex;align-items:center;gap:6px}.today-badge{font-size:.6rem;font-weight:700;background:#6366f1;color:#fff;padding:1px 6px;border-radius:4px;letter-spacing:.05em}.week-day-count{font-size:.75rem;font-weight:600;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:8px}.week-day-empty{text-align:center;color:#d1d5db;font-size:.85rem;padding:4px}.week-day-tasks{display:flex;flex-direction:column;gap:4px}.week-hw-item{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px;cursor:pointer;transition:background .15s ease;font-size:.8rem}.week-hw-item:hover{background:#f3f4f6}.week-hw-item.completed{opacity:.45}.week-hw-item.completed .week-hw-title{text-decoration:line-through}.week-hw-check{font-size:.75rem;width:16px;text-align:center;flex-shrink:0;color:#6366f1;font-weight:700}.week-hw-priority{font-size:.65rem;font-weight:800;width:14px;height:14px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e0e7ff;color:#4f46e5;flex-shrink:0}.week-hw-subject{flex-shrink:0;font-size:.85rem}.week-hw-title{font-size:.78rem;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hw-lesson-info{display:inline-block;margin-left:.5em;padding:.05em .45em;font-size:.78em;font-weight:500;color:#475569;background-color:#e2e8f0;border-radius:6px;vertical-align:middle}.priority-task.completed .hw-lesson-info,.week-hw-item.completed .hw-lesson-info{opacity:.5}@media(max-width:768px){.section-header h2{font-size:1.2rem}.task-count{font-size:.9rem;padding:3px 10px}.priority-task{padding:14px;gap:12px}.task-priority{width:36px;height:36px;font-size:1rem}.task-title{font-size:.95rem}.task-subject{font-size:.85rem}.edit-btn{width:28px;height:28px;font-size:.9rem}.delete-btn{width:28px;height:28px;font-size:1.3rem}}@media(max-width:480px){.section-header{padding:16px 12px}.section-header h2{font-size:1.1rem}.task-grid{padding:12px}.priority-task{padding:5px 8px;gap:6px}.task-actions{display:none}.subject-badge{font-size:.65rem;padding:2px 4px}.task-title{font-size:.8rem}.week-homework-grid{padding:10px;gap:8px}.week-day-block{padding:8px 10px}.week-hw-title{font-size:.72rem}}.utp-root{position:relative;width:100%}.utp-trigger{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--color-gray-300);border-radius:8px;background:var(--color-white);cursor:pointer;min-height:40px;-webkit-user-select:none;user-select:none;transition:border-color .15s}.utp-trigger:hover,.utp-trigger.open{border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.utp-placeholder{color:var(--color-gray-400);font-size:13px;flex:1}.utp-chips{display:flex;flex-wrap:wrap;gap:4px;flex:1}.utp-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;background:var(--color-primary-bg);color:#1d4ed8;border-radius:12px;font-size:12px;font-weight:500}.utp-chip-main{background:var(--color-warning-bg);color:#92400e}.utp-main-badge{background:var(--color-warning);color:var(--color-white);font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;letter-spacing:.03em;flex-shrink:0}.utp-chip-remove{background:none;border:none;color:#1d4ed8;cursor:pointer;font-size:13px;padding:0;line-height:1;opacity:.6}.utp-chip-remove:hover{opacity:1}.utp-arrow{color:var(--color-gray-400);font-size:10px;flex-shrink:0}.utp-dropdown{position:fixed;background:var(--color-white);border:1px solid var(--color-gray-300);border-radius:10px;box-shadow:var(--shadow-lg);z-index:10000;display:flex;flex-direction:column;max-height:360px;box-sizing:border-box}.utp-search{display:flex;align-items:center;padding:8px;border-bottom:1px solid var(--color-gray-100);flex-shrink:0}.utp-search-input{flex:1;border:none;outline:none;font-size:14px;color:var(--color-gray-800);background:transparent}.utp-clear{background:none;border:none;color:var(--color-gray-400);cursor:pointer;font-size:16px;padding:0 4px}.utp-list{overflow-y:auto;flex:1;padding:4px 0}.utp-empty{padding:20px;text-align:center;color:var(--color-gray-400);font-size:13px}.utp-group{margin-bottom:2px}.utp-group-label{padding:6px 12px 3px;font-size:11px;font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;background:var(--color-gray-50);position:sticky;top:0}.utp-dropdown .utp-item{display:flex!important;align-items:center;gap:8px;padding:7px 12px;cursor:pointer;transition:background .1s;font-size:13px;font-weight:400;color:var(--color-gray-800);margin-bottom:0}.utp-dropdown .utp-item:hover{background:#f0f9ff}.utp-checkbox{width:15px;height:15px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.utp-item-name{flex:1;font-size:13px;color:var(--color-gray-800)}.utp-item-diff{font-size:11px;color:var(--color-warning)}.utp-footer{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-top:1px solid var(--color-gray-100);flex-shrink:0}.utp-footer span{font-size:12px;color:var(--color-gray-500)}.utp-done{padding:5px 14px;background:var(--color-primary);color:var(--color-white);border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer}.utp-done:hover{background:var(--color-primary-dark)}.pdfcropper-overlay{position:fixed;inset:0;background:#0009;z-index:var(--z-modal-top);display:flex;align-items:center;justify-content:center;padding:12px;overflow:hidden;-webkit-overflow-scrolling:touch}.pdfcropper-modal{background:#fff;border-radius:12px;width:90vw;height:calc(100vh - 24px);box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;gap:0;overflow:hidden;position:relative}.pdfcropper-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-gray-200);background:var(--color-gray-50)}.pdfcropper-title{font-size:1rem;font-weight:700;color:var(--color-gray-800);margin:0;display:flex;align-items:center;gap:10px}.pdfcropper-added-badge{font-size:12px;font-weight:600;color:var(--color-success-dark, #15803d);background:#dcfce7;padding:2px 10px;border-radius:12px}.pdfcropper-done-btn{padding:6px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.pdfcropper-done-btn:hover{background:var(--color-primary-dark)}.pdfcropper-url-row{display:flex;gap:8px;padding:14px 20px;border-bottom:1px solid #f0f0f0}.pdfcropper-url-input{flex:1;padding:8px 12px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:13px;color:var(--color-gray-800);outline:none}.pdfcropper-url-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626}.pdfcropper-load-btn{padding:8px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.pdfcropper-load-btn:hover:not(:disabled){background:var(--color-primary-dark)}.pdfcropper-load-btn:disabled{opacity:.6;cursor:default}.pdfcropper-error{margin:0 20px;padding:10px 14px;background:var(--color-danger-bg);color:var(--color-danger-dark);border-radius:var(--radius-md);font-size:13px}.pdfcropper-controls{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--color-gray-50);border-bottom:1px solid #f0f0f0;flex-wrap:wrap}.pdfcropper-page-nav{display:flex;align-items:center;gap:8px}.pdfcropper-page-btn{width:30px;height:30px;border:1px solid var(--color-gray-300);border-radius:6px;background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.pdfcropper-page-btn:hover:not(:disabled){background:var(--color-primary-bg-light);border-color:var(--color-primary)}.pdfcropper-page-btn:disabled{opacity:.4;cursor:default}.pdfcropper-page-info{font-size:13px;font-weight:600;color:var(--color-gray-700);min-width:48px;text-align:center}.pdfcropper-zoom{display:flex;align-items:center;gap:4px}.pdfcropper-zoom-fit,.pdfcropper-zoom-reset{padding:4px 10px;border:1px solid var(--color-gray-300);border-radius:6px;background:#fff;cursor:pointer;font-size:11px;font-weight:600;color:var(--color-gray-700);white-space:nowrap}.pdfcropper-zoom-fit:hover,.pdfcropper-zoom-reset:hover{background:var(--color-primary-bg-light);border-color:var(--color-primary)}.pdfcropper-zoom-btn{width:28px;height:28px;border:1px solid var(--color-gray-300);border-radius:6px;background:#fff;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.pdfcropper-zoom-btn:hover{background:var(--color-primary-bg-light);border-color:var(--color-primary)}.pdfcropper-zoom-display{font-size:12px;font-weight:600;color:var(--color-gray-700);min-width:42px;text-align:center}.pdfcropper-hint{font-size:11px;color:var(--color-gray-500);margin-left:auto;white-space:nowrap}.pdfcropper-viewer-area{position:relative;flex:1 1 0;min-height:200px;overflow:hidden}.pdfcropper-canvas-wrapper{position:absolute;inset:0;overflow:auto;background:var(--color-gray-200);padding:10px;-webkit-overflow-scrolling:touch}.pdfcropper-page-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:80px;border:none;background:#00000038;color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease,background .2s ease;pointer-events:none}.pdfcropper-viewer-area:hover .pdfcropper-page-arrow{opacity:1;pointer-events:auto}.pdfcropper-page-arrow:hover{background:#00000080;color:#fff}.pdfcropper-page-arrow:active{background:#000000b3}.pdfcropper-page-arrow-left{left:0;border-radius:0 8px 8px 0}.pdfcropper-page-arrow-right{right:0;border-radius:8px 0 0 8px}.pdfcropper-canvas-container{position:relative;display:inline-block}.pdfcropper-canvas{display:block;box-shadow:var(--shadow-lg)}.pdfcropper-overlay-canvas{position:absolute;top:0;left:0;cursor:crosshair;touch-action:none}.pdfcropper-preview-area{padding:14px 20px;border-top:1px solid #f0f0f0;background:#fafafa}.pdfcropper-preview-label{font-size:12px;font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.pdfcropper-preview-scroll{overflow-x:auto;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:#fff;max-height:180px;overflow-y:auto;margin-bottom:12px}.pdfcropper-preview-img{display:block;max-width:100%;height:auto}.pdfcropper-preview-actions{display:flex;gap:10px;justify-content:flex-end}.pdfcropper-reselect-btn{padding:8px 18px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background:#fff;color:var(--color-gray-700);font-size:13px;font-weight:600;cursor:pointer}.pdfcropper-reselect-btn:hover{background:var(--color-gray-50)}.pdfcropper-confirm-btn{padding:8px 22px;background:var(--color-success);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:700;cursor:pointer}.pdfcropper-confirm-btn:hover:not(:disabled){background:var(--color-success-dark)}.pdfcropper-confirm-btn:disabled{opacity:.6;cursor:default}.pdfcropper-empty,.pdfcropper-loading{padding:48px 20px;text-align:center;color:var(--color-gray-400);font-size:14px}.pdfcropper-loading:before{content:"";display:inline-block;width:20px;height:20px;border:2px solid var(--color-gray-300);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.pdfcropper-tabs{display:flex;border-bottom:1px solid var(--color-gray-200);background:var(--color-gray-50)}.pdfcropper-tab{flex:1;padding:10px 6px;border:none;background:none;font-size:12px;font-weight:600;color:var(--color-gray-500);cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition-fast),border-color var(--transition-fast)}.pdfcropper-tab:hover{color:var(--color-gray-700)}.pdfcropper-tab.active{color:var(--color-primary-dark);border-bottom-color:var(--color-primary-dark);background:#fff}.pdfcropper-attached-info{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid #f0f0f0;background:#f0f9ff}.pdfcropper-attached-name{flex:1;font-size:13px;font-weight:500;color:#0369a1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdfcropper-loaded-bar{display:flex;align-items:center;gap:10px;padding:8px 16px;background:#f0fdf4;border-bottom:1px solid #bbf7d0;font-size:12px}.pdfcropper-loaded-name{flex:1;color:#166534;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdfcropper-unload-btn{background:none;border:1px solid #86efac;border-radius:6px;color:#16a34a;font-size:11px;padding:3px 8px;cursor:pointer;white-space:nowrap}.pdfcropper-unload-btn:hover{background:#dcfce7}.pdfcropper-list-area{padding:12px;display:flex;flex-direction:column;gap:8px;flex:1 1 0;min-height:0;overflow-y:auto}.pdfcropper-list-search{padding:7px 12px;border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:13px;outline:none}.pdfcropper-list-search:focus{border-color:var(--color-primary)}.pdfcropper-pdf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.pdfcropper-pdf-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:#fff}.pdfcropper-pdf-info{flex:1;min-width:0}.pdfcropper-pdf-name{display:block;font-size:13px;font-weight:500;color:var(--color-gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdfcropper-pdf-meta{display:flex;gap:4px;margin-top:3px;flex-wrap:wrap}.pdfcropper-pdf-tag{font-size:10px;padding:1px 6px;background:var(--color-gray-100);border-radius:var(--radius-sm);color:var(--color-gray-600);font-weight:600}.pdfcropper-resize-handle{position:absolute;width:18px;height:18px;bottom:0;right:0;cursor:nwse-resize;z-index:10;background:linear-gradient(135deg,transparent 40%,var(--color-gray-400) 40%,var(--color-gray-400) 45%,transparent 45%,transparent 55%,var(--color-gray-400) 55%,var(--color-gray-400) 60%,transparent 60%,transparent 70%,var(--color-gray-400) 70%,var(--color-gray-400) 75%,transparent 75%);border-radius:0 0 12px}.pdfcropper-resize-handle:hover{background:linear-gradient(135deg,transparent 40%,var(--color-primary) 40%,var(--color-primary) 45%,transparent 45%,transparent 55%,var(--color-primary) 55%,var(--color-primary) 60%,transparent 60%,transparent 70%,var(--color-primary) 70%,var(--color-primary) 75%,transparent 75%)}@media(max-width:640px){.pdfcropper-overlay{padding:0}.pdfcropper-modal{border-radius:0;width:100%!important;height:100%!important;max-width:100%}.pdfcropper-header{padding:10px 14px}.pdfcropper-controls{padding:8px 10px;gap:8px}.pdfcropper-preview-area{padding:10px 14px}.pdfcropper-resize-handle{display:none}}.problem-clip-section{margin-top:8px;border-top:1px solid var(--color-gray-100)}.clip-toggle-btn{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;background:transparent;border:none;cursor:pointer;font-size:.85rem;color:var(--color-gray-600);font-weight:600;text-align:left}.clip-toggle-btn:hover{background:var(--color-gray-50)}.clip-count-badge{background:var(--color-gray-200);color:var(--color-gray-600);padding:1px 8px;border-radius:10px;font-size:.75rem;font-weight:500;margin-left:4px}.clip-wrong-count{color:var(--color-danger-dark);font-weight:600}.clip-section-header{display:flex;align-items:center;gap:8px;padding:12px 0}.clip-section-title{font-size:.95rem;font-weight:600;margin:0;color:var(--color-gray-800)}.clip-count-inline{font-size:.8rem;color:var(--color-gray-500)}.clip-body{padding:0 12px 12px}.clip-empty{text-align:center;color:#94a3b8;font-size:.8rem;padding:16px 0;margin:0}.clip-list{display:flex;flex-direction:column;gap:4px}.clip-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s;border:1px solid transparent}.clip-item:hover{background:var(--color-gray-50);border-color:var(--color-gray-200)}.clip-item.correct{background:#f0fdf4}.clip-item.incorrect{background:#fef2f2}.clip-item-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1;min-width:0}.clip-item-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.clip-item .clip-units .unit-tag{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.clip-item{flex-wrap:wrap}.clip-item .clip-units .unit-tag{max-width:110px}}.clip-correctness{font-weight:700;font-size:.9rem;width:20px;text-align:center}.clip-item.correct .clip-correctness{color:#16a34a}.clip-item.incorrect .clip-correctness{color:var(--color-danger-dark)}.clip-number{font-size:.85rem;font-weight:600;color:var(--color-gray-800)}.clip-difficulty{font-size:.7rem;color:var(--color-warning)}.clip-miss-type{font-size:.7rem;padding:1px 6px;border-radius:4px;font-weight:500}.clip-miss-type.miss-understanding{background:var(--color-danger-bg);color:var(--color-danger-dark)}.clip-miss-type.miss-careless{background:var(--color-warning-bg);color:var(--color-warning-dark)}.clip-miss-type.miss-not_studied{background:#e0e7ff;color:#4f46e5}.clip-rate{font-size:.7rem;padding:1px 6px;border-radius:4px;font-weight:600}.clip-rate.high{background:#dcfce7;color:#16a34a}.clip-rate.low{background:var(--color-danger-bg);color:var(--color-danger-dark)}.clip-subject{font-size:.7rem;padding:1px 5px;border-radius:3px;background:var(--color-gray-100);color:var(--color-gray-600)}.clip-subject-group{margin-bottom:12px}.clip-subject-group:last-child{margin-bottom:0}.clip-subject-group-title{margin:0 0 6px;font-size:.85rem;color:#475569;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.clip-g-items{display:flex;flex-direction:column;gap:4px}.clip-g-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:.82rem;border-left:4px solid transparent;cursor:pointer;transition:filter .15s;flex-wrap:wrap}.clip-g-item:hover{filter:brightness(.96)}.clip-g-item.clip-g-rate-high{background:#fef2f2;border-left-color:#dc2626}.clip-g-item.clip-g-rate-mid{background:#fffbeb;border-left-color:#d97706}.clip-g-item.clip-g-rate-low{background:#f0fdf4;border-left-color:#16a34a}.clip-g-number{font-weight:600;min-width:80px;color:#1e293b}.clip-g-points{min-width:36px;color:#64748b;font-size:.78rem}.clip-g-rate{min-width:48px;font-weight:600}.clip-g-rate-high .clip-g-rate{color:#dc2626}.clip-g-rate-mid .clip-g-rate{color:#d97706}.clip-g-rate-low .clip-g-rate{color:#16a34a}.clip-g-partial{font-size:.72rem;background:#e0e7ff;color:#4338ca;padding:1px 6px;border-radius:4px}.clip-g-units{display:flex;flex-wrap:wrap;gap:3px;min-width:0}.clip-g-unit{font-size:.68rem;background:#f0fdf4;color:#166534;padding:1px 5px;border-radius:4px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.clip-g-unit{max-width:110px}}.clip-g-warn{font-size:1rem;line-height:1}.clip-g-has-image{font-size:.75rem;opacity:.7}.clip-field-unit-picker{min-width:0}.clip-units{display:flex;gap:3px;flex-wrap:wrap}.clip-has-image{font-size:.75rem}.clip-review-badge{font-size:.65rem;padding:2px 6px;border-radius:4px;font-weight:500;white-space:nowrap}.clip-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.clip-add-btn,.clip-task-btn{padding:6px 12px;border-radius:6px;font-size:.8rem;cursor:pointer;border:1px solid;font-weight:500}.clip-add-btn{background:#f0f9ff;color:#0369a1;border-color:#bae6fd}.clip-add-btn:hover{background:#e0f2fe}.clip-task-btn{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.clip-task-btn:hover{background:#ffedd5}.clip-task-btn:disabled{opacity:.6;cursor:not-allowed}.clip-task-date-picker{width:100%;display:flex;flex-direction:column;gap:8px}.clip-task-date-picker label{font-size:.8125rem;font-weight:600;color:var(--color-gray-600)}.clip-task-date-input{width:100%;padding:8px 10px;border:1px solid var(--color-gray-200);border-radius:6px;font-size:.875rem}.clip-task-date-actions{display:flex;gap:8px}.clip-task-date-actions .clip-task-btn{flex:1}.clip-task-date-actions .btn-secondary{flex:0;white-space:nowrap}.clip-form{margin-top:12px;padding:12px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:8px}.clip-form h4{margin:0 0 12px;font-size:.9rem;color:var(--color-gray-800)}.clip-form-row{display:flex;gap:10px;flex-wrap:wrap}.clip-form-field{margin-bottom:10px}.clip-form-field>label{display:block;font-size:.75rem;font-weight:600;color:var(--color-gray-600);margin-bottom:4px}.clip-form-field input,.clip-form-field select{width:100%;padding:6px 8px;border:1px solid var(--color-gray-200);border-radius:6px;font-size:.85rem}.clip-form-row .clip-form-field{flex:1;min-width:100px}.clip-correctness-toggle{display:flex;gap:6px}.clip-correctness-toggle button{flex:1;padding:6px;border:1px solid var(--color-gray-200);border-radius:6px;cursor:pointer;font-size:.85rem;background:#fff}.clip-correctness-toggle .correct-btn.active{background:#dcfce7;border-color:#16a34a;color:#16a34a;font-weight:600}.clip-correctness-toggle .incorrect-btn.active{background:var(--color-danger-bg);border-color:var(--color-danger-dark);color:var(--color-danger-dark);font-weight:600}.clip-miss-type-btns{display:flex;gap:6px;flex-wrap:wrap}.clip-miss-btn{padding:4px 10px;border:1px solid var(--color-gray-200);border-radius:6px;cursor:pointer;font-size:.8rem;background:#fff;color:var(--color-gray-600)}.clip-miss-btn.active{background:var(--color-danger-bg);border-color:var(--color-danger-dark);color:var(--color-danger-dark);font-weight:600}.clip-difficulty-btns{display:flex;gap:6px}.clip-diff-btn{width:32px;height:32px;border:1px solid var(--color-gray-200);border-radius:6px;cursor:pointer;font-size:.85rem;background:#fff;color:var(--color-gray-600)}.clip-diff-btn.active{background:var(--color-warning-bg);border-color:var(--color-warning);color:var(--color-warning-dark);font-weight:600}.clip-image-previews{display:flex;flex-wrap:wrap;gap:8px}.clip-image-preview{display:flex;flex-direction:column;gap:4px;align-items:center}.clip-image-preview img{max-width:200px;max-height:120px;border-radius:4px;border:1px solid var(--color-gray-200)}.clip-add-image-btn{font-size:.8rem}.clip-detail-images{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.clip-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.clip-detail-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-top);padding:16px}.clip-detail-modal{background:var(--color-white);border-radius:12px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.clip-detail-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-gray-100)}.clip-detail-header h3{margin:0;font-size:1.1rem;display:flex;align-items:center;gap:8px}.clip-detail-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:#94a3b8;padding:0 4px}.clip-detail-close:hover{color:var(--color-gray-600)}.clip-correctness-lg{font-size:1.3rem;font-weight:700}.clip-correctness-lg.correct{color:#16a34a}.clip-correctness-lg.incorrect{color:var(--color-danger-dark)}.clip-detail-body{padding:16px 20px}.clip-detail-image{position:relative;margin-bottom:16px;text-align:center}.clip-detail-image img{max-width:100%;max-height:300px;border-radius:8px;border:1px solid var(--color-gray-200)}.clip-detail-image-delete{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;background:#0000008c;color:#fff;border:none;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.clip-detail-image-delete:hover{background:var(--color-danger-dark)}.clip-detail-add-image-btn{display:block;width:100%;padding:10px;margin-bottom:12px;border:2px dashed var(--color-gray-300);border-radius:8px;background:transparent;color:var(--color-primary);font-size:14px;cursor:pointer;transition:border-color .15s,background .15s}.clip-detail-add-image-btn:hover{border-color:var(--color-primary);background:var(--color-primary-bg, rgba(59, 130, 246, .05))}.clip-detail-fields{display:flex;flex-direction:column;gap:12px}.clip-field{display:flex;align-items:flex-start;gap:12px}.clip-field-label{flex-shrink:0;width:80px;font-size:.75rem;font-weight:600;color:var(--color-gray-500);padding-top:4px}.clip-field-value{font-size:.85rem;color:var(--color-gray-800);flex:1}.clip-inline-input{width:80px;padding:4px 8px;border:1px solid var(--color-gray-200);border-radius:6px;font-size:.85rem}.clip-status-select{padding:4px 8px;border-radius:6px;border:1px solid var(--color-gray-200);font-size:.8rem;font-weight:500;cursor:pointer}.clip-detail-actions{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--color-gray-100);gap:8px}.clip-delete-btn{padding:6px 14px;border:1px solid #fecaca;border-radius:6px;background:#fef2f2;color:var(--color-danger-dark);cursor:pointer;font-size:.8rem}.clip-delete-btn:hover{background:var(--color-danger-bg)}.clip-cropper-subject-tabs{display:flex;gap:4px;margin-bottom:8px}.clip-cropper-tab{padding:4px 12px;border:1px solid var(--color-gray-200);border-radius:6px;background:#fff;cursor:pointer;font-size:.8rem}.clip-cropper-tab.active{background:var(--color-primary-bg-light);border-color:var(--color-primary);color:#1d4ed8;font-weight:600}.clip-cropper-tab.no-pdf{opacity:.4;cursor:not-allowed}.clip-rate-warning{display:inline-flex;align-items:center;gap:2px;font-size:.68rem;font-weight:700;color:#ea580c;background:#fff7ed;padding:2px 6px;border-radius:4px;border:1px solid #fed7aa;white-space:nowrap}.task-form.sapix-form{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-lg);margin-bottom:12px;border:1px solid rgba(30,64,175,.1);min-width:0;overflow-x:hidden}.task-form h2{color:var(--color-primary-darker);margin-bottom:12px;font-size:1.1rem;font-weight:700}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.form-row.three-cols{grid-template-columns:1fr 1fr 1fr}.form-row .form-group{margin-bottom:0;min-width:0}.form-group{margin-bottom:10px;min-width:0}.form-group label{display:block;margin-bottom:4px;color:var(--color-gray-800);font-weight:600;font-size:.85rem}.form-group input,.form-group select{width:100%;padding:8px 10px;border:2px solid var(--color-gray-200);border-radius:6px;font-size:.9rem;box-sizing:border-box;transition:all var(--transition-slow);background:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.task-type-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px}.type-btn{padding:8px;border:2px solid var(--color-gray-200);background:#fff;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all var(--transition-slow);color:var(--color-gray-600)}.type-btn:hover{border-color:var(--color-primary);background:var(--color-primary-bg-light);transform:translateY(-2px)}.type-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 4px 12px #3b82f64d}.priority-buttons{display:flex;gap:6px}.priority-btn{flex:1;padding:6px;border:2px solid var(--color-gray-200);background:#fff;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:600;transition:all var(--transition-slow)}.priority-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.submit-btn.sapix-btn{width:100%;padding:10px;background:linear-gradient(135deg,var(--color-primary-darker) 0%,var(--color-primary) 100%);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:700;cursor:pointer;transition:all var(--transition-slow);box-shadow:0 4px 12px #1e40af4d}.submit-btn.sapix-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1e40af66}.form-actions{display:flex;gap:8px}.form-actions .submit-btn{flex:1}.cancel-btn{padding:10px 16px;background:#94a3b8;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:700;cursor:pointer;transition:all var(--transition-slow)}.cancel-btn:hover{background:var(--color-gray-500);transform:translateY(-2px)}.unit-select-container{display:flex;gap:6px;align-items:center;min-width:0}.unit-select-container select{flex:1;min-width:0}.add-custom-unit-btn{padding:8px 10px;background:linear-gradient(135deg,var(--color-success) 0%,#34d399 100%);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:all var(--transition-slow);box-shadow:0 2px 8px #10b9814d;flex-shrink:0;min-width:36px;height:36px;display:flex;align-items:center;justify-content:center}.add-custom-unit-btn:hover{background:linear-gradient(135deg,var(--color-success-dark) 0%,var(--color-success) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.custom-unit-form{background:#f0f9ff;border:2px solid #bae6fd;border-radius:8px;padding:10px;margin-top:8px;animation:slideDown .3s ease;min-width:0;overflow:hidden}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.custom-unit-form h3{color:#0c4a6e;font-size:.95rem;margin-bottom:8px;font-weight:700}.custom-unit-actions{display:flex;gap:6px;margin-top:8px}.btn-primary{flex:1;padding:8px 12px;background:linear-gradient(135deg,var(--color-primary-darker) 0%,var(--color-primary) 100%);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all var(--transition-slow);box-shadow:0 2px 8px #1e40af4d}.btn-secondary{flex:1;padding:8px 12px;background:#fff;color:var(--color-gray-500);border:2px solid var(--color-gray-200);border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all var(--transition-slow)}.btn-secondary:hover{background:var(--color-gray-50);border-color:#cbd5e1;transform:translateY(-2px)}.pastpaper-fields{background:var(--color-warning-bg);border:2px solid #fbbf24;border-radius:8px;padding:10px;margin-top:8px;animation:slideDown .3s ease;min-width:0;overflow:hidden}.related-units-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;max-height:150px;overflow-y:auto;padding:8px;background:#fff;border-radius:6px;border:2px solid var(--color-gray-200)}.unit-checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 8px;border-radius:4px;transition:all var(--transition-normal)}.unit-checkbox-label:hover{background:var(--color-gray-50)}.unit-checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.task-file-url-preview{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px}.task-file-icon{font-size:1rem;flex-shrink:0}.task-file-link{font-size:.82rem;color:#15803d;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.task-file-link:hover{text-decoration:underline}.task-file-clear-btn{background:none;border:none;font-size:1.2rem;color:#94a3b8;cursor:pointer;padding:0 4px;line-height:1;flex-shrink:0}.task-file-clear-btn:hover{color:var(--color-danger)}.task-file-upload-area{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-pdf-upload-btn,.task-drive-select-btn{padding:6px 14px;font-size:.8rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}.task-pdf-upload-btn{background:var(--color-primary-bg-light);border:1px solid #bfdbfe;color:var(--color-primary-darker)}.task-pdf-upload-btn:hover{background:var(--color-primary-bg)}.task-pdf-upload-btn:disabled{opacity:.6;cursor:not-allowed}.task-drive-select-btn{background:#fff;border:1px solid var(--color-gray-200);color:var(--color-gray-600)}.task-drive-select-btn:hover{background:var(--color-gray-50);border-color:#cbd5e1}.task-file-or{font-size:.75rem;color:#94a3b8}@media(max-width:768px){.task-form.sapix-form{padding:6px;border-radius:12px}.task-form h2{font-size:.9rem;margin-bottom:6px}.form-group{margin-bottom:6px}.form-row{grid-template-columns:1fr;gap:4px;margin-bottom:6px}.form-row.three-cols{grid-template-columns:1fr}.task-type-buttons{grid-template-columns:repeat(2,1fr);gap:4px}.type-btn{padding:6px;font-size:.75rem}.priority-buttons{flex-direction:column;gap:4px}.priority-btn{padding:6px;font-size:.75rem}.add-custom-unit-btn{min-width:32px;height:32px;font-size:.85rem}.unit-select-container{gap:4px}.custom-unit-form{padding:6px;margin-top:6px}.custom-unit-form h3{font-size:.85rem;margin-bottom:6px}.pastpaper-fields{padding:6px;margin-top:6px}.related-units-checkboxes{grid-template-columns:1fr;padding:6px;gap:4px}.unit-checkbox-label{padding:4px 6px}}@media(max-width:480px){.task-form.sapix-form{padding:4px;margin-bottom:8px;border-radius:8px;max-width:100%}.task-form h2{font-size:.8rem;margin-bottom:3px;line-height:1.1}.form-group{margin-bottom:3px}.form-group label{font-size:.65rem;margin-bottom:1px;line-height:1.1}.form-group input,.form-group select{padding:3px 4px;font-size:.65rem;border-radius:3px;border-width:1px;line-height:1.2}.form-row{gap:2px;margin-bottom:3px}.form-row.three-cols{grid-template-columns:1fr}.task-type-buttons{grid-template-columns:1fr;gap:2px}.type-btn{padding:3px;font-size:.6rem;line-height:1.2}.submit-btn.sapix-btn{padding:5px;font-size:.75rem;line-height:1.2}.add-custom-unit-btn{min-width:26px;height:26px;font-size:.75rem;padding:2px 4px}.unit-select-container{gap:2px}.custom-unit-form{padding:3px;margin-top:3px}.custom-unit-form h3{font-size:.7rem;margin-bottom:3px;line-height:1.1}.custom-unit-actions{flex-direction:column;gap:2px;margin-top:3px}.btn-primary,.btn-secondary{width:100%;padding:4px;font-size:.7rem;line-height:1.2}.pastpaper-fields{padding:3px;margin-top:3px}.related-units-checkboxes{grid-template-columns:1fr;max-height:70px;padding:2px;gap:1px}.unit-checkbox-label{padding:1px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-checkbox-label span{font-size:.6rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unit-checkbox-label input[type=checkbox]{width:12px;height:12px;flex-shrink:0}.priority-buttons{gap:2px}.priority-btn{padding:3px;font-size:.65rem;line-height:1.2}.form-actions{margin-top:3px;gap:2px}.cancel-btn{padding:5px;font-size:.75rem;line-height:1.2}}.task-problem-image-preview{display:flex;gap:8px;align-items:flex-start}.task-problem-image{max-width:200px;max-height:120px;border-radius:4px;border:1px solid var(--color-gray-200)}.drive-picker-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-top);padding:20px}.drive-picker-modal{background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.drive-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-gray-200)}.drive-picker-title{display:flex;align-items:center;gap:10px}.drive-picker-title h3{margin:0;font-size:1.05rem;color:var(--color-gray-800);font-weight:700}.drive-picker-close{background:none;border:none;font-size:1.5rem;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1;transition:all var(--transition-normal)}.drive-picker-close:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.drive-picker-search{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--color-gray-100)}.drive-picker-search input{flex:1;padding:10px 14px;border:2px solid var(--color-gray-200);border-radius:var(--radius-md);font-size:.9rem;transition:border-color var(--transition-normal)}.drive-picker-search input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.drive-picker-search button{padding:10px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:.85rem;cursor:pointer;transition:background var(--transition-normal);white-space:nowrap}.drive-picker-search button:hover{background:var(--color-primary-dark)}.drive-picker-body{flex:1;overflow-y:auto;min-height:200px;max-height:400px}.drive-picker-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--color-gray-500)}.drive-picker-spinner{width:32px;height:32px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:drive-spin .8s linear infinite;margin-bottom:12px}@keyframes drive-spin{to{transform:rotate(360deg)}}.drive-picker-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--color-danger);text-align:center}.drive-picker-error button{margin-top:12px;padding:8px 16px;background:var(--color-danger);color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-size:.85rem}.drive-picker-error small{color:#94a3b8;font-size:.8rem;line-height:1.5;margin-top:8px}.drive-picker-connect{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--color-gray-600);text-align:center;gap:12px}.drive-picker-connect p{font-size:.95rem;margin:0}.drive-picker-connect small{color:#94a3b8;font-size:.8rem}.drive-picker-setup{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;color:var(--color-gray-600);text-align:center;gap:8px}.drive-setup-title{font-size:1rem;font-weight:700;color:#1e293b;margin:0}.drive-setup-steps{text-align:left;font-size:.85rem;line-height:1.7;color:#475569;background:#f8fafc;border-radius:10px;padding:14px 20px;width:100%;box-sizing:border-box}.drive-setup-steps p{margin:0 0 6px;font-weight:600}.drive-setup-steps ol{margin:0;padding-left:20px}.drive-setup-steps li{margin-bottom:4px}.drive-setup-link{display:inline-block;padding:12px 28px;background:#4285f4;color:#fff;border-radius:10px;font-weight:600;font-size:.95rem;text-decoration:none;transition:all .2s;box-shadow:0 2px 8px #4285f44d;margin-top:8px}.drive-setup-link:hover{background:#3367d6;transform:translateY(-1px);box-shadow:0 4px 12px #4285f466}.drive-connect-action-btn{padding:12px 28px;background:#4285f4;color:#fff;border:none;border-radius:10px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #4285f44d}.drive-connect-action-btn:hover{background:#3367d6;transform:translateY(-1px);box-shadow:0 4px 12px #4285f466}.drive-connect-action-btn:disabled{background:#93c5fd;cursor:not-allowed;transform:none;box-shadow:none}.drive-picker-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:#94a3b8;text-align:center}.drive-picker-empty p{font-size:1rem;margin-bottom:8px}.drive-picker-empty small{font-size:.85rem;color:#cbd5e1}.drive-picker-list{padding:8px}.drive-picker-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:#fff;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:all .2s;text-align:left}.drive-picker-item:hover{background:#eff6ff;border-color:#bfdbfe}.drive-file-icon{font-size:1.3rem;flex-shrink:0}.drive-file-info{display:flex;flex-direction:column;gap:2px;min-width:0}.drive-file-name{font-size:.9rem;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-file-meta{font-size:.75rem;color:#94a3b8}.drive-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;padding:8px 20px;border-bottom:1px solid #f1f5f9;background:#f8fafc;gap:2px;min-height:36px}.drive-breadcrumb-item{display:flex;align-items:center}.drive-breadcrumb-sep{color:#cbd5e1;margin:0 4px;font-size:.85rem}.drive-breadcrumb-btn{background:none;border:none;padding:4px 8px;border-radius:6px;font-size:.82rem;color:#3b82f6;cursor:pointer;font-weight:500;transition:all .15s;white-space:nowrap}.drive-breadcrumb-btn:hover:not(:disabled){background:#eff6ff;color:#2563eb}.drive-breadcrumb-btn.active{color:#1e293b;font-weight:700;cursor:default}.drive-search-banner{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;border-bottom:1px solid #f1f5f9;background:#eff6ff;font-size:.82rem;color:#1e40af}.drive-search-banner button{background:none;border:1px solid #93c5fd;color:#3b82f6;padding:4px 12px;border-radius:6px;font-size:.78rem;cursor:pointer;font-weight:600;transition:all .15s;white-space:nowrap}.drive-search-banner button:hover{background:#dbeafe;border-color:#3b82f6}.drive-picker-folder{position:relative}.drive-picker-folder:hover{background:#fefce8;border-color:#fde68a}.drive-folder-icon{font-size:1.4rem!important}.drive-folder-arrow{margin-left:auto;color:#94a3b8;font-size:1.3rem;font-weight:300;flex-shrink:0;transition:color .15s}.drive-picker-folder:hover .drive-folder-arrow{color:#f59e0b}.drive-picker-footer{padding:10px 20px;border-top:1px solid #f1f5f9;text-align:center}.drive-picker-footer small{color:#94a3b8;font-size:.75rem}@media(max-width:600px){.drive-picker-overlay{padding:10px}.drive-picker-modal{max-height:85vh}.drive-picker-header{padding:12px 16px}.drive-picker-title h3{font-size:.95rem}.drive-picker-search{padding:10px 16px}.drive-picker-search input{padding:8px 12px;font-size:.85rem}.drive-picker-search button{padding:8px 14px;font-size:.8rem}.drive-picker-item{padding:10px 12px}.drive-breadcrumb{padding:6px 16px}.drive-breadcrumb-btn{font-size:.78rem;padding:3px 6px}.drive-search-banner{padding:6px 16px;font-size:.78rem}}.schedule-view{width:100%}.sub-tab-switcher{display:flex;gap:4px;margin-bottom:20px;padding:3px;background:var(--color-gray-100);border-radius:10px;width:fit-content}.sub-tab-switcher button{padding:8px 20px;border:none;background:transparent;color:#86868b;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1)}.sub-tab-switcher button:hover{color:#1d1d1f}.sub-tab-switcher button.active{background:#fff;color:var(--color-primary);box-shadow:var(--shadow-md)}@media(max-width:480px){.sub-tab-switcher{width:100%}.sub-tab-switcher button{flex:1;padding:8px 12px;font-size:.8125rem}}.study-analysis .analysis-divider{height:1px;background:var(--color-gray-200);margin:20px 0}.weekly-calendar{background:var(--color-white);border-radius:20px;padding:12px;box-shadow:var(--shadow-xl);margin-bottom:20px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-title{display:flex;flex-direction:column;align-items:center;gap:8px}.calendar-title h2{color:var(--color-primary-darker);font-size:1.5rem;margin:0}.calendar-controls{display:flex;gap:10px;align-items:center}.nav-btn{background:var(--color-primary-darker);color:var(--color-white);border:none;border-radius:50%;width:40px;height:40px;font-size:1.2rem;cursor:pointer;transition:all .3s ease}.nav-btn:hover{background:var(--color-primary);transform:scale(1.1)}.today-btn{background:var(--color-primary);color:var(--color-white);border:none;border-radius:8px;padding:6px 12px;font-size:.85rem;cursor:pointer;transition:all .3s ease}.today-btn:hover{background:var(--color-primary-dark);transform:translateY(-2px)}.view-mode-btn{background:var(--color-white);color:var(--color-primary-darker);border:2px solid var(--color-primary-darker);border-radius:8px;padding:6px 12px;font-size:.85rem;cursor:pointer;transition:all .3s ease;font-weight:600}.view-mode-btn:hover{background:var(--color-primary-bg-light);transform:translateY(-2px)}.weekly-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-bottom:25px}.monthly-grid{margin-bottom:25px}.month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:5px}.weekday-header{background:var(--color-primary-darker);color:var(--color-white);text-align:center;padding:10px;font-weight:600;font-size:.9rem;border-radius:8px}.month-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.month-day{background:#f5f7fa;border-radius:8px;padding:8px;min-height:80px;display:flex;flex-direction:column;transition:all .3s ease;position:relative;border:2px solid transparent}.month-day:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.month-day.today{border-color:var(--color-primary)}.month-day.other-month{opacity:.4}.month-day-date{font-size:1.1rem;font-weight:700;color:#333;margin-bottom:5px}.month-day-tasks{flex:1;display:flex;flex-direction:column}.task-indicators{display:flex;flex-wrap:wrap;gap:4px}.task-dot{font-size:1.2rem;opacity:1;transition:all .2s ease;cursor:pointer}.task-dot:hover{transform:scale(1.2)}.task-dot.completed{opacity:.5;filter:grayscale(50%)}.more-tasks{font-size:.75rem;color:#667eea;font-weight:600;background:#fff;border-radius:4px;padding:2px 6px;margin-top:2px}.calendar-day{background:#f5f7fa;border-radius:12px;padding:12px;min-height:150px;display:flex;flex-direction:column;transition:all .3s ease;border:2px solid transparent}.calendar-day:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.calendar-day.today{border-color:var(--color-primary)}.day-header{text-align:center;margin-bottom:10px;padding-bottom:8px;border-bottom:2px solid rgba(0,0,0,.1)}.day-name{font-size:.85rem;font-weight:600;color:#667eea}.day-date{font-size:1.2rem;font-weight:700;color:#333}.day-tasks{flex:1;display:flex;flex-direction:column;gap:8px}.calendar-task{border-radius:10px;padding:6px;font-size:.85rem;position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid rgba(0,0,0,.08);border-left:3px solid var(--subject-color, #3b82f6);box-shadow:var(--shadow-sm)}.calendar-task.clickable-row,.unscheduled-task.clickable-row{cursor:pointer}.calendar-task:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.calendar-task.completed{opacity:.5}.calendar-task.completed .task-title-small{text-decoration:line-through;color:#86868b}.task-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.task-checkbox-small{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.task-emoji{font-size:1rem}.task-title-small{font-size:.8rem;color:#1d1d1f;line-height:1.3;word-break:break-word}.task-title-small.clickable{cursor:pointer;transition:all .2s ease}.task-title-small.clickable:hover{color:var(--color-primary);font-weight:600}.delete-btn-small{position:absolute;top:4px;right:4px;background:none;border:none;color:#f87171;font-size:1.2rem;cursor:pointer;opacity:.6;transition:all .2s ease;padding:0;width:20px;height:20px;line-height:1}.delete-btn-small:hover{opacity:1;transform:scale(1.2)}.no-tasks{text-align:center;color:#999;font-size:.85rem;padding:20px 5px}.unscheduled-tasks{background:#f5f7fa;border-radius:12px;padding:20px}.unscheduled-tasks h3{color:#667eea;font-size:1.2rem;margin-bottom:15px}.unscheduled-list{display:flex;flex-direction:column;gap:10px}.unscheduled-task{background:var(--color-white);border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px;box-shadow:var(--shadow-md)}.unscheduled-task.completed{opacity:.6}.unscheduled-task.completed .task-title-small{text-decoration:line-through}@media(max-width:1024px){.month-day{min-height:70px;padding:6px}.month-day-date,.task-dot{font-size:1rem}}@media(max-width:768px){.weekly-calendar{padding:6px;border-radius:15px}.calendar-header{gap:10px}.calendar-title h2{font-size:1.3rem}.nav-btn{width:35px;height:35px;font-size:1rem}.weekly-grid{gap:8px}.calendar-day{padding:10px;min-height:120px}.day-name{font-size:.75rem}.day-date{font-size:1rem}.month-day{min-height:60px;padding:5px}.month-day-date{font-size:.9rem}.weekday-header{padding:8px;font-size:.8rem}.task-dot{font-size:.9rem}}@media(max-width:480px){.weekly-calendar{padding:4px}.calendar-title h2{font-size:1.1rem}.weekly-grid{grid-template-columns:1fr;gap:10px}.calendar-day{min-height:auto}.day-header{display:flex;justify-content:space-between;align-items:center}.month-day{min-height:50px;padding:4px}.month-day-date{font-size:.85rem}.weekday-header{padding:6px;font-size:.7rem}.task-dot{font-size:.8rem}.more-tasks{font-size:.65rem;padding:1px 4px}.unscheduled-tasks{padding:15px}.unscheduled-tasks h3{font-size:1.1rem}.calendar-lesson{padding:3px 6px;font-size:.7rem}.lesson-name{font-size:.65rem}}.calendar-lesson{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:8px;background:color-mix(in srgb,var(--subject-color, #3b82f6) 4%,white);border:1px solid color-mix(in srgb,var(--subject-color, #3b82f6) 25%,var(--color-gray-200));margin-bottom:4px;font-size:.8rem}.calendar-lesson.session-unlinked{background:transparent;border-style:dashed;border-color:color-mix(in srgb,var(--subject-color, #3b82f6) 20%,var(--color-gray-200));opacity:.55}.calendar-lesson.session-unlinked .lesson-name{color:var(--color-gray-500, #6b7280);font-weight:500}.session-pending-badge{font-size:.6rem;color:var(--color-gray-400, #9ca3af);background:var(--color-gray-100, #f3f4f6);border-radius:4px;padding:1px 4px;margin-left:auto;white-space:nowrap}.calendar-lesson.clickable-row{cursor:pointer;transition:all .15s}.calendar-lesson.clickable-row:hover{background:color-mix(in srgb,var(--subject-color, #3b82f6) 18%,white);box-shadow:0 2px 6px color-mix(in srgb,var(--subject-color, #3b82f6) 20%,transparent)}.lesson-dot.clickable{cursor:pointer}.lesson-icon{font-size:.85rem;flex-shrink:0}.lesson-name{color:color-mix(in srgb,var(--subject-color, #3b82f6) 80%,black);font-weight:600;font-size:.75rem;line-height:1.3;word-break:break-word}.lesson-indicators{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:2px}.lesson-dot{font-size:1.2rem;position:relative}.lesson-dot.session-dot-unlinked{opacity:.35;filter:grayscale(.6)}.lesson-dot.session-dot-unlinked:after{display:none}.lesson-dot:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:12px;height:2px;background:#3b82f6;border-radius:1px}.calendar-test{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:8px;background:#fef3c7;border:1px solid #f59e0b;margin-bottom:4px;font-size:.8rem;font-weight:600;color:#92400e}.calendar-test.test-completed{background:#f0fdf4;border-color:#86efac;color:#166534}.calendar-test.clickable-row{cursor:pointer;transition:all .15s}.calendar-test.clickable-row:hover{background:#fde68a;box-shadow:0 2px 6px #f59e0b40}.calendar-test.test-completed.clickable-row:hover{background:#dcfce7;box-shadow:0 2px 6px #22c55e40}.test-dot.clickable{cursor:pointer;transition:all .2s ease}.test-dot.clickable:hover{transform:scale(1.2)}.lesson-dot.clickable{cursor:pointer;transition:all .2s ease}.lesson-dot.clickable:hover{transform:scale(1.2)}.test-icon{font-size:.85rem}.test-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test-badge{font-size:.65rem;background:#f59e0b;color:#fff;padding:1px 6px;border-radius:10px;flex-shrink:0}.test-indicators{display:flex;gap:2px;flex-wrap:wrap;margin-bottom:2px}.test-dot{font-size:1.2rem;position:relative}.test-dot:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:12px;height:2px;background:#f59e0b;border-radius:1px}.test-dot.completed:after{background:#22c55e}@media(max-width:768px){.calendar-test{padding:3px 6px;font-size:.7rem}.test-name{font-size:.65rem}}.task-item{border-radius:10px;padding:6px 10px;display:flex;align-items:center;gap:8px;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%;position:relative;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-shadow:var(--shadow-sm)}.task-item.clickable-row{cursor:pointer}.task-item:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.task-item.completed{opacity:.5}.task-item.completed .task-title{text-decoration:line-through;color:#86868b}.task-checkbox{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.subject-emoji{font-size:1rem;flex-shrink:0;line-height:1}.subject-badge{padding:2px 6px;border-radius:6px;font-size:.7rem;font-weight:600;flex-shrink:0;white-space:nowrap;letter-spacing:-.01em;background:#ffffffb3}.task-title{font-size:.875rem;font-weight:500;color:#1d1d1f;flex:1}.task-title.clickable{cursor:pointer}.task-title.clickable:hover{color:var(--color-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.task-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;margin-left:auto}.edit-btn{background:#0000000d;color:#64748b;border:none;border-radius:6px;width:26px;height:26px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);opacity:.7}.edit-btn:hover{opacity:1;transform:scale(1.05);background:#0000001a}.edit-btn:active{transform:scale(.95)}.delete-btn{background:#ff3b301a;border:none;font-size:1rem;cursor:pointer;padding:0;width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);opacity:.7}.delete-btn:hover{transform:scale(1.05);opacity:1;background:#ff3b3026}.delete-btn:active{transform:scale(.95)}.task-pdf-btn{background:#3b82f61a;border:none;border-radius:6px;width:26px;height:26px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;opacity:.7}.task-pdf-btn:hover{opacity:1;transform:scale(1.05);background:#3b82f633}.task-pdf-btn.active{opacity:1;background:#3b82f6;box-shadow:0 2px 6px #3b82f64d}.task-pdf-preview-panel{margin-top:6px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;background:#f8fafc}.task-pdf-preview-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff;border-bottom:1px solid #e2e8f0;gap:8px}.task-pdf-preview-title{font-size:.78rem;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.task-pdf-preview-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.task-pdf-fullscreen-btn{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;cursor:pointer;font-size:.95rem;font-weight:700;padding:3px 8px;border-radius:5px;transition:all .15s;line-height:1}.task-pdf-fullscreen-btn:hover{background:#dbeafe}.task-pdf-newtab-btn{font-size:.7rem;color:#3b82f6;text-decoration:none;font-weight:600;padding:3px 8px;border-radius:5px;border:1px solid #bfdbfe;background:#eff6ff;white-space:nowrap}.task-pdf-newtab-btn:hover{background:#dbeafe}.task-pdf-close-btn{background:none;border:none;font-size:1.2rem;color:#94a3b8;cursor:pointer;padding:2px 5px;line-height:1}.task-pdf-close-btn:hover{color:#475569}.task-pdf-preview-container{width:100%;height:450px;background:#e2e8f0}.task-pdf-preview-iframe{width:100%;height:100%;border:none}.task-pdf-fullscreen-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000bf;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.task-pdf-fullscreen-container{width:100%;max-width:1200px;height:100%;background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 60px #0006}.task-pdf-fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#1e293b;gap:12px;flex-shrink:0}.task-pdf-fullscreen-title{font-size:1rem;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.task-pdf-fullscreen-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.task-pdf-fullscreen-newtab{font-size:.75rem;color:#fff;text-decoration:none;font-weight:600;padding:4px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.3);background:#ffffff26;white-space:nowrap}.task-pdf-fullscreen-newtab:hover{background:#ffffff40}.task-pdf-fullscreen-close{background:none;border:none;font-size:1.8rem;color:#ffffffb3;cursor:pointer;padding:2px 8px;border-radius:6px;line-height:1}.task-pdf-fullscreen-close:hover{background:#ffffff26;color:#fff}.task-pdf-fullscreen-iframe{flex:1;width:100%;border:none;background:#e2e8f0}.task-detail-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:var(--z-modal-nested, 450);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.task-detail-modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.task-detail-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:3px solid var(--color-primary);background:#fafbfc;flex-shrink:0}.task-detail-header-left{display:flex;align-items:center;gap:10px;min-width:0}.task-detail-emoji{font-size:1.4rem;flex-shrink:0}.task-detail-title{margin:0;font-size:1rem;font-weight:700;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-detail-close{background:none;border:none;font-size:1.6rem;color:#94a3b8;cursor:pointer;padding:4px 8px;border-radius:8px;line-height:1;flex-shrink:0}.task-detail-close:hover{background:#f1f5f9;color:#475569}.task-detail-body{overflow-y:auto;padding:16px 20px;flex:1}.task-detail-meta{margin-bottom:16px}.task-detail-meta-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.task-detail-badge{padding:3px 10px;border-radius:8px;font-size:.78rem;font-weight:600}.task-detail-type-badge{padding:3px 10px;border-radius:8px;font-size:.75rem;font-weight:500;background:#f1f5f9;color:#475569}.task-detail-priority{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff}.task-detail-priority.priority-A{background:#ef4444}.task-detail-priority.priority-B{background:#f59e0b}.task-detail-priority.priority-C{background:#3b82f6}.task-detail-done-badge{padding:2px 8px;border-radius:8px;font-size:.72rem;font-weight:600;background:#dcfce7;color:#16a34a}.task-detail-field{display:flex;align-items:flex-start;gap:10px;padding:6px 0}.task-detail-label{font-size:.78rem;font-weight:600;color:#64748b;min-width:40px;flex-shrink:0}.task-detail-value{font-size:.82rem;color:#1e293b}.task-detail-units{display:flex;flex-wrap:wrap;gap:4px}.task-detail-unit-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:.78rem;font-weight:700;background:color-mix(in srgb,var(--subject-color, #3b82f6) 10%,white);color:color-mix(in srgb,var(--subject-color, #3b82f6) 85%,black);border:1px solid color-mix(in srgb,var(--subject-color, #3b82f6) 30%,var(--color-gray-200))}.task-detail-pdf-section{margin-bottom:16px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.task-detail-pdf-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.78rem;font-weight:600;color:#1e293b}.task-detail-pdf-link{font-size:.72rem;color:#3b82f6;text-decoration:none;font-weight:600}.task-detail-pdf-link:hover{text-decoration:underline}.task-detail-pdf-embed{width:100%;height:300px;background:#e2e8f0}.task-detail-pdf-embed iframe{width:100%;height:100%;border:none}.task-detail-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid #e2e8f0;background:#fafbfc;flex-shrink:0}.task-detail-edit-btn{padding:6px 16px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e40af;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.task-detail-edit-btn:hover{background:#dbeafe}.task-detail-eval-row{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--color-gray-50);border-radius:8px;margin-bottom:12px}.task-detail-eval-label{font-size:12px;color:var(--color-gray-500);font-weight:600;flex-shrink:0}.task-detail-eval-btn{padding:3px 10px;border:2px solid transparent;border-radius:16px;background:#fff;font-size:16px;cursor:pointer;transition:all .15s}.task-detail-eval-btn.current{border-color:var(--eval-color, var(--color-primary));background:#f0f9ff;box-shadow:0 0 0 2px color-mix(in srgb,var(--eval-color, var(--color-primary)) 25%,transparent)}.task-detail-eval-btn:hover:not(:disabled){border-color:var(--eval-color, var(--color-primary));background:#f0f9ff}.task-detail-eval-btn:disabled{opacity:.4;cursor:not-allowed}.task-detail-eval-saving{font-size:11px;color:var(--color-gray-400);margin-left:4px}.task-detail-close-btn{padding:6px 16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#64748b;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.task-detail-close-btn:hover{background:#f1f5f9}@media(max-width:768px){.task-item{padding:8px 12px;gap:8px;border-radius:10px}.task-checkbox{width:18px;height:18px}.task-title{font-size:.875rem}.subject-emoji{font-size:1rem}.subject-badge{padding:3px 8px;font-size:.7rem;border-radius:6px}.edit-btn{width:28px;height:28px;font-size:.85rem;border-radius:7px}.delete-btn{font-size:1rem;width:28px;height:28px;border-radius:7px}}@media(max-width:480px){.task-pdf-preview-container{height:300px}.task-pdf-preview-title{font-size:.7rem}.task-item{padding:7px 10px;gap:7px;border-radius:10px}.task-checkbox{width:18px;height:18px}.task-title{font-size:.8125rem}.subject-emoji{font-size:.95rem}.subject-badge{font-size:.6875rem;padding:3px 7px;border-radius:6px}.task-actions{gap:5px}.edit-btn{width:26px;height:26px;font-size:.8rem;border-radius:6px}.delete-btn{font-size:1rem;width:26px;height:26px;border-radius:6px}.task-detail-overlay{padding:8px}.task-detail-modal{max-height:95vh;border-radius:14px}.task-detail-header,.task-detail-body{padding:12px 16px}.task-detail-pdf-embed{height:220px}.task-detail-footer{padding:10px 16px}}.common-empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:var(--radius-lg);color:var(--color-gray-400);font-size:var(--text-lg);box-shadow:var(--shadow-sm)}.common-empty-icon{display:block;font-size:2rem;margin-bottom:8px}.common-empty-message{margin:0}.common-empty-hint{display:block;margin-top:12px;font-size:var(--text-sm);color:var(--color-gray-300)}.enhanced-task-list{display:flex;flex-direction:column;gap:24px}.task-statistics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:12px}.stat-item{background:#fff;border-radius:12px;padding:16px;text-align:center;box-shadow:var(--shadow-sm);transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid rgba(0,0,0,.04)}.stat-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-label{font-size:.875rem;color:#86868b;margin-bottom:8px;font-weight:600;letter-spacing:-.01em}.stat-value{font-size:1.75rem;font-weight:700;color:#1d1d1f;letter-spacing:-.02em}.subject-filter{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.subject-filter-btn{padding:12px;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:8px;justify-content:center;font-weight:600;font-size:.875rem;color:#1d1d1f;letter-spacing:-.01em;box-shadow:var(--shadow-sm)}.subject-filter-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:#0000001f}.subject-filter-btn.active{border-color:var(--color-primary);background:#007aff14;color:var(--color-primary);box-shadow:0 2px 8px #007aff26}.subject-filter-emoji{font-size:1.25rem;line-height:1}.task-controls{display:flex;gap:16px;align-items:center;background:#fff;border-radius:16px;padding:16px 20px;box-shadow:var(--shadow-sm);flex-wrap:wrap;border:1px solid rgba(0,0,0,.04)}.search-box{flex:1;min-width:200px;position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:14px;font-size:1.125rem;pointer-events:none;color:#86868b}.search-input{width:100%;padding:11px 40px;border:1px solid rgba(0,0,0,.1);border-radius:10px;font-size:.9375rem;transition:all .2s cubic-bezier(.4,0,.2,1);background:var(--color-gray-100);color:#1d1d1f}.search-input::placeholder{color:#86868b}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #007aff1a;background:var(--color-white)}.clear-search{position:absolute;right:10px;background:#00000014;border:none;border-radius:50%;width:22px;height:22px;cursor:pointer;font-size:1.125rem;line-height:1;transition:all .2s cubic-bezier(.4,0,.2,1);color:#86868b;display:flex;align-items:center;justify-content:center}.clear-search:hover{background:#00000026;color:#1d1d1f;transform:scale(1.05)}.sort-box{display:flex;align-items:center;gap:10px}.sort-box label{font-size:.875rem;font-weight:600;color:#86868b;white-space:nowrap;letter-spacing:-.01em}.sort-select{padding:9px 14px;border:1px solid rgba(0,0,0,.1);border-radius:10px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);background:var(--color-gray-100);color:#1d1d1f}.sort-select:hover{border-color:var(--color-primary);background:var(--color-white)}.sort-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #007aff1a;background:var(--color-white)}.bulk-mode-btn{padding:10px 18px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;color:#1d1d1f;letter-spacing:-.01em}.bulk-mode-btn:hover{border-color:var(--color-primary);background:#007aff14;transform:scale(1.02)}.bulk-mode-btn.active{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary);box-shadow:0 2px 8px #007aff40}.bulk-actions-bar{display:flex;justify-content:space-between;align-items:center;background:#007aff0f;border:1px solid rgba(0,122,255,.2);border-radius:16px;padding:16px 20px;gap:16px;flex-wrap:wrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bulk-select{display:flex;align-items:center;gap:12px}.bulk-select input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-primary)}.bulk-select label{font-size:.9375rem;font-weight:600;color:#1d1d1f;cursor:pointer;letter-spacing:-.01em}.bulk-buttons{display:flex;gap:10px}.bulk-complete-btn,.bulk-delete-btn{padding:10px 18px;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);white-space:nowrap;letter-spacing:-.01em}.bulk-complete-btn{background:var(--color-success);color:var(--color-white);box-shadow:0 2px 8px #34c75940}.bulk-complete-btn:hover{background:#30b350;transform:translateY(-1px);box-shadow:0 4px 12px #34c75959}.bulk-complete-btn:active{transform:scale(.98)}.bulk-delete-btn{background:var(--color-danger);color:var(--color-white);box-shadow:0 2px 8px #ff3b3040}.bulk-delete-btn:hover{background:#e8342a;transform:translateY(-1px);box-shadow:0 4px 12px #ff3b3059}.bulk-delete-btn:active{transform:scale(.98)}.search-results-info{background:#ffcc001a;border-left:3px solid #FFCC00;padding:14px 20px;border-radius:12px;font-size:.9375rem;font-weight:600;color:#1d1d1f;letter-spacing:-.01em}.task-list{display:flex;flex-direction:column;gap:8px}.task-item-wrapper{display:flex;align-items:center;gap:12px;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.task-item-wrapper.bulk-mode{background:var(--color-gray-100);padding:10px;border-radius:14px}.task-checkbox{width:22px;height:22px;cursor:pointer;flex-shrink:0;accent-color:var(--color-primary)}.no-results{background:#fff;border-radius:20px;padding:60px 20px;text-align:center;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}.no-results p{font-size:1.25rem;color:#86868b;margin-bottom:20px;letter-spacing:-.01em}.reset-search-btn{padding:12px 24px;background:var(--color-primary);color:var(--color-white);border:none;border-radius:12px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:-.01em;box-shadow:0 2px 8px #007aff40}.reset-search-btn:hover{background:#0071e3;transform:translateY(-1px);box-shadow:0 4px 16px #007aff59}.reset-search-btn:active{transform:scale(.98)}.empty-state{background:#fff;border-radius:20px;padding:12px;text-align:center;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}.empty-state p:first-child{font-size:1.5rem;color:var(--color-primary);margin-bottom:12px;letter-spacing:-.02em}.empty-state p:last-child{font-size:1.0625rem;color:#86868b;letter-spacing:-.01em}@media(max-width:1024px){.task-statistics{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.task-statistics{grid-template-columns:repeat(2,1fr);gap:12px}.stat-item{padding:15px}.stat-value{font-size:1.6rem}.task-controls{padding:12px 15px;gap:10px}.search-box{width:100%;min-width:unset}.sort-box{width:100%}.sort-select{flex:1}.bulk-mode-btn{width:100%}.bulk-actions-bar{padding:12px 15px}.bulk-buttons{width:100%;flex-direction:column}.bulk-complete-btn,.bulk-delete-btn{width:100%}.task-list{gap:12px}.empty-state{padding:6px;border-radius:15px}.empty-state p:first-child{font-size:1.3rem}.empty-state p:last-child{font-size:1rem}}@media(max-width:480px){.task-statistics{grid-template-columns:repeat(4,1fr);gap:10px}.stat-item{padding:12px}.stat-value{font-size:1.4rem}.stat-label{font-size:.8rem}.subject-filter{grid-template-columns:repeat(4,1fr);gap:8px}.subject-filter-btn{padding:10px;font-size:.85rem;gap:6px}.subject-filter-emoji{font-size:1.1rem}.task-controls{padding:10px;gap:8px}.search-input{font-size:.9rem;padding:8px 35px}.sort-box label{font-size:.85rem}.sort-select{font-size:.85rem;padding:6px 10px}.bulk-mode-btn{font-size:.85rem;padding:8px 16px}.bulk-actions-bar{padding:10px}.bulk-select label{font-size:.85rem}.bulk-complete-btn,.bulk-delete-btn{font-size:.85rem;padding:8px 16px}.search-results-info{font-size:.85rem;padding:10px 15px}.task-list{gap:10px}.task-item-wrapper.bulk-mode{padding:6px}.task-checkbox{width:20px;height:20px}.empty-state{padding:4px}.empty-state p:first-child{font-size:1.2rem}.empty-state p:last-child{font-size:.9rem}.no-results p{font-size:1.1rem}.reset-search-btn{font-size:.9rem;padding:10px 20px}}.master-unit-dashboard{padding:16px}.mud-loading{text-align:center;padding:60px;color:var(--color-gray-500);font-size:16px}.mud-coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--color-gray-400)}.mud-coming-soon-icon{font-size:48px;margin-bottom:12px}.mud-coming-soon-title{font-size:20px;font-weight:700;color:var(--color-gray-500);margin-bottom:8px}.mud-coming-soon-msg{font-size:14px;color:var(--color-gray-400)}.mud-summary{display:flex;align-items:center;gap:20px;padding:16px 20px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:10px;margin-bottom:16px;flex-wrap:wrap}.mud-summary-card{text-align:center;min-width:80px}.mud-summary-value{font-size:28px;font-weight:700;color:var(--color-gray-800);line-height:1}.mud-summary-total{font-size:16px;color:var(--color-gray-400)}.mud-summary-label{font-size:11px;color:var(--color-gray-500);margin-top:4px}.mud-level-bar{display:flex;flex-wrap:wrap;gap:10px;flex:1}.mud-level-item{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--color-gray-700)}.mud-level-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.mud-category-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.mud-cat-btn{padding:5px 12px;border:1px solid var(--color-gray-300);border-radius:20px;background:var(--color-white);font-size:13px;cursor:pointer;color:var(--color-gray-700);transition:all .15s}.mud-cat-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.mud-cat-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.mud-categories{display:flex;flex-direction:column;gap:24px}.mud-category-section{background:color-mix(in srgb,var(--subject-color, #94a3b8) 4%,white);border:1px solid color-mix(in srgb,var(--subject-color, #94a3b8) 25%,var(--color-gray-200));border-radius:10px;padding:16px}.mud-cat-title{font-size:15px;font-weight:700;color:var(--subject-color, var(--color-gray-800));margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid color-mix(in srgb,var(--subject-color, var(--color-gray-300)) 30%,var(--color-gray-100))}.mud-unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.mud-unit-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:2px solid var(--prof-color, var(--color-gray-300));border-radius:8px;background:var(--prof-bg, var(--color-white));cursor:pointer;transition:all .2s;text-align:center;position:relative}.mud-unit-cell:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.mud-unit-indicator{width:8px;height:8px;border-radius:50%;position:absolute;top:6px;right:6px}.mud-unit-name{font-size:12px;font-weight:600;color:var(--color-gray-800);line-height:1.3}.mud-unit-score{font-size:18px;font-weight:700;color:var(--color-gray-800)}.mud-unit-level{font-size:10px;font-weight:600}.mud-modal{background:var(--color-white);border-radius:12px;padding:24px;width:100%;max-width:400px;box-shadow:var(--shadow-xl)}.mud-modal h3{margin:0 0 6px;font-size:18px}.mud-modal-unit{font-size:20px;font-weight:700;color:#1d4ed8;margin:0 0 4px}.mud-modal-cat{font-size:13px;color:var(--color-gray-500);margin:0 0 20px}.mud-form{display:flex;flex-direction:column;gap:14px}.mud-form-group label{display:block;font-size:13px;font-weight:600;color:var(--color-gray-700);margin-bottom:6px}.mud-result-btns{display:flex;gap:10px}.mud-result-btn{flex:1;padding:10px;border:2px solid var(--color-gray-200);border-radius:8px;background:var(--color-white);font-size:15px;cursor:pointer;transition:all .2s}.mud-result-btn.correct.selected{background:#dcfce7;border-color:#16a34a;color:#15803d}.mud-result-btn.incorrect.selected{background:var(--color-danger-bg);border-color:var(--color-danger-dark);color:#b91c1c}.mud-result-btn:hover:not(.selected){border-color:var(--color-gray-400)}.mud-input{width:100%;padding:9px 12px;border:1px solid var(--color-gray-300);border-radius:6px;font-size:14px;box-sizing:border-box}.mud-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.mud-textarea{width:100%;padding:9px 12px;border:1px solid var(--color-gray-300);border-radius:6px;font-size:13px;resize:vertical;box-sizing:border-box;font-family:inherit}.mud-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.mud-modal-actions{display:flex;gap:10px;margin-top:20px}.mud-btn-cancel{flex:1;padding:11px;background:var(--color-white);color:var(--color-gray-500);border:1px solid var(--color-gray-300);border-radius:8px;font-size:14px;cursor:pointer}.mud-btn-cancel:hover:not(:disabled){background:var(--color-gray-100)}.mud-btn-save{flex:2;padding:11px;background:var(--color-primary);color:var(--color-white);border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.mud-btn-save:hover:not(:disabled){background:var(--color-primary-dark)}.mud-btn-save:disabled,.mud-btn-cancel:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.mud-unit-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.mud-summary{gap:12px}}.mud-drill-modal{max-width:480px;max-height:80vh;display:flex;flex-direction:column;overflow-y:auto}.mud-drill-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.mud-drill-header h3{margin:0 0 4px;font-size:20px}.mud-drill-cat{font-size:12px;color:var(--color-gray-500);margin:0 0 2px}.mud-drill-score{font-size:14px;font-weight:600;margin:0}.mud-drill-close{background:none;border:none;font-size:22px;color:var(--color-gray-400);cursor:pointer;padding:0;line-height:1}.mud-drill-practice{display:flex;align-items:center;gap:8px;padding:10px;background:var(--color-gray-50);border-radius:8px;margin-bottom:16px}.mud-drill-practice-label{font-size:12px;color:var(--color-gray-500);flex-shrink:0}.mud-drill-eval-btn{padding:4px 12px;border:2px solid transparent;border-radius:20px;background:var(--color-white);font-size:18px;cursor:pointer;transition:all .15s}.mud-drill-eval-btn.selected{border-color:var(--eval-color, var(--color-primary));background:#f0f9ff}.mud-drill-eval-btn:hover:not(.selected){background:var(--color-gray-100)}.mud-drill-save-btn{padding:6px 14px;background:var(--color-primary);color:var(--color-white);border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;margin-left:auto}.mud-drill-save-btn:hover:not(:disabled){background:var(--color-primary-dark)}.mud-drill-history{overflow-y:auto;flex:1}.mud-drill-history h4{font-size:14px;color:var(--color-gray-700);margin:0 0 10px}.mud-drill-loading,.mud-drill-empty{text-align:center;color:var(--color-gray-400);font-size:13px;padding:20px 0}.mud-drill-log-list{display:flex;flex-direction:column;gap:6px}.mud-drill-log-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--color-gray-50);border-radius:6px}.mud-log-emoji{font-size:18px;flex-shrink:0}.mud-log-info{flex:1;display:flex;flex-direction:column;gap:1px}.mud-log-source{font-size:12px;color:var(--color-gray-700)}.mud-log-score{font-size:11px;color:var(--color-gray-500)}.mud-log-date{font-size:11px;color:var(--color-gray-400);flex-shrink:0}.mud-log-delete{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:4px;color:var(--color-gray-400);font-size:14px;cursor:pointer;padding:0;transition:all .15s;opacity:0}.mud-drill-log-item:hover .mud-log-delete{opacity:1}.mud-log-delete:hover:not(:disabled){color:var(--color-danger-dark);background:#fef2f2;border-color:#fecaca}.mud-log-delete:disabled{opacity:.4;cursor:not-allowed}@media(hover:none){.mud-log-delete{opacity:1}}.mud-unit-counts{display:flex;gap:3px;justify-content:center;margin-top:1px}.mud-direct-count{font-size:9px;background:var(--color-primary-bg);color:#1d4ed8;padding:1px 4px;border-radius:4px;font-weight:700}.mud-indirect-count{font-size:9px;background:var(--color-gray-100);color:var(--color-gray-500);padding:1px 4px;border-radius:4px;font-weight:600}.mud-text-count{font-size:9px;background:#eff6ff;color:#1e40af;padding:1px 4px;border-radius:4px;font-weight:700}.mud-drill-texts{margin-top:12px;padding:12px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0}.mud-drill-texts h4{margin:0 0 8px;font-size:.85rem;color:#334155}.mud-drill-text-list{display:flex;flex-direction:column;gap:6px}.mud-drill-text-item-wrap{background:#fff;border-radius:8px;border:1px solid #e2e8f0;overflow:hidden}.mud-drill-text-item{display:flex;align-items:center;gap:8px;padding:6px 10px}.mud-drill-text-eval{display:flex;align-items:center;gap:4px;padding:4px 10px 6px;border-top:1px solid #f1f5f9}.mud-drill-text-eval-btn{padding:2px 8px;border:1px solid transparent;border-radius:12px;background:var(--color-gray-50);font-size:14px;cursor:pointer;transition:all .15s}.mud-drill-text-eval-btn:hover:not(:disabled){background:#f0f9ff;border-color:var(--eval-color, var(--color-primary))}.mud-drill-text-eval-btn.current{border-color:var(--eval-color, var(--color-primary));background:#f0f9ff;box-shadow:0 0 0 2px color-mix(in srgb,var(--eval-color, var(--color-primary)) 25%,transparent)}.mud-drill-text-eval-btn:disabled{opacity:.4;cursor:not-allowed}.mud-drill-text-eval-label{font-size:11px;color:var(--color-gray-400);flex-shrink:0}.mud-drill-text-eval-saving{font-size:11px;color:var(--color-gray-400);margin-left:4px}.mud-drill-text-current-eval{font-size:14px;flex-shrink:0}.mud-drill-text-no-eval{font-size:12px;color:var(--color-gray-300);flex-shrink:0}.mud-drill-text-item.clickable{cursor:pointer;transition:all .15s}.mud-drill-text-item-wrap:has(.mud-drill-text-item.clickable:hover){border-color:#93c5fd;box-shadow:0 1px 4px #3b82f626}.mud-drill-text-item.clickable:hover{background:#eff6ff}.mud-drill-text-arrow{margin-left:auto;font-size:1.2rem;color:#94a3b8;flex-shrink:0}.mud-drill-text-item.clickable:hover .mud-drill-text-arrow{color:#3b82f6}.mud-drill-text-icon{font-size:1rem;flex-shrink:0}.mud-drill-text-info{display:flex;flex-direction:column;gap:2px;min-width:0}.mud-drill-text-name{font-size:.8rem;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mud-drill-text-date{font-size:.7rem;color:#64748b}.mud-drill-reset{margin-top:16px;padding-top:12px;border-top:1px solid var(--color-gray-200);text-align:center}.mud-drill-reset-btn{padding:8px 20px;background:none;border:1px solid #cbd5e1;border-radius:6px;color:var(--color-gray-500);font-size:12px;cursor:pointer;transition:all .2s}.mud-drill-reset-btn:hover:not(:disabled){border-color:var(--color-danger-dark);color:var(--color-danger-dark);background:#fef2f2}.mud-drill-reset-btn:disabled{opacity:.4;cursor:not-allowed}.mud-cooccurring{margin:10px 0;padding:10px 12px;background:var(--color-gray-50);border-radius:8px;border:1px solid var(--color-gray-200)}.mud-cooccurring-label{font-size:11px;color:var(--color-gray-500);font-weight:600;display:block;margin-bottom:6px}.mud-cooccurring-tags{display:flex;flex-wrap:wrap;gap:6px}.mud-cooccurring-tag{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;background:#e0f2fe;color:#0369a1;border-radius:10px;font-size:12px;font-weight:500}.mud-cooccurring-count{font-size:10px;color:#0284c7;font-weight:700}.mud-drill-problems{margin:12px 0;padding:12px;background:#fef2f2;border-radius:10px;border:1px solid #fecaca}.mud-drill-problems h4{margin:0 0 8px;font-size:.85rem;color:#991b1b}.mud-drill-problem-list{display:flex;flex-direction:column;gap:6px}.mud-drill-problem-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#fff;border-radius:6px;border:1px solid #fecaca;flex-wrap:wrap}.mud-problem-number{font-size:.82rem;font-weight:600;color:var(--color-gray-800)}.mud-problem-source{font-size:.7rem;color:#6366f1;background:#eef2ff;padding:1px 6px;border-radius:4px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mud-problem-miss-type{font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:4px}.mud-problem-miss-type.miss-understanding{color:#dc2626;background:#fee2e2}.mud-problem-miss-type.miss-careless{color:#ca8a04;background:#fef9c3}.mud-problem-miss-type.miss-not_studied{color:#64748b;background:#f1f5f9}.mud-problem-review-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:10px}.mud-problem-correct-rate{font-size:.7rem;color:var(--color-gray-500);margin-left:auto}.pastpaper-view{padding:24px 0}.dashboard-header{margin-bottom:24px}.view-header{margin-bottom:30px}.header-title-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.view-header h2{color:var(--color-primary-darker);font-size:1.8rem;margin-bottom:10px}.view-description{color:var(--color-gray-500);font-size:.95rem}.add-pastpaper-btn{padding:12px 24px;background:linear-gradient(135deg,var(--color-primary-darker) 0%,var(--color-primary) 100%);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #1e40af4d;white-space:nowrap}.add-pastpaper-btn:hover{background:linear-gradient(135deg,#1e3a8a 0%,var(--color-primary-dark) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #1e40af66}.add-pastpaper-form{background:#fff;border-radius:12px;padding:12px;margin-bottom:30px;box-shadow:var(--shadow-md);border:2px solid #e0e7ff;max-width:100%;min-width:0;overflow:visible}.add-pastpaper-form h3{color:var(--color-primary-darker);margin-bottom:20px;font-size:1.2rem}.add-form-grid-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px;max-width:100%;min-width:0}.add-form-field{display:flex;flex-direction:column;gap:8px;min-width:0}.add-form-field>label{font-weight:600;color:var(--color-gray-800);font-size:.95rem}.add-form-field input{width:100%;padding:10px 12px;border:2px solid var(--color-gray-200);border-radius:8px;font-size:.95rem;box-sizing:border-box;transition:all .3s ease}.add-form-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.add-form-actions{display:flex;gap:10px;justify-content:flex-end}.add-form-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--color-gray-200)}.section-label{display:block;font-weight:600;color:var(--color-gray-800);font-size:.95rem;margin-bottom:12px}.file-upload-area{display:flex;align-items:center;gap:10px;margin-bottom:8px}.pdf-upload-btn{flex-shrink:0;padding:10px 16px;background:#4285f4;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.pdf-upload-btn:hover{background:#3367d6}.pdf-upload-btn:disabled{background:#93c5fd;cursor:not-allowed}.file-or-divider{color:#94a3b8;font-size:.85rem;flex-shrink:0}.file-url-input{flex:1;min-width:0;padding:10px 12px;border:2px solid var(--color-gray-200);border-radius:8px;font-size:.9rem;box-sizing:border-box;transition:all .3s ease}.file-url-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.file-url-preview{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-primary-bg-light);border-radius:8px;margin-bottom:8px}.file-url-preview a{flex:1;color:var(--color-primary-dark);font-size:.85rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-url-preview a:hover{text-decoration:underline}.clear-url-btn{flex-shrink:0;background:none;border:none;color:#94a3b8;font-size:1.2rem;cursor:pointer;padding:0 4px;line-height:1}.clear-url-btn:hover{color:var(--color-danger)}.drive-select-btn{display:flex;align-items:center;gap:6px;flex-shrink:0;padding:10px 16px;background:#fff;color:var(--color-gray-800);border:2px solid var(--color-gray-200);border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.drive-select-btn:hover{border-color:#4285f4;background:var(--color-primary-bg-light);transform:translateY(-1px);box-shadow:0 2px 8px #4285f433}.file-url-preview-icon{flex-shrink:0;font-size:1rem}.input-hint{display:block;color:var(--color-gray-500);font-size:.8rem;font-style:italic}@media(max-width:600px){.file-upload-area{flex-direction:column;align-items:stretch}.file-or-divider{text-align:center}}.subject-selector-inline{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.subject-btn,.pastpaper-subject-btn{padding:16px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;gap:10px;justify-content:center;font-weight:600;font-size:.9375rem;color:#1d1d1f;letter-spacing:-.01em;box-shadow:var(--shadow-sm)}.subject-btn:hover,.pastpaper-subject-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:#0000001f}.subject-emoji{font-size:1.25rem;line-height:1}.grade-selector-inline{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.grade-btn-small{padding:6px 14px;border:2px solid var(--color-gray-200);background:#fff;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .3s ease;color:var(--color-gray-600)}.grade-btn-small:hover{border-color:#cbd5e1;transform:translateY(-1px)}.grade-btn-small.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 8px #3b82f64d}.units-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;max-height:300px;overflow-y:auto;padding:15px;background:var(--color-gray-50);border-radius:8px;border:1px solid var(--color-gray-200)}.unit-checkbox-label{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid var(--color-gray-200)}.unit-checkbox-label:hover{background:var(--color-primary-bg-light);border-color:var(--color-primary)}.unit-checkbox-label.custom{background:var(--color-warning-bg);border-color:#fde047}.unit-checkbox-label.custom:hover{background:#fef08a}.unit-checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.unit-checkbox-label span{font-size:.9rem;color:var(--color-gray-800)}.selected-units-summary{margin-top:10px;padding:8px 12px;background:var(--color-primary-bg);border-radius:6px;font-size:.9rem;color:var(--color-primary-darker);font-weight:600}.view-filters{background:#fff;border-radius:20px;padding:12px;margin-bottom:24px;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}.selection-area{display:flex;align-items:center;justify-content:center;gap:12px;margin:0;padding:0;flex-wrap:wrap}.selection-area label{font-weight:600;color:#1d1d1f;font-size:.9375rem;letter-spacing:-.01em;margin:0;padding:0}.subject-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px;margin-bottom:0;padding:0}.filter-group{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:0;flex-wrap:wrap}.filter-group label{font-weight:600;color:#1d1d1f;font-size:.9375rem;letter-spacing:-.01em}.mode-btn{padding:10px 18px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:#fff;font-size:.9375rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);color:#86868b;letter-spacing:-.01em}.mode-btn:hover{border-color:var(--color-primary);background:#007aff14;transform:scale(1.02)}.mode-btn.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #007aff40}.subject-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:40px}.pastpaper-content{display:flex;flex-direction:column;gap:30px}.no-data{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;color:#94a3b8;font-size:1.1rem;box-shadow:var(--shadow-sm)}.pastpaper-group{background:#fff;border-radius:12px;padding:12px;box-shadow:var(--shadow-md)}.group-title{color:var(--color-primary-darker);font-size:1.4rem;margin-bottom:20px;display:flex;align-items:center;gap:10px}.task-count{font-size:.9rem;color:var(--color-gray-500);font-weight:400}.task-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:12px}.pastpaper-card{background:#fefce8;border:2px solid #fde047;border-radius:8px;padding:12px;transition:all .3s ease;max-width:100%;min-width:0;overflow:hidden}.pastpaper-card.editing{overflow:visible}.pastpaper-card:hover{box-shadow:0 4px 12px #fde0474d;transform:translateY(-2px)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--color-warning-bg)}.task-title{flex:1}.card-header-actions{display:flex;align-items:center;gap:3px}.file-link-btn{background:transparent;border:none;cursor:pointer;font-size:.9rem;padding:2px 4px;border-radius:4px;transition:all .3s ease;opacity:.6;text-decoration:none;display:inline-flex;align-items:center}.file-link-btn:hover{background:var(--color-warning-bg);opacity:1;transform:scale(1.1)}.pdf-view-btn{background:var(--color-primary-bg-light);border:1px solid var(--color-primary-bg);color:var(--color-primary-darker);cursor:pointer;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:6px;transition:all .2s ease;white-space:nowrap}.pdf-view-btn:hover{background:var(--color-primary-bg);border-color:#93c5fd}.pdf-view-btn.active{background:var(--color-primary-darker);color:#fff;border-color:var(--color-primary-darker)}.pdf-preview-panel{margin-top:10px;border:1px solid var(--color-gray-200);border-radius:12px;overflow:hidden;background:var(--color-gray-50)}.pdf-preview-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#fff;border-bottom:1px solid var(--color-gray-200);gap:8px}.pdf-preview-title{font-size:.82rem;font-weight:600;color:var(--color-gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pdf-preview-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.pdf-open-newtab-btn{font-size:.75rem;color:var(--color-primary);text-decoration:none;font-weight:600;padding:4px 10px;border-radius:6px;border:1px solid var(--color-primary-bg);background:var(--color-primary-bg-light);transition:all .15s;white-space:nowrap}.pdf-open-newtab-btn:hover{background:var(--color-primary-bg);border-color:#93c5fd}.pdf-preview-close{background:none;border:none;font-size:1.3rem;color:#94a3b8;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:all .15s}.pdf-preview-close:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.pdf-preview-container{width:100%;height:500px;background:var(--color-gray-200)}.pdf-preview-iframe{width:100%;height:100%;border:none}.pdf-fullscreen-btn{background:var(--color-primary-bg-light);border:1px solid var(--color-primary-bg);color:var(--color-primary-darker);cursor:pointer;font-size:1rem;font-weight:700;padding:4px 10px;border-radius:6px;transition:all .15s;line-height:1}.pdf-fullscreen-btn:hover{background:var(--color-primary-bg);border-color:#93c5fd}.pdf-fullscreen-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000bf;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.pdf-fullscreen-container{width:100%;max-width:1200px;height:100%;background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.pdf-fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--color-gray-800);gap:12px;flex-shrink:0}.pdf-fullscreen-title{font-size:1rem;font-weight:700;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.pdf-fullscreen-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.pdf-fullscreen-actions .pdf-open-newtab-btn{color:#fff;background:#ffffff26;border-color:#ffffff4d}.pdf-fullscreen-actions .pdf-open-newtab-btn:hover{background:#ffffff40;border-color:#ffffff80}.pdf-fullscreen-close{background:none;border:none;font-size:1.8rem;color:#ffffffb3;cursor:pointer;padding:2px 8px;border-radius:6px;line-height:1;transition:all .15s}.pdf-fullscreen-close:hover{background:#ffffff26;color:#fff}.pdf-fullscreen-iframe{flex:1;width:100%;border:none;background:var(--color-gray-200)}.edit-pastpaper-btn{background:transparent;border:none;cursor:pointer;font-size:.9rem;padding:2px 4px;border-radius:4px;transition:all .3s ease;opacity:.6}.edit-pastpaper-btn:hover{background:var(--color-primary-bg);opacity:1;transform:scale(1.1)}.delete-pastpaper-btn{background:transparent;border:none;cursor:pointer;font-size:.9rem;padding:2px 4px;border-radius:4px;transition:all .3s ease;opacity:.6}.delete-pastpaper-btn:hover{background:var(--color-danger-bg);opacity:1;transform:scale(1.1)}.task-name{display:block;font-weight:700;color:var(--color-gray-800);font-size:.95rem;margin-bottom:0;line-height:1.3}.task-details{display:block;font-size:.85rem;color:var(--color-gray-500)}.attempt-count{background:#fbbf24;color:#fff;padding:2px 6px;border-radius:8px;font-size:.65rem;font-weight:600;white-space:nowrap}.related-units{margin-top:3px;margin-bottom:3px}.related-units-label{display:inline;font-size:.7rem;font-weight:600;color:var(--color-gray-500);margin-right:4px}.related-units-tags{display:inline-flex;flex-wrap:wrap;gap:3px}.task-unit-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.unit-tag{display:inline-block;background:var(--color-primary-bg);color:var(--color-primary-darker);padding:1px 7px;border-radius:10px;font-size:.65rem;font-weight:500;border:1px solid var(--color-primary-bg)}.unit-tags-selector{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow-y:auto;padding:10px 12px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:8px}.unit-tag-category{display:flex;flex-direction:column;gap:6px}.unit-tag-cat-label{font-size:11px;font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em}.unit-tag-list{display:flex;flex-wrap:wrap;gap:5px}.unit-tag-btn{padding:3px 10px;border:1px solid var(--color-gray-300);border-radius:12px;background:#fff;color:var(--color-gray-700);font-size:12px;cursor:pointer;transition:background .1s,border-color .1s,color .1s}.unit-tag-btn:hover{background:var(--color-primary-bg-light);border-color:#93c5fd;color:#1d4ed8}.unit-tag-btn.selected{background:var(--color-primary-bg);border-color:var(--color-primary-dark);color:#1d4ed8;font-weight:600}.unit-selected-count{margin-left:8px;font-size:12px;font-weight:600;color:var(--color-primary-dark);background:var(--color-primary-bg);padding:1px 7px;border-radius:10px}.unit-tags-empty{color:var(--color-gray-400);font-size:13px;margin:0;padding:8px 0}.last-session{display:flex;align-items:center;gap:4px;padding:3px 6px;background:#fff;border-radius:3px;margin-bottom:3px;font-size:.7rem}.toggle-sessions-btn{width:100%;padding:6px 8px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;color:#0369a1;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-bottom:3px;text-align:left}.toggle-sessions-btn:hover{background:#e0f2fe;border-color:#7dd3fc;transform:translateY(-1px)}.session-label{font-weight:600;color:var(--color-gray-500)}.session-date{color:var(--color-gray-800)}.session-score{margin-left:auto;background:var(--color-success);color:#fff;padding:1px 5px;border-radius:3px;font-weight:600;font-size:.65rem}.sessions-list{display:flex;flex-direction:column;gap:3px;margin-bottom:4px}.session-item{display:flex;align-items:center;gap:4px;padding:3px 6px;background:#fff;border-radius:3px;font-size:.65rem}.session-attempt{font-weight:600;color:var(--color-primary-darker);min-width:35px}.session-time{color:var(--color-gray-500)}.session-form{background:#fff;padding:20px;border-radius:10px;margin-top:15px;border:2px solid #e0e7ff;max-width:100%;min-width:0;overflow:hidden}.session-form h4{color:var(--color-primary-darker);margin-bottom:15px;font-size:1.1rem}.form-grid{display:grid;grid-template-columns:1fr;gap:15px;margin-bottom:15px;max-width:100%;min-width:0}.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.form-field input,.form-field textarea{padding:10px 12px;border:2px solid var(--color-gray-200);border-radius:8px;font-size:.95rem;transition:all .3s ease;width:100%;box-sizing:border-box;min-width:0}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.score-inputs{display:flex;align-items:center;gap:8px}.score-inputs input{flex:1}.score-inputs span{color:var(--color-gray-500);font-weight:600}.form-actions{display:flex;gap:10px}.btn-primary,.btn-secondary{flex:1;padding:12px 20px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.95rem}.btn-primary{background:linear-gradient(135deg,var(--color-primary-darker) 0%,var(--color-primary) 100%);color:#fff;box-shadow:0 2px 8px #1e40af4d}.btn-primary:hover{background:linear-gradient(135deg,#1e3a8a 0%,var(--color-primary-dark) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #1e40af66}.btn-secondary{background:#fff;color:var(--color-gray-500);border:2px solid var(--color-gray-200)}.btn-secondary:hover{background:var(--color-gray-50);border-color:#cbd5e1}.add-session-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--color-success) 0%,#34d399 100%);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #10b9814d}.add-session-btn:hover{background:linear-gradient(135deg,var(--color-success-dark) 0%,var(--color-success) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.edit-form-container{padding:12px;max-width:100%;min-width:0;overflow:visible}.edit-form-container h4{color:var(--color-primary-darker);margin-bottom:12px;font-size:1rem}.edit-form-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-warning-bg)}.edit-form-grid-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;max-width:100%;min-width:0}.edit-form-field{display:flex;flex-direction:column;gap:6px;min-width:0}.edit-form-field>label{font-weight:600;color:var(--color-gray-800);font-size:.85rem}.edit-form-field input{width:100%;padding:8px 10px;border:2px solid var(--color-gray-200);border-radius:6px;font-size:.9rem;box-sizing:border-box;transition:all .3s ease}.edit-form-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.edit-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}@media(max-width:1024px){.subject-buttons,.subject-selector-inline{grid-template-columns:repeat(2,1fr)}}@media(max-width:2000px){.dashboard-header{margin-bottom:16px}.view-filters{padding:6px}.filter-group{flex-wrap:wrap}.mode-btn{padding:8px 16px;font-size:.9rem}.subject-btn,.pastpaper-subject-btn{padding:12px;font-size:.9rem}.subject-grid{gap:10px}.header-title-row{flex-direction:column;align-items:flex-start}.add-pastpaper-btn{width:100%}.add-form-grid-two-cols,.edit-form-grid-two-cols{grid-template-columns:1fr}.units-checkbox-grid{grid-template-columns:1fr;max-height:250px}.view-header h2{font-size:1.5rem}.task-cards,.form-grid{grid-template-columns:1fr}.card-header{flex-direction:column;gap:10px}.card-header-actions{width:100%;justify-content:space-between}.attempt-count{align-self:flex-start}.pastpaper-card{padding:6px}.card-header{margin-bottom:4px;padding-bottom:4px}.task-name{font-size:.85rem;line-height:1.2}.pdf-preview-container{height:350px}.pdf-preview-header{padding:8px 12px}.pdf-preview-title{font-size:.75rem}.pdf-view-btn{font-size:.7rem;padding:3px 8px}.edit-form-container{padding:8px}.edit-form-container h4{margin-bottom:8px;font-size:.9rem}.edit-form-section{margin-top:8px;padding-top:8px}.edit-form-grid-two-cols{gap:8px;margin-bottom:8px}.edit-form-field{gap:4px}.edit-form-field>label{font-size:.75rem}.edit-form-field input{padding:6px 8px;border-radius:4px;font-size:.8rem}.edit-form-actions{gap:6px;margin-top:8px}}@media(max-width:480px){.dashboard-header{margin-bottom:12px}.selection-area{gap:8px}.subject-grid{grid-template-columns:repeat(4,1fr);gap:8px}.view-filters{padding:4px}.filter-group{gap:8px}.mode-btn{padding:6px 12px;font-size:.85rem}.subject-btn,.pastpaper-subject-btn{padding:8px!important;font-size:.85rem!important}.subject-selector-inline,.subject-buttons{grid-template-columns:repeat(4,1fr);gap:10px}.view-header h2{font-size:1.3rem}.group-title{font-size:1.2rem}.session-form{padding:15px}.form-actions{flex-direction:column}}.problem-log-section{margin-top:12px;border-top:1px dashed var(--color-gray-200);padding-top:10px}.toggle-problems-btn{background:none;border:none;color:var(--color-gray-600);font-size:.85rem;font-weight:600;cursor:pointer;padding:4px 0;display:flex;align-items:center;gap:6px}.toggle-problems-btn:hover{color:var(--color-primary-darker)}.problem-count-badge{background:var(--color-primary-bg);color:var(--color-primary-darker);font-size:.75rem;padding:1px 7px;border-radius:12px;font-weight:600}.problem-log-body{margin-top:10px;padding:12px;background:var(--color-gray-50);border-radius:10px;display:flex;flex-direction:column;gap:10px}.no-problems-msg{color:#94a3b8;font-size:.82rem;margin:0}.problem-list{display:flex;flex-direction:column;gap:6px}.problem-item{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid var(--color-gray-200)}.problem-item.correct{border-left:3px solid #16a34a}.problem-item.incorrect{border-left:3px solid var(--color-danger-dark)}.problem-item-left{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}.problem-item-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.problem-correctness{font-size:1rem;font-weight:700}.problem-item.correct .problem-correctness{color:#16a34a}.problem-item.incorrect .problem-correctness{color:var(--color-danger-dark)}.problem-number{font-size:.85rem;font-weight:600;color:var(--color-gray-800)}.problem-difficulty{font-size:.75rem;color:var(--color-warning)}.problem-miss-type{font-size:.72rem;background:var(--color-danger-bg);color:var(--color-danger-dark);padding:1px 6px;border-radius:6px}.problem-units{display:flex;gap:4px;flex-wrap:wrap}.problem-thumbnail{width:60px;height:45px;object-fit:cover;border-radius:4px;border:1px solid var(--color-gray-200);cursor:pointer}.problem-image-link{display:inline-flex}.review-status-select{font-size:.75rem;padding:2px 6px;border-radius:8px;border:1px solid var(--color-gray-200);cursor:pointer;font-weight:600}.problem-delete-btn{background:none;border:none;color:#94a3b8;font-size:1rem;cursor:pointer;padding:0 2px;line-height:1}.problem-delete-btn:hover{color:var(--color-danger-dark)}.add-problem-btn{align-self:flex-start;background:none;border:1px dashed #94a3b8;color:var(--color-gray-500);font-size:.82rem;padding:5px 12px;border-radius:8px;cursor:pointer;transition:all .15s}.add-problem-btn:hover{background:var(--color-gray-100);border-color:var(--color-primary-darker);color:var(--color-primary-darker)}.problem-form{background:#fff;border:1px solid var(--color-gray-200);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:12px}.problem-form h4{margin:0;font-size:.9rem;color:var(--color-gray-800)}.problem-form-field{display:flex;flex-direction:column;gap:5px}.problem-form-field label{font-size:.8rem;font-weight:600;color:var(--color-gray-600)}.problem-form-field input[type=text]{padding:7px 10px;border:1px solid var(--color-gray-200);border-radius:6px;font-size:.85rem}.correctness-toggle{display:flex;gap:8px}.correct-btn,.incorrect-btn{flex:1;padding:6px;border-radius:8px;border:2px solid var(--color-gray-200);background:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.correct-btn.active{border-color:#16a34a;background:#dcfce7;color:#16a34a}.incorrect-btn.active{border-color:var(--color-danger-dark);background:var(--color-danger-bg);color:var(--color-danger-dark)}.miss-type-btns{display:flex;gap:6px}.miss-type-btn{flex:1;padding:5px;border-radius:7px;border:1px solid var(--color-gray-200);background:#fff;font-size:.78rem;cursor:pointer;transition:all .15s}.miss-type-btn.active{border-color:var(--color-danger-dark);background:var(--color-danger-bg);color:var(--color-danger-dark);font-weight:600}.difficulty-btns{display:flex;gap:6px}.difficulty-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-gray-200);background:#fff;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .15s}.difficulty-btn.active{border-color:var(--color-warning);background:var(--color-warning-bg);color:#b45309}.crop-open-btn{padding:6px 14px;background:var(--color-primary-bg-light);color:var(--color-primary-darker);border:1px solid var(--color-primary-bg);border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s}.crop-open-btn:hover{background:var(--color-primary-bg)}.image-preview-row{display:flex;align-items:center;gap:10px}.problem-image-preview{max-width:160px;max-height:100px;object-fit:cover;border-radius:6px;border:1px solid var(--color-gray-200)}.problem-form-actions{display:flex;gap:8px;justify-content:flex-end}.pp-unit-count{font-size:12px;font-weight:500;color:var(--color-gray-500);margin-left:8px}.testscore-view{padding:24px 0}.testscore-view .dashboard-header{background:#fff!important;border-radius:20px!important;padding:12px!important;margin-bottom:24px!important;box-shadow:var(--shadow-sm)!important;border:1px solid rgba(0,0,0,.04)!important}.testscore-view .selection-area{display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;margin:0!important;padding:0!important;flex-wrap:wrap!important}.testscore-view .selection-area label{font-weight:600!important;color:#1d1d1f!important;font-size:.9375rem!important;letter-spacing:-.01em!important;margin:0!important;padding:0!important}.grade-selector{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:0;flex-wrap:wrap}.grade-selector label{font-weight:600;color:#1d1d1f;font-size:.9375rem;letter-spacing:-.01em}.testscore-view .grade-btn{padding:10px 18px!important;border:1px solid rgba(0,0,0,.1)!important;border-radius:10px!important;background:#fff!important;font-size:.9375rem!important;font-weight:600!important;cursor:pointer!important;transition:all var(--transition-normal)!important;color:#86868b!important;letter-spacing:-.01em!important}.testscore-view .grade-btn:hover{border-color:var(--color-primary)!important;background:#007aff14!important;transform:scale(1.02)!important}.testscore-view .grade-btn.active{border-color:var(--color-primary)!important;background:var(--color-primary)!important;color:#fff!important;box-shadow:0 2px 8px #007aff40!important}.add-score-btn{width:100%!important;padding:12px!important;background:var(--color-primary)!important;color:#fff!important;border:none!important;border-radius:12px!important;font-weight:600!important;cursor:pointer!important;transition:all var(--transition-normal)!important;font-size:.9375rem!important;letter-spacing:-.01em!important;box-shadow:0 2px 8px #007aff40!important;margin-top:20px!important}.add-score-btn:hover{background:#0071e3!important;transform:translateY(-1px)!important;box-shadow:0 4px 12px #007aff59!important}.add-score-btn:active{transform:scale(.98)!important}.scores-content{display:flex;flex-direction:column;gap:20px}.no-data{text-align:center;padding:60px 20px;background:#fff;border-radius:16px;color:#94a3b8;font-size:.95rem;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}.no-data small{display:block;margin-top:12px;font-size:.9rem;color:#cbd5e1}.scores-list{display:flex;flex-direction:column;gap:12px}.score-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-sm);transition:all var(--transition-slow);overflow:hidden;max-width:100%}.score-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:#0000001a}.card-header{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px!important;margin-bottom:6px!important;padding-bottom:6px!important;border-bottom:1px solid var(--color-gray-100)!important;text-align:left!important}.card-header-left{display:flex;align-items:baseline;gap:6px;min-width:0;flex-shrink:1}.card-header-center{flex:1;display:flex;justify-content:center;flex-shrink:0}.card-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.test-name{color:#1d1d1f;font-size:.9rem;margin:0;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.test-date{color:var(--color-gray-500);font-size:.75rem;white-space:nowrap;flex-shrink:0}.card-deviation-badge{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:#fff;padding:2px 10px;border-radius:12px;font-size:.75rem;font-weight:700;white-space:nowrap;flex-shrink:0}.edit-btn,.delete-btn{padding:4px 8px;border:none;background:#fff;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all var(--transition-normal);border:1px solid rgba(0,0,0,.1);min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center}.edit-btn:hover{background:#007aff14;border-color:var(--color-primary);transform:scale(1.05)}.delete-btn:hover{background:#ff3b3014;border-color:var(--color-danger);transform:scale(1.05)}.edit-btn:active,.delete-btn:active{transform:scale(.95)}.summary-scores{display:flex;gap:15px;margin-bottom:15px}.summary-item{flex:1;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;padding:15px;border-radius:10px;text-align:center}.summary-item.two-subjects{background:linear-gradient(135deg,var(--color-success) 0%,#34d399 100%)}.summary-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:8px;opacity:.9}.summary-deviation{display:block;font-size:1.5rem;font-weight:700;margin-bottom:5px}.summary-rank{display:block;font-size:.85rem;opacity:.9}.subject-scores{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:15px}.subject-item{background:var(--color-gray-50);padding:12px;border-radius:8px;display:flex;flex-direction:column;gap:5px}.subject-label{font-weight:600;color:var(--color-gray-800);font-size:.9rem}.subject-score{color:var(--color-gray-600);font-size:.95rem}.percentage{margin-left:8px;color:var(--color-gray-500);font-size:.85rem}.subject-deviation{color:var(--color-primary);font-weight:600;font-size:.9rem}.additional-info{background:var(--color-warning-bg);padding:12px;border-radius:8px;margin-top:12px}.course,.class{display:inline-block;margin-right:15px;color:#92400e;font-size:.9rem;font-weight:600}.notes{margin:8px 0 0;color:#78350f;font-size:.9rem;line-height:1.5}.form-container{background:#fff;border-radius:20px;padding:12px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl)}.form-container h3{color:var(--color-primary-darker);font-size:1.5rem;margin-bottom:25px}.form-section{margin-bottom:25px;padding-bottom:25px;border-bottom:2px solid var(--color-gray-100)}.form-section:last-of-type{border-bottom:none}.form-section h4{color:var(--color-gray-800);font-size:1.1rem;margin-bottom:15px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px;margin-bottom:15px}@media(max-width:640px){.form-row{grid-template-columns:1fr}}.form-row:last-child{margin-bottom:0}.subject-row{grid-template-columns:1fr;gap:10px}@media(min-width:640px){.subject-row{grid-template-columns:3fr 2fr}}.summary-row{grid-template-columns:1fr}@media(min-width:768px){.summary-row{grid-template-columns:repeat(3,1fr);gap:12px}}@media(min-width:1024px){.summary-row{gap:15px}}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1 / -1}.form-field label{font-weight:600;color:var(--color-gray-800);font-size:.9rem}.form-field input,.form-field select,.form-field textarea{padding:11px 14px;border:1px solid rgba(0,0,0,.1);border-radius:10px;font-size:.9375rem;transition:all var(--transition-normal);background:var(--color-gray-100);color:#1d1d1f}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #007aff1a;background:#fff}.score-input-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.score-input-group input{flex:1;min-width:70px;max-width:180px}.score-input-group span{color:var(--color-gray-500);font-weight:600;flex-shrink:0}.grades-table-wrapper{overflow-x:auto;margin-bottom:20px;-webkit-overflow-scrolling:touch}.grades-table{width:100%;min-width:600px;border-collapse:collapse;white-space:nowrap}.grades-table thead th{font-size:.8rem;font-weight:600;color:var(--color-gray-500);padding:6px 8px;text-align:center;border-bottom:2px solid var(--color-gray-100)}.grades-table thead tr:first-child th[colspan="4"]{border-bottom:1px solid var(--color-gray-200)}.grades-table thead tr:first-child th[colspan="3"]{border-bottom:1px solid var(--color-gray-200);background:#007aff0a}.grades-table thead tr:nth-child(2) th:nth-child(n+5){background:#007aff0a}.grades-table tbody td:nth-child(n+6){background:#007aff05}.grades-table thead th:first-child{text-align:left;min-width:90px}.grades-table tbody td,.grades-table tbody th{padding:5px 6px;vertical-align:middle}.grades-table-label{font-size:.85rem;font-weight:600;color:var(--color-gray-800);text-align:left;white-space:nowrap}.grades-table tbody td input{width:100%;min-width:50px;max-width:80px;padding:6px 8px;border:1px solid rgba(0,0,0,.1);border-radius:8px;font-size:.85rem;background:var(--color-gray-100);color:#1d1d1f;text-align:center;transition:border-color .2s}.grades-table tbody td input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #007aff1a;background:#fff}.grades-table tbody td input[type=number]::-webkit-inner-spin-button,.grades-table tbody td input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grades-table tbody td input[type=number]{-moz-appearance:textfield}.grades-table tbody td .score-input-group{display:flex;align-items:center;gap:3px}.grades-table tbody td .score-input-group input{flex:1;min-width:40px;max-width:65px}.grades-table tbody td .score-input-group span{color:var(--color-gray-400);font-size:.85rem;flex-shrink:0}.ocr-section{text-align:center;padding-bottom:15px!important;margin-bottom:15px!important}.btn-ocr{padding:10px 24px;border:2px dashed var(--color-primary);border-radius:10px;background:#007aff0d;color:var(--color-primary);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-ocr:hover:not(:disabled){background:#007aff1f}.btn-ocr:disabled{opacity:.6;cursor:wait}.gemini-usage-alert{margin-top:8px;padding:8px 14px;border-radius:8px;font-size:.8rem;font-weight:600;text-align:center}.gemini-usage-alert.warning{background:#fffbeb;color:#b45309;border:1px solid #fcd34d}.gemini-usage-alert.over-limit{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.gemini-usage-info{margin-top:6px;font-size:.75rem;color:#9ca3af;text-align:center}.grades-table-separator td{height:8px;border-bottom:1px solid var(--color-gray-100)}.scorecard-table{margin-bottom:4px}.scorecard-table td{font-size:.8rem;color:var(--color-gray-800);text-align:center;padding:3px 6px}.scorecard-table tbody tr:not(:last-child){border-bottom:1px solid var(--color-gray-100)}@media(max-width:640px){.grades-table-label{font-size:.75rem;min-width:70px}.grades-table tbody td input{min-width:36px;max-width:60px;padding:5px 4px;font-size:.8rem}.grades-table tbody td .score-input-group input{min-width:32px;max-width:50px}}.form-actions{display:flex;gap:10px;margin-top:25px}.btn-primary,.btn-secondary{flex:1;padding:14px 24px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:1rem}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #007aff40}.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #007aff59}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:#fff;color:var(--color-gray-500);border:1px solid rgba(0,0,0,.1)}.btn-secondary:hover{background:var(--color-gray-100);border-color:#0003}@media(max-width:2000px){.testscore-view .dashboard-header{padding:6px!important}.testscore-view .selection-area{flex-wrap:wrap!important}.testscore-view .grade-btn{padding:8px 16px!important;font-size:.9rem!important}}@media(max-width:768px){.testscore-view{padding:15px}.view-header h2{font-size:1.5rem}.view-filters{flex-direction:column;gap:15px}.summary-scores{flex-direction:column}.subject-scores,.form-row,.subject-row{grid-template-columns:1fr}.form-container{padding:20px}}@media(max-width:480px){.testscore-view .dashboard-header{padding:4px!important}.testscore-view .selection-area{gap:8px!important}.testscore-view .grade-btn{padding:6px 12px!important;font-size:.85rem!important}.view-header h2{font-size:1.3rem}.add-score-btn{width:100%}.form-actions{flex-direction:column}.score-input-group{flex-wrap:wrap}}.score-card-wrapper{display:flex;flex-direction:column;gap:0}.btn-open-detail{width:100%;padding:10px 16px;background:#f0f7ff;color:var(--color-primary);border:1px solid var(--color-primary-bg);border-top:none;border-radius:0 0 16px 16px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s;text-align:center}.btn-open-detail:hover{background:var(--color-primary-bg);color:#0057cc}.detail-header{display:flex;align-items:center;gap:16px;background:#fff;border-radius:16px;padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow-md);border:1px solid rgba(0,0,0,.06);flex-wrap:wrap}.back-btn{padding:8px 16px;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;color:var(--color-gray-500);white-space:nowrap;transition:all .2s;flex-shrink:0}.back-btn:hover{background:var(--color-gray-100);border-color:#0003}.detail-title-area{flex:1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.detail-test-name{font-size:1.1rem;font-weight:700;color:#1d1d1f;margin:0}.detail-test-date{font-size:.875rem;color:var(--color-gray-500)}.detail-deviation-badge{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:#fff;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700}.detail-header-actions{flex-shrink:0}.btn-edit-score{padding:8px 16px;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;color:var(--color-gray-600);transition:all .2s}.btn-edit-score:hover{background:var(--color-gray-100)}.section-card{background:#fff;border-radius:16px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow-md);border:1px solid rgba(0,0,0,.06)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.section-title{font-size:1rem;font-weight:700;color:var(--color-gray-800);margin:0;display:flex;align-items:center;gap:8px}.btn-add-problem{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-add-problem:hover{background:#0071e3;transform:translateY(-1px)}.empty-problems{text-align:center;padding:32px 20px;color:#94a3b8;font-size:.9rem;background:var(--color-gray-50);border-radius:12px}.problem-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.problem-table{width:100%;border-collapse:collapse;font-size:.875rem}.problem-table th{text-align:left;padding:8px 12px;font-size:.75rem;font-weight:700;color:#94a3b8;border-bottom:2px solid var(--color-gray-100);white-space:nowrap}.problem-table td{padding:10px 12px;border-bottom:1px solid var(--color-gray-100);vertical-align:middle}.problem-row{transition:background var(--transition-fast)}.problem-row:hover{background:var(--color-gray-50)}.wrong-row{background:#fee2e24d}.wrong-row:hover{background:#fee2e280}.cell-num{font-weight:700;color:var(--color-gray-800);white-space:nowrap}.subject-chip{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:700}.subject-算数{background:var(--color-primary-bg);color:#1d4ed8}.subject-国語{background:#fce7f3;color:#9d174d}.subject-理科{background:var(--color-success-bg);color:#065f46}.subject-社会{background:var(--color-warning-bg);color:#92400e}.cell-units{max-width:200px}.unit-tag{display:inline-block;background:var(--color-gray-100);color:var(--color-gray-600);padding:2px 8px;border-radius:10px;font-size:.75rem;margin:2px;white-space:nowrap}.no-unit,.no-link{color:#cbd5e1;font-size:.875rem}.correct-rate-badge{display:inline-block;padding:3px 8px;border-radius:10px;font-size:.8rem;font-weight:700;white-space:nowrap}.correct-mark{font-size:1.1rem;font-weight:700;color:#16a34a}.wrong-mark{font-size:1.1rem;font-weight:700;color:var(--color-danger-dark)}.status-select{padding:4px 8px;border-radius:8px;border:1px solid rgba(0,0,0,.1);font-size:.78rem;font-weight:600;cursor:pointer;outline:none}.sapix-text-link{display:inline-block;color:var(--color-primary);text-decoration:none;font-size:.78rem;padding:2px 6px;border-radius:6px;background:#f0f7ff;border:1px solid var(--color-primary-bg);transition:all var(--transition-fast);white-space:nowrap;margin:2px}.sapix-text-link:hover{background:var(--color-primary-bg);border-color:#93c5fd}.btn-delete-problem{padding:4px 8px;background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;cursor:pointer;color:#94a3b8;font-size:1rem;line-height:1;transition:all var(--transition-fast)}.btn-delete-problem:hover{background:var(--color-danger-bg);border-color:#fca5a5;color:var(--color-danger-dark)}.problem-form-container{max-width:600px!important}.correct-radio-group{display:flex;gap:10px;flex-wrap:wrap}.radio-btn{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:10px;border:2px solid rgba(0,0,0,.1);cursor:pointer;font-weight:600;font-size:.9rem;transition:all var(--transition-fast);background:#fff}.radio-btn input[type=radio]{display:none}.radio-correct.active{background:var(--color-success-bg);border-color:#16a34a;color:#16a34a}.radio-wrong.active{background:var(--color-danger-bg);border-color:var(--color-danger-dark);color:var(--color-danger-dark)}.unit-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;max-height:240px;overflow-y:auto;padding:12px;background:var(--color-gray-50);border-radius:10px;border:1px solid rgba(0,0,0,.08)}.unit-checkbox-label{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;cursor:pointer;font-size:.8rem;color:var(--color-gray-600);border:1px solid transparent;transition:all var(--transition-fast)}.unit-checkbox-label:hover{background:#fff;border-color:#0000001a}.unit-checkbox-label.checked{background:var(--color-primary-bg-light);border-color:var(--color-primary-bg);color:#1d4ed8;font-weight:600}.unit-checkbox-label input[type=checkbox]{width:14px;height:14px;flex-shrink:0}.test-selector-header{background:#fff;border-radius:16px;padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-md);border:1px solid rgba(0,0,0,.06)}.test-selector-title{font-size:1.05rem;font-weight:700;color:var(--color-gray-800);margin:0 0 6px}.test-selector-desc{font-size:.875rem;color:#94a3b8;margin:0}.test-select-list{display:flex;flex-direction:column;gap:8px}.test-select-item-row{display:flex;align-items:center;gap:4px}.test-select-item{display:flex;align-items:center;gap:12px;flex:1;min-width:0;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:14px 18px;cursor:pointer;text-align:left;transition:all .18s;box-shadow:0 1px 4px #0000000a}.test-select-item:hover{border-color:var(--color-primary);box-shadow:0 4px 14px #007aff1f;transform:translateY(-1px)}.test-select-info{flex:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.test-select-name{font-size:.9375rem;font-weight:700;color:var(--color-gray-800);white-space:nowrap}.test-select-date{font-size:.8rem;color:var(--color-gray-500);white-space:nowrap}.test-select-grade{font-size:.78rem;color:#94a3b8;white-space:nowrap}.test-select-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;flex-shrink:0}.badge-deviation{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:#fff;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap}.badge-problems{background:var(--color-gray-100);color:var(--color-gray-600);padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.test-select-arrow{font-size:1.4rem;color:#cbd5e1;flex-shrink:0;line-height:1}@media(max-width:640px){.test-select-item{flex-wrap:wrap;gap:8px}.test-select-badges{width:100%}.test-select-arrow{display:none}}@media(max-width:640px){.detail-header{flex-direction:column;align-items:flex-start;gap:10px}}.miss-type-btns{display:flex;gap:8px;flex-wrap:wrap}.miss-type-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;border:2px solid var(--color-gray-200);border-radius:10px;background:#fff;cursor:pointer;transition:all var(--transition-fast);min-width:90px}.miss-type-btn:hover{border-color:var(--color-gray-400);background:var(--color-gray-50)}.miss-type-btn.selected.miss-understanding{border-color:var(--color-danger-dark);background:var(--color-danger-bg)}.miss-type-btn.selected.miss-careless{border-color:#ca8a04;background:#fef9c3}.miss-type-btn.selected.miss-not-studied{border-color:var(--color-gray-500);background:var(--color-gray-100)}.miss-type-btn.selected{border-color:var(--color-primary);background:var(--color-primary-bg-light)}.miss-type-icon{font-size:18px}.miss-type-label{font-size:12px;font-weight:700;color:var(--color-gray-800)}.miss-type-desc{font-size:10px;color:var(--color-gray-500)}.wrong-cell{display:flex;flex-direction:column;align-items:center;gap:3px}.miss-badge{font-size:10px;font-weight:700;padding:1px 5px;border-radius:4px;white-space:nowrap}.miss-understanding{background:var(--color-danger-bg);color:var(--color-danger-dark)}.miss-careless{background:#fef9c3;color:#a16207}.miss-not-studied{background:var(--color-gray-100);color:var(--color-gray-600)}.miss-high-accuracy{font-size:13px;cursor:default}.problem-add-btns{display:flex;gap:8px;align-items:center}.btn-pdf-crop{padding:6px 14px;background:#fff;border:1px solid var(--color-gray-300);border-radius:8px;font-size:12px;font-weight:600;color:var(--color-gray-700);cursor:pointer;white-space:nowrap}.btn-pdf-crop:hover{background:var(--color-primary-bg-light);border-color:var(--color-primary);color:var(--color-primary-dark)}.cell-num{display:flex;flex-direction:column;align-items:center;gap:3px}.problem-img-thumb-link{display:block}.problem-img-thumb{width:40px;height:28px;object-fit:cover;border-radius:3px;border:1px solid var(--color-gray-200);cursor:zoom-in}.problem-img-thumb:hover{border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633}.problem-form-image-preview{display:flex;align-items:flex-start;gap:10px;padding:10px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:8px}.problem-form-image-preview img{max-width:100%;max-height:160px;border-radius:6px;object-fit:contain;flex:1}.btn-remove-image{padding:4px 10px;font-size:11px;font-weight:600;background:#fff;border:1px solid #fca5a5;border-radius:6px;color:var(--color-danger-dark);cursor:pointer;white-space:nowrap}.btn-remove-image:hover{background:var(--color-danger-bg)}.subject-pdf-bar{padding:10px 16px;background:#f0f9ff;border-bottom:1px solid #bae6fd;font-size:13px}.subject-pdf-bar-label{display:block;color:#0369a1;font-weight:600;margin-bottom:8px;font-size:12px}.subject-pdf-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}@media(min-width:640px){.subject-pdf-slots{grid-template-columns:repeat(4,1fr)}}.subject-pdf-slot{background:#fff;border:1px solid #bae6fd;border-radius:8px;padding:6px 10px;display:flex;flex-direction:column;gap:4px}.subject-pdf-slot-name{font-size:11px;font-weight:700;color:#0369a1}.subject-pdf-slot-linked{display:flex;align-items:center;gap:4px;min-width:0}.subject-pdf-slot-filename{font-size:11px;color:#1f2937;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subject-pdf-slot-buttons{display:flex;gap:4px}.pdf-attach-add{background:none;border:1px dashed #0ea5e9;border-radius:6px;color:#0ea5e9;font-size:11px;font-weight:600;padding:3px 8px;cursor:pointer}.pdf-attach-add:hover{background:#e0f2fe}.pdf-attach-drive{background:none;border:1px solid #93c5fd;border-radius:6px;color:#2563eb;font-size:11px;font-weight:600;padding:3px 8px;cursor:pointer}.pdf-attach-drive:hover{background:#eff6ff}.pdf-attach-change{background:none;border:1px solid #93c5fd;border-radius:6px;color:#2563eb;font-size:11px;padding:2px 8px;cursor:pointer;white-space:nowrap}.pdf-attach-change:hover{background:#eff6ff}.pdf-attach-remove{background:none;border:none;color:#94a3b8;font-size:14px;cursor:pointer;padding:2px 4px;line-height:1}.pdf-attach-remove:hover{color:#dc2626}.test-selector-header .header-title-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.testscore-view .add-pastpaper-btn{padding:10px 20px;background:linear-gradient(135deg,var(--color-primary-darker) 0%,var(--color-primary) 100%);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #1e40af4d;white-space:nowrap;font-size:.9rem}.testscore-view .add-pastpaper-btn:hover{background:linear-gradient(135deg,#1e3a8a 0%,var(--color-primary-dark) 100%);transform:translateY(-2px);box-shadow:0 4px 12px #1e40af66}.testscore-view .add-pastpaper-form{background:#fff;border-radius:12px;padding:12px;margin-bottom:20px;box-shadow:var(--shadow-md);border:2px solid #e0e7ff}.testscore-view .add-pastpaper-form h3{color:var(--color-primary-darker);margin-bottom:20px;font-size:1.2rem}.testscore-view .add-form-grid-two-cols{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:16px}.testscore-view .add-form-field{display:flex;flex-direction:column;gap:8px;min-width:0}.testscore-view .add-form-field label{font-weight:600;color:var(--color-gray-800);font-size:.95rem}.testscore-view .add-form-field input{width:100%;padding:10px 12px;border:2px solid var(--color-gray-200);border-radius:8px;font-size:.95rem;box-sizing:border-box;transition:all var(--transition-slow)}.testscore-view .add-form-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.testscore-view .add-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.testscore-view .add-form-section .section-label{display:block;font-weight:600;color:var(--color-gray-800);font-size:.95rem;margin-bottom:12px}.pdf-cropper-subject-tabs{display:flex;gap:0;background:var(--color-gray-800);padding:6px 12px 0;flex-shrink:0}.pdf-cropper-subject-tab{padding:8px 18px;border:none;border-radius:8px 8px 0 0;font-size:13px;font-weight:600;cursor:pointer;background:var(--color-gray-700);color:#94a3b8;transition:all .15s}.pdf-cropper-subject-tab:hover:not(:disabled){background:var(--color-gray-600);color:var(--color-gray-200)}.pdf-cropper-subject-tab.active{background:#0ea5e9;color:#fff}.pdf-cropper-subject-tab.no-pdf{opacity:.4;cursor:not-allowed}.pdf-picker-overlay{position:fixed;inset:0;background:#00000080;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;padding:20px}.pdf-picker-modal{background:#fff;border-radius:12px;width:100%;max-width:520px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003;overflow:hidden}.pdf-picker-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--color-gray-200);font-size:14px;font-weight:700;color:var(--color-gray-800)}.pdf-picker-header button{background:none;border:none;font-size:16px;color:var(--color-gray-500);cursor:pointer;width:28px;height:28px}.pdf-picker-header button:hover{color:#1f2937}.pdf-picker-empty{padding:32px 18px;text-align:center;color:#9ca3af;font-size:13px;line-height:1.7}.pdf-picker-list{list-style:none;margin:0;padding:8px;overflow-y:auto}.pdf-picker-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;border:2px solid transparent}.pdf-picker-item:hover{background:#f8fafc;border-color:#e2e8f0}.pdf-picker-item.selected{background:#eff6ff;border-color:#3b82f6}.pdf-picker-type-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:#f1f5f9;color:#475569;white-space:nowrap;flex-shrink:0}.pdf-picker-filename{flex:1;font-size:13px;font-weight:500;color:#1f2937;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-picker-meta{font-size:11px;color:#6b7280;white-space:nowrap}.test-section-header{font-size:.8rem;font-weight:700;color:var(--color-gray-500, #64748b);margin:20px 0 8px 4px;letter-spacing:.02em}.badge-scheduled{background:#fef3c7;color:#92400e;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap}.badge-countdown{background:#f0fdf4;color:#166534;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-overdue{background:#fef2f2;color:#991b1b;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;white-space:nowrap}.badge-range{background:#f0f7ff;color:#1d4ed8;padding:3px 10px;border-radius:20px;font-size:.7rem;font-weight:600;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.sapix-range-section{margin-top:16px}.sapix-range-subject-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.sapix-range-subject-label{font-size:.85rem;font-weight:700;color:#475569;min-width:36px;padding-top:5px;flex-shrink:0}.sapix-code-chips-wrap{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}.sapix-code-chip{display:inline-flex;align-items:center;gap:4px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:3px 8px;font-size:.78rem;font-weight:600;color:#1e40af}.sapix-code-chip .chip-name{color:#6b7280;font-weight:400;font-size:.72rem}.sapix-code-chip .chip-remove{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.85rem;padding:0 2px;line-height:1}.sapix-code-chip .chip-remove:hover{color:#dc2626}.sapix-code-chip-readonly{cursor:default}.sapix-code-input{width:100px;padding:4px 8px;border:1px dashed #94a3b8;border-radius:6px;font-size:.8rem;outline:none}.sapix-code-input:focus{border-color:#3b82f6;border-style:solid}.range-problems-open-btn{width:100%;padding:12px 16px;font-size:.9rem;font-weight:600;border:2px dashed #c7d2fe;border-radius:12px;background:#eef2ff;color:#4f46e5;cursor:pointer;margin-bottom:16px;transition:all .15s}.range-problems-open-btn:hover{background:#e0e7ff;border-color:#a5b4fc}.sapix-range-display{padding:12px 16px;background:#fafbff;border:1px solid #e0e7ff;border-radius:12px;margin-bottom:16px}.sapix-range-display-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:0}.sapix-range-display-title{font-size:.85rem;font-weight:700;color:#6366f1}.sapix-range-display-body{margin-top:10px;display:flex;flex-direction:column;gap:8px}.sapix-range-display-row{display:flex;align-items:flex-start;gap:8px}.btn-mark-completed{display:block;width:100%;padding:14px;background:linear-gradient(135deg,#059669,#10b981);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:700;cursor:pointer;margin:16px 0;box-shadow:0 2px 8px #0596694d;transition:all .2s}.btn-mark-completed:hover{transform:translateY(-1px);box-shadow:0 4px 12px #05966966}.mode-toggle-link{display:block;width:100%;text-align:center;margin-top:8px;padding:6px;background:none;border:none;color:#6366f1;font-size:.8rem;cursor:pointer}.mode-toggle-link:hover{text-decoration:underline}.btn-edit-schedule{padding:6px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1d4ed8;font-size:.85rem;font-weight:600;cursor:pointer;margin-left:auto;flex-shrink:0}.btn-edit-schedule:hover{background:#dbeafe}.edit-schedule-form{background:#fafbff;border:1px solid #e0e7ff;border-radius:12px;padding:16px;margin-bottom:16px}.delete-confirm-inline{display:flex;align-items:center;gap:4px;flex-shrink:0}.delete-confirm-yes{padding:4px 10px;background:var(--color-danger, #ef4444);color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.delete-confirm-no{padding:4px 10px;background:var(--color-gray-100, #f3f4f6);color:var(--color-gray-600, #4b5563);border:1px solid var(--color-gray-200, #e5e7eb);border-radius:6px;font-size:.8rem;cursor:pointer;white-space:nowrap}.confirm-mark-completed-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.confirm-mark-label{font-size:.85rem;color:var(--color-danger, #ef4444);font-weight:600}.test-analysis-prompt{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;margin:16px 0;flex-wrap:wrap}.wrong-answer-import-btn{margin-left:auto;padding:8px 16px;font-size:.85rem;font-weight:600;border:none;border-radius:8px;background:#2563eb;color:#fff;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s}.wrong-answer-import-btn:hover{background:#1d4ed8}.wrong-answer-import-btn:disabled{background:#93c5fd;cursor:not-allowed}.test-analysis-prompt-icon{font-size:1.5rem;flex-shrink:0;line-height:1}.test-analysis-prompt-text strong{display:block;font-size:.9rem;color:#1e40af;margin-bottom:4px}.test-analysis-prompt-text p{margin:0;font-size:.78rem;color:#3b82f6;line-height:1.5}.clip-rate-warning{display:inline-flex;align-items:center;gap:2px;font-size:.72rem;font-weight:700;color:#ea580c;background:#fff7ed;padding:2px 6px;border-radius:4px;border:1px solid #fed7aa}.ocr-preview{margin:12px 0;padding:16px;background:#fafbff;border:1px solid #c7d2fe;border-radius:12px}.ocr-preview-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.ocr-preview-header h4{margin:0;font-size:.95rem;color:#1e293b}.ocr-preview-legend{display:flex;gap:8px;font-size:.72rem}.ocr-legend-item{padding:2px 8px;border-radius:4px;font-weight:600}.ocr-legend-item.ocr-rate-high{background:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.ocr-legend-item.ocr-rate-mid{background:#fffbeb;color:#d97706;border:1px solid #fcd34d}.ocr-legend-item.ocr-rate-low{background:#f0fdf4;color:#16a34a;border:1px solid #86efac}.ocr-preview-subject{margin-bottom:12px}.ocr-subject-title{margin:0 0 6px;font-size:.85rem;color:#475569;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.ocr-preview-items{display:flex;flex-direction:column;gap:4px}.ocr-preview-item{display:flex;flex-direction:column;gap:6px;padding:6px 10px;border-radius:6px;font-size:.82rem;border-left:4px solid transparent}.ocr-item-header{display:flex;align-items:center;gap:8px}.ocr-preview-item.ocr-rate-high{background:#fef2f2;border-left-color:#dc2626}.ocr-preview-item.ocr-rate-mid{background:#fffbeb;border-left-color:#d97706}.ocr-preview-item.ocr-rate-low{background:#f0fdf4;border-left-color:#16a34a}.ocr-item-number{font-weight:600;min-width:80px;color:#1e293b}.ocr-item-points{min-width:36px;color:#64748b;font-size:.78rem}.ocr-item-rate{min-width:48px;font-weight:600}.ocr-rate-high .ocr-item-rate{color:#dc2626}.ocr-rate-mid .ocr-item-rate{color:#d97706}.ocr-rate-low .ocr-item-rate{color:#16a34a}.ocr-item-partial{font-size:.72rem;background:#e0e7ff;color:#4338ca;padding:1px 6px;border-radius:4px}.ocr-item-warn{font-size:1rem;line-height:1}.ocr-item-img-badge{font-size:.75rem;margin-left:auto}.ocr-item-add-img-btn{margin-left:auto;padding:2px 6px;font-size:.72rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;cursor:pointer;line-height:1.2}.ocr-item-add-img-btn:hover{background:#f1f5f9;border-color:#94a3b8}.ocr-item-images{display:flex;gap:8px;flex-wrap:wrap;padding:4px 0}.ocr-item-image{position:relative;display:inline-block}.ocr-item-image img{max-height:80px;border-radius:4px;border:1px solid #e2e8f0}.ocr-item-image-delete{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:#0000008c;color:#fff;border:none;font-size:11px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.ocr-item-image-delete:hover{background:#dc2626}.ocr-preview-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #e2e8f0}.ocr-cancel-btn{padding:8px 16px;font-size:.85rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#475569;cursor:pointer}.ocr-confirm-btn{padding:8px 20px;font-size:.85rem;font-weight:600;border:none;border-radius:8px;background:#2563eb;color:#fff;cursor:pointer}.ocr-confirm-btn:hover{background:#1d4ed8}.ocr-confirm-btn:disabled{background:#93c5fd;cursor:not-allowed}.qb-subject-block{margin-bottom:16px}.qb-subject-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.qb-subject-label{font-size:.9rem;font-weight:700;color:#374151}.btn-add-qb-row{padding:4px 12px;font-size:.75rem;font-weight:600;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;border-radius:6px;cursor:pointer}.btn-add-qb-row:hover{background:#dbeafe}.qb-table{width:100%;border-collapse:collapse;font-size:.8rem;margin-bottom:8px}.qb-table th{padding:4px 6px;font-size:.7rem;font-weight:700;color:#94a3b8;border-bottom:1px solid #e5e7eb;text-align:left}.qb-table td{padding:4px 6px;border-bottom:1px solid #f3f4f6;vertical-align:middle}.qb-table .qb-num{width:30px;text-align:center;font-weight:700;color:#6b7280}.qb-table input[type=text]{width:100%;min-width:80px;padding:4px 6px;border:1px solid #e5e7eb;border-radius:4px;font-size:.8rem}.qb-table input[type=number]{width:100%;min-width:40px;max-width:60px;padding:4px 6px;border:1px solid #e5e7eb;border-radius:4px;font-size:.8rem}.btn-remove-qb-row{background:none;border:none;color:#94a3b8;font-size:1.1rem;cursor:pointer;padding:2px 6px;line-height:1}.btn-remove-qb-row:hover{color:#dc2626}.form-hint{font-size:.8rem;color:#9ca3af;margin:0 0 12px}.qb-display{margin-top:12px;padding:12px 14px;background:#fafbff;border:1px solid #e0e7ff;border-radius:10px}.qb-display-title{font-size:.75rem;font-weight:700;color:#6366f1;margin-bottom:10px}.qb-display-subject{margin-bottom:10px}.qb-display-subject-label{font-size:.78rem;font-weight:700;color:#374151;display:block;margin-bottom:4px}.qb-display-rows{display:flex;flex-direction:column;gap:4px}.qb-display-row{display:flex;align-items:center;gap:8px;font-size:.78rem}.qb-display-name{min-width:90px;color:#4b5563;font-weight:500}.qb-display-score{font-weight:700;color:#1f2937;min-width:50px;text-align:right}.qb-bar-container{flex:1;height:14px;background:#f3f4f6;border-radius:7px;position:relative;overflow:hidden;min-width:60px;max-width:160px}.qb-bar-avg{position:absolute;top:0;left:0;height:100%;background:#fde68a;border-radius:7px;z-index:1}.qb-bar-score{position:absolute;top:0;left:0;height:100%;background:#60a5fa;border-radius:7px;z-index:2;opacity:.8}.qb-display-avg{font-size:.7rem;color:#9ca3af;min-width:50px}@media(max-width:480px){.qb-display-name{min-width:60px;font-size:.72rem}.qb-bar-container{max-width:80px}}.test-review-section{margin:16px 0}.review-generate-btn{width:100%;padding:12px 16px;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;border-radius:12px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.review-generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #6366f14d}.review-generate-btn:disabled{opacity:.6;cursor:not-allowed}.review-text-container{margin-top:12px;padding:16px;background:#fafafe;border:1px solid #e0e0e8;border-radius:12px;font-size:.88rem;line-height:1.7;color:#333}.review-text-content h4{font-size:1rem;font-weight:700;color:#4338ca;margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid #e0e0e8}.review-text-content h4:first-child{margin-top:0}.review-text-content h5{font-size:.92rem;font-weight:600;color:#555;margin:12px 0 6px}.review-text-content ul{margin:6px 0;padding-left:20px}.review-text-content li{margin-bottom:4px}.review-text-content strong{color:#c2410c}.review-toggle-btn{width:100%;padding:10px 16px;background:#f0f0ff;color:#4338ca;border:1px solid #d0d0e8;border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;text-align:left;transition:all .2s}.review-toggle-btn:hover{background:#e8e8ff}.review-regenerate-btn{margin-top:12px;padding:6px 14px;background:transparent;color:#6366f1;border:1px solid #c7c7e8;border-radius:8px;font-size:.82rem;cursor:pointer;transition:all .2s}.review-regenerate-btn:hover:not(:disabled){background:#f0f0ff}.review-regenerate-btn:disabled{opacity:.5;cursor:not-allowed}.range-problems-overlay{position:fixed;inset:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}.range-problems-modal{background:var(--color-white, #fff);border-radius:20px;width:100%;max-width:600px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.range-problems-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--color-gray-100, #f3f4f6)}.range-problems-header h3{font-size:1.125rem;font-weight:700;color:#1d1d1f;margin:0}.range-problems-subtitle{display:block;font-size:.8rem;color:#86868b;margin-top:2px}.range-problems-close{background:none;border:none;font-size:1.5rem;color:#86868b;cursor:pointer;padding:4px 8px;border-radius:8px;line-height:1}.range-problems-close:hover{background:var(--color-gray-100, #f3f4f6)}.range-problems-body{flex:1;overflow-y:auto;padding:16px 24px 24px;-webkit-overflow-scrolling:touch}.range-problems-loading,.range-problems-empty{text-align:center;padding:40px 20px;color:#86868b;font-size:.9rem}.range-subject-section{margin-bottom:20px}.range-subject-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:1rem;font-weight:700;color:#1d1d1f;border-bottom:2px solid var(--color-gray-100, #f3f4f6);margin-bottom:8px}.range-subject-count{font-size:.8rem;font-weight:600;color:#ef4444;background:#fef2f2;padding:2px 8px;border-radius:10px}.range-text-group{margin:8px 0;padding-left:4px}.range-text-label{font-size:.8rem;font-weight:600;color:#6b7280;margin-bottom:6px}.range-problem-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f9fafb;border-radius:12px;margin-bottom:6px}.range-problem-item.range-done{opacity:.5}.range-problem-info{display:flex;align-items:center;gap:6px;min-width:0;flex-shrink:0}.range-problem-num{font-size:.875rem;font-weight:700;color:#1d1d1f}.range-miss-badge{font-size:.7rem;font-weight:600;padding:2px 6px;border-radius:6px}.range-miss-badge.miss-understanding{background:#fef2f2;color:#dc2626}.range-miss-badge.miss-careless{background:#fffbeb;color:#d97706}.range-miss-badge.miss-unlearned{background:#eff6ff;color:#2563eb}.range-done-badge{font-size:.75rem;color:#10b981;font-weight:600}.range-problem-image{width:60px;height:60px;object-fit:cover;border-radius:8px;cursor:pointer;border:1px solid #e5e7eb;flex-shrink:0}.range-resolve-btn{margin-left:auto;padding:6px 12px;font-size:.8rem;font-weight:600;border:none;border-radius:8px;background:#ecfdf5;color:#059669;cursor:pointer;white-space:nowrap;flex-shrink:0}.range-resolve-btn:hover{background:#d1fae5}.range-resolved-section{margin-top:8px}.range-resolved-toggle{background:none;border:none;font-size:.8rem;font-weight:600;color:#86868b;cursor:pointer;padding:6px 0}.range-resolved-toggle:hover{color:#1d1d1f}.range-text-group.range-resolved{opacity:.6}.range-zoom-overlay{position:fixed;inset:0;background:#000000d9;z-index:1100;display:flex;align-items:center;justify-content:center;cursor:pointer}.range-zoom-image{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:8px}@media(max-width:480px){.range-problems-modal{max-height:90vh;border-radius:16px}.range-problems-header{padding:16px 16px 12px}.range-problems-body{padding:12px 16px 16px}.range-problem-item{padding:8px 10px;gap:8px}.range-problem-image{width:48px;height:48px}}.deviation-chart{background:var(--color-white);border-radius:20px;padding:24px;margin:20px 0;box-shadow:var(--shadow-sm);border:1px solid rgba(0,0,0,.04)}.chart-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.deviation-chart h3{font-size:1.125rem;font-weight:600;color:#1d1d1f;margin:0;letter-spacing:-.01em}.chart-mode-tabs{display:flex;gap:4px;background:var(--color-gray-100, #f3f4f6);border-radius:8px;padding:3px}.chart-mode-tab{padding:5px 14px;border:none;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;background:transparent;color:var(--color-gray-500, #6b7280);transition:all .15s}.chart-mode-tab:hover{color:var(--color-gray-800, #1f2937)}.chart-mode-tab.active{background:#fff;color:var(--color-primary, #007AFF);box-shadow:0 1px 3px #0000001a}.chart-no-data{text-align:center;padding:40px 20px;color:#94a3b8;font-size:.875rem}.chart-wrapper{width:100%;overflow-x:auto}.chart-svg{width:100%;min-width:400px;height:auto}.chart-legend{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid var(--color-gray-100)}.legend-item{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--color-gray-500);font-weight:500}.legend-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}@media(max-width:480px){.deviation-chart{padding:16px}.chart-legend{gap:10px}.legend-item{font-size:.75rem}}.sapix-text-view{padding:24px 0}.sapix-text-list{display:flex;flex-direction:column;gap:12px}.sapix-text-card{background:color-mix(in srgb,var(--subject-color, #94a3b8) 4%,white);border-radius:14px;padding:14px;border:1px solid color-mix(in srgb,var(--subject-color, #94a3b8) 25%,var(--color-gray-200));box-shadow:var(--shadow-sm);transition:all .2s}.sapix-text-card:hover{box-shadow:var(--shadow-md)}.sapix-text-card-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.sapix-text-info{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.sapix-text-name{font-weight:700;font-size:.95rem;color:var(--subject-color, var(--color-gray-800))}.sapix-text-number{font-weight:500;font-size:.82rem;color:var(--color-gray-500);background:var(--color-gray-100);padding:2px 8px;border-radius:6px;margin-left:6px}.sapix-study-date{font-weight:500;font-size:.78rem;color:var(--color-success-dark);background:var(--color-success-bg);padding:2px 8px;border-radius:6px;margin-left:6px;white-space:nowrap}.sapix-unit-badge{font-size:.72rem;font-weight:600;color:var(--color-primary-darker);background:var(--color-primary-bg-light);padding:3px 10px;border-radius:20px;border:1px solid var(--color-primary-bg);white-space:nowrap}.sapix-text-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.sapix-scan-toggle{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;cursor:pointer;font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:6px;transition:all .2s;white-space:nowrap}.sapix-scan-toggle:hover{background:#dcfce7;border-color:#86efac}.sapix-scan-toggle.active{background:#15803d;color:#fff;border-color:#15803d}.sapix-scanned-text-display{margin-top:10px;border:1px solid var(--color-gray-200);border-radius:10px;overflow:hidden;background:#fafafa}.sapix-scanned-text-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);font-size:.82rem;font-weight:600;color:var(--color-gray-700)}.sapix-scanned-text-header button{background:none;border:none;font-size:1.1rem;color:#94a3b8;cursor:pointer;line-height:1}.sapix-scanned-text-header button:hover{color:var(--color-gray-600)}.sapix-scanned-text-content{padding:14px;margin:0;font-size:.85rem;line-height:1.7;color:var(--color-gray-800);white-space:pre-wrap;word-break:break-word;font-family:Hiragino Sans,Meiryo,sans-serif;max-height:400px;overflow-y:auto}.sapix-form-section{margin-top:12px}.sapix-section-label{display:block;font-size:.82rem;font-weight:600;color:var(--color-gray-600);margin-bottom:6px}.sapix-grade-selector{display:flex;gap:6px;flex-wrap:wrap}.sapix-grade-filter-row{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:8px 0 16px;padding:0 16px}.sapix-grade-filter-label{font-weight:600;color:#1d1d1f;font-size:.9375rem;letter-spacing:-.01em}.sapix-grade-btn{padding:5px 14px;font-size:.78rem;font-weight:600;border:1px solid var(--color-gray-200);background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;color:var(--color-gray-500)}.sapix-grade-btn:hover{border-color:#93c5fd;background:var(--color-primary-bg-light)}.sapix-grade-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.sapix-units-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:4px;max-height:180px;overflow-y:auto;padding:6px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:8px}.sapix-unit-tag{display:flex;align-items:center;gap:5px;cursor:pointer;padding:5px 8px;border-radius:6px;font-size:.78rem;transition:all .15s;border:1px solid transparent}.sapix-unit-tag:hover{background:var(--color-primary-bg-light)}.sapix-unit-tag.selected{background:var(--color-primary-bg);border-color:#93c5fd}.sapix-unit-tag.custom span:before{content:"⭐ "}.sapix-unit-tag input[type=radio]{width:14px;height:14px;cursor:pointer;flex-shrink:0}.sapix-selected-unit{margin-top:6px;font-size:.78rem;color:var(--color-primary-darker);font-weight:600;display:flex;align-items:center;gap:6px}.sapix-clear-unit{background:none;border:none;font-size:1rem;color:#94a3b8;cursor:pointer;line-height:1}.sapix-clear-unit:hover{color:var(--color-danger)}.sapix-file-preview{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;font-size:.82rem}.sapix-file-preview a{color:#15803d;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.sapix-file-preview a:hover{text-decoration:underline}.sapix-file-preview button{background:none;border:none;font-size:1.1rem;color:#94a3b8;cursor:pointer;line-height:1}.sapix-file-preview button:hover{color:var(--color-danger)}.sapix-file-upload-area{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sapix-upload-btn,.sapix-drive-btn{padding:6px 14px;font-size:.78rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}.sapix-upload-btn{background:var(--color-primary-bg-light);border:1px solid var(--color-primary-bg);color:var(--color-primary-darker)}.sapix-upload-btn:hover{background:var(--color-primary-bg)}.sapix-upload-btn:disabled{opacity:.6;cursor:not-allowed}.sapix-drive-btn{background:#fff;border:1px solid var(--color-gray-200);color:var(--color-gray-600)}.sapix-drive-btn:hover{background:var(--color-gray-50);border-color:#cbd5e1}.sapix-or{font-size:.72rem;color:#94a3b8}.sapix-scanned-text-input{width:100%;padding:10px 12px;border:1px solid var(--color-gray-200);border-radius:8px;font-size:.85rem;line-height:1.6;font-family:Hiragino Sans,Meiryo,sans-serif;resize:vertical;box-sizing:border-box;transition:border-color .15s}.sapix-scanned-text-input:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #3b82f61a}@media(max-width:768px){.sapix-text-view{padding:12px 0}.sapix-text-card{padding:10px}.sapix-text-card-header{flex-direction:column;align-items:flex-start;gap:8px}.sapix-text-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.sapix-units-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.sapix-scanned-text-content{max-height:300px;font-size:.8rem}}@media(max-width:480px){.sapix-text-name{font-size:.85rem}.sapix-text-number{font-size:.72rem}.sapix-grade-btn{padding:4px 10px;font-size:.7rem}.sapix-units-grid{grid-template-columns:1fr 1fr;max-height:120px}.sapix-scanned-text-content{max-height:200px;padding:10px;font-size:.75rem}}.sapix-eval-row{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--color-gray-100)}.sapix-eval-label{font-size:12px;color:var(--color-gray-500);flex-shrink:0}.sapix-eval-btn{padding:4px 12px;border:1px solid var(--color-gray-200);border-radius:20px;background:#fff;font-size:16px;cursor:pointer;transition:all .15s;line-height:1}.sapix-eval-btn.current{border-color:var(--eval-color, var(--color-primary));background:#f0f9ff;box-shadow:0 0 0 2px color-mix(in srgb,var(--eval-color, var(--color-primary)) 25%,transparent)}.sapix-eval-btn:hover:not(:disabled){background:var(--color-gray-100);transform:scale(1.1)}.sapix-eval-btn:disabled{opacity:.5;cursor:not-allowed}.sapix-eval-saving{font-size:12px;color:var(--color-primary)}.sapix-unit-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.problem-log-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.create-task-btn{padding:5px 14px;background:var(--color-primary-bg-light);color:var(--color-primary-darker);border:1px solid var(--color-primary-bg);border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s}.create-task-btn:hover:not(:disabled){background:var(--color-primary-bg)}.create-task-btn:disabled{opacity:.6;cursor:not-allowed}.quick-mistake-btn{padding:4px 10px;font-size:.72rem;font-weight:600;background:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}.quick-mistake-btn:hover{background:#fee2e2;border-color:#fca5a5}.qmi-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-top);padding:16px}.qmi-modal{background:#fff;border-radius:14px;width:100%;max-width:420px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 40px #00000026;padding:20px}.qmi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.qmi-header h3{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-gray-800)}.qmi-close{background:none;border:none;font-size:1.5rem;color:var(--color-gray-400);cursor:pointer;line-height:1;padding:0}.qmi-close:hover{color:var(--color-gray-600)}.qmi-text-info{padding:12px;background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:10px;margin-bottom:16px}.qmi-text-code{display:inline-block;font-size:.78rem;font-weight:600;color:var(--color-primary-darker);background:var(--color-primary-bg-light);padding:2px 8px;border-radius:4px;margin-right:8px}.qmi-text-name{font-size:.9rem;font-weight:600;color:var(--color-gray-800)}.qmi-unit-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.qmi-unit-badge{font-size:.72rem;font-weight:600;color:var(--color-primary-darker);background:var(--color-primary-bg-light);padding:3px 10px;border-radius:20px;border:1px solid var(--color-primary-bg)}.qmi-fallback{padding:12px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin-bottom:16px}.qmi-fallback-note{margin:0 0 10px;font-size:.78rem;color:#92400e}.qmi-fallback-subject{margin-bottom:10px}.qmi-fallback-subject label,.qmi-fallback-unit label{display:block;font-size:.78rem;font-weight:600;color:var(--color-gray-600);margin-bottom:6px}.qmi-subject-btns{display:flex;gap:6px;flex-wrap:wrap}.qmi-subject-btn{padding:4px 12px;font-size:.78rem;font-weight:600;border:1px solid var(--color-gray-200);background:#fff;border-radius:6px;cursor:pointer;transition:all .15s;color:var(--color-gray-600)}.qmi-subject-btn:hover{border-color:var(--color-primary)}.qmi-subject-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.qmi-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:2px solid var(--color-gray-100);padding-bottom:0}.qmi-tab{flex:1;padding:7px 4px;font-size:.75rem;font-weight:600;border:none;background:none;color:var(--color-gray-400);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s;white-space:nowrap}.qmi-tab:hover{color:var(--color-gray-600)}.qmi-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.qmi-sections{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.qmi-section-row{display:flex;align-items:center;gap:8px;padding:4px 0}.qmi-section-label{flex-shrink:0;width:72px;font-size:.72rem;font-weight:600;color:var(--color-gray-500);text-align:right}.qmi-section-btns{display:flex;gap:6px;flex:1}.qmi-problem-btn{flex:1;padding:8px 4px;font-size:.78rem;font-weight:600;border:2px solid var(--color-gray-200);background:#fff;border-radius:8px;cursor:pointer;transition:all .15s;color:var(--color-gray-700);min-width:0}.qmi-problem-btn:hover{border-color:#93c5fd;background:#eff6ff}.qmi-problem-btn.selected{border-color:#dc2626;background:#fef2f2;color:#dc2626;box-shadow:0 0 0 2px #dc262626}.qmi-custom-input{display:flex;gap:6px;margin-bottom:10px}.qmi-custom-input input{flex:1;padding:7px 10px;border:1px solid var(--color-gray-300);border-radius:6px;font-size:.82rem;box-sizing:border-box}.qmi-custom-input input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.qmi-custom-add{padding:7px 14px;font-size:.78rem;font-weight:600;border:1px solid var(--color-gray-300);background:var(--color-gray-50);border-radius:6px;cursor:pointer;color:var(--color-gray-700);white-space:nowrap;transition:all .15s}.qmi-custom-add:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.qmi-selection-summary{text-align:center;font-size:.82rem;font-weight:600;color:#dc2626;padding:8px;background:#fef2f2;border-radius:8px;margin-bottom:12px}.qmi-actions{display:flex;gap:10px}.qmi-actions .btn-secondary{flex:1}.qmi-actions .btn-primary{flex:2}.qmi-done{text-align:center;padding:40px 20px}.qmi-done-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;background:#dcfce7;color:#16a34a;border-radius:50%;font-size:28px;font-weight:700}.qmi-done p{font-size:1rem;font-weight:600;color:var(--color-gray-800);margin:0 0 20px}@media(max-width:480px){.qmi-modal{padding:16px;max-height:90vh}.qmi-section-label{width:56px;font-size:.68rem}.qmi-problem-btn{padding:7px 2px;font-size:.72rem}.qmi-tab{font-size:.7rem;padding:6px 2px}}
