:root{--bg: #f0f9ff;--bg-2: #e0f2fe;--panel: #f0f9ff;--card: #ffffff;--card-2: #f8fafc;--text: #1e293b;--muted: #64748b;--brand: #0284c7;--brand-2: #0ea5e9;--accent: #7c3aed;--danger: #dc2626;--success: #059669;--warning: #d97706;--border: #cbd5e1;--shadow: 0 6px 18px rgba(30, 41, 59, .12);--radius: 10px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:linear-gradient(to bottom,#fdf9f3 0px,#fdf9f3 23px,#f3ebe0 24px),#fdf9f3;background-size:100% 24px;color:var(--text);font:400 14px/1.45 system-ui,Segoe UI,Inter,Arial}.hidden{display:none!important}.btn-primary,.btn-secondary,.card-action,.add-button,.neo-btn{cursor:pointer;border:0;border-radius:8px;padding:9px 13px;background:var(--brand);color:#3f2a02;box-shadow:var(--shadow);transition:.2s}.btn-secondary{background:#f6f1e8;color:var(--text);border:1px solid var(--border)}.btn-primary:hover{filter:brightness(1.03)}.btn-secondary:hover{background:#efe4d4}.neo-btn{background:#fff7d6;border:1px solid #e0cf9f}.neo-btn.warn{background:#fff1f1;border-color:#fbb4b4;color:#7f1d1d}.mini-input,.neo-input,.neo-select,.add-input,.auth-input,.modal-input,textarea,input,select{width:100%;background:#fffdf7;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px;outline:none}.mini-input{max-width:120px}.container{display:grid;grid-template-columns:260px 1fr;gap:0;min-height:100vh}.sidebar{background:linear-gradient(to bottom,rgba(250,204,21,.18),rgba(250,204,21,.08)),#f6f1e8;border-right:1px solid var(--border);padding:18px 14px;position:sticky;top:0;height:100vh;overflow:auto}.logo{display:flex;align-items:center;gap:10px;color:#1f2933;margin:6px 6px 14px}.logo i{background:linear-gradient(135deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:22px}.logo h1{margin:0;font-size:16px;letter-spacing:.12em}.nav-section{margin:18px 6px}.nav-title{color:var(--muted);font-size:12px;text-transform:uppercase;margin:6px 10px 8px}.nav-item{position:relative;display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;padding:9px 11px;border-radius:10px;transition:.15s;border:1px solid transparent}.nav-item i{width:18px;text-align:center;opacity:.8}.nav-item:hover{background:#f2e7d8;border-color:#e5d3bb}.nav-item.active{background:linear-gradient(180deg,#ffe58a,#ffe7a7);border-color:#facc15}.main-content{display:flex;flex-direction:column;min-width:0}.top-bar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:rgba(255,247,209,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border)}.user-info{display:flex;align-items:right;gap:10px}.dashboard{padding:18px;display:grid;gap:18px;grid-template-columns:repeat(8,1fr)}.card{grid-column:span 4;background:linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;min-width:0}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid var(--border);background:rgba(255,248,220,.7)}.card-title{font-weight:600}.card-content{padding:12px 14px}.empty-state{display:grid;place-items:center;gap:8px;padding:16px;color:var(--muted)}.empty-state i{opacity:.8}body.focus-mode .dashboard{grid-template-columns:repeat(12,1fr)}body.focus-mode .dashboard .card{display:none}body.focus-mode .dashboard .card.is-focus{display:flex;grid-column:1 / -1}table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:8px}th,td{padding:9px 11px;border-bottom:1px solid var(--border);text-align:left}thead th{font-size:12px;color:var(--muted);background:#f6efe2}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-card{background:#fffdf7;border:1px solid var(--border);border-radius:10px;padding:11px}.stat-icon{font-size:18px;opacity:.9}.stat-value{font-size:22px;font-weight:700;margin:6px 0}.stat-label{color:var(--muted);font-size:12px}.task-list{display:flex;flex-direction:column;gap:10px}.task-item{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:9px;background:#fffdf7;border:1px solid var(--border);border-radius:10px}.task-checkbox{width:22px;height:22px;display:grid;place-items:center;border-radius:7px;background:#f7efe4;border:1px solid #dfcfb8}.task-checkbox.checked{background:linear-gradient(135deg,#bbf7d0,#4ade80);border-color:#22c55e}.task-text.completed{opacity:.55;text-decoration:line-through}.task-time-display{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;margin-left:8px}.task-priority{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid var(--border)}.priority-low{background:#f0f9ff}.priority-medium{background:#fef9c3}.priority-high{background:#fee2e2}.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.note-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:11px;background:#fffdf7;border:1px solid var(--border);border-radius:10px}.note-title{font-weight:600}.note-content{color:#374151}.note-actions .btn-edit,.note-actions .btn-delete{background:#f6efe2;border:1px solid var(--border);padding:7px;border-radius:9px}:root{--deep-bg: #f0f9ff;--deep-card: #ffffff;--deep-ink: #1e293b;--deep-ink-muted: #64748b;--deep-grid: #cbd5e1;--deep-grid-soft: #e2e8f0;--deep-accent: #0284c7;--deep-accent-2: #0ea5e9;--google: #16a34a;--shadow: 0 6px 18px rgba(30, 41, 59, .25)}.card-schedule{background:var(--deep-card);color:var(--deep-ink);border:1px solid var(--deep-grid);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.card-schedule .card-header{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(245,158,11,.08),rgba(245,158,11,0));border-bottom:1px solid var(--deep-grid);padding:12px 14px}.card-schedule .card-title{font-weight:700;letter-spacing:.2px}.schedule-toolbar{display:flex;gap:8px}.schedule-toolbar .btn{background:#fff7e0;color:var(--deep-ink);border:1px solid var(--deep-grid);border-radius:8px;padding:6px 10px;font-size:12px;cursor:pointer}.schedule-toolbar .btn:hover{border-color:var(--deep-accent)}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:var(--deep-card);color:var(--deep-ink);border:1px solid var(--deep-grid);border-radius:10px;overflow:hidden}.schedule-table thead th{position:sticky;top:0;background:#fff5dd;color:var(--deep-ink);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding:9px 8px;border-bottom:1px solid var(--deep-grid);z-index:2}.schedule-table th:first-child,.schedule-table td:first-child{width:80px}.schedule-table tbody td,.schedule-table tbody th{border-bottom:1px solid var(--deep-grid-soft);border-right:1px solid var(--deep-grid-soft);padding:8px;vertical-align:top}.schedule-table tbody td:last-child,.schedule-table thead th:last-child{border-right:none}.time-group-header td{background:rgba(255,243,205,.9);color:var(--deep-ink-muted);border-top:1px solid var(--deep-grid);border-bottom:1px solid var(--deep-grid)}.time-group-label{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.time-slot{color:var(--deep-ink-muted);font-weight:600;font-feature-settings:"tnum" 1;white-space:nowrap}.day-cell{min-height:60px;background:linear-gradient(180deg,rgba(249,250,251,.8),rgba(250,250,249,.6));transition:background .15s ease}.day-cell:hover{background:rgba(254,249,195,.6)}.is-today{background:linear-gradient(180deg,rgba(254,240,138,.7),rgba(254,240,138,.25));outline:1px solid rgba(234,179,8,.5)}.now-line{position:relative}.now-line:after{content:"";position:absolute;left:0;right:0;top:calc(50% - 1px);height:2px;background:var(--deep-accent);opacity:.6}.event-card{background:#fff5dd;border:1px solid rgba(245,158,11,.4);border-left:3px solid var(--deep-accent);border-radius:9px;padding:7px 9px;margin:6px 0;box-shadow:0 2px 8px #94794d40;max-width:100%;overflow:hidden}.event-card .event-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.event-time{font-size:12px;color:var(--deep-ink-muted);font-weight:600}.badge-google{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--google);background:rgba(22,163,74,.08);border:1px solid rgba(22,163,74,.3);padding:2px 6px;border-radius:999px}.event-title{white-space:normal;word-break:break-word;font-size:14px}.event-desc,.event-location,.event-meta{font-size:12px;color:var(--deep-ink-muted);margin-top:4px;white-space:pre-wrap;word-break:break-word}.event-meta{display:flex;flex-wrap:wrap;gap:8px}.event-chip{display:inline-flex;align-items:center;border:1px solid var(--deep-grid);background:rgba(249,250,251,.9);padding:2px 6px;border-radius:999px;font-size:11px}.events-only .time-row td{padding-top:10px;padding-bottom:10px}.schedule-table th:first-child,.schedule-table td:first-child{position:sticky;left:0;z-index:1;background:#fff5dd}#eventsContainer.compact .day-cell{padding:4px}#eventsContainer.compact .event-card{margin:4px 0;padding:6px 8px}@media (max-width: 900px){.schedule-table th:nth-child(2),.schedule-table td:nth-child(2),.schedule-table th:nth-child(3),.schedule-table td:nth-child(3),.schedule-table th:nth-child(4),.schedule-table td:nth-child(4){display:none}.schedule-table th:first-child,.schedule-table td:first-child{width:64px}}#historyContainer{display:flex;flex-direction:column;gap:12px;padding:10px 6px;background:var(--deep-card);border-radius:10px;border:1px solid var(--deep-grid);box-shadow:var(--shadow);color:var(--deep-ink);min-height:140px;max-height:10880px;overflow-y:auto}.history-item{background:linear-gradient(180deg,rgba(255,247,209,.8),rgba(255,253,232,.8));border:1px solid rgba(245,158,11,.35);border-left:3px solid var(--deep-accent);border-radius:9px;padding:11px 13px;box-shadow:0 4px 12px #94794d33;transition:background .2s ease,border-color .2s ease}.history-item:hover{background:rgba(253,230,138,.9);border-color:var(--deep-accent-2)}.history-title{font-weight:700;font-size:15px;color:var(--deep-ink);margin-bottom:4px}.history-meta{display:flex;align-items:center;gap:8px;color:var(--deep-ink-muted);font-size:12px;margin-bottom:6px}.history-meta i{color:var(--deep-accent-2);font-size:11px}.history-desc{font-size:13px;color:var(--deep-ink-muted);white-space:pre-wrap;line-height:1.4;margin-top:2px}#historyContainer .empty-state{text-align:center;padding:24px 10px;color:var(--deep-ink-muted);display:flex;flex-direction:column;align-items:center;gap:10px}#historyContainer .empty-state i{font-size:26px;color:var(--deep-accent-2)}.event-actions{display:flex;gap:6px;margin-top:6px}.event-actions .btn-edit,.event-actions .btn-delete{background:#fff7df;border:1px solid var(--deep-grid);color:var(--deep-ink);padding:4px 6px;border-radius:7px;cursor:pointer}.event-actions .btn-edit:hover{border-color:var(--deep-accent)}.event-actions .btn-delete:hover{border-color:var(--danger)}.span-fill{height:8px;margin:6px 8px;border-radius:6px;background:rgba(254,240,138,.7);border:1px solid rgba(234,179,8,.6)}.progress-item{margin-top:8px}.progress-header{display:flex;justify-content:space-between;align-items:center}.progress-bar{height:10px;background:#f4ede2;border:1px solid var(--border);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--brand),var(--accent))}.grades-table{border:1px solid var(--border);border-radius:10px;overflow:hidden}.grades-header,.table-header{display:grid;grid-template-columns:1.5fr repeat(3,1fr) 1fr;gap:0;padding:9px 11px;background:#f6efe2;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.table-row,.grades-row{display:grid;grid-template-columns:1.5fr repeat(3,1fr) 1fr;gap:0;padding:9px 11px;border-bottom:1px solid var(--border);align-items:center}.course-name{font-weight:600}.class-item{background:#fffdf7;border:1px solid var(--border);border-radius:10px;padding:11px;margin-bottom:10px}.class-header{display:flex;justify-content:space-between;align-items:center}.class-grade{font-weight:700}.class-details{color:var(--muted);display:flex;gap:12px;margin:6px 0}.class-actions button{background:#f6efe2;border:1px solid var(--border);padding:7px 9px;border-radius:9px}.calendar-sync-prompt h3{margin:0 0 6px}.calendar-sync-prompt .btn-primary{padding:9px 11px}.auth-section{min-height:100vh;padding:32px 20px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:radial-gradient(900px 500px at 100% 0%,rgba(34,197,94,.18),transparent 55%),radial-gradient(900px 500px at 0% 100%,rgba(59,130,246,.16),transparent 55%),var(--bg-2)}.auth-bg-orbit,.auth-bg-orbit.orbit-2{position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(34,197,94,.35),transparent 65%);opacity:.22;filter:blur(2px);pointer-events:none;animation:orbitFloat 18s ease-in-out infinite alternate}.auth-bg-orbit{top:-140px;right:-80px}.auth-bg-orbit.orbit-2{width:360px;height:360px;bottom:-120px;left:-40px;background:radial-gradient(circle at 60% 40%,rgba(56,189,248,.32),transparent 65%);animation-duration:22s}@keyframes orbitFloat{0%{transform:translateZ(0) scale(1)}50%{transform:translate3d(-12px,10px,0) scale(1.05)}to{transform:translate3d(10px,-6px,0) scale(1.02)}}.auth-container{width:100%;max-width:460px;position:relative;z-index:1}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:22px 20px 20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform-origin:50% 50%;opacity:0;transform:translateY(18px) scale(.98);animation:authCardIn .65s cubic-bezier(.22,.8,.35,1) forwards}@keyframes authCardIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-header{margin-bottom:16px}.auth-logo-row{display:flex;align-items:center;gap:12px}.auth-logo-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:radial-gradient(circle at 20% 0%,var(--brand-2),var(--brand));color:#f9fafb;box-shadow:0 8px 20px #00000059}.auth-logo-icon i{font-size:18px}.auth-title{margin:0;font-size:20px;letter-spacing:.09em;text-transform:uppercase}.auth-subtitle{margin:4px 0 0;font-size:13px;color:var(--muted)}.auth-tabs{display:inline-flex;gap:8px;padding:4px;margin-bottom:12px;background:rgba(15,23,42,.04);border-radius:999px;border:1px solid rgba(148,163,184,.3)}.auth-tab{position:relative;flex:1;padding:7px 14px;border-radius:999px;border:none;background:transparent;color:var(--muted);font-size:13px;cursor:pointer;transition:color .2s ease}.auth-tab.active{color:#f9fafb}.auth-tab.active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,var(--brand-2),var(--brand));z-index:-1;box-shadow:0 8px 20px #4f46e58c}.auth-form{display:none;flex-direction:column;gap:10px;margin-top:4px}.auth-form.active{display:flex}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-label{font-size:12px;color:var(--muted)}.auth-input{background:#dee0e7;border-radius:10px;border:1px solid rgba(148,163,184,.5);padding:10px 11px;color:var(--text);transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease}.auth-input::placeholder{color:#94a3b8bf}.auth-input:focus{outline:none;border-color:var(--brand-2);box-shadow:0 0 0 1px #818cf840,0 8px 20px #0f172a80;transform:translateY(-1px)}.auth-btn{margin-top:6px;border:none;border-radius:12px;padding:10px 13px;font-size:14px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .13s ease,box-shadow .13s ease,filter .13s ease}.auth-btn-primary{background:linear-gradient(90deg,var(--brand-2),var(--brand));color:#f9fafb;box-shadow:0 10px 24px #4f46e58c}.auth-btn-primary:hover{filter:brightness(1.03);transform:translateY(-1px)}.auth-btn-primary:active{transform:translateY(0);box-shadow:0 6px 18px #4f46e573}.auth-footnote{margin:6px 0 0;font-size:12px;color:var(--muted)}.auth-inline-link{background:none;border:none;padding:0;margin:0 0 0 3px;font-size:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}@media (max-width: 640px){.auth-section{padding:20px 12px}.auth-card{padding:18px 16px}.auth-title{font-size:18px}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:none;place-items:center;background:rgba(15,23,42,.25);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:16px}.modal-content{width:100%;max-width:720px;background:#fffdf7;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.modal-content.wide{max-width:980px}.modal-header,.modal-footer{padding:11px 13px;border-bottom:1px solid var(--border);background:#f6efe2}.modal-footer{border-top:1px solid var(--border);border-bottom:0;display:flex;gap:10px;justify-content:flex-end}.modal-body{padding:13px}.close-modal{background:#f6efe2;border:1px solid var(--border);color:var(--text);border-radius:9px;padding:6px 10px;cursor:pointer}.input-label{font-size:12px;color:var(--muted)}.form-grid{display:grid;gap:10px}.hint{color:var(--muted)}@media (max-width: 1100px){.card{grid-column:span 6}.stats-grid{grid-template-columns:repeat(2,1fr)}.notes-grid{grid-template-columns:1fr}}@media (max-width: 780px){.container{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--border)}.dashboard{grid-template-columns:repeat(6,1fr)}.card,body.focus-mode .dashboard .card.is-focus{grid-column:1 / -1}}.quick-actions{display:flex;gap:10px;margin-bottom:16px}.quick-action-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;background:#fffdf7;border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.quick-action-btn:hover{background:#fff4d4;transform:translateY(-1px)}.quick-action-icon{font-size:20px;margin-bottom:6px;color:var(--brand)}.quick-action-text{font-size:12px;text-align:center}.progress-circle{width:80px;height:80px;border-radius:50%;background:conic-gradient(var(--brand) 0% 88%,var(--border) 88% 100%);display:flex;align-items:center;justify-content:center;position:relative}.progress-circle-inner{width:70px;height:70px;border-radius:50%;background:var(--card);display:flex;align-items:center;justify-content:center;flex-direction:column}.progress-circle-value{font-size:18px;font-weight:700}.progress-circle-label{font-size:10px;color:var(--muted)}.task-input-container{display:flex;gap:10px;margin-top:12px}.task-input{flex:1;background:#fffdf7;border:1px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--text)}#assignmentsContainer{display:flex;flex-direction:column;gap:10px;background:var(--deep-card);border:1px solid var(--deep-grid);border-radius:10px;box-shadow:var(--shadow);padding:10px;color:var(--deep-ink);min-height:140px}.assignment-item{display:grid;grid-template-columns:36px 1fr auto;align-items:start;gap:12px;background:linear-gradient(180deg,rgba(255,247,209,.9),rgba(255,253,232,.9));border:1px solid rgba(245,158,11,.35);border-left:3px solid var(--deep-accent);border-radius:10px;padding:10px 12px;box-shadow:0 4px 12px #94794d38;transition:background .2s ease,border-color .2s ease,transform .05s ease}.assignment-item:hover{background:rgba(253,230,138,.95);border-color:var(--deep-accent-2)}.assignment-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--deep-accent-2);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:2px;background:#fff7dd}.assignment-check.checked{background:var(--success);border-color:var(--success);color:#052d1e}.assignment-check i{font-size:13px}.assignment-main{min-width:0}.assignment-title{font-weight:800;letter-spacing:.2px;line-height:1.2;margin-bottom:4px;color:var(--deep-ink);word-break:break-word}.assignment-main.completed .assignment-title{opacity:.6;text-decoration:line-through}.assignment-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--deep-ink-muted)}.assignment-meta .sep{opacity:.55}.badge,.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--deep-grid);background:#f9fafb;padding:2px 8px;border-radius:999px;font-size:11px}.chip-danger{border-color:#ef444466;background:rgba(254,226,226,.9);color:#991b1b}.chip-warning{border-color:#eab30873;background:rgba(254,249,195,.9);color:#854d0e}.chip-success{border-color:#22c55e73;background:rgba(220,252,231,.9);color:#166534}.assignment-actions{display:flex;gap:8px}.btn-icon{background:#fff7df;border:1px solid var(--deep-grid);color:var(--deep-ink);padding:6px 8px;border-radius:9px;cursor:pointer}.btn-icon:hover{border-color:var(--deep-accent)}#assignmentsContainer .empty-state{text-align:center;padding:24px 8px;color:var(--deep-ink-muted);display:flex;flex-direction:column;align-items:center;gap:8px}#assignmentsContainer .empty-state i{font-size:26px;color:var(--deep-accent-2)}.focus-toggle{position:fixed;bottom:20px;right:20px;background:var(--brand);color:#3f2a02;border:none;border-radius:50%;width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow);z-index:100}.notification-badge{background:var(--danger);color:#fff;border-radius:50%;width:18px;height:18px;font-size:10px;display:flex;align-items:center;justify-content:center;position:absolute;top:-5px;right:-5px}.card-tasks,.card-notes,.card-schedule,.card-progress,.card-stats{grid-column:span 4}.card-grades{grid-column:span 8}.date-time-display{display:flex;align-items:center;gap:12px;margin-right:16px}.date,.time{font-size:14px;color:var(--muted)}.add-item-form{display:flex;gap:10px;margin-top:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.modal-label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.gpa-display{text-align:center;margin-bottom:12px}.current-gpa{font-size:32px;font-weight:700;color:var(--brand)}.gpa-label{font-size:12px;color:var(--muted);margin-bottom:4px}.total-credits{font-size:12px;color:var(--muted)}.grade-table{width:100%;border-collapse:collapse}.grade-table th,.grade-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.grade-table th{background:#f6efe2;color:var(--muted);font-size:12px}.user-name{font-weight:600}.user-status{font-size:12px;color:var(--muted)}.acc-grid{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:16px}.acc-charts .acc-chart{background:var(--card);border:1px solid var(--border);border-radius:9px;padding:12px}.acc-chart-title,.acc-risk-alerts .acc-subtitle{font-weight:600;margin-bottom:8px}.risk-list{display:flex;flex-direction:column;gap:12px}.risk-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--card);border-radius:8px;border:1px solid var(--border)}.risk-name{flex:1;font-weight:500;font-size:14px}.risk-bar{width:100px;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.risk-fill{height:100%;border-radius:4px;transition:width .3s ease}.risk-score{width:30px;text-align:center;font-weight:700;font-size:14px}.risk-red .risk-fill{background:#ef4444}.risk-yellow .risk-fill{background:#f59e0b}.risk-blue .risk-fill{background:#3b82f6}.risk-green .risk-fill{background:#10b981}.alerts-strip{display:flex;flex-wrap:wrap;gap:8px}.alert-chip{font-size:12px;padding:6px 10px;border-radius:999px;border:1px solid var(--border)}.alert-chip.red{background:#fef2f2;color:#7f1d1d;border-color:#fecaca}.alert-chip.yellow{background:#fffbeb;color:#854d0e;border-color:#fef3c7}.alert-chip.blue{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.timer-card{border:1px solid var(--border);border-radius:9px;padding:12px;background:#fffdf7}.timer-header{font-weight:600;margin-bottom:8px}.timer-display{font-size:32px;font-weight:700;text-align:center;margin:8px 0}.timer-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.timer-meta{font-size:12px;opacity:.8;margin-top:6px}.insights-card{border:1px solid var(--border);border-radius:9px;padding:12px;margin-top:12px;background:#fffdf7}.insights-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:6px}.insights-list{margin:0;padding-left:16px;display:grid;gap:6px}.mini-link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0}#advPreviewWrap{max-height:260px;overflow-y:auto;padding:8px;border-radius:8px;border:1px solid rgba(148,121,77,.25);background:rgba(255,253,232,.8)}.adv-preview-table{display:flex;flex-direction:column;gap:6px}#advPreviewWrap::-webkit-scrollbar{width:6px}#advPreviewWrap::-webkit-scrollbar-thumb{background:rgba(148,121,77,.55);border-radius:3px}#advPreviewWrap::-webkit-scrollbar-track{background:transparent}.panel{position:relative!important;transform:none!important;opacity:1!important}.loading{display:flex;align-items:center;justify-content:center;min-height:260px;font-size:15px;color:var(--muted)}.assignment-item{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;background:var(--surface);transition:all .2s ease;position:relative}.assignment-item:hover{border-color:var(--deep-accent);box-shadow:0 2px 8px #0000001a}.assignment-item.overdue{border-left:4px solid var(--danger);background:linear-gradient(90deg,rgba(239,68,68,.05) 0%,transparent 10%)}.assignment-item.completed{opacity:.7;background:linear-gradient(90deg,rgba(34,197,94,.05) 0%,transparent 10%)}.assignment-check{width:20px;height:20px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;margin-top:2px;transition:all .2s ease}.assignment-check.checked{background:var(--success);border-color:var(--success);color:#fff}.assignment-check:hover{border-color:var(--deep-accent)}.assignment-main{flex:1;min-width:0}.assignment-main.completed .assignment-title{text-decoration:line-through;color:var(--muted)}.assignment-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.assignment-title{font-weight:600;font-size:15px;line-height:1.4;color:var(--deep-ink);flex:1}.assignment-grade{font-weight:700;font-size:14px;padding:2px 8px;border-radius:6px;background:var(--surface-2);flex-shrink:0}.assignment-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--deep-ink-muted);margin-bottom:6px}.assignment-notes{font-size:13px;color:var(--deep-ink-muted);padding:8px;background:var(--surface-2);border-radius:6px;border-left:3px solid var(--xl-blue)}.assignment-actions{display:flex;gap:4px;flex-shrink:0}.btn-icon{width:32px;height:32px;border:1px solid var(--border);border-radius:6px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--deep-ink-muted)}.btn-icon:hover{background:var(--surface-2);border-color:var(--deep-accent);color:var(--deep-accent)}.btn-edit:hover{background:rgba(59,130,246,.1);border-color:#3b82f6;color:#3b82f6}.btn-delete:hover{background:rgba(239,68,68,.1);border-color:#ef4444;color:#ef4444}.chip{padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.chip-success{background:rgba(34,197,94,.1);color:#16a34a;border:1px solid rgba(34,197,94,.2)}.chip-danger{background:rgba(239,68,68,.1);color:#dc2626;border:1px solid rgba(239,68,68,.2)}.chip-warning{background:rgba(245,158,11,.1);color:#d97706;border:1px solid rgba(245,158,11,.2)}.chip-info{background:rgba(59,130,246,.1);color:#2563eb;border:1px solid rgba(59,130,246,.2)}.badge-course{background:rgba(139,92,246,.1);color:#7c3aed;border:1px solid rgba(139,92,246,.2)}.form-grid{display:grid;gap:16px}.form-grid.two-col{grid-template-columns:1fr 1fr}.form-grid.three-col{grid-template-columns:1fr 1fr 1fr}@media (max-width: 768px){.form-grid.two-col,.form-grid.three-col{grid-template-columns:1fr}.assignment-header,.assignment-meta{flex-direction:column;align-items:flex-start}.sep{display:none}}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.hint{font-size:12px;color:var(--muted);margin-top:4px}.grade-badge{padding:2px 8px;border-radius:12px;font-weight:700;font-size:.85em}.grade-A,.grade-A+{background:#d4edda;color:#155724}.grade-A-{background:#d1ecf1;color:#0c5460}.grade-B+,.grade-B{background:#fff3cd;color:#856404}.grade-B-{background:#ffeaa7;color:#856404}.grade-C+,.grade-C{background:#f8d7da;color:#721c24}.grade-C-{background:#f5c6cb;color:#721c24}.grade-D+,.grade-D{background:#e2e3e5;color:#383d41}.grade-F{background:#dc3545;color:#fff}.grade-P,.grade-CR{background:#28a745;color:#fff}.grade-W,.grade-I{background:#6c757d;color:#fff}.history-term-block{margin-bottom:2rem;border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.history-term-header{background:#f8f9fa;padding:1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9ecef}.history-term-title{margin:0;color:#495057;font-size:1.25rem}.history-term-gpa{color:#6c757d;font-size:1rem}.history-table{width:100%;border-collapse:collapse}.history-table th{background:#f1f3f4;padding:.75rem;text-align:left;font-weight:600;color:#495057;border-bottom:1px solid #dee2e6}.history-table td{padding:.75rem;border-bottom:1px solid #dee2e6}.history-term-summary{background:#e9ecef;font-weight:700}.text-center{text-align:center}.event-chip{border:1px solid var(--border);border-radius:10px;padding:8px;margin:4px 0;background:var(--surface);font-size:12px}.event-chip.is-complete{opacity:.7;text-decoration:line-through}.event-chip-top{display:flex;gap:8px;justify-content:space-between;align-items:flex-start}.event-chip-title{font-weight:700;line-height:1.2}.event-chip-actions{display:flex;gap:6px}.mini-icon{border:1px solid var(--border);background:transparent;border-radius:8px;padding:4px 6px;cursor:pointer}.event-chip-time,.event-chip-loc{opacity:.8;margin-top:4px}.schedule-compact .sched-row td,.schedule-compact .sched-row th{padding-top:6px;padding-bottom:6px}.schedule-table .is-today{background:rgba(120,90,255,.08)}.note-card{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--surface)}.note-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.note-title{font-weight:800}.note-actions{display:flex;gap:6px}.note-body{font-size:13px;opacity:.9;white-space:pre-wrap}.risk-item{border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:10px;background:var(--surface)}.risk-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}.risk-name{font-weight:800}.risk-badge{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid var(--border)}.risk-bar{height:8px;border-radius:999px;border:1px solid var(--border);overflow:hidden;background:rgba(0,0,0,.04)}.risk-fill{height:100%}.risk-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:12px;opacity:.85}.alert-chip{border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px;display:inline-block;margin:4px 6px 0 0;background:var(--surface)}.alert-danger{border-color:#e5393559;background:rgba(254,226,226,.1);color:var(--danger)}.alert-warn{border-color:#f59e0b59;background:rgba(254,249,195,.9);color:#854d0e}.alert-ok{opacity:.85}.ev-time{font-size:12px;opacity:.8;white-space:nowrap}.ev-cell{vertical-align:top;padding:6px;min-width:110px}.ev-stack{display:flex;flex-direction:column;gap:6px}.ev-chip{width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;padding:8px;background:var(--surface);cursor:pointer}.ev-chip:hover{opacity:.95}.ev-title{font-weight:800;font-size:12.5px}.ev-meta{font-size:11.5px;opacity:.8;margin-top:2px}.ev-more{font-size:11px;opacity:.75;padding-left:2px}.ev-compact .ev-meta{display:none}.task-card{background:white;border:1px solid #e9ecef;border-radius:8px;padding:1rem;margin-bottom:.75rem;display:flex;align-items:flex-start;transition:all .2s;box-shadow:0 1px 3px #0000000d}.task-card:hover{box-shadow:0 4px 12px #00000014;border-color:#cfe2ff}.task-card.completed{opacity:.8;background-color:#f8f9fa}.task-card.completed .task-title{text-decoration:line-through}.task-left{margin-right:1rem}.task-checkbox{position:relative;display:inline-block}.task-checkbox input{opacity:0;position:absolute}.task-checkbox .checkmark{display:inline-block;width:20px;height:20px;border:2px solid #6c757d;border-radius:4px;cursor:pointer;position:relative}.task-checkbox input:checked+.checkmark{background-color:#28a745;border-color:#28a745}.task-checkbox input:checked+.checkmark:after{content:"✓";position:absolute;color:#fff;font-size:14px;top:50%;left:50%;transform:translate(-50%,-50%)}.task-main{flex:1}.task-title{font-weight:600;margin-bottom:.25rem;font-size:1rem}.task-notes{font-size:.875rem;margin-bottom:.5rem;line-height:1.4}.task-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;font-size:.8rem}.task-due{display:inline-flex;align-items:center;color:#6c757d}.task-actions{display:flex;gap:.25rem;margin-left:.5rem}.task-actions .btn{padding:.25rem .5rem;font-size:.8rem}.empty-state{text-align:center;padding:3rem 1rem;color:#6c757d}.empty-state i{font-size:3rem;margin-bottom:1rem;opacity:.5}.history-item{padding:.75rem;border-bottom:1px solid #e9ecef;font-size:.875rem}.history-title{font-weight:500;margin-bottom:.25rem}.history-meta{color:#6c757d;font-size:.8rem}.badge-pill{padding:.25em .6em;font-size:.75em}.goals-feature{padding:1.5rem}.goal-stats-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;padding:1.5rem;color:#fff;margin-bottom:2rem;box-shadow:0 4px 20px #0000001a}.goal-stats-container h2{font-size:1.5rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.goal-stats-container h2 i{font-size:1.25rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.stat-card{background:rgba(255,255,255,.1);border-radius:10px;padding:1.25rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);transition:transform .3s ease,background .3s ease}.stat-card:hover{transform:translateY(-4px);background:rgba(255,255,255,.15)}.stat-value{font-size:2.25rem;font-weight:800;line-height:1;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.stat-value .progress-ring{width:40px;height:40px}.stat-label{font-size:.875rem;opacity:.9;font-weight:500}.stat-trend{font-size:.75rem;margin-top:.5rem;display:flex;align-items:center;gap:.25rem}.stat-trend.positive{color:#4ade80}.stat-trend.negative{color:#f87171}.category-filter-section{margin-bottom:1.5rem}.category-filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.category-filter-header h3{font-size:1.125rem;font-weight:600;color:#1f2937}.category-filter-grid{display:flex;flex-wrap:wrap;gap:.75rem}.category-filter-item{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:white;border:2px solid #e5e7eb;border-radius:20px;cursor:pointer;transition:all .3s ease;font-size:.875rem;font-weight:500;color:#4b5563}.category-filter-item:hover{border-color:#9ca3af;transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.category-filter-item.active{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 4px 12px #3b82f64d}.category-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.category-count{background:#f3f4f6;border-radius:12px;padding:.125rem .625rem;font-size:.75rem;font-weight:600;color:#6b7280;transition:all .3s ease}.category-filter-item.active .category-count{background:rgba(255,255,255,.2);color:#fff}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.5rem;margin-top:1.5rem}.goal-card{background:white;border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 2px 8px #0000000a;position:relative}.goal-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px #0000001a;border-color:#d1d5db}.goal-card.completed{opacity:.95;background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%)}.goal-card.completed:before{content:"";position:absolute;top:0;right:0;width:60px;height:60px;background:linear-gradient(135deg,#10b981 0%,#059669 100%);clip-path:polygon(100% 0,0 0,100% 100%)}.goal-card.completed:after{content:"✓";position:absolute;top:8px;right:8px;color:#fff;font-size:1rem;font-weight:700;z-index:1}.goal-card-header{padding:1.25rem 1.25rem 0;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.goal-category{display:flex;align-items:center;gap:.5rem;padding:.375rem .875rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:rgba(59,130,246,.1);color:#1e40af}.goal-category i{font-size:.75rem}.goal-actions{display:flex;gap:.375rem}.btn-icon{width:36px;height:36px;border-radius:10px;border:1.5px solid #e5e7eb;background:white;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;transition:all .3s ease;font-size:.875rem}.btn-icon:hover{background:#f3f4f6;border-color:#9ca3af;color:#374151;transform:scale(1.05)}.goal-card-body{padding:1.25rem}.goal-title{font-size:1.25rem;font-weight:700;color:#111827;margin-bottom:.75rem;line-height:1.4}.goal-card.completed .goal-title{color:#6b7280;text-decoration:line-through}.goal-description{font-size:.9375rem;color:#6b7280;margin-bottom:1.25rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.goal-target{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border-radius:12px;margin-bottom:1.25rem;border-left:4px solid #0ea5e9}.goal-target i{color:#0ea5e9;font-size:1.125rem}.goal-target span{font-size:.9375rem;font-weight:600;color:#0369a1}.goal-meta{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:#6b7280;margin-top:1rem}.goal-due{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#f8fafc;border-radius:8px;font-weight:500}.goal-due.overdue{background:#fef2f2;color:#dc2626}.goal-due.overdue .badge{background:#dc2626;color:#fff;padding:.125rem .5rem;border-radius:4px;font-size:.6875rem;font-weight:600}.goal-milestones{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#f8fafc;border-radius:8px;font-weight:500}.goal-milestones i{color:#7c3aed}.goal-card-footer{padding:1.25rem;border-top:1px solid #e5e7eb;background:#fafafa}.goal-progress{margin-bottom:1.25rem}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.progress-label{font-size:.875rem;font-weight:600;color:#374151;display:flex;align-items:center;gap:.5rem}.progress-label i{font-size:1rem}.progress-value{font-size:1.125rem;font-weight:700;color:#111827}.progress-bar{height:10px;background:#e5e7eb;border-radius:5px;overflow:hidden;position:relative}.progress-fill{height:100%;border-radius:5px;transition:width 1s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.2) 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.goal-actions-footer{display:flex;gap:.75rem}.goal-actions-footer .btn{flex:1;padding:.625rem 1rem;font-size:.875rem;font-weight:600;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .3s ease}.goal-actions-footer .btn i{font-size:.875rem}.milestone-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:white;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:.75rem;transition:all .3s ease;position:relative}.milestone-item:hover{border-color:#c7d2fe;transform:translate(4px);box-shadow:0 4px 12px #0000000d}.milestone-item.completed{background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 100%);border-color:#86efac}.milestone-left{flex-shrink:0}.milestone-checkbox{position:relative;width:24px;height:24px}.milestone-checkbox input{opacity:0;position:absolute;width:100%;height:100%;cursor:pointer;z-index:1}.milestone-checkbox .checkmark{display:block;width:24px;height:24px;border:2.5px solid #9ca3af;border-radius:8px;position:relative;transition:all .3s ease}.milestone-checkbox input:checked+.checkmark{background:linear-gradient(135deg,#10b981 0%,#059669 100%);border-color:#10b981;animation:checkmarkPop .3s ease}.milestone-checkbox input:checked+.checkmark:after{content:"✓";position:absolute;color:#fff;font-size:14px;font-weight:700;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes checkmarkPop{0%{transform:scale(.8)}50%{transform:scale(1.1)}to{transform:scale(1)}}.milestone-main{flex:1;min-width:0}.milestone-title{font-weight:600;margin-bottom:.375rem;color:#1f2937;font-size:.9375rem}.milestone-item.completed .milestone-title{color:#065f46;text-decoration:line-through}.milestone-description{font-size:.8125rem;color:#6b7280;margin-bottom:.5rem;line-height:1.4}.milestone-meta{display:flex;gap:1rem;font-size:.75rem;color:#9ca3af}.milestone-due,.milestone-weight{display:flex;align-items:center;gap:.375rem}.milestone-actions{display:flex;gap:.375rem;flex-shrink:0}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-top:1rem}.template-card{background:white;border:2px solid #e5e7eb;border-radius:16px;padding:1.5rem;transition:all .4s ease;display:flex;align-items:flex-start;gap:1rem;cursor:pointer;position:relative;overflow:hidden}.template-card:hover{border-color:#c7d2fe;transform:translateY(-4px);box-shadow:0 12px 24px #00000014}.template-card:before{content:"";position:absolute;top:0;right:0;width:60px;height:60px;background:linear-gradient(135deg,#8b5cf6 0%,#7c3aed 100%);clip-path:polygon(100% 0,0 0,100% 100%);opacity:.1}.template-icon{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#8b5cf6 0%,#7c3aed 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;flex-shrink:0;box-shadow:0 4px 12px #8b5cf64d}.template-content{flex:1;min-width:0}.template-title{font-size:1.125rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.template-description{font-size:.875rem;color:#6b7280;margin-bottom:1rem;line-height:1.5}.template-meta{display:flex;gap:1rem;font-size:.75rem}.template-category{padding:.25rem .75rem;background:#f3f4f6;border-radius:20px;font-weight:600;color:#6b7280}.template-usage{display:flex;align-items:center;gap:.375rem;color:#9ca3af}.template-actions{margin-top:1rem}.template-actions .btn{padding:.5rem 1rem;font-size:.8125rem;font-weight:600;border-radius:10px;display:flex;align-items:center;gap:.375rem}.empty-state{text-align:center;padding:4rem 2rem;background:white;border-radius:16px;border:2px dashed #e5e7eb;margin:2rem 0}.empty-state-sm{text-align:center;padding:2rem 1rem;background:#fafafa;border-radius:12px;border:1px dashed #e5e7eb;margin:1rem 0}.empty-icon{margin-bottom:1.5rem;opacity:.5}.empty-icon i{font-size:3rem;color:#9ca3af}.empty-state h3{font-size:1.5rem;font-weight:700;margin-bottom:.75rem;color:#1f2937}.empty-state p{color:#6b7280;margin-bottom:1.5rem;max-width:400px;margin-left:auto;margin-right:auto}.empty-state .btn{padding:.75rem 2rem;font-weight:600;border-radius:12px}.completed-section{margin-top:3rem;padding-top:2rem;border-top:2px solid #e5e7eb}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-title{font-size:1.25rem;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:.75rem}.section-title i{color:#10b981}.goals-grid.completed .goal-card{opacity:.9;transform:scale(.98)}.goals-grid.completed .goal-card:hover{transform:scale(.99) translateY(-4px)}.progress-ring{position:relative;width:80px;height:80px}.progress-ring-bg{fill:none;stroke:#e5e7eb;stroke-width:8}.progress-ring-fill{fill:none;stroke-linecap:round;stroke-width:8;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1s ease}.progress-ring-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;font-weight:700;color:#111827}.quick-actions-bar{display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:white;border-radius:12px;border:1px solid #e5e7eb}.quick-action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#f3f4f6;border:none;border-radius:10px;font-size:.875rem;font-weight:600;color:#374151;cursor:pointer;transition:all .3s ease}.quick-action-btn:hover{background:#e5e7eb;transform:translateY(-2px)}.quick-action-btn.primary{background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);color:#fff}.quick-action-btn.primary:hover{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);box-shadow:0 4px 12px #3b82f64d}.view-mode-toggle{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:white;border:2px solid #e5e7eb;border-radius:12px;margin-left:auto}.view-mode-toggle span{font-size:.875rem;font-weight:600;color:#6b7280}.view-mode-toggle .switch{position:relative;display:inline-block;width:50px;height:26px}.view-mode-toggle .switch input{opacity:0;width:0;height:0}.view-mode-toggle .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#e5e7eb;transition:.4s;border-radius:34px}.view-mode-toggle .slider:before{position:absolute;content:"";height:18px;width:18px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%}.view-mode-toggle input:checked+.slider{background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%)}.view-mode-toggle input:checked+.slider:before{transform:translate(24px)}@media (max-width: 768px){.goals-grid{grid-template-columns:1fr;gap:1rem}.stats-grid{grid-template-columns:1fr 1fr}.category-filter-grid{overflow-x:auto;padding-bottom:.5rem;flex-wrap:nowrap}.quick-actions-bar{flex-wrap:wrap}.template-card{flex-direction:column}.template-icon{align-self:center}}@media (max-width: 480px){.goal-stats-container,.goal-card{padding:1rem}.goal-actions-footer{flex-direction:column}.stat-card{padding:1rem}.stat-value{font-size:1.75rem}}.fade-in{animation:fadeIn .5s ease}.slide-up{animation:slideUp .4s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.text-gradient{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.shadow-lg{box-shadow:0 10px 25px #0000001a}.shadow-xl{box-shadow:0 20px 40px #00000026}.border-gradient{border:2px solid transparent;background:linear-gradient(white,white) padding-box,linear-gradient(135deg,#667eea,#764ba2) border-box}@media (prefers-color-scheme: dark){.goal-card,.template-card,.milestone-item,.quick-actions-bar,.view-mode-toggle{background:#1f2937;border-color:#374151;color:#e5e7eb}.goal-title,.template-title{color:#f3f4f6}.goal-description,.template-description{color:#d1d5db}.goal-target{background:#374151;border-color:#4b5563}.goal-due,.goal-milestones{background:#374151;color:#d1d5db}.goal-card-footer{background:#111827;border-color:#374151}.progress-bar{background:#374151}.milestone-item.completed{background:#064e3b;border-color:#059669}.btn-icon{background:#374151;border-color:#4b5563;color:#d1d5db}.btn-icon:hover{background:#4b5563}.empty-state,.empty-state-sm{background:#1f2937;border-color:#374151;color:#d1d5db}.empty-state h3{color:#f3f4f6}.goal-stats-container{background:linear-gradient(135deg,#4338ca 0%,#7c3aed 100%)}}.task-card{display:flex;align-items:flex-start;padding:16px;border:1px solid #e9ecef;border-radius:8px;margin-bottom:12px;background:white;transition:all .2s}.task-card:hover{box-shadow:0 4px 12px #0000000d;border-color:#007bff}.task-card.completed{opacity:.7;background:#f8f9fa}.task-left{margin-right:12px;padding-top:2px}.task-checkbox{position:relative}.task-checkbox input[type=checkbox]{opacity:0;position:absolute;cursor:pointer}.task-checkbox .checkmark{display:inline-block;width:20px;height:20px;border:2px solid #6c757d;border-radius:4px;background:white;transition:all .2s}.task-checkbox input:checked~.checkmark{background:#28a745;border-color:#28a745}.task-checkbox input:checked~.checkmark:after{content:"✓";color:#fff;position:absolute;left:5px;top:-1px;font-size:14px}.task-main{flex:1;min-width:0}.task-title{font-weight:600;margin-bottom:4px;word-break:break-word}.text-line-through{text-decoration:line-through}.task-notes{font-size:.875rem;margin-bottom:8px;color:#6c757d}.task-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.8125rem}.task-due{display:inline-flex;align-items:center}.task-actions{display:flex;gap:8px;margin-left:12px}.task-actions .btn{padding:4px 8px;border-radius:4px}.history-item{padding:12px 16px;border-bottom:1px solid #e9ecef}.history-item:last-child{border-bottom:none}.history-title{font-weight:500;margin-bottom:2px}.history-meta{font-size:.8125rem;color:#6c757d;display:flex;align-items:center}.empty-state{text-align:center;padding:40px 20px;color:#6c757d}.empty-state i{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0}.badge{display:inline-block;padding:.25em .6em;font-size:.75em;font-weight:600;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:10px}.badge-pill{border-radius:10rem}.badge-danger{background-color:#dc3545;color:#fff}.badge-success{background-color:#28a745;color:#fff}.badge-secondary{background-color:#6c757d;color:#fff}.badge-info{background-color:#17a2b8;color:#fff}.badge-light{background-color:#f8f9fa;color:#212529}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center}.modal-content{background:white;border-radius:8px;max-width:700px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e9ecef}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid #e9ecef}.close-modal{background:none;border:none;font-size:24px;cursor:pointer;color:#6c757d}.close-modal:hover{color:#343a40}body[class*=theme-]{background-attachment:fixed}body[class*=theme-] input,body[class*=theme-] select,body[class*=theme-] textarea{background:var(--card);color:var(--text);border:1px solid var(--border)}body[class*=theme-] input::placeholder{color:var(--muted)}body[class*=theme-] .card{background:linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--border);color:var(--text)}body[class*=theme-] table thead th{background:var(--panel);color:var(--muted);border-bottom:1px solid var(--border)}body[class*=theme-] .btn-primary{background:linear-gradient(90deg,var(--brand-2),var(--brand));color:#0b1020;border:1px solid var(--border)}body[class*=theme-] .btn-secondary{background:var(--panel);color:var(--text);border:1px solid var(--border)}body[class*=theme-] .modal-content{background:var(--card);border:1px solid var(--border)}body[class*=theme-] .modal-header,body[class*=theme-] .modal-footer{background:var(--panel);border-color:var(--border)}body{transition:background-color .3s ease,color .3s ease}body[class*=theme-] *{transition:background-color .3s ease,border-color .3s ease,color .3s ease}.events-calendar-view{background:white;border-radius:12px;box-shadow:0 4px 20px #00000014;padding:24px;margin-bottom:24px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e9ecef}.calendar-title{display:flex;align-items:center;gap:12px}.calendar-title i{font-size:24px;color:#4361ee}.calendar-title h3{margin:0;font-size:20px;font-weight:600;color:#2d3748}.calendar-summary{color:#718096;font-size:14px;background:#f7fafc;padding:6px 12px;border-radius:20px}.calendar-days-container{display:flex;gap:20px;overflow-x:auto;padding-bottom:16px;min-height:400px}.calendar-days-container::-webkit-scrollbar{height:6px}.calendar-days-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.calendar-days-container::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}.calendar-days-container::-webkit-scrollbar-thumb:hover{background:#a0aec0}.event-day-column{flex:0 0 280px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;overflow:hidden;min-height:350px;transition:all .2s ease}.event-day-column:hover{border-color:#cbd5e0;box-shadow:0 4px 12px #0000000d}.event-day-column.today{border-color:#4361ee;background:linear-gradient(to bottom,#f0f4ff,#f8fafc)}.day-header{background:white;padding:16px;border-bottom:1px solid #e2e8f0;text-align:center}.day-name{font-size:14px;color:#718096;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.day-date{font-size:24px;font-weight:700;color:#2d3748}.today-badge{display:inline-block;background:#4361ee;color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;margin-top:6px;font-weight:600}.day-events{padding:16px;display:flex;flex-direction:column;gap:12px;height:calc(100% - 80px);overflow-y:auto}.event-card{background:white;border-radius:8px;padding:16px;border:1px solid #e2e8f0;cursor:pointer;transition:all .2s ease;position:relative}.event-card:hover{border-color:#4361ee;box-shadow:0 4px 12px #4361ee26;transform:translateY(-2px)}.event-time{font-size:13px;color:#4361ee;font-weight:600;margin-bottom:6px;display:flex;align-items:center;gap:6px}.event-time:before{content:"";width:8px;height:8px;background:#4361ee;border-radius:50%;display:inline-block}.event-title{font-size:16px;font-weight:600;color:#2d3748;margin-bottom:8px;line-height:1.3}.event-location{font-size:13px;color:#718096;display:flex;align-items:center;gap:6px;margin-bottom:8px}.event-location i{font-size:11px}.event-description-preview{font-size:13px;color:#4a5568;line-height:1.4;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-view-details{display:flex;justify-content:center}.btn-view-details{background:transparent;border:1px solid #e2e8f0;color:#718096;font-size:12px;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-view-details:hover{background:#f7fafc;border-color:#cbd5e0;color:#4a5568}.no-events{text-align:center;padding:40px 20px;color:#a0aec0}.no-events i{font-size:32px;margin-bottom:12px;opacity:.5}.no-events p{margin:0;font-size:14px}.events-empty-state{text-align:center;padding:60px 20px;background:white;border-radius:12px;border:2px dashed #e2e8f0}.empty-icon{font-size:48px;color:#cbd5e0;margin-bottom:20px}.events-empty-state h3{color:#4a5568;margin-bottom:8px}.events-empty-state p{color:#718096;margin-bottom:24px}.event-details-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center}.modal-content{background:white;border-radius:16px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;z-index:1;position:relative;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0}.modal-close{background:none;border:none;font-size:18px;color:#a0aec0;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.detail-title{font-size:24px;font-weight:700;color:#2d3748;margin-bottom:8px;line-height:1.3}.detail-time{font-size:15px;color:#4361ee;font-weight:600;display:flex;align-items:center;gap:8px}.detail-label{font-size:12px;text-transform:uppercase;color:#718096;letter-spacing:.5px;margin-bottom:6px;display:flex;align-items:center;gap:6px}.detail-value{font-size:15px;color:#4a5568;line-height:1.5}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-primary,.btn-secondary{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;gap:8px;transition:all .2s ease}.calendar-footer{margin-top:20px;padding-top:16px;border-top:1px solid #e9ecef;text-align:center;color:#718096;font-size:14px}@media (max-width: 768px){.calendar-days-container{flex-direction:column;overflow-x:visible;gap:16px}.event-day-column{flex:1;min-width:100%}.calendar-header{flex-direction:column;align-items:flex-start;gap:12px}.modal-content{width:95%;margin:10px}}.btn-view-details{cursor:pointer;pointer-events:auto}.event-card{cursor:pointer;position:relative}.event-card *{pointer-events:auto}.event-details-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:1;transition:opacity .3s ease}.event-details-modal[style*="display: none"]{display:none!important}.modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:white;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;z-index:10000;position:relative;box-shadow:0 20px 60px #0000004d;animation:modalSlideIn .3s ease;margin:auto}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0;position:sticky;top:0;background:white;border-radius:16px 16px 0 0;z-index:1}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#2d3748}.modal-close{background:none;border:none;font-size:18px;color:#a0aec0;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;line-height:1}.modal-close:hover{background:#f7fafc;color:#718096}.modal-body{padding:24px}.event-detail-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #e2e8f0}.detail-title{font-size:24px;font-weight:700;color:#2d3748;margin-bottom:12px;line-height:1.3}.detail-date{font-size:15px;color:#718096;margin-bottom:12px}.detail-time{font-size:15px;color:#4361ee;font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:8px}.event-detail-content{margin-bottom:32px}.detail-section{margin-bottom:20px}.detail-label{font-size:12px;text-transform:uppercase;color:#718096;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}.detail-value{font-size:15px;color:#4a5568;line-height:1.5;padding-left:18px}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #e2e8f0}.btn-primary,.btn-secondary{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;gap:8px;transition:all .2s ease;min-width:100px;justify-content:center}.btn-primary{background:#4361ee;color:#fff}.btn-primary:hover{background:#3a56d4;transform:translateY(-1px);box-shadow:0 4px 12px #4361ee4d}.btn-secondary{background:#f7fafc;color:#4a5568;border:1px solid #e2e8f0}.btn-secondary:hover{background:#edf2f7}body.modal-open{overflow:hidden}@media (max-width: 768px){.event-details-modal{padding:10px}.modal-content{max-width:95%;margin:10px}.modal-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.class-actions,.card-actions,.actions-row{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.class-actions button,.card-actions button,.actions-row button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.class-actions .btn,.class-actions button,.card-actions button{padding:7px 12px;border-radius:10px;font-size:13px}.class-actions .btn-delete{margin-left:auto}.class-actions i{font-size:13px}.auth{position:relative;min-height:100vh;display:grid;place-items:center;padding:18px;background:var(--bg, #fdf9f3);color:var(--text, #111827)}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.auth-orbit{position:absolute;width:720px;height:720px;border-radius:999px;border:1px solid rgba(234,179,8,.25);top:-240px;left:-220px;filter:blur(.2px)}.auth-orbit-2{width:860px;height:860px;border-color:#3b82f62e;bottom:-320px;right:-320px;top:auto;left:auto}.auth-shell{width:100%;max-width:520px;position:relative;z-index:2}.auth-card{background:rgba(255,253,247,.92);border:1px solid var(--border, #e5d9c8);border-radius:16px;box-shadow:var(--shadow, 0 10px 30px rgba(0,0,0,.15));overflow:hidden}.auth-head{padding:18px 18px 10px;background:linear-gradient(180deg,rgba(234,179,8,.14),rgba(234,179,8,0));border-bottom:1px solid rgba(229,217,200,.7)}.auth-brand{display:flex;gap:12px;align-items:center}.auth-mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(234,179,8,.18);border:1px solid rgba(234,179,8,.35);color:#854d0e}.auth-title{margin:0;font-size:20px;font-weight:850;letter-spacing:.2px}.auth-subtitle{margin:3px 0 0;font-size:13px;color:var(--muted, #6b7280)}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 12px 0}.auth-tab{border:1px solid var(--border, #e5d9c8);background:rgba(255,253,247,.9);color:var(--text, #111827);padding:10px 12px;border-radius:12px;font-weight:750;cursor:pointer}.auth-tab.is-active{border-color:#eab308b3;background:rgba(254,249,195,.7)}.auth-panel{display:none;padding:14px 18px 16px}.auth-panel.is-active{display:block}.auth-field{display:grid;gap:6px;margin-top:12px}.auth-label{font-size:12px;color:var(--muted, #6b7280)}.auth-input{width:100%;border:1px solid var(--border, #e5d9c8);background:#fffdf7;border-radius:12px;padding:11px 12px;outline:none}.auth-input:focus{border-color:#eab308e6;box-shadow:0 0 0 3px #eab3082e}.auth-pass{position:relative;display:grid}.auth-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:1px solid var(--border, #e5d9c8);background:rgba(255,253,247,.95);color:#374151;width:36px;height:34px;border-radius:10px;cursor:pointer;display:grid;place-items:center}.auth-btn{width:100%;margin-top:14px;border:0;border-radius:12px;padding:11px 14px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px}.auth-btn-primary{background:var(--brand, #eab308);color:#111827}.auth-btn[disabled]{opacity:.7;cursor:not-allowed}.auth-btn-icon{opacity:.9}.auth-spinner{display:none;width:16px;height:16px;border-radius:999px;border:2px solid rgba(17,24,39,.25);border-top-color:#111827f2;animation:authSpin .8s linear infinite}.auth-btn.is-loading .auth-spinner{display:inline-block}.auth-btn.is-loading .auth-btn-icon{display:none}@keyframes authSpin{to{transform:rotate(360deg)}}.auth-footnote{margin:12px 0 0;font-size:13px;color:var(--muted, #6b7280)}.auth-link{border:0;background:transparent;color:#1d4ed8;font-weight:750;cursor:pointer;padding:0 4px}.auth-status{padding:0 18px 16px;font-size:12px;color:var(--muted, #6b7280)}.grade-layout{display:grid;grid-template-columns:340px 1fr;gap:16px}.weights-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px}.panel-title{font-weight:800;font-size:14px;display:flex;align-items:center;gap:8px;margin-bottom:10px}.weights-grid{display:grid;gap:8px}.weight-row{display:grid;grid-template-columns:1fr 70px;gap:8px;align-items:center}.weight-row input{text-align:right}.weights-footer{margin-top:10px;display:flex;justify-content:space-between;align-items:center}.weights-total{font-weight:700}@media (max-width: 1000px){.grade-layout{grid-template-columns:1fr}}.card-prepcenter .prep-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.prep-grid{display:grid;grid-template-columns:360px 1fr;gap:16px}.prep-timer,.prep-history{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px}.timer-big{font-size:34px;font-weight:900;letter-spacing:1px;text-align:center;padding:14px 10px;border:1px solid var(--border);border-radius:12px;background:#fffdf7}.timer-row{display:grid;gap:6px;margin-top:10px}.timer-row.two{grid-template-columns:1fr 1fr;gap:10px}.timer-hint{margin-top:10px;font-size:12px;color:var(--muted)}.panel-title{display:flex;align-items:center;gap:8px;font-weight:850;margin-bottom:10px}.sessions-list{display:grid;gap:10px}.session-item{border:1px solid var(--border);background:#fffdf7;border-radius:12px;padding:10px}.session-top{display:flex;justify-content:space-between;gap:10px}.session-title{font-weight:800}.session-meta{font-size:12px;color:var(--muted);margin-top:4px}@media (max-width: 1050px){.prep-grid{grid-template-columns:1fr}}.grade-layout{display:grid;grid-template-columns:1fr 2fr;gap:24px;align-items:start}@media (max-width: 1200px){.grade-layout{grid-template-columns:1fr;gap:32px}}.weights-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.panel-title{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:18px;font-weight:600;color:var(--text-primary)}.panel-title i{color:var(--primary);font-size:20px}.weights-grid{display:flex;flex-direction:column;gap:20px}.weight-row.warning{border-left:4px solid var(--warning)}.weight-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-light)}.weight-course .course-title{font-weight:600;font-size:16px;color:var(--text-primary);margin-bottom:4px}.weight-course .course-code{font-size:14px;color:var(--text-secondary);font-family:var(--font-mono)}.weight-total-display{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-weight:500;font-size:14px}.weight-total-display.valid{background:rgba(var(--success-rgb),.1);color:var(--success)}.weight-total-display.warning{background:rgba(var(--warning-rgb),.1);color:var(--warning)}.weight-total-display.invalid{background:rgba(var(--danger-rgb),.1);color:var(--danger)}.weight-controls{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:12px}@media (max-width: 768px){.weight-controls{grid-template-columns:1fr}}.weight-label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary);font-weight:500}.weight-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:6px;color:var(--primary);font-size:12px}.weight-input-wrapper{position:relative}.weight-input{width:100%;padding:10px 36px 10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:15px;font-weight:500;transition:all .2s ease}.weight-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.weight-input.valid{border-color:var(--success)}.weight-input.invalid{border-color:var(--danger)}.weight-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:14px;font-weight:500}.weights-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.weights-total.warning{color:var(--warning)}.grades-panel{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;overflow:hidden}.grade-table{width:100%;border-collapse:separate;border-spacing:0}.grade-table thead th{text-align:left;padding:14px 16px;font-weight:600;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--bg-secondary)}.grade-table tbody td{padding:20px 16px;border-bottom:1px solid var(--border-light)}.course-info{min-width:200px}.course-name{margin-bottom:6px}.course-name strong{font-size:16px;font-weight:600;color:var(--text-primary)}.course-code{font-size:14px;color:var(--text-secondary);font-family:var(--font-mono);margin-top:2px}.course-meta{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-tertiary)}.instructor{display:inline-flex;align-items:center;gap:6px}.assignment-count{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-tertiary);border-radius:12px;font-size:12px}.grade-value{font-size:18px;font-weight:600;margin-bottom:4px}.grade-hint{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px}.value-filled{display:inline-block;padding:2px 0}.overall-grade{display:flex;flex-direction:column;align-items:center;gap:6px}.overall-numeric{font-size:22px;font-weight:700;padding:8px 16px;border-radius:10px;min-width:100px;text-align:center}.overall-numeric.excellent{background:rgba(var(--success-rgb),.1);color:var(--success);border:2px solid var(--success)}.overall-numeric.good{background:rgba(var(--primary-rgb),.1);color:var(--primary);border:2px solid var(--primary)}.overall-numeric.average{background:rgba(var(--warning-rgb),.1);color:var(--warning);border:2px solid var(--warning)}.overall-numeric.poor{background:rgba(var(--orange-rgb),.1);color:var(--orange);border:2px solid var(--orange)}.overall-numeric.failing{background:rgba(var(--danger-rgb),.1);color:var(--danger);border:2px solid var(--danger)}.overall-letter{font-size:16px;font-weight:600}.weight-hint{font-size:11px;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px;font-family:var(--font-mono)}.no-overall{display:flex;flex-direction:column;align-items:center;gap:4px}.empty-weights{text-align:center;padding:40px 20px}.empty-icon{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:50%;margin:0 auto 16px;color:var(--border);font-size:28px}@media (max-width: 768px){.grade-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.grade-table thead th,.grade-table tbody td{min-width:120px}.course-info{min-width:180px}.overall-numeric{font-size:18px;padding:6px 12px;min-width:80px}}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);padding:10px 24px;border-radius:8px;font-weight:500;font-size:14px;cursor:pointer;transition:all .2s ease}.grade-layout{grid-template-columns:minmax(340px,420px) minmax(0,1fr)}.weights-panel,.grades-panel{min-width:0}.table-responsive{width:100%;overflow-x:auto}.grade-table{min-width:760px}.weights-grid{max-height:72vh;overflow:auto;padding-right:6px}.card-grades .card-content{display:flex;flex-direction:column;gap:32px}.grades-table-section{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.grade-table{width:100%;border-collapse:separate;border-spacing:0;margin-bottom:20px}.grade-table thead th{text-align:left;padding:16px 12px;font-weight:600;color:var(--text-secondary);font-size:13px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--bg-secondary);white-space:nowrap}.grade-table thead th.text-center{text-align:center}.grade-table tbody td{padding:18px 12px;border-bottom:1px solid var(--border-light);vertical-align:middle}.grade-table tbody tr:last-child td{border-bottom:none}.grade-table tbody tr:hover{background:var(--bg-secondary)}.grade-table .course-info{min-width:220px}.grade-table .course-name{display:flex;flex-direction:column;gap:4px}.grade-table .course-name strong{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.3}.grade-table .course-code{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono);background:var(--bg-tertiary);padding:2px 8px;border-radius:4px;display:inline-block;width:fit-content}.grade-table .instructor{font-size:13px;color:var(--text-tertiary);margin-top:4px;display:flex;align-items:center;gap:6px}.grade-table .grade-value{font-size:17px;font-weight:600;margin-bottom:2px;text-align:center}.grade-table .grade-hint{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.3px;text-align:center}.grade-table .overall-grade{display:flex;flex-direction:column;align-items:center;gap:4px}.grade-table .overall-numeric{font-size:18px;font-weight:700;padding:6px 12px;border-radius:8px;min-width:80px;text-align:center}.grade-table .overall-numeric.excellent{background:rgba(var(--success-rgb),.1);color:var(--success)}.grade-table .overall-numeric.good{background:rgba(var(--primary-rgb),.1);color:var(--primary)}.grade-table .overall-numeric.average{background:rgba(var(--warning-rgb),.1);color:var(--warning)}.grade-table .overall-numeric.poor{background:rgba(var(--orange-rgb),.1);color:var(--orange)}.grade-table .overall-numeric.failing{background:rgba(var(--danger-rgb),.1);color:var(--danger)}.grade-table .letter-grade{font-size:14px;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--bg-tertiary)}.grade-table .actions-cell{text-align:center;width:120px}.grade-table .action-buttons{display:flex;gap:8px;justify-content:center}.grade-table .btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.grade-table .btn-icon:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-dark)}.grade-table .btn-icon.edit:hover{color:var(--primary);border-color:var(--primary-light)}.grade-table .btn-icon.weights:hover{color:var(--warning);border-color:var(--warning-light)}.table-footer{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid var(--border-light)}.table-stats{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-secondary)}.stat-value{font-weight:600;color:var(--text-primary)}.stat-divider{color:var(--border)}.weights-section{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;transition:all .3s ease}.weights-section.collapsed{display:none}.weights-section.expanded{display:block;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.weights-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.weights-title{margin:0;font-size:18px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.weights-title i{color:var(--warning)}.weights-title small{font-size:14px;font-weight:400;color:var(--text-secondary);margin-left:8px}.weights-header .btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.weights-header .btn-icon:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-dark)}.weights-grid{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.weight-row{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:20px;transition:all .2s ease}.weight-row:hover{border-color:var(--primary-light);box-shadow:0 4px 12px #0000000d}.weight-row.valid{border-left:4px solid var(--success)}.weight-row.invalid{border-left:4px solid var(--danger)}.weight-row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.weight-course-info{flex:1}.weight-course-name{font-weight:600;font-size:16px;color:var(--text-primary);margin-bottom:4px}.weight-course-code{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono)}.weight-row-total{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;font-weight:500;font-size:14px;min-width:80px;justify-content:center}.weight-row-total.valid{background:rgba(var(--success-rgb),.1);color:var(--success)}.weight-row-total.invalid{background:rgba(var(--danger-rgb),.1);color:var(--danger)}.weight-controls-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 1024px){.weight-controls-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.weight-controls-grid{grid-template-columns:1fr}}.weight-control{display:flex;flex-direction:column;gap:8px}.weight-control-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);font-weight:500}.weight-control-label i{color:var(--primary);font-size:14px}.weight-control-input{display:flex;align-items:center;gap:8px}.weight-control-input input{flex:1;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:15px;font-weight:500;transition:all .2s ease}.weight-control-input input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.weight-control-input .weight-unit{color:var(--text-tertiary);font-size:14px;font-weight:500;min-width:24px}.weight-validation{display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(var(--danger-rgb),.05);border-radius:8px;font-size:13px;color:var(--danger);margin-top:12px}.weight-validation i{font-size:14px}.weights-footer{display:flex;justify-content:space-between;align-items:center;padding-top:20px;border-top:1px solid var(--border)}.weights-total-info{display:flex;flex-direction:column;gap:4px}.weights-total{font-size:16px;font-weight:600}.weights-total.valid{color:var(--success)}.weights-total.invalid{color:var(--danger)}.weights-hint{font-size:13px;color:var(--text-tertiary)}.empty-state{text-align:center;padding:60px 20px}.empty-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-secondary)}.empty-content i{font-size:48px;color:var(--border);margin-bottom:8px}.empty-content p{font-size:16px;font-weight:500;margin:0}.empty-content small{font-size:14px;opacity:.7}@media (max-width: 768px){.grade-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.grade-table thead th,.grade-table tbody td{min-width:100px}.course-info{min-width:180px}.overall-numeric{font-size:16px;padding:4px 8px;min-width:70px}.table-footer{flex-direction:column;gap:12px;align-items:flex-start}.weights-footer{flex-direction:column;gap:16px;align-items:flex-start}}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--primary-rgb),.2)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);padding:8px 16px;border-radius:6px;font-weight:500;font-size:13px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-dark)}.grade-excellent{color:var(--success)}.grade-good{color:var(--primary)}.grade-average{color:var(--warning)}.grade-poor{color:var(--orange)}.grade-failing{color:var(--danger)}.value-empty{color:var(--text-tertiary);font-style:italic}@keyframes highlight{0%{background-color:rgba(var(--warning-rgb),.1)}50%{background-color:rgba(var(--warning-rgb),.3)}to{background-color:var(--bg-secondary)}}.weight-row{display:grid;grid-template-columns:minmax(220px,1fr) 360px;gap:18px;align-items:center}.weight-header{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;padding-bottom:10px}.weight-course{display:grid;gap:4px}.weight-total-display{white-space:nowrap}.weight-controls{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start;justify-content:end}.weight-control{min-width:0}.weight-input-wrapper{width:100%}.weight-input{width:100%;min-width:0}.weight-unit{right:10px}.weight-total-display{align-self:flex-start}.weight-course .course-title,.weight-course .course-code{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weight-row{padding:16px}@media (max-width: 900px){.weight-row{grid-template-columns:1fr}.weight-controls{grid-template-columns:1fr 1fr;justify-content:start}}@media (max-width: 520px){.weight-controls{grid-template-columns:1fr}}.card.gpa-ops{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;box-shadow:none;overflow:hidden}.card.gpa-ops .card-header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:18px 20px}.card.gpa-ops .gpa-ops-title{font-size:18px;font-weight:800;color:var(--text-primary)}.card.gpa-ops .card-actions{display:flex;gap:10px}.card.gpa-ops .card-action{width:44px;height:40px;border-radius:10px;background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary)}.card.gpa-ops .card-action:hover{background:var(--bg-tertiary)}.card.gpa-ops .card-content{padding:22px;background:var(--card-bg)}.gpa-ops-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(720px,1.7fr);gap:22px;align-items:start}.gpa-ops-section-title{font-size:14px;font-weight:800;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border-light);padding-bottom:10px;margin-bottom:16px}.gpa-ops-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gpa-ops-cards .gpa-ops-card:nth-child(3){grid-column:1 / -1}.gpa-ops-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between}.gpa-ops-card-head{font-size:13px;font-weight:700;color:var(--text-secondary)}.gpa-ops-big{font-size:48px;font-weight:900;color:var(--text-primary);text-align:center;line-height:1.1}.gpa-ops-sub{font-size:14px;color:var(--text-tertiary);text-align:center}.gpa-ops-footnote{margin-top:12px;font-size:13px;color:var(--muted)}.gpa-ops-table{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.gpa-ops-table-head{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;padding:16px 18px;background:var(--bg-secondary);border-bottom:1px solid var(--border);font-size:13px;font-weight:800;color:var(--text-secondary);text-transform:uppercase}.gpa-ops-table-body{max-height:620px;overflow-y:auto}.gpa-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:12px;padding:16px 18px;align-items:center;border-top:1px solid var(--border-light)}.gpa-row:hover{background:var(--bg-secondary)}.gpa-course{font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gpa-input,.gpa-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text-primary);font-size:14px}.gpa-input[disabled]{background:var(--bg-secondary)}.gpa-btn{width:100%;padding:10px;border-radius:8px;font-size:13px;font-weight:700;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary)}.gpa-btn.add{background:var(--success-soft, #e6f6ea);border-color:var(--success, #4caf50);color:var(--success)}.gpa-btn.remove{background:var(--danger-soft, #fdeaea);border-color:var(--danger, #e53935);color:var(--danger)}.gpa-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1200px){.gpa-ops-grid,.gpa-ops-cards{grid-template-columns:1fr}}@media (max-width: 600px){.gpa-ops-big{font-size:36px}.gpa-ops-table-head,.gpa-row{grid-template-columns:1.6fr 1fr 1fr;row-gap:8px}.gpa-btn{font-size:12px}}.note-card{cursor:pointer;transition:transform .2s,box-shadow .2s;border:1px solid var(--border-color);border-radius:8px;padding:12px;background:var(--card-bg)}.note-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.note-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.note-title{font-weight:600;font-size:16px;color:var(--text-primary);flex:1}.note-tag{font-size:12px;padding:2px 8px;border-radius:12px;background:var(--primary-light);color:var(--primary);margin-left:8px}.note-body{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:8px}.note-date{font-size:12px;color:var(--text-tertiary);text-align:right}.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:12px}.hint{color:var(--text-tertiary);font-style:italic}.modal-input{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px}.modal-input:focus{outline:none;border-color:var(--primary)}.form-grid.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card.command-center .card-content.acc-grid{display:grid;grid-template-columns:1.15fr .95fr .75fr;gap:18px;align-items:start}@media (max-width: 1200px){.card.command-center .card-content.acc-grid{grid-template-columns:1fr}}.acc-charts{display:grid;gap:14px}.acc-chart{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:14px 14px 10px;overflow:hidden}.acc-chart-title{font-weight:700;color:var(--text-primary);margin-bottom:10px}.acc-risk-alerts{display:grid;gap:10px}.acc-subtitle{font-weight:700;color:var(--text-primary);margin-bottom:6px}.risk-list{display:grid;gap:12px}.risk-item{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:12px}.risk-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.risk-name{font-weight:800;color:var(--text-primary);max-width:62%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.risk-right{display:inline-flex;align-items:center;gap:8px}.risk-tag{font-size:12px;font-weight:700;padding:4px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary)}.risk-tag-danger{color:var(--danger);border-color:#e5393559}.risk-tag-warn{color:var(--warning);border-color:#f59e0b59}.risk-tag-ok{color:var(--success);border-color:#10b98159}.risk-badge{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-secondary)}.risk-badge.risk-danger{color:var(--danger)}.risk-badge.risk-warn{color:var(--warning)}.risk-badge.risk-watch{color:var(--accent)}.risk-badge.risk-ok{color:var(--success)}.risk-bar{height:10px;border-radius:999px;background:rgba(0,0,0,.06);overflow:hidden;border:1px solid var(--border-light);margin-bottom:10px}.risk-fill{height:100%;border-radius:999px;background:var(--accent)}.risk-item.risk-danger .risk-fill{background:var(--danger)}.risk-item.risk-warn .risk-fill{background:var(--warning)}.risk-item.risk-watch .risk-fill{background:var(--accent)}.risk-item.risk-ok .risk-fill{background:var(--success)}.risk-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.risk-kv{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:10px;padding:8px 10px;display:flex;justify-content:space-between;align-items:baseline;gap:8px}.risk-kv .k{font-size:12px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.risk-kv .v{font-weight:800;color:var(--text-primary)}.risk-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.btn-mini{border-radius:10px;padding:10px 12px;font-weight:700;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.btn-mini i{margin-right:8px}.risk-footnote{margin-top:10px;display:flex;gap:10px;color:var(--text-tertiary);font-size:12px}.alerts-strip{display:flex;flex-wrap:wrap;gap:10px}.alert-chip{border-radius:999px;padding:10px 12px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-weight:700;cursor:pointer}.alert-chip:disabled{cursor:default;opacity:.9}.alert-danger{border-color:#e5393559}.alert-warn{border-color:#f59e0b59}.alert-ok{border-color:#10b98159}.acc-side{display:grid;gap:14px}.focus-card,.insights-card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:14px}.focus-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}.focus-title{font-weight:900;color:var(--text-primary)}.focus-meta{font-size:12px;font-weight:800;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-light);padding:6px 10px;border-radius:999px}.focus-course{font-weight:900;font-size:16px;color:var(--text-primary);margin-bottom:6px}.focus-reason{color:var(--text-secondary);font-size:13px;line-height:1.35;min-height:34px}.focus-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.insights-header{display:flex;justify-content:space-between;align-items:center;font-weight:800;margin-bottom:10px;color:var(--text-primary)}.mini-link{background:transparent;border:none;color:var(--accent);cursor:pointer;font-weight:800}.insights-list{margin:0;padding-left:18px;color:var(--text-secondary);line-height:1.35}.insight-item{margin:6px 0}.card.command-center .acc-grid{display:grid!important;grid-template-columns:1.15fr .95fr .75fr!important;gap:18px!important;align-items:start!important}@media (max-width: 1200px){.card.command-center .acc-grid{grid-template-columns:1fr!important}}.card.command-center .acc-charts{display:grid!important;gap:14px!important;min-width:0!important}.card.command-center .acc-chart{width:100%!important;min-width:0!important;overflow:hidden!important}.card.command-center .risk-list{display:grid!important;gap:12px!important}.card.command-center .risk-item{display:block!important;width:100%!important;max-width:100%!important}.card.command-center .risk-top,.card.command-center .risk-meta,.card.command-center .risk-actions,.card.command-center .risk-footnote{width:100%!important;max-width:100%!important}.card.command-center .risk-meta{display:grid!important;grid-template-columns:repeat(3,1fr)!important}.card.command-center .risk-item *{min-width:0}.card.command-center .alerts-strip{display:flex!important;flex-wrap:wrap!important;gap:10px!important}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:1.5rem}.goal-card{background:white;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.goal-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001a;border-color:var(--primary)}.goal-card-header{margin-bottom:1rem}.goal-title-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.goal-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0;flex:1}.goal-progress-badge{font-size:.75rem;font-weight:600;color:#fff;padding:.25rem .5rem;border-radius:9999px;margin-left:.5rem}.goal-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin:.5rem 0}.goal-target{display:flex;align-items:center;font-size:.875rem;color:#6b7280;margin-top:.5rem}.goal-card-body,.goal-progress-bar{margin-bottom:1rem}.progress-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:.25rem}.progress-fill{height:100%;transition:width .3s ease}.progress-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280}.progress-text{font-weight:500}.milestones-indicator{display:flex;align-items:center;font-size:.75rem;color:#6b7280;margin-bottom:.5rem}.deadline-indicator{display:flex;align-items:center;font-size:.75rem;color:#6b7280}.deadline-indicator.overdue{color:#dc2626}.overdue-badge{font-size:.7rem;padding:.15rem .5rem;background:#fef2f2;color:#dc2626;border-radius:4px;margin-left:.5rem}.days-badge{font-size:.7rem;padding:.15rem .5rem;background:#f0f9ff;color:#0369a1;border-radius:4px;margin-left:.5rem}.goal-click-hint{display:flex;align-items:center;justify-content:center;padding-top:.75rem;border-top:1px solid #f3f4f6;color:var(--primary);font-size:.75rem;font-weight:500}.goal-click-hint i{margin-right:.25rem;font-size:.7rem}.milestones-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.milestones-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.milestones-section h3{font-size:1.125rem;font-weight:600;color:#111827;margin:0}.milestones-help{display:flex;align-items:center;color:#6b7280;font-size:.875rem;margin:0 1rem;flex:1}.milestones-help i{margin-right:.5rem}.milestones-list{display:flex;flex-direction:column;gap:.75rem}.milestone-item{display:flex;align-items:center;padding:.75rem;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.milestone-item.completed{opacity:.7;background:#f0fdf4;border-color:#bbf7d0}.milestone-checkbox{display:flex;align-items:flex-start;flex:1}.milestone-checkbox input[type=checkbox]{margin-right:.75rem;margin-top:.25rem}.milestone-label{flex:1;cursor:pointer}.milestone-title{display:block;font-weight:500;color:#111827;margin-bottom:.25rem}.milestone-description{display:block;font-size:.875rem;color:#6b7280;margin-bottom:.25rem}.milestone-due{display:block;font-size:.75rem;color:#6b7280}.milestone-help{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.milestone-help p{margin:.5rem 0}.milestone-help strong{color:#0369a1}.completed-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.completed-section .section-header{display:flex;align-items:center;margin-bottom:1rem}.section-title{font-size:1.125rem;font-weight:600;color:#111827;margin:0 .5rem 0 0}.goals-grid.completed .goal-card{opacity:.7;border-color:#d1fae5}.goals-grid.completed .goal-card:hover{opacity:.9}.empty-state-sm{text-align:center;padding:2rem 1rem;color:#6b7280}.empty-state-sm i{font-size:2rem;margin-bottom:1rem;opacity:.3}.empty-state-sm p{margin:.5rem 0}.text-sm{font-size:.875rem}.hint{font-size:.75rem;color:#6b7280;margin-top:.25rem}.btn-primary,button.btn-primary,.modal .btn-primary,.modal-footer .btn-primary,#saveGPABtn,#saveWeightsBtn,#saveBtn,.save-btn{background:var(--accent, #4a6cf7)!important;border:1px solid rgba(0,0,0,.08)!important;color:#fff!important;font-weight:800}.btn-primary:hover:not(:disabled),button.btn-primary:hover:not(:disabled),.modal .btn-primary:hover:not(:disabled),.modal-footer .btn-primary:hover:not(:disabled),#saveGPABtn:hover:not(:disabled),#saveWeightsBtn:hover:not(:disabled),#saveBtn:hover:not(:disabled),.save-btn:hover:not(:disabled){filter:brightness(.95)}.btn-primary:disabled,button.btn-primary:disabled,.modal .btn-primary:disabled,.modal-footer .btn-primary:disabled,#saveGPABtn:disabled,#saveWeightsBtn:disabled,#saveBtn:disabled,.save-btn:disabled{background:rgba(0,0,0,.12)!important;border-color:#0000001a!important;color:#0000008c!important;cursor:not-allowed;opacity:1!important}.btn-secondary,button.btn-secondary,.modal-footer .btn-secondary,.cancel-btn{background:var(--bg-secondary, #f3f0e8)!important;border:1px solid var(--border, #d8d2c5)!important;color:var(--text-primary, #1f2937)!important}.modal-footer .card-action,.modal .card-action{color:var(--text-primary, #1f2937)}.sidebar,aside.sidebar{position:relative;height:100%}.sidebar{padding-bottom:72px}#signOutBtn{position:absolute;left:16px;right:16px;bottom:16px;width:auto;z-index:5}.top-bar{display:flex;align-items:center;gap:12px;padding:12px 16px}.top-bar .user-info{margin-left:auto;display:flex;align-items:center;gap:14px;text-align:right}.top-bar .date-time-display{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-weight:600;white-space:nowrap}#user-name .user-name{color:var(--text-primary);font-weight:800;white-space:nowrap}.top-bar .user-info{padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-secondary)}@media (max-width: 560px){.top-bar .user-info{flex-direction:column;align-items:flex-end;gap:4px}}@media (max-width: 900px){.container{grid-template-columns:1fr}.sidebar{position:static;width:100%;height:auto;overflow:visible;border-right:none;border-bottom:1px solid var(--border)}.main-content{margin-left:0;width:100%}.dashboard{grid-template-columns:1fr;padding:14px}.card{grid-column:1 / -1}.top-bar{flex-wrap:wrap;gap:10px}.user-info{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}}.table-responsive,.card-content .table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:680px}.card-content{min-width:0;overflow-x:hidden}
