@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Red+Hat+Text:wght@400;500;600;700&display=swap";:root{--teal: #A855F7;--teal-dark: #9333EA;--coral: #F87171;--green: #3FB950;--amber: #D29922;--blue: #58A6FF;--red: #F85149;--purple-glow: rgba(168,85,247,.18);--bg: #12141D;--surface: #1C1E2A;--surface-raised: #252838;--surface-overlay: #2C2F44;--border: #363952;--border-subtle: #2C2F44;--text-primary: #F0F0F8;--text-secondary: #94A3B8;--text-muted: #5C657A;--navy: #12141D;--navy-light: #252838;--white: #F0F0F8;--grey-50: #1C1E2A;--grey-100: #252838;--grey-200: #363952;--grey-400: #5C657A;--grey-500: #94A3B8;--grey-600: #B0BAC8;--grey-700: #C9D1D9;--grey-800: #F0F0F8;--sidebar-width: 240px;--shadow: 0 1px 4px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;color:var(--text-primary);background:var(--bg);line-height:1.5}h1,h2,h3,h4,.page-title,.sidebar-nav a,.sidebar-nav button.nav-link{font-family:Red Hat Text,Inter,sans-serif}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:#0b0d12;border-right:1px solid var(--border);color:var(--text-primary);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;overflow-y:auto}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;background:var(--bg)}.page-header{background:var(--surface);border-bottom:1px solid var(--border);padding:20px 32px;display:flex;align-items:center;justify-content:space-between}.page-header h1{font-size:20px;font-weight:600;color:var(--text-primary)}.page-body{padding:32px}.sidebar-logo{padding:20px 20px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:#0b0d12}.sidebar-logo-img{width:160px;height:auto;display:block}.sidebar-logo .brand{font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--teal);text-transform:uppercase}.sidebar-logo .product{font-size:16px;font-weight:700;color:var(--text-primary);margin-top:2px}.sidebar-nav{flex:1;padding:16px 0}.sidebar-nav ul{list-style:none}.sidebar-nav a,.sidebar-nav button.nav-link{display:flex;align-items:center;gap:10px;padding:10px 20px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:all .15s;border-radius:0}.sidebar-nav a:hover,.sidebar-nav button.nav-link:hover{background:var(--surface-overlay);color:var(--text-primary)}.sidebar-nav a.active,.sidebar-nav button.nav-link.active{background:var(--purple-glow);color:var(--teal);border-right:2px solid var(--teal)}.sidebar-nav .nav-section{font-size:10px;font-weight:700;letter-spacing:1px;color:var(--text-muted);text-transform:uppercase;padding:16px 20px 6px}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border)}.sidebar-user{font-size:12px;color:var(--text-secondary);margin-bottom:10px}.sidebar-user strong{display:block;color:var(--text-primary);font-size:13px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:none;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;text-decoration:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover:not(:disabled){background:var(--teal-dark)}.btn-danger{background:#f8717126;color:#f87171;border:1px solid rgba(248,113,113,.3)}.btn-danger:hover:not(:disabled){background:#f8717140}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-overlay);color:var(--text-primary)}.btn-secondary{background:var(--surface-overlay);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-raised);border-color:var(--text-muted)}.btn-marked{background:#a855f726;color:#c084fc;border:1px solid rgba(168,85,247,.4)}.btn-marked:hover:not(:disabled){background:#a855f740;border-color:#a855f799}.manually-marked-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#c084fc;padding:6px 12px;background:#a855f71f;border:1px solid rgba(168,85,247,.3);border-radius:6px}.btn-navy{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border)}.btn-navy:hover:not(:disabled){background:var(--surface-overlay)}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{padding:12px 24px;font-size:15px}.btn-full{width:100%;justify-content:center}.btn-xs{padding:2px 8px;font-size:11px}.card{background:var(--surface);border-radius:8px;border:1px solid var(--border);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:15px;font-weight:600;color:var(--text-primary)}.card-subtitle{font-size:12px;color:var(--text-secondary);margin-top:2px}.card-note{font-size:12px;color:var(--text-secondary);margin-bottom:16px;background:var(--surface-overlay);padding:8px 12px;border-radius:6px;border:1px solid var(--border-subtle)}.progress-bar-wrap{background:var(--surface-overlay);border-radius:4px;height:5px;overflow:hidden}.progress-bar,.progress-fill{background:var(--teal);height:100%;border-radius:4px;transition:width .3s}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:99px;font-size:11px;font-weight:600;background:var(--surface-overlay);color:var(--text-secondary)}.badge-quiz{background:#58a6ff26;color:#58a6ff}.badge-upload,.badge-file{background:#a855f726;color:var(--teal)}.badge-roleplay{background:#d2992226;color:var(--amber)}.badge-signoff{background:#f8514926;color:#f85149}.badge-green{background:#3fb95026;color:var(--green)}.badge-orange{background:#d2992226;color:var(--amber)}.badge-blue{background:#58a6ff26;color:#58a6ff}.badge-grey{background:var(--surface-overlay);color:var(--text-secondary)}.badge-coral{background:#ff6b6b26;color:var(--coral)}.badge-eligible{background:#3fb95026;color:var(--green)}.badge-manual{background:#a855f726;color:#c084fc}.badge-ineligible{background:#f8514926;color:#f85149;font-size:11px;max-width:240px;white-space:normal}.badge-pending-mark{background:#d2992226;color:var(--amber)}.table-container{background:var(--surface);border-radius:8px;border:1px solid var(--border);overflow:hidden}table{width:100%;border-collapse:collapse}thead{background:var(--surface-overlay)}th{padding:10px 16px;text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}td{padding:12px 16px;border-bottom:1px solid var(--border-subtle);font-size:13px;color:var(--text-primary)}tr:last-child td{border-bottom:none}tr.clickable:hover td{background:var(--surface-overlay);cursor:pointer}tr.ineligible td{color:var(--text-muted)}.form-group{margin-bottom:16px}label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}input,textarea,select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:13px;color:var(--text-primary);background:var(--surface-overlay);transition:border-color .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px #a855f726}textarea{resize:vertical;min-height:80px}.form-error{font-size:12px;color:var(--coral);margin-top:4px}.form-hint{font-size:11px;color:var(--text-muted);margin-top:4px}.form-actions{display:flex;gap:10px;margin-top:24px}.form{display:flex;flex-direction:column;gap:0}.form-card{max-width:540px}.alert{padding:12px 16px;border-radius:6px;font-size:13px;margin-bottom:16px}.alert-error{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:#ff7b72}.alert-success{background:#3fb9501a;border:1px solid rgba(63,185,80,.3);color:#56d364}.alert-info{background:#58a6ff1a;border:1px solid rgba(88,166,255,.3);color:#79c0ff}.alert-warning{background:#d299221a;border:1px solid rgba(210,153,34,.3);color:#e3b341}.alert-manually-marked{background:#a855f71a;border:1px solid rgba(168,85,247,.3);color:#c084fc}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:radial-gradient(ellipse at 50% 0%,rgba(168,85,247,.12) 0%,transparent 60%)}.login-card{background:var(--surface);border-radius:12px;padding:48px;border:1px solid var(--border);box-shadow:0 16px 48px #0009;width:100%;max-width:420px}.login-logo{text-align:center;margin-bottom:32px}.login-logo .brand{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--teal);text-transform:uppercase}.login-logo .product{font-size:24px;font-weight:700;color:var(--text-primary)}.login-logo .tagline{font-size:12px;color:var(--text-secondary);margin-top:4px}.login-logo-img{width:200px;height:auto;display:block;margin:0 auto 12px}.login-form{margin-top:8px}.login-logo h1{font-size:22px;font-weight:700;color:var(--text-primary);font-family:Red Hat Text,sans-serif}.login-logo p{font-size:12px;color:var(--text-secondary);margin-top:4px}.logo-raccoon{font-size:22px}.logo-text{font-size:15px;font-weight:700;color:var(--text-primary);margin-left:6px}.user-name{display:block;font-size:13px;font-weight:600;color:var(--text-primary)}.user-role{display:block;font-size:11px;color:var(--text-muted);text-transform:capitalize}.btn-logout{margin-top:8px;width:100%;padding:6px 0;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:12px;transition:all .15s}.btn-logout:hover{background:var(--surface-overlay);color:var(--text-primary)}.page{padding:32px;max-width:1200px}.page-title{font-size:20px;font-weight:700;color:var(--text-primary)}.page-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.page-header-actions{display:flex;align-items:center;gap:12px}.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:24px}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--surface);border-radius:8px;padding:20px;border:1px solid var(--border);box-shadow:var(--shadow)}.stat-card .stat-value{font-size:26px;font-weight:700;color:var(--teal)}.stat-card .stat-label{font-size:12px;color:var(--text-secondary);margin-top:2px}.stat-card .stat-sub{font-size:11px;color:var(--teal);font-weight:500}.period-selector{display:flex;gap:8px}.period-selector select{width:auto;padding:6px 10px}.month-selector{display:flex;align-items:center;gap:10px}.month-selector select{width:auto;padding:6px 10px}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:10px 14px;text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);background:var(--surface-overlay)}.data-table td{padding:11px 14px;border-bottom:1px solid var(--border-subtle);font-size:13px;color:var(--text-primary)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--surface-overlay)}.data-table .totals-row td{font-weight:600;background:var(--surface-overlay);border-top:2px solid var(--border)}.actions-cell{white-space:nowrap;display:flex;gap:6px;align-items:center}.assessor-name{font-weight:500;color:var(--text-primary)}.assessor-email{font-size:11px;color:var(--text-secondary)}.rate-input{width:90px;padding:4px 8px}.confirm-warning{font-size:12px;color:var(--coral);margin-right:4px}.sync-button-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.sync-last-at{font-size:11px;color:var(--text-muted)}.sync-message{font-size:12px}.sync-message.success{color:var(--green)}.sync-message.error{color:var(--coral)}.sync-progress-banner{background:var(--surface);border:1px solid rgba(168,85,247,.3);border-radius:10px;padding:16px 20px;margin-bottom:24px;box-shadow:0 0 20px #a855f70f}.sync-progress-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sync-progress-spinner{flex-shrink:0}.sync-progress-text{flex:1;font-size:13px;color:var(--text-primary)}.sync-progress-detail{color:var(--text-secondary);font-size:12px}.sync-progress-counts{display:flex;gap:8px;flex-wrap:wrap}.sync-count-pill{background:#a855f71f;color:var(--teal);border:1px solid rgba(168,85,247,.2);border-radius:99px;padding:2px 10px;font-size:11px;font-weight:600}.sync-progress-bar-wrap{margin-top:12px;position:relative}.sync-progress-bar-track{background:var(--surface-overlay);border-radius:4px;height:4px;overflow:hidden}.sync-progress-bar{background:var(--teal);height:100%;border-radius:4px;transition:width .6s ease;box-shadow:0 0 8px #a855f766}.sync-eta{display:block;margin-top:6px;font-size:11px;color:var(--text-muted);text-align:right;letter-spacing:.02em}.sync-waiting{padding:40px;text-align:center}.usage-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:14px 18px;min-width:280px}.usage-card-header{margin-bottom:10px}.usage-period{font-size:11px;color:var(--text-muted)}.usage-stats{display:flex;gap:18px}.usage-stat{display:flex;flex-direction:column}.usage-value{font-size:18px;font-weight:700;color:var(--teal)}.usage-label{font-size:10px;color:var(--text-muted)}.course-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.course-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:20px;text-decoration:none;color:inherit;display:block;transition:border-color .15s,box-shadow .15s}.course-card:hover{border-color:var(--teal);box-shadow:0 0 0 1px #a855f733,var(--shadow-md)}.course-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.course-name{font-size:14px;font-weight:600;color:var(--text-primary)}.course-unit{font-size:11px;color:var(--teal);margin-top:2px;font-weight:600}.course-progress-label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.course-detail-page{display:flex;flex-direction:column;gap:24px}.course-detail-header{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px 24px;display:flex;flex-direction:column;gap:12px}.course-detail-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.course-detail-title h1{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.unit-code-badge{background:#a855f71f;color:var(--teal);border:1px solid rgba(168,85,247,.3);border-radius:6px;padding:3px 10px;font-size:12px;font-weight:600;letter-spacing:.4px}.course-detail-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.detail-stat{font-size:13px;color:var(--text-secondary)}.detail-stat.needs-action{color:var(--amber);font-weight:600}.detail-stat.all-done{color:var(--green);font-weight:600}.detail-stat.draft-ready{color:var(--teal);font-weight:600}.submit-all-banner{background:#a855f714;border:1px solid rgba(168,85,247,.28);border-radius:10px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.submit-all-banner-info{display:flex;align-items:center;gap:12px}.submit-all-icon{font-size:22px}.submit-all-banner-info strong{font-size:14px;font-weight:600;color:var(--text-primary)}.submit-all-banner-info p{font-size:12px;color:var(--text-secondary);margin:2px 0 0}.submit-progress-wrap{border-radius:10px;padding:16px 20px;border:1px solid var(--border);background:var(--surface)}.submit-progress-wrap.status-running{border-color:#a855f74d;background:#a855f70f}.submit-progress-wrap.status-done{border-color:#3fb9504d;background:#3fb9500f}.submit-progress-wrap.status-errors{border-color:#f851494d;background:#f851490f}.submit-progress-track{height:6px;border-radius:3px;background:var(--border);overflow:hidden;margin-bottom:10px}.submit-progress-fill{height:100%;background:var(--teal);border-radius:3px;transition:width .3s ease}.submit-progress-label{font-size:13px;color:var(--text-secondary)}.submit-progress-results{display:flex;flex-direction:column;gap:8px}.submit-result-summary{font-size:14px;font-weight:600;color:var(--text-primary)}.submit-errors-list{list-style:none;padding:0;margin:4px 0;display:flex;flex-direction:column;gap:4px}.submit-errors-list li{font-size:12px;color:var(--coral)}.assignment-list{display:flex;flex-direction:column;gap:10px}.assignment-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.assignment-card--pending{border-left:3px solid var(--amber)}.assignment-card--has-drafts,.assignment-card--pending.assignment-card--has-drafts{border-left:3px solid var(--teal)}.assignment-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.assignment-header:hover{background:var(--surface-overlay)}.assignment-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.assignment-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-meta{display:flex;align-items:center;gap:10px;flex-shrink:0}.expand-icon{font-size:10px;color:var(--text-muted)}.student-list{border-top:1px solid var(--border-subtle);padding:0 8px 8px}.badge-needs-mark{background:#d299222e;color:var(--amber);border:1px solid rgba(210,153,34,.35);font-weight:700}.badge-all-done{background:#3fb9501f;color:var(--green);border:1px solid rgba(63,185,80,.25)}.badge-draft{background:#a855f726;color:var(--teal);border:1px solid rgba(168,85,247,.3);font-weight:700}.badge-draft-row{background:#a855f71f;color:var(--teal);border:1px solid rgba(168,85,247,.25)}.row-pending td{background:#d299220a}.row-draft td{background:#a855f70d}.row-ineligible td{background:transparent;opacity:.5}.assignment-progress-wrap{display:flex;align-items:center;gap:8px}.assignment-progress-track{width:64px;height:5px;background:var(--border);border-radius:3px;overflow:hidden}.assignment-progress-fill{height:100%;background:var(--teal);border-radius:3px;transition:width .3s}.assignment-progress-text{font-size:11px;color:var(--text-secondary);white-space:nowrap}.assignment-draft-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#a855f712;border-bottom:1px solid rgba(168,85,247,.18);font-size:13px;color:var(--text-secondary)}.student-name-cell{font-weight:500}.score-cell{font-variant-numeric:tabular-nums;min-width:48px}.action-cell{text-align:right;white-space:nowrap}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px 32px;max-width:520px;width:92%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:16px}.modal-card h2{font-size:17px;font-weight:700;color:var(--text-primary);margin:0}.modal-desc{font-size:13px;color:var(--text-secondary);margin:0}.draft-confirm-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;max-height:260px;overflow-y:auto}.draft-confirm-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-raised);border-radius:6px;font-size:13px}.draft-confirm-student{font-weight:500;flex:1}.draft-confirm-assignment{color:var(--text-secondary);font-size:12px;flex:2}.grading-layout{display:flex;flex-direction:column;height:100vh}.grading-header{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-primary);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.grading-header h2{font-size:16px;font-weight:600}.grading-header .meta{font-size:12px;color:var(--text-secondary)}.grading-body{flex:1;overflow-y:auto;padding:24px}.grading-footer{background:var(--surface);border-top:1px solid var(--border);padding:16px 24px;display:flex;align-items:flex-end;gap:16px;flex-shrink:0}.grading-panel{max-width:900px;display:flex;flex-direction:column;gap:0}.grading-meta{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px;margin-bottom:20px}.grading-meta-row{display:flex;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid var(--border-subtle)}.grading-meta-row:last-child{border-bottom:none}.meta-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;min-width:90px}.speedgrader-link{font-size:13px;color:var(--purple);text-decoration:none;font-weight:500}.speedgrader-link:hover{text-decoration:underline}.ai-disclaimer{background:#d299221a;border:1px solid rgba(210,153,34,.3);border-radius:6px;padding:10px 14px;font-size:12px;color:var(--amber);margin-bottom:16px}.submission-attachments{display:flex;align-items:flex-start;gap:12px;width:100%}.attachment-list{display:flex;flex-direction:column;gap:6px;flex:1}.attachment-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-overlay);border:1px solid var(--border);border-radius:6px;text-decoration:none;color:var(--text-primary);font-size:13px;transition:border-color .15s}.attachment-item:hover{border-color:var(--teal);color:var(--teal)}.attachment-media{cursor:default}.attachment-icon{font-size:15px;flex-shrink:0}.attachment-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{font-size:11px;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.attachment-none{font-size:13px;color:var(--text-secondary);font-style:italic}.attachment-loading{font-size:12px;color:var(--text-secondary);margin:0}.attachment-error{font-size:12px;color:#ff7b72;margin:0}.attachment-pending{opacity:.75;cursor:default}.attachment-pending:hover{border-color:var(--border);color:var(--text-primary)}.attachment-url-pending{font-size:10px;color:var(--text-secondary);margin-left:auto;animation:spin 1.2s linear infinite;display:inline-block}.suggest-hint{font-size:12px;color:var(--text-secondary);font-style:italic;margin:6px 0 12px}.grader-body,.grading-fields{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;margin-bottom:20px}.grade-input{max-width:140px}.notes-textarea{font-size:13px}.comment-textarea{font-size:13px;min-height:100px}.grading-actions{display:flex;align-items:center;gap:12px;padding:16px 0;flex-wrap:wrap}.save-msg{font-size:13px}.save-msg.success{color:var(--green)}.save-msg.error{color:var(--coral)}.grading-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.grading-section-header h3{font-size:15px;font-weight:600;color:var(--text-primary)}.grading-section-actions{display:flex;gap:8px;align-items:center}.quiz-grader{display:flex;flex-direction:column;gap:0}.quiz-item{background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin-bottom:14px}.quiz-question{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;font-weight:500;color:var(--text-primary)}.quiz-q-num{background:var(--teal);color:#fff;border-radius:4px;padding:1px 7px;font-size:11px;font-weight:700;flex-shrink:0}.quiz-q-text{flex:1}.quiz-points{font-size:11px;color:var(--text-muted);flex-shrink:0}.quiz-answer{background:var(--surface);border:1px solid var(--border-subtle);border-radius:6px;padding:10px 12px;font-size:13px;margin-bottom:10px;color:var(--text-primary);display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.quiz-answer-label{font-weight:600;color:var(--text-secondary);font-size:12px;flex-shrink:0;margin-top:1px}.quiz-answer-text{flex:1;line-height:1.5}.score-input-row{display:flex;align-items:center;gap:8px}.score-input{width:70px}.quiz-score-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.quiz-score-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.quiz-score-btns{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.score-chip{min-width:42px;padding:5px 10px;border-radius:6px;border:2px solid var(--border);background:var(--surface-raised);color:var(--text-secondary);font-weight:700;font-size:13px;cursor:pointer;transition:all .15s}.score-chip.active{border-color:var(--teal);background:var(--purple-glow);color:var(--teal)}.score-chip:hover:not(.active):not(:disabled){border-color:var(--text-muted);color:var(--text-primary)}.score-chip:disabled{opacity:.4;cursor:not-allowed}.ai-score-pill{font-weight:700;font-size:13px;padding:2px 10px;border-radius:99px}.score-full{background:#3fb95026;color:var(--green)}.score-half{background:#d2992226;color:var(--amber)}.score-zero{background:#f871711f;color:var(--coral)}.quiz-comments-row{display:flex;flex-direction:column;gap:4px}.quiz-comments-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.quiz-comments-label{font-size:12px;font-weight:600;color:var(--text-secondary)}.copy-comment-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;border-radius:5px;border:1px solid var(--border-subtle);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.copy-comment-btn:hover:not(:disabled){background:var(--brand);color:#fff;border-color:var(--brand)}.copy-comment-btn.copied{background:#16a34a;color:#fff;border-color:#16a34a}.copy-comment-btn:disabled{opacity:.35;cursor:not-allowed}.item-resubmit-row{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.item-submit-err{font-size:12px;color:#f87171}.ai-suggestion-box{background:#58a6ff14;border:1px solid rgba(88,166,255,.2);border-radius:6px;padding:8px 12px;margin-bottom:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ai-badge{background:#58a6ff33;color:#79c0ff;font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.5px}.ai-badge-none{background:var(--surface-overlay);color:var(--text-muted);font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px}.ai-score{font-weight:600;color:var(--text-primary);font-size:13px}.ai-rationale{font-size:12px;color:var(--text-secondary);flex:1}.ai-overall-rationale{background:var(--surface-overlay);border-radius:6px;padding:12px;font-size:12px;color:var(--text-secondary);margin-top:12px}.suggestion-banner{background:#58a6ff14;border:1px solid rgba(88,166,255,.2);border-radius:6px;padding:10px 14px;margin-bottom:16px;font-size:12px;color:#79c0ff;display:flex;align-items:center;gap:8px}.suggestion-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#58a6ff1f;border:1px solid rgba(88,166,255,.25);border-radius:99px;font-size:11px;color:#79c0ff;cursor:pointer;margin-left:8px;transition:all .15s}.suggestion-chip:hover{background:#58a6ff33}.question-card{background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:8px;padding:20px;margin-bottom:16px}.question-text{font-weight:500;margin-bottom:12px;line-height:1.6;color:var(--text-primary)}.student-answer{background:var(--surface);border:1px solid var(--border-subtle);border-radius:6px;padding:12px;font-size:13px;color:var(--text-secondary);margin-bottom:12px;white-space:pre-wrap}.score-buttons{display:flex;gap:8px;margin-bottom:8px}.score-btn{padding:6px 16px;border-radius:6px;border:2px solid var(--border);background:var(--surface-overlay);color:var(--text-primary);font-weight:600;cursor:pointer;transition:all .15s;font-size:13px}.score-btn.selected{border-color:var(--teal);background:var(--teal);color:#000}.score-btn:hover:not(.selected){border-color:var(--teal)}.rubric-grader{display:flex;flex-direction:column;gap:0}.rubric-item{border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:12px;background:var(--surface-overlay)}.rubric-criterion-desc{font-weight:600;margin-bottom:6px;color:var(--text-primary)}.criterion-long-desc{font-size:12px;color:var(--text-muted);margin-top:4px;margin-bottom:8px;line-height:1.5}.submission-text-preview{background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:6px;padding:12px;margin-bottom:16px}.submission-text-preview pre{font-size:12px;white-space:pre-wrap;font-family:monospace;color:var(--text-secondary)}.rating-btn-row{display:flex;gap:8px;margin:10px 0 8px;flex-wrap:wrap}.rating-btn{display:flex;flex-direction:column;align-items:center;padding:8px 14px;border-radius:8px;border:2px solid var(--border);background:var(--surface-raised);cursor:pointer;transition:all .15s;min-width:100px;text-align:center}.rating-btn:disabled{opacity:.4;cursor:not-allowed}.rating-abbr{font-size:15px;font-weight:800;letter-spacing:.5px;line-height:1;margin-bottom:2px}.rating-label-text{font-size:11px;font-weight:500;line-height:1.2}.rating-pts{font-size:10px;color:var(--text-muted);margin-top:2px}.rating-s{border-color:var(--border)}.rating-s:hover:not(:disabled):not(.active){border-color:var(--green)}.rating-s.active{border-color:var(--green);background:#3fb95026}.rating-s.active .rating-abbr,.rating-s.active .rating-label-text{color:var(--green)}.rating-nys{border-color:var(--border)}.rating-nys:hover:not(:disabled):not(.active){border-color:var(--amber)}.rating-nys.active{border-color:var(--amber);background:#d2992226}.rating-nys.active .rating-abbr,.rating-nys.active .rating-label-text{color:var(--amber)}.rating-ne{border-color:var(--border)}.rating-ne:hover:not(:disabled):not(.active){border-color:var(--coral)}.rating-ne.active{border-color:var(--coral);background:#f871711f}.rating-ne.active .rating-abbr,.rating-ne.active .rating-label-text{color:var(--coral)}.criterion-comment{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:12px;padding:8px 10px;resize:vertical;margin-top:6px}.criterion-comment:focus{outline:none;border-color:var(--teal)}.criterion-comment:disabled{opacity:.5;cursor:not-allowed}.ai-rating-pill{font-size:11px;font-weight:700;padding:2px 10px;border-radius:99px}.ai-satisfactory{background:#3fb95026;color:var(--green)}.ai-not-yet-satisfactory{background:#d2992226;color:var(--amber)}.ai-no-evidence{background:#f871711f;color:var(--coral)}.conf-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:99px;text-transform:uppercase;letter-spacing:.3px}.conf-high{background:#3fb9501f;color:var(--green)}.conf-med{background:#d299221f;color:var(--amber)}.conf-low{background:#f871711a;color:var(--coral)}.outcome-radio-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text-primary)}.radio-s{color:var(--green);font-weight:500}.radio-ns{color:var(--coral);font-weight:500}.media-grader{display:flex;flex-direction:column;gap:0}.transcription-panel{background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;margin-bottom:16px}.transcription-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.transcription-header h4{font-weight:600;color:var(--text-primary)}.transcript-box{background:var(--surface-overlay);border-radius:8px;padding:16px;font-size:13px;line-height:1.7;white-space:pre-wrap;max-height:300px;overflow-y:auto;margin-bottom:16px;color:var(--text-secondary)}.transcript-text{white-space:pre-wrap;font-size:13px;line-height:1.7;max-height:320px;overflow-y:auto;font-family:inherit;color:var(--text-secondary)}.signoff-grader{display:flex;flex-direction:column;gap:0}.signoff-info{background:#d299221a;border:1px solid rgba(210,153,34,.3);border-radius:6px;padding:12px 14px;font-size:13px;color:var(--amber);margin-bottom:16px}.signoff-tasks{margin-bottom:16px}.signoff-tasks h4{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.task-list{list-style:none;display:flex;flex-direction:column;gap:6px}.task-item{display:flex;gap:10px;padding:8px 12px;background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:6px;font-size:13px;color:var(--text-primary)}.task-num{font-weight:600;color:var(--text-muted)}.signoff-outcome h4{font-size:13px;font-weight:600;margin-bottom:10px;color:var(--text-primary)}.signoff-task-summary{background:var(--surface-overlay);border-radius:8px;padding:16px;margin-bottom:16px}.signoff-task-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.signoff-task-row:last-child{border-bottom:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:28px;max-width:440px;width:90%;box-shadow:var(--shadow-md)}.modal h3{font-size:16px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.loading-center{display:flex;align-items:center;justify-content:center;padding:60px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.spinner-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:12px}.spinner-text{font-size:13px;color:var(--text-secondary)}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:14px;color:var(--text-secondary);background:var(--bg)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state h3{font-size:15px;color:var(--text-secondary);margin-bottom:8px}.empty-state.small{padding:20px}.unit-outcome-highlight{border:2px solid var(--coral);border-radius:8px;padding:16px;margin-bottom:12px;background:#ff6b6b0d}.unit-outcome-label{font-size:11px;font-weight:700;color:var(--coral);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.running-total{font-size:18px;font-weight:700;color:var(--teal)}.running-total span{font-size:12px;font-weight:400;color:var(--text-secondary);margin-left:4px}.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:13px;text-decoration:none;margin-bottom:20px}.back-link:hover{color:var(--teal)}.sync-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;text-align:center;background:var(--bg)}.sync-screen h2{font-size:20px;font-weight:600;color:var(--text-primary)}.sync-screen p{color:var(--text-secondary);font-size:14px}.ineligible-row{opacity:.4;pointer-events:none}.eligibility-reason{font-size:11px;color:var(--text-muted)}.text-muted{color:var(--text-muted)}.small{font-size:11px}.nowrap{white-space:nowrap}.required{color:var(--coral)}code{background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:4px;padding:1px 5px;font-size:12px;font-family:monospace;color:var(--teal)}.marking-page{max-width:1100px}.marking-summary-row{display:flex;gap:16px;margin-bottom:28px;flex-wrap:wrap}.marking-stat-card{flex:1;min-width:120px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px;text-align:center}.marking-stat-card .stat-number{font-size:36px;font-weight:700;line-height:1}.marking-stat-card .stat-label{font-size:12px;color:var(--text-secondary);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.stat-pending .stat-number{color:var(--amber)}.stat-marked .stat-number{color:var(--green)}.stat-total .stat-number{color:var(--teal)}.marking-charts-row{display:flex;gap:20px;margin-bottom:32px;flex-wrap:wrap}.marking-chart-card{flex:1;min-width:260px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px 24px}.chart-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:12px}.donut-empty{color:var(--text-muted);font-size:13px;text-align:center;padding:20px}.donut-num{font-size:22px;font-weight:700;fill:var(--text-primary);font-family:Inter,sans-serif}.donut-label-inner{font-size:10px;fill:var(--text-secondary);font-family:Inter,sans-serif}.donut-legend{font-size:12px;color:var(--text-secondary);display:flex;gap:16px;align-items:center}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.legend-dot.ml{margin-left:8px}.type-bars{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}.type-bar-row{display:flex;align-items:center;gap:10px}.type-bar-label{width:60px;font-size:12px;color:var(--text-secondary);flex-shrink:0}.type-bar-track{flex:1;height:8px;background:var(--surface-raised);border-radius:4px;overflow:hidden}.type-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.type-bar-count{width:28px;text-align:right;font-size:12px;color:var(--text-primary);font-weight:600;flex-shrink:0}.type-bars-legend{display:flex;flex-direction:column;gap:8px}.type-legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.type-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.marking-section{margin-bottom:32px}.marking-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:14px}.marking-section-title--done{color:var(--text-muted)}.marking-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.marking-course-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;transition:border-color .15s,background .15s}.marking-course-card:hover{border-color:var(--teal);background:var(--surface-raised)}.marking-course-done{opacity:.55}.marking-course-done:hover{opacity:1}.marking-course-body{padding:16px 18px;cursor:pointer;flex:1;outline:none}.marking-course-body:focus-visible{box-shadow:inset 0 0 0 2px var(--teal)}.marking-course-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.course-sync-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid var(--border);background:var(--surface-raised)}.btn-course-sync{font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;background:transparent;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:5px;transition:border-color .15s,color .15s;white-space:nowrap}.btn-course-sync:hover:not(:disabled){border-color:var(--teal);color:var(--teal)}.btn-course-sync:disabled{opacity:.45;cursor:not-allowed}.btn-spinner{display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.course-sync-error{font-size:11px;color:var(--red, #f87171);flex:1}.badge-pending{background:#d2992226;color:var(--amber);font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;white-space:nowrap}.badge-done{background:#3fb9501f;color:var(--green);font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px}.marking-type-pills{display:flex;gap:6px;margin-bottom:10px}.type-pill{font-size:10px;font-weight:600;padding:2px 7px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px}.pill-quiz{background:#6366f126;color:#818cf8}.pill-task{background:#0ea5e926;color:#38bdf8}.marking-bar-row{display:flex;align-items:center;gap:10px}.marking-bar-track{flex:1;height:4px;background:var(--surface-raised);border-radius:2px;overflow:hidden}.marking-bar-fill{height:100%;background:var(--green);border-radius:2px;transition:width .4s ease}.marking-bar-label{font-size:11px;color:var(--text-muted);width:32px;text-align:right;flex-shrink:0}.schedule-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;max-width:560px}.schedule-card-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--border);background:var(--surface-raised)}.schedule-card-title{font-weight:600;font-size:14px;color:var(--text-primary)}.schedule-status-badge{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px}.badge-active{background:#3fb95026;color:var(--green)}.badge-paused{background:#64748b26;color:var(--text-secondary)}.schedule-details{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.schedule-detail-row{display:flex;gap:16px;align-items:center}.schedule-detail-label{font-size:12px;color:var(--text-muted);width:72px;flex-shrink:0}.schedule-detail-value{font-size:13px;color:var(--text-primary)}.schedule-actions{display:flex;gap:8px;padding:14px 20px;border-top:1px solid var(--border);background:var(--surface-raised);flex-wrap:wrap}.day-pills{display:flex;gap:4px;flex-wrap:wrap}.day-pill{font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px}.day-pill-on{background:#0ea5e926;color:#38bdf8}.day-pill-off{background:var(--surface);color:var(--text-muted);opacity:.5}.schedule-empty{padding:32px 0}.schedule-form-wrap{margin-top:24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;max-width:520px}.schedule-form-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:20px}.schedule-form{display:flex;flex-direction:column;gap:18px}.form-row{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px}.time-inputs{display:flex;align-items:center;gap:8px}.time-colon{font-size:18px;font-weight:600;color:var(--text-primary);margin:0 2px}.form-hint{font-size:11px;color:var(--text-muted);margin-left:4px}.form-select{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer}.form-select:focus{outline:none;border-color:var(--teal)}.day-toggle-row{display:flex;gap:6px;flex-wrap:wrap}.day-toggle{font-size:12px;font-weight:600;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text-muted);cursor:pointer;transition:all .15s}.day-toggle-on{background:#0ea5e926;border-color:#38bdf8;color:#38bdf8}.day-toggle:hover:not(.day-toggle-on){border-color:var(--teal);color:var(--teal)}.schedule-form-info{font-size:12px;color:var(--text-muted);line-height:1.5;background:var(--surface-raised);border-radius:6px;padding:10px 12px;border:1px solid var(--border)}.schedule-form-actions{display:flex;gap:8px}.btn-danger{background:#f871711f;color:#f87171;border:1px solid rgba(248,113,113,.3);border-radius:7px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.btn-danger:hover:not(:disabled){background:#f8717138}.btn-danger:disabled{opacity:.45;cursor:not-allowed}.delete-modal{max-width:480px;border-color:#f8717140}.delete-modal-icon{font-size:32px;text-align:center}.delete-modal h2{font-size:18px;font-weight:700;color:#f87171;text-align:center}.delete-warning-box{background:#f8717114;border:1px solid rgba(248,113,113,.25);border-radius:8px;padding:12px 16px;font-size:13px;color:#f87171}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px 28px;display:flex;flex-direction:column;gap:16px}.settings-section-title{font-size:15px;font-weight:700;color:var(--text-primary);margin:0}.settings-section-desc{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.6}.settings-notes{padding-left:20px;display:flex;flex-direction:column;gap:6px}.settings-notes li{font-size:13px;color:var(--text-secondary);line-height:1.5}.settings-notes code{font-family:monospace;background:var(--surface-raised);border-radius:4px;padding:1px 5px;font-size:12px;color:var(--teal)}.provider-cards{display:flex;flex-direction:column;gap:14px}.provider-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:10px;padding:20px 22px;display:flex;flex-direction:column;gap:12px;transition:border-color .15s}.provider-card--active{border-color:#a855f773;background:#a855f70d}.provider-card-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.provider-card-title{display:flex;align-items:center;gap:10px}.provider-name{font-size:15px;font-weight:700;color:var(--text-primary)}.badge-active-provider{background:#a855f733;color:var(--teal);border:1px solid rgba(168,85,247,.35);font-weight:700;font-size:11px}.provider-desc{font-size:13px;color:var(--text-secondary);line-height:1.55;margin:0}.provider-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.provider-key-status{display:flex;align-items:center;gap:8px}.key-set-indicator{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary)}.key-set-indicator.not-set{color:var(--text-muted)}.key-dot{width:8px;height:8px;border-radius:50%;background:var(--border);display:inline-block}.key-dot.set{background:var(--green);box-shadow:0 0 6px #3fb95080}.key-hint{font-family:monospace;font-size:12px;color:var(--text-muted)}.provider-key-form{background:var(--surface-overlay);border:1px solid var(--border-subtle);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}.provider-key-form-actions{display:flex;gap:8px;flex-wrap:wrap}.settings-page{display:flex;gap:0;min-height:100%}.settings-sidebar{width:200px;flex-shrink:0;padding:8px 0;border-right:1px solid var(--border)}.settings-title{font-size:16px;font-weight:700;color:var(--text-primary);padding:8px 20px 16px}.settings-content{flex:1;padding:4px 0 0;min-width:0}.settings-nav{display:flex;flex-direction:column;gap:2px;padding:0 8px}.settings-nav-link{display:block;padding:8px 12px;border-radius:6px;font-size:13px;color:var(--text-secondary);text-decoration:none;transition:background .15s,color .15s}.settings-nav-link:hover{background:var(--surface-raised);color:var(--text-primary)}.settings-nav-link.active{background:#a855f71f;color:var(--teal);font-weight:600}.settings-panel{display:flex;flex-direction:column;gap:32px;padding:4px 0;max-width:560px}.settings-panel-title{font-size:15px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.settings-panel-desc{font-size:13px;color:var(--text-secondary);margin:0 0 16px;line-height:1.55}.settings-section-inner{display:flex;flex-direction:column;gap:0;padding-bottom:28px;border-bottom:1px solid var(--border-subtle)}.settings-section-inner:last-child{border-bottom:none}.sidebar-nav-settings{margin-top:auto;border-top:1px solid var(--border-subtle);padding-top:8px}.sidebar-nav-section-label{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);padding:6px 16px 4px;pointer-events:none}.canvas-status-badge{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.canvas-status-badge.connected{background:#3fb95014;border:1px solid rgba(63,185,80,.22);color:var(--green)}.canvas-status-badge.disconnected{background:#d2992214;border:1px solid rgba(210,153,34,.22);color:var(--amber)}.canvas-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.canvas-status-url{font-weight:500}.canvas-guide{background:var(--surface-raised);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-top:4px}.canvas-guide-title{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.canvas-guide-steps{padding-left:20px;display:flex;flex-direction:column;gap:7px}.canvas-guide-steps li{font-size:13px;color:var(--text-secondary);line-height:1.5}.canvas-guide-steps strong{color:var(--text-primary)}.canvas-guide-link{margin-top:12px;display:inline-block}.canvas-guide-toggle{margin-top:4px;display:inline-block;font-size:12px}.form-hint-box{background:#a855f712;border:1px solid rgba(168,85,247,.2);border-radius:7px;padding:10px 14px;font-size:12px;color:var(--text-secondary);margin-bottom:4px}
