:root{--bg-main:#f8fafc;--bg-panel:#fff;--bg-subtle:#f1f5f9;--bg-input:#fff;--text-input:#1e293b;--placeholder-color:#94a3b8;--border-color:#e2e8f0;--text-main:#1e293b;--text-muted:#64748b;--primary:#285c4d;--primary-hover:#1f493d;--primary-soft:#285c4d1a;--primary-ring:#285c4d33;--danger:#ef4444;--danger-soft:#ef44441a;--danger-hover:#ef444433;--overlay-bg:#0f172a3d;--warning-bg:#fbbf2424;--warning-border:#d9770652;--warning-text:#92400e;--radius:12px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=grey]{--bg-main:#d8dde5;--bg-panel:#eef1f5;--bg-subtle:#cfd5dd;--bg-input:#e5e9ee;--text-input:#1f2732;--placeholder-color:#6b7480;--border-color:#b8c0cb;--text-main:#202833;--text-muted:#586474;--primary:#596170;--primary-hover:#454d5a;--primary-soft:#5961701f;--primary-ring:#5961703d;--danger:#b91c1c;--danger-soft:#b91c1c1a;--danger-hover:#b91c1c29;--overlay-bg:#1f273247;--warning-bg:#a1731e21;--warning-border:#78531657;--warning-text:#704f16;--shadow-sm:0 1px 2px 0 #1f273217;--shadow-md:0 5px 12px -6px #1f273242, 0 2px 6px -4px #1f273238;--shadow-lg:0 22px 44px -26px #1f273294, 0 10px 22px -18px #1f27326b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg-main:#111827;--bg-panel:#1f2937;--bg-subtle:#273244;--bg-input:#172033;--text-input:#f9fafb;--placeholder-color:#94a3b8;--border-color:#374151;--text-main:#f9fafb;--text-muted:#cbd5e1;--primary:#7dd3b6;--primary-hover:#5bb899;--primary-soft:#7dd3b624;--primary-ring:#7dd3b63d;--danger-soft:#ef444424;--danger-hover:#ef444438;--overlay-bg:#00000080;--warning-bg:#fbbf2429;--warning-border:#fbbf2457;--warning-text:#facc15;--shadow-sm:0 1px 2px 0 #00000047;--shadow-md:0 8px 18px -10px #000000b3;--shadow-lg:0 22px 44px -22px #000000d9, 0 10px 18px -14px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-main);color:var(--text-main);overflow:hidden}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-input);border-radius:6px;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .2s,box-shadow .2s}input[type=color]{background:0 0}input::placeholder,textarea::placeholder{color:var(--placeholder-color)}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-ring);outline:none}.app-container{grid-template-columns:292px minmax(var(--calendar-panel-min,420px), var(--calendar-panel-flex,34fr)) 10px minmax(var(--unit-panel-min,520px), var(--unit-panel-flex,66fr));width:100vw;height:100vh;transition:grid-template-columns .28s;display:grid}.resizing-app-panels .app-container{transition:none}.app-loading-screen{color:#285c4d;background:#f7faf8;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.app-loading-screen span{font-size:24px;font-weight:760}.app-setup-error-screen{text-align:center;flex-direction:column;gap:12px;padding:24px}.app-setup-error-screen p{max-width:520px;color:var(--text-muted);font-size:14px;line-height:1.45}.app-setup-error-actions{gap:8px;margin-top:4px;display:flex}.app-panel-resizer{cursor:col-resize;background:var(--bg-main);border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);z-index:8;position:relative}.app-panel-resizer:before{content:"";background:var(--border-color);border-radius:999px;width:2px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.app-panel-resizer:hover:before,.resizing-app-panels .app-panel-resizer:before{background:var(--primary)}.resizing-app-panels{cursor:col-resize;-webkit-user-select:none;user-select:none}.panel{background:var(--bg-panel);flex-direction:column;display:flex}.sidebar{border-right:1px solid var(--border-color);z-index:10;box-shadow:var(--shadow-sm);padding:22px;overflow-y:auto}.main-content{background:var(--bg-main);padding:24px;overflow-y:auto}.detail-panel{border-left:1px solid var(--border-color);z-index:10;flex-direction:column;display:flex;overflow:hidden;box-shadow:-1px 0 2px #0000000d}.fc{background:var(--bg-panel);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);padding:16px}.fc-theme-standard td,.fc-theme-standard th,.fc-theme-standard .fc-scrollgrid{border-color:var(--bg-subtle)}.fc .fc-col-header-cell-cushion{color:var(--text-main);padding:12px 8px;font-weight:600}.fc-timegrid-slot{height:48px!important}.fc-v-event{box-shadow:var(--shadow-sm);border:none;border-radius:6px;transition:transform .1s,box-shadow .1s}.fc-v-event:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.fc-event-main{padding:4px 6px;font-size:12px}.fc .fc-button-primary{background-color:var(--bg-panel);color:var(--text-main);border:1px solid var(--border-color);text-transform:capitalize;box-shadow:var(--shadow-sm);font-weight:500}.fc .fc-button-primary:hover{background-color:var(--bg-main);color:var(--text-main)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--bg-subtle);color:var(--primary);border-color:var(--primary)}h1,h2,h3,h4{color:var(--text-main);margin-bottom:.5rem;font-weight:600}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:var(--text-muted)}.font-medium{font-weight:500}.btn{border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{border:1px solid var(--border-color);color:var(--text-main);background:0 0}.btn-outline:hover{background:var(--bg-main)}.btn-danger{color:var(--danger);background:var(--danger-soft)}.btn-danger:hover{background:var(--danger-hover)}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:var(--text-muted);font-size:13px;font-weight:500}.sidebar-header{margin-bottom:32px}.sidebar{flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.sidebar-top-section{flex-direction:column;flex:auto;gap:8px;min-height:0;margin-bottom:0;display:flex}.logo{align-items:center;gap:12px;margin-bottom:4px;display:flex}.logo h2{color:var(--primary);margin:0;font-size:24px;font-weight:700}.sidebar-account{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;align-items:stretch;gap:8px;margin-top:14px;padding:12px;display:flex}.sidebar-account-identity{flex-direction:column;gap:2px;min-width:0;display:flex}.sidebar-account-identity strong{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.sidebar-account-identity span{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.sidebar-account-button{justify-content:center;width:100%;min-height:34px;padding:6px 10px;font-size:12px}.sidebar-settings-toggle{padding-right:30px;position:relative}.sidebar-settings-toggle.open{border-color:var(--primary);color:var(--primary)}.sidebar-settings-chevron{transition:transform .18s;position:absolute;right:10px}.sidebar-settings-toggle.open .sidebar-settings-chevron{transform:rotate(180deg)}.sidebar-settings-panel{opacity:0;grid-template-rows:0fr;margin-top:-2px;transition:grid-template-rows .22s,opacity .18s;display:grid;overflow:hidden}.sidebar-settings-panel.open{opacity:1;grid-template-rows:1fr}.sidebar-settings-panel-inner{flex-direction:column;gap:10px;min-height:0;padding:0 2px;display:flex;overflow:hidden}.sidebar-settings-panel.open .sidebar-settings-panel-inner{padding-top:2px}.sidebar-settings-section{flex-direction:column;gap:7px;display:flex}.sidebar-settings-section+.sidebar-settings-section{border-top:1px solid var(--border-color);padding-top:10px}.sidebar-settings-heading{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.sidebar-settings-row{color:var(--text-main);justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.sidebar-settings-choice-group{border:1px solid var(--border-color);background:var(--bg-panel);border-radius:6px;padding:2px;display:inline-flex}.sidebar-settings-choice,.sidebar-settings-option{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0}.sidebar-settings-choice{border-radius:4px;min-width:38px;padding:5px 8px;font-size:12px;font-weight:700}.sidebar-settings-choice:hover,.sidebar-settings-choice.active{color:var(--primary);background:var(--primary-soft)}.sidebar-settings-option-list{flex-direction:column;gap:5px;display:flex}.sidebar-settings-option{border:1px solid var(--border-color);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:30px;padding:6px 8px;font-size:12px;font-weight:650;display:flex}.sidebar-settings-option:hover,.sidebar-settings-option.active{border-color:color-mix(in srgb, var(--primary) 38%, var(--border-color) 62%);color:var(--primary);background:var(--primary-soft)}.sidebar-account-button:hover{border-color:var(--primary);color:var(--primary)}.sidebar-account-button:disabled{cursor:not-allowed;opacity:.6}.sidebar-section{margin-bottom:32px}.sidebar-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:16px;font-size:14px}.sidebar-section-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.sidebar-section-heading h3{margin-bottom:0}.class-transfer-button.active{background:var(--primary-soft);color:var(--primary)}.sidebar-class-tabs{border:1px solid var(--border-color);background:var(--bg-panel);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.sidebar-class-tabs button{min-width:0;min-height:34px;color:var(--text-muted);font:inherit;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:7px 6px;font-size:13px;font-weight:650;overflow:hidden}.sidebar-class-tabs button:hover{color:var(--primary)}.sidebar-class-tabs button.active{color:#fff;background:var(--primary);box-shadow:var(--shadow-sm)}.class-list{scrollbar-gutter:stable;flex-direction:column;flex:auto;gap:8px;min-height:0;padding-inline:9px;display:flex;overflow-y:auto}.shared-class-empty{border:1px dashed var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:4px;padding:12px;display:flex}.shared-class-empty strong{color:var(--text-main);font-size:14px}.shared-class-empty span{color:var(--text-muted);font-size:12px;line-height:1.35}.class-add-button{flex:none}.class-item{background:var(--bg-main);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;transition:all .2s;display:flex}.class-item:hover{border-color:var(--primary)}.class-item.active{font-weight:650}.deleted-class-item{opacity:.84}.class-info{flex:auto;align-items:center;gap:4px;min-width:0;display:flex}.class-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.shared-class-list .class-info{flex-direction:column;align-items:flex-start}.class-meta{max-width:100%;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.class-status-badge{width:18px;height:18px;color:var(--text-muted);background:var(--bg-panel);border-radius:999px;flex:none;justify-content:center;align-items:center;margin-left:auto;margin-right:3px;display:inline-flex}.class-status-badge.shared-by-you{color:var(--primary);background:var(--primary-soft)}.class-status-badge.shared-by-you:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 42%, transparent)}.class-row-actions{opacity:0;flex:none;align-items:center;gap:2px;transition:opacity .15s,transform .15s;display:flex;transform:translate(4px)}.class-item:hover .class-row-actions,.class-item.actions-open .class-row-actions{opacity:1;transform:translate(0)}.class-actions-toggle{color:var(--text-muted);transition:opacity .15s,transform .15s,background .15s,color .15s}.class-actions-toggle:hover,.class-item.actions-open .class-actions-toggle{background:var(--primary-soft);color:var(--primary)}.btn-icon{color:var(--text-muted);border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.btn-icon:hover{background:var(--danger-soft);color:var(--danger)}.btn-icon.class-actions-toggle:hover{background:var(--primary-soft);color:var(--primary)}.w-full{width:100%}.color-picker{cursor:pointer;width:100%;height:36px;padding:0}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:none;border-radius:4px}.sidebar-fixed-bottom{flex-shrink:0}.sidebar-bottom-actions{flex-direction:column;gap:8px;display:flex}.class-bin-button{border:1px solid var(--border-color);background:var(--bg-main);width:100%;color:var(--text-main);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.sidebar-bottom-actions .btn,.sidebar-bottom-actions .class-bin-button{min-height:42px}.class-bin-button:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-panel)}.class-bin-button span{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;font-size:12px;display:inline-flex}.sidebar-modal-backdrop{z-index:1000;background:var(--overlay-bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sidebar-context-backdrop{background:0 0;display:block}.sidebar-modal{background:var(--bg-panel);border:1px solid var(--border-color);width:min(420px,100vw - 32px);box-shadow:var(--shadow-lg);border-radius:10px;padding:18px}.sidebar-confirm-popover{width:min(420px,100vw - 24px);animation:.14s ease-out sidebarConfirmIn;position:fixed}@keyframes sidebarConfirmIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.sidebar-modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.sidebar-modal-header h2{overflow-wrap:anywhere;margin:0 0 4px;font-size:18px}.sidebar-modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.class-actions-modal{width:min(360px,100vw - 32px)}.class-actions-popover{z-index:1002;width:min(320px,100vw - 24px);padding:14px;animation:.14s ease-out sidebarConfirmIn;position:fixed}.class-actions-hover-bridge{z-index:1001;background:0 0;position:fixed}.class-actions-popover .sidebar-modal-header{margin-bottom:12px}.class-actions-popover .sidebar-modal-header h2{font-size:16px}.class-actions-subtitle{color:var(--text-muted);font-size:12px;font-weight:650}.class-actions-list{flex-direction:column;gap:8px;display:flex}.class-action-button{border:1px solid var(--border-color);background:var(--bg-main);width:100%;min-height:40px;color:var(--text-main);font:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;font-weight:650;display:flex}.class-action-button:hover,.class-action-button.active{border-color:color-mix(in srgb, var(--primary) 40%, var(--border-color) 60%);background:var(--primary-soft);color:var(--primary)}.class-action-button.danger{color:var(--danger)}.class-action-button.danger:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.class-bin-tray{border:1px solid var(--border-color);background:var(--bg-panel);box-shadow:var(--shadow-md);transform-origin:bottom;border-radius:8px;flex-direction:column;gap:10px;margin:0 0 10px;padding:10px;animation:.22s ease-out classBinSlideUp;display:flex}@keyframes classBinSlideUp{0%{opacity:0;transform:translateY(16px)scaleY(.96)}to{opacity:1;transform:translateY(0)scaleY(1)}}.class-bin-tray-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.class-bin-tray-header>div{flex-direction:column;gap:2px;min-width:0;display:flex}.class-bin-tray-header strong{color:var(--text-main);font-size:14px}.class-bin-tray-header span{color:var(--text-muted);font-size:12px;line-height:1.35}.class-bin-actions{flex-direction:column;gap:6px;display:flex}.class-bin-actions .btn{justify-content:center;width:100%;min-width:0;padding:8px 10px;font-size:13px;font-weight:650}.class-bin-select-all:hover,.class-bin-restore-selected:hover{background:var(--bg-main)}.class-bin-delete-selected{border-color:color-mix(in srgb, var(--danger) 32%, var(--border-color) 68%);color:var(--danger)}.class-bin-delete-selected:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.class-bin-actions .btn:disabled{cursor:not-allowed;opacity:.55}.class-bin-restore-selected span{background:var(--bg-main);min-width:18px;height:18px;color:var(--primary);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.bin-list{scrollbar-gutter:stable;flex-direction:column;gap:8px;max-height:220px;padding-inline:9px;display:flex;overflow-y:auto}.bin-list-item{box-sizing:border-box;border:1px solid var(--border-color);background:var(--bg-main);width:100%;color:var(--text-main);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.bin-list-item:hover{border-color:var(--primary)}.bin-list-item.selected{border-color:var(--primary);background:var(--primary-soft)}.bin-class-info{flex-direction:column;gap:2px;min-width:0;display:flex}.bin-class-info strong{color:var(--text-main);font-size:14px}.bin-class-info span{color:var(--text-muted);font-size:12px}.multi-month-calendar{background:var(--bg-panel);flex-direction:column;width:100%;height:100%;min-height:0;display:flex}.calendar-nav{background:var(--bg-panel);border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;display:flex}.nav-button{border:1px solid var(--border-color);background:var(--bg-main);color:var(--text-main);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s,color .2s}.nav-button:hover{background:var(--bg-panel);border-color:var(--primary);color:var(--primary)}.overlap-warning{border:1px solid var(--warning-border);background:var(--warning-bg);min-height:32px;color:var(--warning-text);white-space:nowrap;border-radius:6px;align-items:center;padding:6px 10px;font-size:13px;font-weight:650;display:inline-flex}.placement-status{border:1px solid var(--primary-ring);background:var(--primary-soft);min-width:0;max-width:min(520px,48vw);min-height:32px;color:var(--primary);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;align-items:center;padding:6px 10px;font-size:13px;font-weight:650;animation:2.4s ease-in-out infinite placementPulse;display:inline-flex;overflow:hidden}@keyframes placementPulse{0%,to{box-shadow:0 0 0 0 var(--primary-ring)}50%{box-shadow:0 0 0 4px var(--primary-ring)}}.current-focus{color:var(--text-main);margin-left:auto;font-size:15px;font-weight:600}.week-days{border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:var(--bg-panel);z-index:2;flex-shrink:0;grid-template-columns:repeat(7,minmax(0,1fr));margin:0 16px;display:grid}.week-days div{text-align:center;color:var(--text-muted);border-right:1px solid var(--border-color);padding:10px 8px;font-size:12px;font-weight:600}.week-days div:last-child{border-right:none}.scroll-container{scroll-behavior:smooth;background:var(--bg-main);flex:1;min-height:0;padding:0 16px 20px;overflow-y:auto}.scroll-sentinel{height:1px}.month-grid{background:var(--bg-panel);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:8px;margin:16px 0;overflow:hidden}.month-header{z-index:1;background:var(--bg-panel);border-bottom:1px solid var(--border-color);padding:12px 14px;position:sticky;top:0}.month-header h3{color:var(--text-main);margin:0;font-size:17px;font-weight:650}.days-grid{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(112px,auto);display:grid;position:relative}.day{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:var(--bg-panel);cursor:pointer;flex-direction:column;gap:4px;min-height:112px;padding:6px;transition:background-color .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.day:nth-child(7n){border-right:none}.day:nth-last-child(-n+7){border-bottom:none}.day.weekend,.day.blocked-day{background:color-mix(in srgb, var(--bg-panel) 88%, #94a3b8 12%)}.day.blocked-day{z-index:5;background:repeating-linear-gradient(-45deg, #94a3b82e 0, #94a3b82e 2px, transparent 2px, transparent 7px), color-mix(in srgb, var(--bg-panel) 76%, #94a3b8 24%);box-shadow:inset 0 0 0 1px #94a3b859}.day.blocked-day:hover{background:repeating-linear-gradient(-45deg, #94a3b838 0, #94a3b838 2px, transparent 2px, transparent 7px), color-mix(in srgb, var(--bg-panel) 70%, #94a3b8 30%)}.day.blocked-preview{outline-offset:-4px;outline:2px dashed #3341555c}.day.empty-day{background:var(--bg-main);cursor:default;pointer-events:none}.day.blocked-day:before{content:""}.blocked-day-label{width:calc(100% - 14px);color:var(--text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;overflow-wrap:anywhere;pointer-events:none;z-index:6;padding:0 4px;font-size:11px;font-weight:650;line-height:22px;position:absolute;top:34px;left:50%;overflow:hidden;transform:translate(-50%)}.day.today{background:var(--primary-soft);box-shadow:inset 0 0 0 2px var(--primary)}.day.selected-lesson-day{background:color-mix(in srgb, var(--bg-main) 88%, var(--selected-lesson-accent,var(--primary)) 12%);border-color:color-mix(in srgb, var(--selected-lesson-accent,var(--primary)) 24%, var(--border-color) 76%)}.day.today.selected-lesson-day{background:color-mix(in srgb, var(--bg-main) 88%, var(--selected-lesson-accent,var(--primary)) 12%);box-shadow:none}.day.selected-lesson-day .day-number{color:var(--selected-lesson-accent,var(--primary))}.day.today .day-number{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.day:hover{background:var(--primary-soft)}.day.selected-lesson-day,.day.selected-lesson-day:hover,.day.today.selected-lesson-day{background:color-mix(in srgb, var(--bg-main) 88%, var(--selected-lesson-accent,var(--primary)) 12%)}.day.today.selected-lesson-day .day-number{background:var(--selected-lesson-accent,var(--primary));color:#fff}.day-topline{z-index:1;justify-content:space-between;align-items:center;min-height:24px;display:flex;position:relative}.day-number{color:var(--text-main);font-size:13px;font-weight:600}.unit-segment{z-index:7;min-height:22px;margin:calc(34px + (var(--lane) * 25px)) 6px 0;background:var(--unit-color);color:var(--unit-label-color);cursor:pointer;border-radius:5px;grid-template-columns:1fr;align-self:start;display:grid;position:relative;overflow:hidden;box-shadow:0 1px 1px #0f172a14}.unit-segment:active{cursor:grabbing}.unit-preview{opacity:.55;outline-offset:2px;pointer-events:none;outline:2px dashed #0f172a47}.calendar-drag-active .unit-segment{pointer-events:none}.unit-segment-labels{grid-template-columns:repeat(var(--segment-span), minmax(0, 1fr));z-index:2;width:100%;display:grid;position:relative}.unit-lesson-label{border-right:1px solid color-mix(in srgb, var(--unit-label-color) 24%, transparent);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding:5px 8px;font-size:11px;font-weight:550;line-height:1.1;overflow:hidden}.unit-lesson-label:last-child{border-right:none}.unit-block-label{color:var(--unit-label-color);text-align:center;justify-content:center;align-items:center;font-weight:750;display:flex}.unit-title-watermark{top:1px;bottom:1px;left:calc(((var(--title-column) - 1) / var(--segment-span)) * 100%);width:calc(100% / var(--segment-span));z-index:1;color:var(--unit-title-color);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;-webkit-user-select:none;user-select:none;padding:0 8px;font-size:14px;font-weight:750;line-height:22px;position:absolute;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 72%,#0000 100%);mask-image:linear-gradient(90deg,#000 72%,#0000 100%)}.resize-handle{opacity:0;cursor:ew-resize;z-index:8;justify-content:center;align-items:center;width:18px;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0}.unit-segment:hover .resize-handle{opacity:1}.resize-start{left:0}.resize-end{right:0}.resize-start:before,.resize-end:before{color:var(--unit-label-color);font-size:10px;font-weight:700;line-height:1}.resize-start:before{content:"<"}.resize-end:before{content:">"}.year-calendar{background:var(--bg-main)}.year-scroll-container{background:var(--bg-main);flex:1;min-height:0;padding:16px;overflow:auto}.year-grid{grid-template-columns:repeat(3,minmax(240px,1fr));gap:14px;min-width:760px;display:grid}.year-month-grid{border:1px solid var(--border-color);background:var(--bg-panel);min-height:244px;box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.year-month-header{border-bottom:1px solid var(--border-color);background:var(--bg-panel);padding:8px 10px}.year-month-header h3{color:var(--text-main);margin:0;font-size:14px;font-weight:700}.year-week-days{border-bottom:1px solid var(--border-color);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.year-week-days div{color:var(--text-muted);text-align:center;padding:5px 2px;font-size:10px;font-weight:700}.year-days-grid{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:36px;display:grid;position:relative}.year-day{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:var(--bg-panel);cursor:pointer;min-width:0;min-height:36px;padding:2px 4px;transition:background-color .18s,box-shadow .18s;position:relative}.year-day:nth-child(7n){border-right:none}.year-day.weekend,.year-day.blocked-day,.year-empty-day{background:color-mix(in srgb, var(--bg-panel) 88%, #94a3b8 12%)}.year-day.blocked-day{background:repeating-linear-gradient(-45deg, #94a3b82e 0, #94a3b82e 2px, transparent 2px, transparent 7px), color-mix(in srgb, var(--bg-panel) 76%, #94a3b8 24%)}.year-day:hover{background:var(--primary-soft)}.year-day.blocked-day:hover{background:repeating-linear-gradient(-45deg, #94a3b838 0, #94a3b838 2px, transparent 2px, transparent 7px), color-mix(in srgb, var(--bg-panel) 70%, #94a3b8 30%)}.year-empty-day{cursor:default;pointer-events:none}.year-day.today{box-shadow:inset 0 0 0 2px var(--primary)}.year-day.selected-lesson-day{background:color-mix(in srgb, var(--bg-main) 88%, var(--selected-lesson-accent,var(--primary)) 12%);border-color:color-mix(in srgb, var(--selected-lesson-accent,var(--primary)) 24%, var(--border-color) 76%);box-shadow:none}.year-day.selected-lesson-day .year-day-number{color:var(--selected-lesson-accent,var(--primary))}.year-day-number{z-index:9;background:color-mix(in srgb, var(--bg-panel) 82%, transparent);min-width:15px;height:15px;color:var(--text-main);border-radius:999px;justify-content:center;align-items:center;font-size:10px;font-weight:650;line-height:1;display:inline-flex;position:absolute;top:4px;left:50%;transform:translate(-50%)}.year-day.today .year-day-number{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.year-day.selected-lesson-day,.year-day.selected-lesson-day:hover,.year-day.today.selected-lesson-day{background:color-mix(in srgb, var(--bg-main) 88%, var(--selected-lesson-accent,var(--primary)) 12%)}.year-day.today.selected-lesson-day .year-day-number{background:var(--selected-lesson-accent,var(--primary));color:#fff}.year-block-marker{display:none}.year-unit-segment{z-index:7;min-width:0;height:6px;margin:calc(27px + (var(--lane) * 7px)) 2px 0;background:var(--unit-color);color:var(--unit-label-color);cursor:pointer;border-radius:999px;padding:0;position:relative;box-shadow:0 1px 1px #0f172a1f}.year-unit-segment span{height:14px;color:var(--text-main);text-align:left;text-overflow:ellipsis;white-space:nowrap;opacity:0;pointer-events:none;font-size:9px;font-weight:700;line-height:14px;transition:opacity .15s;position:absolute;inset:-14px 0 auto;overflow:hidden}.year-unit-segment:hover span,.year-unit-segment:focus-visible span{opacity:1}@media (width<=900px){.scroll-container{padding:0 10px 14px}.week-days{margin:0 10px}.days-grid{grid-auto-rows:minmax(88px,auto)}.day{min-height:88px;padding:4px}.unit-segment{margin:calc(30px + (var(--lane) * 23px)) 4px 0;min-height:20px}.blocked-day-label{line-height:20px;top:30px}.unit-lesson-label{padding:4px 6px;font-size:10px}.year-scroll-container{padding:10px}.year-grid{grid-template-columns:repeat(2,minmax(220px,1fr));min-width:0}}@media (width<=560px){.year-grid{grid-template-columns:minmax(220px,1fr)}}.color-picker-button{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:0 0 32px;justify-content:center;align-items:center;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.color-picker-button:hover{background:var(--bg-panel);border-color:var(--border-color)}.color-picker-button.header-action-button{flex-basis:36px;width:36px;height:36px}.color-popover-backdrop{z-index:140;background:0 0;position:fixed;inset:0}.color-popover{border:1px solid var(--border-color);background:var(--bg-panel);width:204px;box-shadow:var(--shadow-lg);border-radius:10px;padding:12px;position:fixed}.color-popover-header{color:var(--text-main);justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:650;display:flex}.color-popover-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.color-popover-swatch{cursor:pointer;border:2px solid #0000;border-radius:6px;width:28px;height:28px;box-shadow:inset 0 0 0 1px #0f172a1f}.color-popover-swatch.active{border-color:var(--text-main)}.custom-color-row{border-top:1px solid var(--border-color);color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:10px;font-size:12px;font-weight:600;display:flex}.custom-color-row input{cursor:pointer;border-radius:6px;width:34px;height:28px;padding:0}.calendar-header{flex-direction:column;flex-shrink:0;gap:12px;margin-bottom:24px;display:flex}.main-content{flex-direction:column;min-height:0;display:flex;overflow:hidden}.calendar-header h1{color:var(--primary);margin-bottom:0;font-size:28px}.calendar-title-row{align-items:center;gap:12px;display:flex}.calendar-title-actions{flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.calendar-view-toggle{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;grid-template-columns:repeat(2,minmax(68px,1fr));height:36px;padding:3px;display:inline-grid}.calendar-view-toggle-button{min-width:0;color:var(--text-muted);border-radius:5px;padding:0 12px;font-size:13px;font-weight:650;transition:background .18s,color .18s,box-shadow .18s}.calendar-view-toggle-button:hover{color:var(--text-main);background:var(--bg-panel)}.calendar-view-toggle-button.active{color:#fff;background:var(--primary);box-shadow:0 1px 2px #0f172a1f}.class-title-clickable{min-width:0;color:var(--text-main);cursor:pointer;border:1px solid #0000;border-radius:8px;flex:auto;margin-bottom:0;padding:4px 8px;font-size:28px;transition:all .2s}.class-title-clickable:hover{background:var(--bg-panel);border-color:var(--border-color)}.class-title-input{width:100%;min-width:0;color:var(--text-input);border:1px solid var(--primary);background:var(--bg-input);box-shadow:0 0 0 3px var(--primary-ring);border-radius:8px;outline:none;flex:auto;padding:4px 8px;font-size:28px;font-weight:700}.class-color-picker{flex:0 0 36px;width:36px;height:36px}.schedule-bar{background:var(--bg-panel);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:8px;align-items:center;gap:12px;padding:12px 16px;display:flex}.day-toggles{gap:8px;display:flex}.day-toggle{border:1px solid var(--border-color);color:var(--text-muted);background:var(--bg-main);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:500;transition:all .2s}.day-toggle:hover{background:var(--bg-panel)}.day-toggle.active{color:#fff}.calendar-wrapper{background:var(--bg-panel);border-radius:var(--radius);min-height:0;box-shadow:var(--shadow-sm);flex:1;overflow:hidden}.flex-center{justify-content:center;align-items:center;display:flex}.empty-state{text-align:center}.empty-state h2{color:var(--text-muted);margin-bottom:8px;font-size:24px}.calendar-context-menu{z-index:100;background:var(--bg-panel);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:10px;min-width:180px;padding:6px;animation:.12s ease-out contextFadeIn;position:fixed;transform:translate(-50%,-50%)}.calendar-context-menu.anchor-first-item{transform:translate(-50%,-16px)}@keyframes contextFadeIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.95)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.calendar-context-menu.anchor-first-item{animation:.12s ease-out contextFadeInFirstItem}@keyframes contextFadeInFirstItem{0%{opacity:0;transform:translate(-50%,-16px)scale(.95)}to{opacity:1;transform:translate(-50%,-16px)scale(1)}}.context-menu-item{width:100%;color:var(--text-main);border-radius:6px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.context-menu-item:hover{background:var(--bg-main)}.calendar-modal-backdrop{z-index:120;background:var(--overlay-bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.calendar-modal{background:var(--bg-panel);border:1px solid var(--border-color);width:min(420px,100vw - 32px);box-shadow:var(--shadow-lg);border-radius:10px;padding:18px}.calendar-modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.calendar-modal-header h2{margin:0 0 4px;font-size:18px}.calendar-modal-date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.calendar-modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.btn-sm{padding:4px 8px}.unit-creation-modal,.holiday-modal{max-width:800px}.holiday-modal-calendar{padding:4px 0 0}.unit-creation-calendar{flex-direction:column;gap:16px;padding:16px;display:flex}.calendar-navigation{justify-content:space-between;align-items:center;display:flex}.calendar-navigation .btn-icon{background:var(--bg-panel);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:4px;padding:8px 12px;font-size:18px;transition:all .2s}.calendar-navigation .btn-icon:hover{background:var(--bg-main);border-color:var(--primary)}.unit-calendar-month{flex:1}.unit-calendar-month h4{text-align:center;color:var(--text-main);margin-bottom:12px;font-size:16px;font-weight:600}.unit-calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.unit-calendar-header{text-align:center;color:var(--text-muted);padding:8px;font-size:12px;font-weight:600}.unit-calendar-day{cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:all .2s;display:flex}.unit-calendar-day:hover:not(.disabled){background:var(--bg-panel)}.unit-calendar-day.in-range{background:var(--primary-soft);color:var(--primary)}.unit-calendar-day.start,.unit-calendar-day.end{background:var(--primary);color:#fff}.unit-calendar-day.start:hover:not(.disabled),.unit-calendar-day.end:hover:not(.disabled){background:var(--primary-hover);color:#fff}.unit-calendar-day.disabled{color:var(--text-muted);cursor:not-allowed}.detail-sticky-header{z-index:5;background:var(--bg-panel);border-bottom:1px solid var(--border-color);flex-shrink:0;padding:24px 24px 0;position:sticky;top:0}.detail-panel{position:relative}.detail-body{--detail-left-basis:50%;flex:1;min-height:0;display:flex;overflow:hidden}.detail-body.with-file-browser .detail-scrollable{flex:0 0 var(--detail-left-basis);min-width:340px}.detail-scrollable{flex-direction:column;flex:1;padding:24px;display:flex;overflow-y:auto}.detail-panel-resizer{cursor:col-resize;background:var(--bg-main);border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);flex:0 0 10px;position:relative}.detail-panel-resizer:before{content:"";background:var(--border-color);border-radius:999px;width:2px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.detail-panel-resizer:hover:before,.resizing-detail-panels .detail-panel-resizer:before{background:var(--primary)}.resizing-detail-panels{cursor:col-resize;-webkit-user-select:none;user-select:none}.detail-header{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px;display:flex}.header-top-row,.header-bottom-row{align-items:center;gap:12px;width:100%;display:flex}.header-top-row{justify-content:space-between}.header-bottom-row{justify-content:flex-start}.collapsed-icon-row{align-items:center;gap:8px;display:flex}.detail-actions-top-right{align-items:center;gap:8px;margin-left:auto;display:flex}.detail-title-group{align-items:center;gap:8px;min-width:0;display:flex}.unit-header-title-group{flex:auto;gap:8px;min-width:0}.unit-header-title-group h2{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:0;padding:4px 8px;font-size:28px;font-weight:600;line-height:1.25;overflow:hidden}.unit-overview-title-row{align-items:center;gap:12px;min-height:46px}.unit-header-class{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;max-width:48%;font-size:28px;font-weight:600;line-height:1.25;overflow:hidden}.unit-header-separator{color:var(--text-muted);flex:none;font-size:24px;line-height:1}.header-unit-title-input{min-width:90px;color:var(--text-main);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:8px;flex:auto;height:46px;margin-left:0;padding:4px 8px;font-size:28px;font-weight:600;line-height:1.25;overflow:hidden}.header-unit-title-button{text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;flex:auto;min-width:90px;height:46px;padding:4px 8px;font-size:28px;font-weight:600;line-height:1.25;transition:background-color .2s,border-color .2s;overflow:hidden}.header-unit-title-button:hover{background:var(--bg-panel);border-color:var(--border-color)}.header-unit-title-input:focus{border-color:var(--border-color);background:var(--bg-input);outline:none}.detail-actions{flex:none;gap:4px;display:flex}.detail-section{margin-bottom:24px}.detail-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:12px;font-size:14px}.unit-overview-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.unit-overview-heading h3{margin-bottom:0}.unit-overview-heading .btn{flex:none}.unit-title-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.lesson-title-input{width:100%;min-width:0;color:var(--text-main);background:0 0;border:1px solid #0000;border-radius:6px;flex:1;margin-left:-8px;padding:4px 8px;font-size:24px;font-weight:700}.lesson-title-input:hover{background:var(--bg-main)}.lesson-title-input:focus{background:var(--bg-input);border-color:var(--primary)}.header-unit-title-input.lesson-title-input{width:auto;margin-left:0;font-size:28px;font-weight:600}.unit-color-input{flex:0 0 32px}.unit-date-display{border:1px solid var(--border-color);min-height:32px;color:var(--text-main);cursor:pointer;justify-content:flex-start;align-items:center;font-size:13px;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.unit-date-display:hover{border-color:var(--primary);background:var(--bg-panel);color:var(--primary)}.unit-info-row{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:10px;display:grid}.unit-info-box{background:var(--bg-main);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:8px;padding:12px;display:flex}.materials-section{flex-direction:column;flex-grow:1;display:flex}.material-upload-area{border:2px dashed var(--border-color);text-align:center;background:var(--bg-main);cursor:pointer;border-radius:8px;margin-bottom:16px;padding:24px;transition:all .2s}.material-upload-area.compact{margin-bottom:8px;padding:12px}.material-upload-info{text-align:center;color:var(--text-muted);margin-bottom:6px;padding:0;font-size:13px}.upload-icon{color:var(--text-muted);margin-bottom:8px}.material-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.material-item{background:var(--bg-panel);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:6px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.material-item.compact-item{padding:6px 10px}.material-info{flex:auto;align-items:center;gap:12px;min-width:0;display:flex;overflow:hidden}.material-info>div{min-width:0}.material-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;display:block;overflow:hidden}.material-actions{flex:none;align-items:center;gap:4px;display:flex}.material-type{color:var(--text-muted);text-transform:uppercase;font-size:12px}.lessons-container{flex-direction:column;gap:16px;display:flex}.lesson-day-block{background:var(--bg-main);border:1px solid var(--border-color);cursor:pointer;border-left-width:4px;border-left-color:var(--border-color);border-radius:8px;padding:16px;transition:all .2s}.lesson-day-block.detached-lesson{background:color-mix(in srgb, var(--bg-panel) 72%, #94a3b8 28%);border-color:color-mix(in srgb, var(--border-color) 70%, #94a3b8 30%);opacity:.78}.lesson-day-block.pushed-outside-lesson{background:color-mix(in srgb, var(--bg-panel) 76%, #94a3b8 24%);border-color:color-mix(in srgb, var(--border-color) 68%, #94a3b8 32%);opacity:.82}.lesson-day-block.drag-over{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px var(--primary-ring)}.lesson-day-block.selected-lesson{border-color:color-mix(in srgb, var(--lesson-accent) 36%, var(--border-color) 64%);border-left-color:var(--lesson-accent);background:color-mix(in srgb, var(--bg-main) 88%, var(--lesson-accent) 12%);box-shadow:0 0 0 2px color-mix(in srgb, var(--lesson-accent) 14%, transparent)}.lesson-day-header{border-bottom:1px solid var(--border-color);margin-bottom:12px;padding-bottom:8px}.lesson-day-header h4{color:var(--text-main);margin:0;font-size:14px}.lesson-title-line{flex:auto;align-items:center;gap:8px;min-width:0;margin-right:12px;display:flex}.lesson-topic-input{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;box-shadow:0 0 0 3px var(--primary-ring);background:0 0;border:1px solid #0000;border-radius:4px;flex:auto;padding:4px 8px;font-size:14px;font-weight:500;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 82%,#0000 100%);mask-image:linear-gradient(90deg,#000 82%,#0000 100%)}.lesson-topic-input:focus{border-color:var(--primary);outline:none}.lesson-topic-button{min-width:0;color:var(--text-main);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:8px;flex:auto;padding:4px 8px;font-size:14px;font-weight:500;transition:background-color .2s,border-color .2s;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 82%,#0000 100%);mask-image:linear-gradient(90deg,#000 82%,#0000 100%)}.lesson-topic-button:hover{background:var(--bg-panel);border-color:var(--border-color)}.lesson-date-label{color:var(--text-muted);white-space:nowrap;flex:none;font-size:13px}.lesson-state-label{border:1px solid var(--border-color);color:var(--text-muted);white-space:nowrap;border-radius:999px;flex:none;padding:2px 6px;font-size:11px;font-weight:650;line-height:1.2}.lesson-state-actions{flex:none;align-items:center;gap:3px;display:inline-flex}.material-upload-action{background:0 0;border:1px solid #0000;border-radius:6px;width:28px;height:28px;padding:0}.material-upload-action:hover{background:var(--bg-panel);border-color:var(--border-color);color:var(--text-main)}.lesson-state-delete{width:22px;height:22px;color:var(--text-muted);padding:0}.lesson-state-delete:hover{background:var(--danger-soft);color:var(--danger)}.lesson-plan-topic-row{align-items:center;gap:10px;margin-bottom:22px;display:flex}.lesson-plan-topic-prefix{color:var(--text-muted);flex:none;font-size:16px;font-weight:600}.lesson-plan-topic-button,.lesson-plan-topic-input{min-width:0;color:var(--text-primary);flex:auto;font-size:16px;font-weight:600;line-height:1.3}.lesson-plan-topic-button{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:4px 8px;transition:background-color .15s,border-color .15s}.lesson-plan-topic-button:hover{background:var(--bg-panel);border-color:var(--border-color)}.lesson-plan-topic-input{border:1px solid var(--primary);background:var(--bg-input);box-shadow:0 0 0 3px var(--primary-ring);border-radius:8px;padding:4px 8px}.lesson-plan-topic-input:focus{outline:none}.lesson-plan-topic-input::placeholder{color:var(--text-muted);opacity:.9}.lesson-plan-topic-button,.lesson-plan-topic-input{font-family:inherit}.lesson-plan-sections-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.lesson-plan-sections-header h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:14px}.lesson-plan-sections{flex-direction:column;gap:14px;display:flex}.lesson-plan-section{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:8px;padding:14px;display:flex}.lesson-plan-section-header{align-items:center;gap:8px;display:flex}.lesson-plan-section-header input{background:var(--bg-input);min-width:0;color:var(--text-input);flex:1;font-weight:650}.lesson-plan-section textarea{resize:none;background:var(--bg-input);width:100%;height:220px;color:var(--text-input);line-height:1.5;overflow:auto}.unit-notes-textarea{resize:none;background:var(--bg-input);color:var(--text-input);overflow:auto}.lesson-material-task-box{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;margin-top:18px;padding:14px}.lesson-material-task-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.lesson-material-task-header h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 4px;font-size:14px}.lesson-material-task-header p{margin:0}.lesson-material-task-header .btn{flex:none}.lesson-material-task-list{flex-direction:column;gap:14px;display:flex}.lesson-material-task-item{border:1px solid var(--border-color);background:var(--bg-panel);box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.lesson-material-task-item input{background:var(--bg-input);width:100%;min-width:0;color:var(--text-input)}.lesson-material-task-meta-row{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.lesson-material-task-material{min-width:0;color:var(--text-main);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.lesson-material-task-controls{flex:none;align-items:center;gap:4px;display:flex}.lesson-material-task-hide{white-space:nowrap;flex:none;min-width:142px;padding:6px 8px;font-size:12px}.lesson-material-task-hide.active{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.lesson-material-task-timer{border:1px solid var(--border-color);background:var(--bg-input);height:30px;color:var(--text-muted);border-radius:6px;flex:none;align-items:center;gap:4px;padding:0 6px;display:inline-flex}.lesson-material-task-timer:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-ring)}.lesson-material-task-timer input{width:46px;min-width:0;height:24px;color:var(--text-input);text-align:center;background:0 0;border:0;padding:0;font-size:12px;font-weight:650}.lesson-material-task-timer input:focus{box-shadow:none;outline:none}.lesson-material-task-number{background:var(--primary);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:750;display:inline-flex}.lesson-material-task-material span:not(.lesson-material-task-number){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lesson-material-task-actions{justify-content:flex-end;margin-top:14px;display:flex}.material-item[draggable=true]{cursor:grab}.material-item[draggable=true]:active{cursor:grabbing}.detail-modal-backdrop{z-index:1000;background:var(--overlay-bg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.detail-context-backdrop{background:0 0;display:block}.detail-modal{background:var(--bg-panel);border:1px solid var(--border-color);width:min(420px,100vw - 32px);box-shadow:var(--shadow-lg);border-radius:10px;padding:18px}.detail-confirm-popover{width:min(440px,100vw - 24px);animation:.14s ease-out detailConfirmIn;position:fixed}@keyframes detailConfirmIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.detached-lesson-delete-popover .detail-modal-actions{flex-wrap:wrap}.detail-modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.detail-modal-header h2{margin:0 0 4px;font-size:18px}.detail-modal-date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.unit-browser-modal{width:min(540px,100vw - 32px)}.unit-browser-list{flex-direction:column;flex:auto;gap:8px;min-height:0;display:flex;overflow-y:auto}.unit-browser-item{border:1px solid var(--border-color);background:var(--bg-main);width:100%;color:var(--text-main);text-align:left;cursor:grab;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;transition:background .2s,border-color .2s,transform .2s;display:flex}.unit-browser-item:hover{background:var(--bg-panel);border-color:var(--primary);box-shadow:0 2px 8px #0000001a}.unit-browser-item:active{cursor:grabbing}.unit-browser-item:disabled,.unit-browser-item[aria-disabled=true]{cursor:not-allowed;opacity:.58}.unit-browser-item>span{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.unit-browser-item strong,.unit-browser-item small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.unit-browser-item small{color:var(--text-muted);font-size:12px}.no-unit-flat{text-align:center;min-height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.no-unit-flat h2{color:var(--text-main);margin:0;font-size:18px}.class-curriculum-title h2{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:0;padding:4px 8px;font-size:28px;font-weight:600;line-height:1.25;overflow:hidden}.class-curriculum-export{flex:none}.class-curriculum-view{flex-direction:column;gap:16px;min-height:100%;display:flex}.class-curriculum-summary{border:1px solid var(--border-color);background:var(--bg-main);color:var(--text-muted);border-radius:8px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:650;display:flex}.class-curriculum-summary svg{color:var(--primary);flex:none}.class-curriculum-list{flex-direction:column;gap:10px;display:flex}.class-curriculum-unit{border:1px solid var(--border-color);background:var(--bg-main);width:100%;color:var(--text-main);text-align:left;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;transition:background .18s,border-color .18s,transform .18s;display:grid}.class-curriculum-unit:hover{border-color:color-mix(in srgb, var(--unit-accent) 54%, var(--border-color) 46%);background:color-mix(in srgb, var(--bg-main) 90%, var(--unit-accent) 10%);transform:translateY(-1px)}.class-curriculum-color{background:var(--unit-accent);border-radius:999px;width:12px;height:32px}.class-curriculum-unit-main{flex-direction:column;gap:3px;min-width:0;display:flex}.class-curriculum-unit-main strong,.class-curriculum-unit-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.class-curriculum-unit-main strong{font-size:14px}.class-curriculum-unit-main small,.class-curriculum-unit-meta{color:var(--text-muted);font-size:12px}.class-curriculum-unit-meta{white-space:nowrap}.class-curriculum-unit svg{color:var(--text-muted)}.class-curriculum-empty{border:1px dashed var(--border-color);min-height:180px;color:var(--text-muted);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.class-curriculum-empty h3{color:var(--text-main);margin:0;font-size:16px}.unit-browser-link{color:var(--primary);background:0 0;align-items:center;gap:6px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.unit-browser-link:disabled{color:var(--text-muted);cursor:not-allowed}.material-library-browser{background:var(--bg-main);flex-direction:column;flex:auto;min-width:340px;min-height:0;padding:18px;display:flex}.material-library-list{flex:1}.material-library-header{flex-direction:column;gap:12px;margin-bottom:14px;display:flex}.material-library-header h3{margin:0 0 4px;font-size:15px}.browser-tabs{border:1px solid var(--border-color);background:var(--bg-panel);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.browser-tabs.two-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-panel-tabs{margin-bottom:16px}.unit-browser-panel{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.unit-browser-panel-help{margin:0 0 10px}.lesson-plan-browser-content{flex:auto;min-height:0;padding-right:2px;overflow-y:auto}.lesson-plan-browser-heading{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.lesson-plan-empty{border:1px dashed var(--border-color);background:var(--bg-panel);min-height:180px;color:var(--text-muted);text-align:center;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.lesson-plan-empty h3{color:var(--text-main);margin:0;font-size:16px}.browser-tabs button{min-width:0;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:7px 8px;font-size:13px;font-weight:650;overflow:hidden}.browser-tabs button.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.browser-tabs button:disabled{cursor:not-allowed;opacity:.48}.material-library-search{background:var(--bg-input);width:100%;color:var(--text-input);margin-bottom:10px}.file-library-filter-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.file-library-filter-row select{border:1px solid var(--border-color);background:var(--bg-input);min-width:0;height:36px;color:var(--text-input);border-radius:8px;padding:6px 10px;font-size:13px}.material-library-list{flex-direction:column;gap:8px;min-height:0;display:flex;overflow-y:auto}.material-class-group{border:1px solid var(--border-color);background:var(--bg-panel);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.material-class-toggle{width:100%;color:var(--text-main);text-align:left;align-items:center;gap:8px;padding:10px;display:flex}.material-class-toggle svg{flex:none;transition:transform .16s}.material-class-toggle svg.expanded{transform:rotate(90deg)}.material-class-title{flex-direction:column;gap:2px;min-width:0;display:flex}.material-class-title strong,.material-class-title small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.material-class-title strong{font-size:13px}.material-class-title small{color:var(--text-muted);font-size:11px}.material-class-files{border-top:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-main) 72%, var(--bg-panel) 28%);flex-direction:column;gap:8px;padding:8px 10px 10px;display:flex}.material-library-item{min-width:0;color:inherit;cursor:grab;border-radius:6px;align-items:flex-start;gap:8px;margin:0 -8px;padding:8px;text-decoration:none;display:flex}.material-library-item:active{cursor:grabbing}.material-library-item:hover{background:var(--bg-main)}.material-library-item>span{min-width:0}.material-library-item strong,.material-library-item small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.material-library-item strong{color:var(--text-main);font-size:13px}.material-library-item small{color:var(--text-muted);margin-top:2px;font-size:11px}.material-context-class,.material-context-unit{font-weight:650}.material-library-empty{border:1px dashed var(--border-color);min-height:120px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex}.material-library-empty.compact{min-height:72px}.browser-split{flex-direction:column;flex:auto;gap:12px;min-height:0;display:flex}.unit-browser-split{overflow:hidden}.browser-split-section{flex-direction:column;flex:auto;gap:8px;min-height:0;display:flex}.browser-split-section.half{flex-basis:0}.browser-split-section>.material-library-list{flex:auto;min-height:0;max-height:100%}.browser-split-section>.unit-browser-scroll-list{flex:auto;min-height:0;max-height:100%;padding:2px 2px 0 0;overflow-y:auto}.material-library-section{padding-right:2px;overflow-y:auto}.material-library-section>.material-library-list{flex:none;max-height:none;overflow:visible}.archive-section,.other-units-section{border-top:1px solid var(--border-color);padding-top:12px}.browser-section-title{justify-content:space-between;align-items:center;gap:8px;min-height:24px;display:flex}.browser-section-header{flex-direction:column;gap:4px;display:flex}.browser-section-title strong{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.browser-section-title small{background:var(--bg-panel);min-width:22px;height:22px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;font-weight:650;display:inline-flex}.browser-section-actions{flex:none;align-items:center;gap:6px;display:inline-flex}.browser-section-description{margin:0;line-height:1.4}.material-class-files .material-library-item,.material-library-item.archive-browser-row{border:1px solid var(--border-color);background:var(--bg-main);-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;margin:0;padding:10px 12px}.material-library-item.archive-browser-row.selected{border-color:var(--primary);background:var(--primary-soft)}.material-library-item.archive-browser-row>span{flex:auto;overflow:hidden}.material-library-item.archive-browser-row>span>strong,.material-library-item.archive-browser-row>span>small{padding-right:12px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000)}.archive-action-box{border:1px solid var(--border-color);background:var(--bg-panel);border-radius:8px;flex-direction:column;gap:6px;margin:0 0 12px;padding:8px;display:flex}.file-library-action-box{margin-bottom:10px}.archive-bulk-actions{justify-content:space-between;align-items:center;gap:8px;margin:0;display:flex}.file-library-bulk-actions{flex-wrap:wrap}.archive-upload-button,.archive-select-all{white-space:nowrap;min-width:0;padding:8px 10px;font-size:13px;font-weight:650}.archive-select-all span{background:var(--bg-main);min-width:18px;height:18px;color:var(--primary);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.archive-upload-button:hover,.archive-select-all:hover{background:var(--bg-main)}.archive-select-all:disabled{cursor:not-allowed;opacity:.55}.archive-select-all:disabled span{color:var(--text-muted);background:0 0}.archive-delete-selected{border-color:color-mix(in srgb, var(--danger) 32%, var(--border-color) 68%);min-width:0;color:var(--danger);white-space:nowrap;flex:1 1 0;padding:8px 10px;font-size:13px;font-weight:650}.archive-delete-selected:hover{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.archive-delete-selected span{background:var(--bg-panel);min-width:18px;height:18px;color:var(--danger);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.archive-delete-selected:disabled{cursor:not-allowed;opacity:.55}.archive-delete-selected:disabled span{color:var(--text-muted);background:0 0}.archive-upload-button{justify-content:center;width:100%}.archive-select-all{flex:1 1 0;justify-content:center}.archive-delete-selected{justify-content:center}.archive-item-actions{flex:none;gap:4px;display:flex}.file-library-title{margin-bottom:8px}.file-library-list{flex:auto}.material-upload-wrapper{margin-top:12px}.material-upload-controls{align-items:center;gap:4px;display:flex}.link-popup-backdrop{background:var(--overlay-bg);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.link-popup{background:var(--bg-main);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:8px;min-width:300px;padding:20px}.link-popup form{flex-direction:column;gap:12px;display:flex}.link-popup input{border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-input);border-radius:4px;padding:8px 12px;font-size:14px}.link-popup-actions{justify-content:flex-end;gap:8px;display:flex}.class-transfer-page{box-sizing:border-box;background:var(--bg-main);flex-direction:column;grid-column:2/5;min-width:0;height:100%;min-height:0;padding:24px;display:flex;overflow:hidden}.class-transfer-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:18px;display:flex}.class-transfer-header h1{margin:2px 0 0;font-size:26px}.class-transfer-grid{flex:auto;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:0;display:grid;overflow:hidden}.class-transfer-panel{border:1px solid var(--border-color);background:var(--bg-panel);min-width:0;min-height:0;box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;gap:16px;padding:18px;display:flex;overflow:hidden}.class-transfer-panel-heading{align-items:flex-start;gap:10px;display:flex}.class-transfer-panel-heading svg{color:var(--primary);flex:none}.class-transfer-panel-heading h2{margin:0 0 4px;font-size:18px}.class-transfer-panel-heading p{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.class-transfer-list-header{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:10px;font-size:13px;display:flex}.class-transfer-list-header .btn{min-height:30px;padding:5px 10px;font-size:12px}.class-transfer-list{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;flex:auto;gap:8px;min-height:0;padding:4px;display:flex;overflow:auto}.class-transfer-group{flex-direction:column;gap:8px;display:flex}.class-transfer-group+.class-transfer-group{border-top:1px solid var(--border-color);padding-top:4px}.class-transfer-group-heading{color:var(--text-muted);align-items:center;gap:10px;padding:2px 2px 0;font-size:12px;display:flex}.class-transfer-group-heading strong{color:var(--text-main);font-size:13px}.class-transfer-group-list{flex-direction:column;gap:8px;display:flex}.class-transfer-row{border:1px solid var(--border-color);background:var(--bg-panel);color:var(--text-main);text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px;font-size:13px;transition:border-color .2s,background .2s,color .2s;display:grid}.class-transfer-row:hover{border-color:var(--class-transfer-accent,var(--primary));background:color-mix(in srgb, var(--class-transfer-accent,var(--primary)) 9%, var(--bg-panel) 91%)}.class-transfer-row.selected{border-color:var(--class-transfer-accent,var(--primary));background:color-mix(in srgb, var(--class-transfer-accent,var(--primary)) 16%, var(--bg-panel) 84%);box-shadow:inset 3px 0 0 var(--class-transfer-accent,var(--primary))}.class-transfer-row.active:not(.selected){border-color:color-mix(in srgb, var(--class-transfer-accent,var(--primary)) 40%, var(--border-color) 60%);background:color-mix(in srgb, var(--class-transfer-accent,var(--primary)) 7%, var(--bg-panel) 93%)}.class-transfer-row strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.class-transfer-row span:not(.class-transfer-dot){color:var(--text-muted);white-space:nowrap}.class-transfer-dot{background:var(--class-transfer-accent,var(--primary));border-radius:50%;width:10px;height:10px}.class-transfer-action{justify-content:center;min-height:40px}.class-transfer-action:disabled,.class-transfer-drop:disabled{cursor:not-allowed;opacity:.62}.class-transfer-file-input{display:none}.class-transfer-drop{border:1px dashed var(--border-color);background:var(--bg-main);min-height:0;color:var(--text-main);text-align:center;cursor:pointer;border-radius:8px;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:8px;padding:24px;transition:border-color .2s,background .2s,color .2s;display:flex}.class-transfer-drop:hover{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.class-transfer-drop span{max-width:360px;color:var(--text-muted);font-size:13px;line-height:1.45}.class-transfer-target{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.class-transfer-target strong{color:var(--text-main);font-size:14px}.class-transfer-status{border:1px solid var(--border-color);background:var(--bg-panel);border-radius:8px;align-items:center;gap:8px;margin-top:18px;padding:12px 14px;font-size:14px;display:flex}.class-transfer-status.success{border-color:color-mix(in srgb, #16a34a 36%, var(--border-color) 64%);color:#15803d}.class-transfer-status.warning{border-color:var(--warning-border);background:var(--warning-bg);color:var(--warning-text)}.class-transfer-status.error{border-color:color-mix(in srgb, var(--danger) 36%, var(--border-color) 64%);color:var(--danger)}@media (width<=1120px){.class-transfer-grid{grid-template-rows:repeat(4,minmax(260px,1fr));grid-template-columns:1fr;overflow:auto}}.class-sharing-view{gap:16px}.class-sharing-header{flex-shrink:0;align-items:center;gap:14px;display:flex}.class-sharing-header h1{min-width:0;color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:0;font-size:28px;overflow:hidden}.class-sharing-eyebrow{color:var(--primary);text-transform:uppercase;flex:none;align-items:center;gap:6px;font-size:12px;font-weight:750;display:inline-flex}.class-sharing-panel{border:1px solid var(--border-color);background:var(--bg-panel);box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;gap:14px;padding:16px;display:flex}.class-sharing-panel.compact{gap:6px}.class-sharing-panel h2{color:var(--text-main);margin:0;font-size:16px}.class-sharing-panel p{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.class-sharing-panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.class-sharing-add-form{grid-template-columns:minmax(0,1fr) minmax(110px,140px) auto;gap:8px;display:grid}.class-sharing-add-form input,.class-sharing-add-form select,.class-sharing-member-row select{min-height:38px}.class-sharing-member-list{flex-direction:column;gap:8px;display:flex}.class-sharing-member-row{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(110px,140px) auto;align-items:center;gap:8px;padding:10px;display:grid}.class-sharing-member-row.owner-row{background:color-mix(in srgb, var(--primary-soft) 64%, var(--bg-main) 36%);grid-template-columns:minmax(0,1fr) auto}.class-sharing-owner-role{background:var(--primary);color:#fff;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:750;display:inline-flex}.class-sharing-member-info{flex-direction:column;gap:2px;min-width:0;display:flex}.class-sharing-member-info strong{color:var(--text-main);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.class-sharing-member-info span,.class-sharing-empty span{color:var(--text-muted);font-size:12px}.class-sharing-remove:hover{background:var(--danger-soft);color:var(--danger)}.class-sharing-empty{border:1px dashed var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:3px;padding:14px;display:flex}.class-sharing-empty strong{color:var(--text-main);font-size:14px}.class-sharing-role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.class-sharing-role-grid div{border:1px solid var(--border-color);background:var(--bg-main);border-radius:8px;flex-direction:column;gap:3px;padding:10px;display:flex}.class-sharing-role-grid strong{color:var(--text-main);font-size:13px}.class-sharing-role-grid span{color:var(--text-muted);font-size:12px;line-height:1.35}@media (width<=820px){.class-sharing-add-form,.class-sharing-member-row,.class-sharing-role-grid{grid-template-columns:1fr}}.landing-page{color:#15231d;background:#f7faf8;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px;display:flex;overflow:auto}.landing-login-shell{flex-direction:column;gap:22px;width:min(420px,100%);display:flex}.landing-login-brand{justify-content:center;align-items:center;gap:12px;display:flex}.landing-login-brand span{color:#fff;background:#285c4d;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-weight:760;display:inline-flex}.landing-login-brand h1{color:#15231d;margin:0;font-size:30px}.landing-auth{background:#fff;border:1px solid #285c4d29;border-radius:8px;flex-direction:column;gap:14px;padding:22px;display:flex;box-shadow:0 20px 56px #15231d1f}.auth-heading{align-items:flex-start;gap:10px;display:flex}.auth-heading svg{color:#285c4d;flex:none;margin-top:2px}.auth-heading h2{color:#15231d;margin:0 0 2px;font-size:22px}.auth-heading p{color:#6a7b73;margin:0;font-size:13px}.auth-registration-note{color:#51635b;background:#eef5f1;border:1px solid #285c4d29;border-radius:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.4}.landing-auth label{flex-direction:column;gap:7px;display:flex}.landing-auth label span{color:#51635b;font-size:13px;font-weight:700}.landing-auth input{background:#fff;border-color:#285c4d2e;border-radius:8px;width:100%;min-height:42px}.auth-submit{color:#fff;background:#285c4d;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;margin-top:2px;font-size:14px;font-weight:720;display:inline-flex}.auth-submit:hover{background:#1f493d}.auth-submit:disabled{cursor:wait;opacity:.72}.auth-status{border-radius:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.4}.auth-status.success{color:#166534;background:#16a34a1a}.auth-status.warning{color:#92400e;background:#d977061f}.auth-status.error{color:#991b1b;background:#dc26261a}.impressum-link{color:#6a7b73;border-radius:6px;align-self:center;padding:4px 8px;font-size:12px;font-weight:650}.impressum-link:hover{color:#285c4d;background:#285c4d14}.impressum-panel{gap:18px}.impressum-back{color:#6a7b73;align-self:flex-start;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.impressum-back:hover{color:#285c4d}.impressum-content{flex-direction:column;gap:14px;display:flex}.impressum-content h1,.impressum-content h2,.impressum-content p{margin:0}.impressum-content h1{color:#15231d;font-size:24px}.impressum-content h2{color:#15231d;font-size:18px}.impressum-content p{color:#51635b;white-space:pre-wrap;font-size:14px;line-height:1.55}
