:root{color-scheme:light;font-family:Inter,system-ui,sans-serif;--bg-body: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);--bg-auth-body: linear-gradient(135deg, #eef2ff 0%, #f8fafc 100%);--panel-bg: #ffffff;--panel-shadow: 0 20px 60px rgba(15, 23, 42, .08);--text-primary: #0f172a;--text-secondary: #1f2937;--text-heading: #334155;--button-primary-bg: #4f46e5;--button-primary-color: #fff;--button-secondary-bg: #e2e8f0;--button-secondary-color: #0f172a;--button-disabled-bg: #94a3b8;--button-disabled-color: #cbd5e1;--tab-bg: #e2e8f0;--tab-active-bg: #3730a3;--tab-active-color: #fff;--stat-card-bg: #eef2ff;--stat-card-strong: #3730a3;--stat-card-span: #1f2937;--table-text: #0f172a;--table-border: #e2e8f0;--table-header-bg: rgba(15,23,42,.03);--table-header-color: #334155;--table-wrapper-bg: var(--panel-bg);--input-bg: #ffffff;--input-color: #0f172a;--input-placeholder: #0f172a;--input-border: #cbd5e1;--form-panel-bg: #f8fafc;--form-panel-border: #dbeafe;--form-panel-color: #0f172a;--form-panel-label-color: var(--text-primary);--alert-bg: #e0f2fe;--alert-color: #0369a1}.dark-mode{color-scheme:dark;--bg-body: linear-gradient(180deg, #0f172a 0%, #111827 100%);--bg-auth-body: linear-gradient(135deg, #0f172a 0%, #111827 100%);--panel-bg: #111827;--panel-shadow: 0 20px 60px rgba(0, 0, 0, .4);--text-primary: #f8fafc;--text-secondary: #f8fafc;--text-heading: #f8fafc;--button-primary-bg: #2563eb;--button-primary-color: #fff;--button-secondary-bg: #1f2937;--button-secondary-color: #f8fafc;--button-disabled-bg: #374151;--button-disabled-color: #9ca3af;--tab-bg: #1f2937;--tab-active-bg: #3b82f6;--tab-active-color: #fff;--stat-card-bg: #1f2937;--stat-card-strong: #fff;--stat-card-span: #f8fafc;--table-text: #f8fafc;--table-border: #374151;--table-header-bg: #111827;--table-header-color: #f8fafc;--table-wrapper-bg: #1f2937;--input-bg: #0f172a;--input-color: #f8fafc;--input-placeholder: #f8fafc;--input-border: #4b5563;--form-panel-bg: #1f2937;--form-panel-border: rgba(255,255,255,.18);--form-panel-color: #f8fafc;--form-panel-label-color: var(--text-primary);--alert-bg: #111827;--alert-color: #f8fafc}.review-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-bottom:18px;padding:12px;background:var(--form-panel-bg);border:1px solid var(--form-panel-border);border-radius:8px}.review-filters label{display:grid;gap:4px;min-width:190px;color:var(--form-panel-label-color);font-size:12px;font-weight:600}.review-filters select{min-width:190px}.review-status-filter-group{display:grid;gap:4px;min-width:0;color:var(--form-panel-label-color);font-size:12px;font-weight:600}.review-status-filter-group>div{display:flex;flex-wrap:wrap;gap:6px}.review-status-filter-group button{width:auto;min-height:36px;padding:6px 10px;font-size:.82rem}.review-create-disclosure{margin-bottom:16px}.review-create-disclosure>summary{width:fit-content;margin-bottom:8px;color:var(--text-heading);cursor:pointer;font-weight:600}.activity-calendar-section>p{margin:0 0 16px;color:var(--text-secondary)}.activity-calendar-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin-bottom:16px}.activity-calendar-toolbar label{display:grid;gap:4px;min-width:220px;color:var(--text-primary);font-size:12px;font-weight:600}.activity-calendar-range{margin:0 0 16px;color:var(--text-heading);font-size:1rem}.activity-calendar-count{padding-bottom:10px;color:var(--text-secondary);font-size:.9rem}.activity-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.activity-calendar-weeks{display:grid;gap:18px}.activity-calendar-week h4{margin:0 0 8px;color:var(--text-heading);font-size:.9rem}.activity-calendar-weekday{padding:8px 4px;color:var(--text-heading);font-size:.85rem;font-weight:700;text-align:center}.activity-calendar-day{display:flex;min-height:76px;flex-direction:column;align-items:flex-start;gap:8px;padding:8px;border:1px solid var(--table-border);border-radius:6px;background:var(--panel-bg);color:var(--text-primary)}.activity-calendar-day.marked{border-color:#16a34a;background:#f0fdf4}.dark-mode .activity-calendar-day.marked{border-color:#22c55e;background:#14532d}.activity-calendar-mark{color:#166534;font-size:.75rem;font-weight:700}.activity-calendar-points{color:var(--text-primary);font-size:.75rem;font-weight:700}.activity-calendar-point-details{display:grid;gap:2px;color:var(--text-secondary);font-size:.65rem;line-height:1.25;overflow-wrap:anywhere}.dark-mode .activity-calendar-mark{color:#bbf7d0}.activity-calendar-day.empty{border-color:transparent;background:transparent}.review-queue{display:grid;gap:22px}@media (max-width: 600px){.activity-calendar-grid{gap:3px}.activity-calendar-day{min-height:58px;gap:4px;padding:5px;font-size:.85rem}.activity-calendar-mark{font-size:.65rem}.activity-calendar-points{font-size:.68rem}.activity-calendar-point-details{font-size:.58rem}.activity-calendar-count{padding-bottom:0}}.review-queue-group{min-width:0}.review-queue-group>h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;color:var(--text-heading);font-size:1rem}.review-queue-group>h3 span{display:inline-grid;place-items:center;min-width:24px;min-height:24px;padding:0 6px;border-radius:12px;background:var(--button-secondary-bg);color:var(--button-secondary-color);font-size:.78rem}.review-card-list{display:grid;gap:8px}.review-card{min-width:0;padding:12px 14px;border:1px solid var(--table-border);border-left:4px solid var(--table-border);border-radius:6px;background:var(--panel-bg)}.review-card-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.review-card-identity{min-width:0}.review-card-identity h4{margin:0;color:var(--text-heading);font-size:.98rem;overflow-wrap:anywhere}.review-card-identity p{margin:4px 0 0;color:var(--text-secondary);font-size:.85rem;overflow-wrap:anywhere}.review-card-status{flex:0 1 190px;min-width:130px;padding:4px 8px;border-radius:5px}.review-card-status select{min-width:0;width:100%}.review-card-status>span{display:block;overflow-wrap:anywhere;font-size:.85rem;font-weight:700}.review-card details{margin-top:8px}.review-card summary{width:fit-content;color:var(--text-heading);cursor:pointer;font-size:.85rem;font-weight:600}.review-card-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px;margin:14px 0}.review-card-field,.review-card-hold-reason{display:grid;align-content:start;gap:5px;min-width:0;color:var(--text-secondary);font-size:.8rem;font-weight:600}.review-card-field>input,.review-card-field>select,.review-card-field>textarea,.review-card-hold-reason>textarea{width:100%;min-width:0;color:var(--input-color);background:var(--input-bg);border:1px solid var(--input-border);border-radius:4px;padding:7px 8px;font:inherit;font-weight:400}.review-card-field>input[type=checkbox]{width:18px;min-height:18px;accent-color:#167d78}.review-card-value{color:var(--text-primary);font-size:.9rem;font-weight:400;overflow-wrap:anywhere;white-space:pre-wrap}.review-card-hold-reason{margin:12px 0}.review-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.review-card-actions button{width:auto}.view-selector-group{display:grid;gap:6px;min-width:0;color:var(--form-panel-label-color);font-size:.82rem;font-weight:700}.view-selector-buttons{display:flex;flex-wrap:wrap;gap:6px}.view-selector-buttons button{width:auto;min-height:36px;padding:7px 10px;font-size:.82rem}.review-queue-empty{margin:0;padding:18px;border:1px dashed var(--table-border);border-radius:6px;color:var(--text-secondary)}@media (max-width: 600px){.review-filters label,.review-filters select{width:100%;min-width:0}.review-card-header{align-items:flex-start;flex-direction:column;gap:10px}.review-card-status{flex-basis:auto;width:100%}}.dark-mode .panel,.dark-mode .table-wrapper,.dark-mode table{background:transparent!important}.dark-mode .table-wrapper{background:var(--table-wrapper-bg)!important}.dark-mode table{color:var(--table-text)!important}.dark-mode th,.dark-mode td{color:var(--table-text)!important;background:transparent;border-color:var(--table-border)!important}.dark-mode th{background:var(--table-header-bg)!important;color:var(--table-header-color)!important}*{box-sizing:border-box}body,html,#root{min-height:100%;margin:0}#root.auth-root{display:flex;align-items:center;justify-content:center}body{margin:0;background:var(--bg-body);color:var(--text-primary);overflow-x:auto}[style*="#475569"],[style*="#64748b"]{color:var(--text-secondary)!important}body.auth-body{background:var(--bg-auth-body)}.page-shell{min-height:100vh;padding:24px;max-width:100%;overflow-x:visible}.page-shell.auth-page{display:flex;align-items:center;justify-content:center;padding:20px;background:transparent;min-height:100vh}.panel{background:var(--panel-bg);border-radius:18px;box-shadow:var(--panel-shadow);padding:24px;margin-bottom:20px;max-width:100%;overflow-x:visible}.panel.login-panel{max-width:600px;width:100%;padding:60px 40px;text-align:center;box-shadow:0 20px 60px #0000004d}.login-image{display:flex;align-items:center;justify-content:center;margin-bottom:18px}.login-image img{max-width:100%;height:auto;display:block;margin:0 auto;width:min(320px,60%);max-height:160px;object-fit:contain}.header-panel{display:flex;justify-content:space-between;align-items:center;gap:16px;position:relative;z-index:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8fafceb}.dark-mode .header-panel{background:#0f172aeb}.header-title-row{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.header-subtitle{margin-top:6px;font-size:.98rem}.preview-role-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.preview-role-row label{margin:0;font-size:.95rem;font-weight:600}.preview-role-select{min-width:180px;max-width:min(220px,100%);border-radius:9999px;padding:10px 12px;border:1px solid #cbd5e1;background:var(--input-bg);color:var(--input-color)}.preview-role-button{white-space:nowrap}@media (max-width: 640px){.panel.login-panel{padding:28px 18px;border-radius:14px}.login-image img{width:min(180px,60%);max-height:120px}}@media (max-width: 380px){.login-image img{width:min(140px,60%);max-height:100px}}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1 1 auto}.mobile-drawer-toggle-wrap{position:sticky;top:15px;z-index:1600;display:none;width:100%;pointer-events:none}.tabs-row{display:flex;align-items:center;gap:10px;flex:1 1 100%;min-width:0;margin-bottom:20px}.header-toolbar{margin-bottom:0;gap:12px;flex-wrap:wrap}.tabs{display:flex;flex-wrap:wrap;gap:10px;align-items:center;flex:1 1 auto;min-width:0;justify-content:flex-end}button.theme-toggle-switch{transition:all .3s ease;order:99;margin-left:auto}button.theme-toggle-switch:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}button.theme-toggle-switch:active{transform:scale(.95)}p{margin:0;color:var(--text-secondary)}button,input,select,textarea{font-size:16px;-webkit-tap-highlight-color:transparent}button{border:none;border-radius:12px;padding:12px 18px;cursor:pointer;font-weight:600;transition:all .2s ease;min-height:44px}button.primary{background:var(--button-primary-bg);color:var(--button-primary-color)}button.secondary{background:var(--button-secondary-bg);color:var(--button-secondary-color)}button:disabled{cursor:not-allowed;opacity:.5}button.primary:disabled{background:var(--button-disabled-bg);color:var(--button-disabled-color)}.comp-control-button{border:2px solid transparent;box-shadow:0 6px 16px #0f172a1f}.comp-control-button.freeze{background:#f59e0b;color:#451a03;border-color:#b45309}.comp-control-button.clear{background:#dc2626;color:#fff;border-color:#991b1b}.comp-control-button.download{background:#0f766e;color:#fff;border-color:#115e59}.comp-control-button:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 10px 22px #0f172a2e}.comp-control-button:focus-visible{outline:3px solid #facc15;outline-offset:2px}.comp-section-description{margin-top:6px;margin-bottom:12px;color:var(--text-secondary);line-height:1.45}.comp-table-shell{border:1px solid var(--table-border);border-radius:10px;overflow:hidden;background:var(--panel-bg)}.comp-table{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--panel-bg)}.comp-table th,.comp-table td{padding:10px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--table-border);line-height:1.45}.comp-table.pending-table th,.comp-table.pending-table td{text-align:center}.comp-table.pending-table .col-user,.comp-table.pending-table .col-item{text-align:left}.comp-table thead th{background:var(--table-header-bg);color:var(--table-header-color);font-size:.9rem;font-weight:700;letter-spacing:.01em}.comp-table tbody tr:last-child td{border-bottom:none}.comp-table .col-user{width:22%}.comp-table .col-item{width:48%}.comp-table .col-status{width:14%;text-align:center}.comp-table .col-actions{width:16%;text-align:center}.comp-action-group{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.comp-action-button{padding:9px 12px;font-size:.95rem;min-width:106px;border-radius:10px;box-shadow:0 6px 16px #0f172a14}.comp-action-button.approve{background:linear-gradient(135deg,#4f46e5,#4338ca);color:#fff}.comp-action-button.consolidate{background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff}.comp-action-button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a24}.comp-empty-state{color:var(--text-secondary);font-size:.95rem;padding:8px 0}button.secondary:disabled{background:var(--button-disabled-bg);color:var(--button-disabled-color)}button:disabled:after{content:" (no permission)";font-size:.85em}.reviewer-picker button:disabled:after{content:none}.reviewer-chip{display:inline-flex;align-items:center;gap:4px}.reviewer-picker button.reviewer-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;padding:0;border-radius:50%;background:transparent;color:inherit;font-size:16px;line-height:1}.reviewer-picker button.reviewer-remove:hover:not(:disabled){background:#0f172a1f}.tabs{display:flex;flex-wrap:wrap;gap:10px}.tab{padding:10px 16px;border-radius:999px;background:var(--tab-bg);color:var(--text-primary);cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:normal;line-height:1.2}.tab.active,.tab-group>button.active,.tab-group-items button.active,.mobile-drawer-nav .tab.active,.mobile-drawer-group-header[aria-expanded=true]{background:var(--tab-active-bg);color:var(--tab-active-color);border-color:var(--tab-active-bg);box-shadow:0 4px 10px #4f46e52e}.tab-dropdown{display:none;width:100%;max-width:100%;margin-bottom:14px}.tab-dropdown select{width:100%;border-radius:999px;padding:10px 14px;border:1px solid var(--input-border);background:var(--panel-bg);color:var(--text-primary);font-weight:600;min-height:44px}.tab-group{position:relative;display:inline-flex;align-items:center}.tab-group>button,.tab-group-items button,.mobile-drawer-group-header,.mobile-drawer-nav .tab{background:var(--tab-bg);color:var(--text-primary);border:1px solid var(--input-border, #dfe7f1);border-radius:999px;padding:10px 16px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;line-height:1.2;cursor:pointer;text-align:center;font-weight:600}.tab-group button{white-space:nowrap}.tab-group-items{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--panel-bg);border:1px solid var(--input-border, #dfe7f1);border-radius:18px;box-shadow:0 12px 24px #0000001f;padding:8px;min-width:180px;z-index:10}.tab-group.open .tab-group-items,.tab-group:focus-within .tab-group-items{display:block}@media (hover: hover) and (pointer: fine){.tab-group:hover .tab-group-items{display:block}}@media (hover: none),(pointer: coarse){.tab-group:hover .tab-group-items,.tab-group:focus-within .tab-group-items{display:none}}.tab-group-items button{display:block;width:100%;text-align:left;margin-bottom:6px}.tab-group-items button:last-child{margin-bottom:0}.tab-group:hover .tab-group-items,.tab-group:focus-within .tab-group-items{display:block}.tab-dropdown .visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}.overview-secondary-stats{margin-top:16px}.overview-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px}.overview-header label{font-weight:600;color:var(--text-heading)}.overview-header select{min-width:220px;max-width:100%;border-radius:12px;border:1px solid var(--input-border);background:var(--input-bg);color:var(--input-color);padding:10px 14px}.stat-card{background:var(--stat-card-bg);border-radius:16px;padding:20px;min-height:120px}.stat-card strong{display:block;font-size:2.5rem;margin-bottom:10px;color:var(--stat-card-strong)}.stat-card span{color:var(--stat-card-span);display:block;font-size:clamp(.62rem,1.8vw,.82rem);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.outdated-classes-card{min-width:240px}.outdated-classes-card>span{font-weight:700;margin-bottom:10px}.outdated-classes-card ul{margin:0;padding-left:20px;color:var(--stat-card-span)}.outdated-classes-card li+li{margin-top:6px}.table-wrapper{overflow-x:hidden;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;background:var(--table-wrapper-bg);border-radius:18px;padding:14px;max-width:100%;white-space:normal}.translation-assignment-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.translation-assignment-heading h2,.translation-assignment-heading p{margin:0}.translation-assignment-heading p{margin-top:6px;color:var(--text-secondary)}.translation-link-cell{display:grid;gap:8px;width:100%;max-width:100%;min-width:0;overflow:hidden}.translation-link-cell a{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.translation-link-empty{color:var(--text-secondary)}.translation-link-editor{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0;max-width:100%}.translation-link-editor input{min-width:0;max-width:100%}@media (max-width: 640px){.translation-link-editor{grid-template-columns:minmax(0,1fr)}}.translation-assignment-checkbox-cell{text-align:center;vertical-align:middle}.translation-assignment-checkbox-cell input[type=checkbox]{display:block;width:18px!important;height:18px;min-height:18px!important;margin:4px auto;padding:0}.comp-summary-group{margin-top:24px;padding:18px;background:var(--panel-bg);border:1px solid var(--table-border);border-radius:18px;box-shadow:0 18px 40px #0f172a0d}.comp-summary-totals{margin-top:18px;padding-top:14px;border-top:1px solid var(--table-border)}.comp-summary-totals strong{display:inline-block;margin-top:8px}.comp-summary-totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:12px}.comp-summary-total-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-radius:14px;background:var(--bg-auth-body);color:var(--text-primary)}.comp-summary-total-item strong{font-size:1.05rem}.comp-summary-total-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--table-header-bg);color:var(--table-header-color)}.comp-summary-header{margin-bottom:16px}.comp-summary-header h3{margin:0 0 6px;font-size:1.1rem}.comp-summary-header p{margin:0;color:var(--text-secondary);font-size:.96rem}table{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;color:var(--table-text)!important}.user-roles-table{padding:8px}.user-roles-table th,.user-roles-table td{padding:5px 6px;font-size:.75rem;line-height:1.2}.user-roles-table td:nth-child(4){white-space:normal;overflow:visible}.user-role-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:4px}.user-role-option{display:flex;min-width:0;align-items:center;gap:5px;padding:3px 5px;border:1px solid var(--table-border);border-radius:6px;font-size:.7rem;line-height:1.15;white-space:normal;overflow-wrap:anywhere}.user-roles-table .user-role-option input[type=checkbox]{width:14px!important;height:14px;min-width:14px;min-height:14px!important;flex:0 0 14px;margin:0;padding:0!important;accent-color:#4f46e5}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--table-border);color:var(--table-text)!important;vertical-align:top;font-size:clamp(.73rem,1.15vw,.93rem);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-wrapper th,.table-wrapper td,.table-wrapper input,.table-wrapper select,.table-wrapper textarea,.table-wrapper button{box-sizing:border-box}.table-wrapper td input,.table-wrapper td select,.table-wrapper td textarea,.table-wrapper td button{width:100%;max-width:100%;min-width:0;font-size:inherit}.activity-reports-table thead th{white-space:nowrap}.activity-report-edit-grid{display:grid;gap:14px;margin-top:12px}.activity-report-edit-fields{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.activity-report-edit-actions{display:flex;gap:12px;flex-wrap:wrap}.activity-tab{display:flex;flex-direction:column}.activity-tab>.activity-cycle-controls{order:1}.activity-tab>.activity-view-controls{order:2}.activity-tab>.activity-report-tables{order:3}.activity-tab>.activity-editor-controls{order:4}.activity-tab>.activity-amod-entry-table{order:5}.activity-view-controls{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:18px;padding:12px 14px;background:var(--form-panel-bg);border:1px solid var(--form-panel-border);border-radius:12px}.activity-view-controls label{display:grid;gap:5px;color:var(--form-panel-label-color);font-weight:700}.activity-view-controls select{min-width:180px}.activity-load-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.activity-load-controls input{max-width:100%}th{background:var(--table-header-bg);color:var(--table-header-color)}.table-wrapper input,.table-wrapper select,.table-wrapper textarea,input,select,textarea{background:var(--input-bg)!important;color:var(--input-color)!important;border:1px solid var(--input-border)!important;border-radius:12px;padding:10px 12px;min-height:40px;box-shadow:none}.form-panel{background:var(--form-panel-bg);border:1px solid var(--form-panel-border);border-radius:16px;padding:16px;margin-bottom:20px;color:var(--form-panel-color)}.alert{padding:12px 14px;border-radius:12px;margin-bottom:12px;color:var(--alert-color);background:var(--alert-bg)}.alert.info{background:var(--alert-bg);color:var(--alert-color)}.alert.light{background:var(--input-bg);color:var(--input-color)}.alert.error{background:#fee2e2;color:#991b1b}.alert.padded{padding:16px}.save-toast{position:fixed;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:2000;width:max-content;max-width:min(420px,calc(100vw - 32px));padding:12px 16px;border:1px solid var(--table-border);border-radius:8px;background:var(--alert-bg);color:var(--alert-color);box-shadow:0 8px 24px #0f172a33;overflow-wrap:anywhere;animation:save-toast-enter .18s ease-out}.save-toast.error{border-color:#fecaca;background:#fee2e2;color:#991b1b}@keyframes save-toast-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.owner-badge{margin-left:0;padding:2px 10px;background:#fde68a;color:#92400e;border-radius:9999px;font-weight:700;font-size:.85rem;display:inline-block}.btn-danger{background:#fee2e2;color:#991b1b}.badge-light{background:#f1f5f9;padding:6px 10px;border-radius:999px;font-size:.9rem;display:inline-block}.code-block{white-space:pre-wrap;word-break:break-word;overflow-x:auto;max-height:420px;padding:12px;border-radius:8px}.code-block.dark{background:#111827;color:#f8fafc}.code-block.light{background:var(--input-bg);color:var(--input-color)}.form-panel strong,.form-panel p,.form-panel span,.form-panel code{color:var(--form-panel-color)}.form-panel label{color:var(--form-panel-label-color)}.form-panel input,.form-panel select,.form-panel textarea{background:var(--input-bg)!important}input::placeholder,textarea::placeholder,select option{color:var(--input-placeholder)!important}.table-wrapper table th:first-child,.table-wrapper table td:first-child{width:220px;max-width:260px}.page-shell,.panel{width:100%;max-width:100%}@media (max-width: 640px){.tab-dropdown{display:none!important}.page-shell{padding:12px}.panel{padding:16px}.header-panel{flex-direction:column;align-items:stretch}.header-actions{width:100%;justify-content:flex-start;align-items:flex-start}.tabs-row{flex-direction:column;align-items:stretch}.header-actions .theme-toggle-switch{order:99;align-self:flex-end;margin-left:0}.tab-dropdown{display:block;width:100%;max-width:100%;margin-bottom:14px}.tabs button{width:auto}.tab-dropdown{display:block}.tabs{display:none}.table-wrapper{padding:10px;margin:0 -2px}.table-wrapper table th:first-child,.table-wrapper table td:first-child{width:auto;max-width:140px}.activity-report-edit-fields{grid-template-columns:1fr}.activity-report-edit-actions{flex-direction:column;align-items:stretch}.activity-reports-wrapper{padding:0;background:transparent;overflow-x:visible}.activity-reports-table{display:block;width:100%;min-width:0;border-collapse:separate;border-spacing:0 10px}.activity-reports-table thead{display:none}.activity-reports-table tbody{display:block;width:100%}.activity-reports-table tr{display:block;width:100%;border:1px solid var(--table-border);border-radius:14px;background:var(--panel-bg);padding:12px;margin-bottom:12px}.activity-reports-table td{display:block;width:100%;border-bottom:1px solid var(--table-border);padding:8px 0;white-space:normal;word-break:break-word}.activity-reports-table td:last-child{border-bottom:none}.activity-reports-table td:before{content:attr(data-label);display:block;font-weight:700;color:var(--text-heading);margin-bottom:2px}.activity-reports-table td button{width:100%}input,select,textarea{width:100%;min-width:0}button:not(.theme-toggle):not(.tab){width:100%;min-width:0}.theme-toggle{width:auto;min-width:auto;flex-shrink:0}}h1{margin:0 0 8px;font-size:clamp(2rem,2.5vw,2.5rem)}@media (max-width: 900px){.page-shell{padding:12px}.panel{padding:12px;border-radius:12px}.tab-group{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-group-items{display:flex;gap:8px;flex-wrap:nowrap}.tab{padding:8px 10px}.table-wrapper{overflow-x:hidden}.table-wrapper table{width:100%!important;min-width:0!important;table-layout:fixed}.table-wrapper th,.table-wrapper td{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:clamp(.8rem,2.6vw,1rem)!important;line-height:1.35!important}.table-wrapper table[class*=classes] td,.table-wrapper table[class*=classes] th,.table-wrapper table tbody tr td,.table-wrapper table tbody tr th{font-size:clamp(.9rem,3vw,1.1rem)!important;line-height:1.4!important}.table-wrapper table thead{display:none}.table-wrapper table tr{display:block;width:100%;max-width:100%;border:1px solid var(--table-border);border-radius:12px;background:var(--panel-bg);padding:12px;margin-bottom:12px;overflow:hidden;height:auto}.table-wrapper table td{display:block;width:100%;max-width:100%;min-width:0;padding:8px 0;border-bottom:1px solid var(--table-border);white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.table-wrapper table td:before{content:attr(data-label);display:block;font-weight:700;color:var(--text-heading);margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem}.table-wrapper table td:last-child{border-bottom:none}.comp-table.pending-table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed!important;border-collapse:collapse!important}.comp-table.pending-table thead,.comp-table.pending-table tbody,.comp-table.pending-table tr,.comp-table.pending-table th,.comp-table.pending-table td{display:table-row-group!important}.comp-table.pending-table thead{display:table-header-group!important}.comp-table.pending-table tbody{display:table-row-group!important}.comp-table.pending-table tr{display:table-row!important;width:100%!important;border:none!important;border-radius:0!important;background:transparent!important;padding:0!important;margin:0!important;overflow:visible!important}.comp-table.pending-table th,.comp-table.pending-table td{display:table-cell!important;width:auto!important;max-width:none!important;min-width:0!important;padding:10px 8px!important;border-bottom:1px solid var(--table-border)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:.82rem!important}.comp-table.pending-table td:first-child{width:26px!important;text-align:center!important}.comp-table.pending-table td:first-child input{width:16px!important;height:16px!important;margin:0!important;accent-color:var(--button-primary-bg, #4f46e5)}.comp-table.pending-table thead th:nth-child(4),.comp-table.pending-table thead th:nth-child(5),.comp-table.pending-table tbody td:nth-child(4),.comp-table.pending-table tbody td:nth-child(5){display:none!important}.form-panel,.comp-summary-group,.panel{padding:12px}button,input,select,textarea{min-height:44px}}@media (max-width: 640px){.page-shell{padding:10px}.header-panel{padding:8px}.header-title-row,.tab-group-items{gap:6px}.overview-header,.form-panel .controls,.activity-report-edit-actions{display:grid;gap:8px}.stat-card{padding:12px;min-height:72px}.stat-card strong{font-size:clamp(1.5rem,4vw,2.1rem)}.stat-card span{font-size:clamp(.52rem,2vw,.72rem);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.tab-description{font-size:.98rem;line-height:1.4}.mobile-drawer{position:fixed;top:0;right:0;width:min(320px,86vw);height:100vh;z-index:1400;transform:translate(105%);transition:transform .24s cubic-bezier(.2,.8,.2,1);display:none}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-inner{background:var(--panel-bg);height:100%;padding:18px;box-shadow:-8px 0 24px #0f172a1f;display:flex;flex-direction:column}.mobile-drawer-close{align-self:flex-end;background:transparent;border:none;font-size:1.25rem;cursor:pointer;padding:6px}.mobile-drawer-nav{display:flex;flex-direction:column;gap:14px;margin-top:12px}.mobile-drawer-group{display:flex;flex-direction:column;gap:8px}.mobile-drawer-group-header{display:flex;align-items:center;justify-content:space-between;width:auto;max-width:100%;background:var(--tab-bg);color:var(--text-primary);border:1px solid var(--input-border, #dfe7f1);border-radius:999px;padding:10px 16px;font-weight:600;cursor:pointer;text-align:left;letter-spacing:.01em}.mobile-drawer-group-header[aria-expanded=true]{background:var(--tab-active-bg);color:var(--tab-active-color);border-color:var(--tab-active-bg)}.mobile-drawer-group-items{display:flex;flex-direction:column;gap:8px}.mobile-drawer-nav .tab{text-align:left;width:auto;max-width:100%}.mobile-drawer-logout{margin-top:8px;background:var(--panel-bg);color:var(--text-primary);border:1px solid var(--input-border, #dfe7f1);border-radius:999px;padding:10px 16px;min-height:44px;font-weight:600;cursor:pointer;text-align:left}.mobile-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061766;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:1300}.mobile-drawer-backdrop.open{opacity:1;pointer-events:auto}@media (max-width: 640px){.mobile-drawer,.mobile-drawer-toggle-wrap{display:block}.mobile-drawer-toggle{display:inline-flex;position:absolute;top:0;right:14px;z-index:1500;margin:0;background:#dbeafe;border:1px solid #93c5fd;width:38px!important;min-width:38px!important;max-width:38px!important;height:38px;padding:0;border-radius:999px;cursor:pointer;box-shadow:0 4px 12px #0f172a1f;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;color:#0f172a;pointer-events:auto}}@media (min-width: 641px){.mobile-drawer,.mobile-drawer-backdrop,.mobile-drawer-toggle{display:none!important}}.classes-list{display:grid;gap:12px}.class-student-card{min-width:0;padding:16px;border:1px solid var(--table-border);border-radius:12px;background:var(--panel-bg)}.class-student-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--table-border)}.class-student-identity{min-width:0}.class-student-identity h3{margin:0;color:var(--text-heading);font-size:1rem;overflow-wrap:anywhere}.class-student-identity span{display:block;margin-top:4px;color:var(--text-secondary);font-size:.85rem;overflow-wrap:anywhere}.class-student-header button{width:auto;flex:0 0 auto}.class-student-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:12px 0 0}.class-student-detail{min-width:0}.class-student-detail dt{color:var(--text-secondary);font-size:.8rem;font-weight:700}.class-student-detail dd{margin:3px 0 0;color:var(--text-primary);overflow-wrap:anywhere;white-space:normal}.class-student-empty{margin:12px 0 0;color:var(--text-secondary)}.table-wrapper table.review-table th,.table-wrapper table.review-table td{font-size:.53rem!important;line-height:1.3!important;padding:7px 8px!important;white-space:normal!important;overflow:hidden!important;overflow-wrap:anywhere!important;text-overflow:clip!important}.table-wrapper table.review-table.data-review-table{min-width:1420px;table-layout:fixed}.table-wrapper table.review-table.data-review-table th,.table-wrapper table.review-table.data-review-table td{font-size:.82rem!important;line-height:1.45!important;padding:10px 12px!important;overflow:visible!important;overflow-wrap:anywhere!important}.table-wrapper table.review-table.data-review-table th:nth-child(1){width:180px}.table-wrapper table.review-table.data-review-table th:nth-child(2){width:110px}.table-wrapper table.review-table.data-review-table th:nth-child(3){width:150px}.table-wrapper table.review-table.data-review-table th:nth-child(4){width:150px}.table-wrapper table.review-table.data-review-table th:nth-child(5){width:125px}.table-wrapper table.review-table.data-review-table th:nth-child(6){width:90px}.table-wrapper table.review-table.data-review-table th:nth-child(7){width:210px}.table-wrapper table.review-table.data-review-table th:nth-child(8){width:360px}.table-wrapper table.review-table.data-review-table th:nth-child(9){width:150px}.data-review-section .form-panel textarea{min-height:120px}.review-create-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));column-gap:12px;row-gap:20px;margin-top:12px}.table-wrapper table.review-table tbody tr td input.concurrent-review-checkbox{transform:scale(.6)}.data-review-section .review-create-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width: 900px){.data-review-section .review-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrapper table.review-table{display:block!important;width:100%!important;table-layout:auto!important}.table-wrapper table.review-table thead{display:none!important}.table-wrapper table.review-table tbody{display:grid!important;gap:10px}.table-wrapper table.review-table tbody tr{display:block!important;width:100%!important;margin:0!important;padding:8px 10px!important;border:1px solid var(--table-border)!important;border-radius:8px!important;background:var(--panel-bg)}.table-wrapper table.review-table tbody tr td{display:grid!important;grid-template-columns:minmax(82px,32%) minmax(0,1fr);align-items:start;gap:8px;width:100%!important;max-width:none!important;min-width:0!important;padding:5px 0!important;border-bottom:1px solid var(--table-border)!important;white-space:normal!important;overflow:hidden!important;overflow-wrap:anywhere!important;text-overflow:clip!important}.table-wrapper table.review-table tbody tr td:before{content:attr(data-label)!important;display:block!important;margin:0!important;color:var(--text-heading);font-size:.65rem!important;font-weight:700;line-height:1.3;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}.table-wrapper table.review-table tbody tr td:empty,.table-wrapper table.review-table tbody tr td[aria-hidden=true]{display:none!important}.table-wrapper table.review-table tbody tr td:last-child{border-bottom:none!important}.table-wrapper table.review-table tbody tr td input,.table-wrapper table.review-table tbody tr td select,.table-wrapper table.review-table tbody tr td textarea,.table-wrapper table.review-table tbody tr td button{width:100%;max-width:100%;min-width:0}.table-wrapper table.review-table tbody tr td input.concurrent-review-checkbox{width:14px!important;height:14px;min-height:14px;justify-self:start}}@media (max-width: 640px){.data-review-section .review-create-grid{grid-template-columns:minmax(0,1fr)}.class-student-card{padding:12px}.class-student-header{align-items:stretch;flex-direction:column}.class-student-header button{width:100%}.class-student-details{grid-template-columns:minmax(0,1fr)}}#root .table-wrapper,#root .comp-table-shell{overflow:visible!important}#root table{display:block!important;width:100%!important;min-width:0!important;table-layout:auto!important;border-collapse:separate!important}#root table thead{display:none!important}#root table tbody{display:grid!important;grid-template-columns:minmax(0,1fr);gap:12px}#root table tbody tr{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0 12px;width:100%!important;max-width:100%;box-sizing:border-box;margin:0!important;padding:12px!important;border:1px solid var(--table-border)!important;border-radius:8px!important;background-color:var(--panel-bg)}#root table tbody tr td{display:grid!important;grid-template-rows:auto 1fr;align-content:start;width:auto!important;max-width:none!important;min-width:0!important;padding:8px!important;border-bottom:1px solid var(--table-border)!important;font-size:.9rem!important;line-height:1.4!important;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere!important;text-overflow:clip!important}#root table tbody tr td:before{content:attr(data-label)!important;display:block!important;margin-bottom:4px;color:var(--text-heading);font-size:.78rem!important;font-weight:700;line-height:1.3;white-space:normal!important;overflow:visible!important;overflow-wrap:anywhere;text-overflow:clip!important}#root table tbody tr td:empty,#root table tbody tr td[aria-hidden=true]{display:none!important}#root table tbody tr td[data-label=Actions]{display:flex!important;grid-column:1 / -1;flex-wrap:wrap;align-items:center;gap:8px;border-bottom:none!important;padding-top:12px!important}#root table tbody tr td[data-label=Actions]:before{display:none!important}#root table tbody tr td[colspan]{display:block!important;grid-column:1 / -1;border-bottom:none!important}#root table tbody tr td button{width:auto!important;max-width:100%;min-width:0}#root table tbody tr td button.reviewer-remove{width:20px!important;min-width:20px!important;max-width:20px!important}#root table tbody tr td input,#root table tbody tr td select,#root table tbody tr td textarea{width:100%;max-width:100%;min-width:0}
